/* Portable additions. The original theme and local component library are retained. */
:root { --ef-ink:#142238; --ef-gold:#9b7524; --ef-paper:#fbfaf6; }
html { scroll-behavior:smooth; }
[hidden] { display:none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, [role="button"]:focus-visible { outline:3px solid #99691c !important; outline-offset:4px; }
.ef-skip { position:fixed; inset-block-start:12px; inset-inline-start:12px; z-index:999999;
  transform:translateY(-180%); padding:12px 20px; background:white; color:#142238; border:2px solid #142238; }
.ef-skip:focus { transform:none; }
/* Explicit, surface-aware body contrast, without changing the theme's headings. */
ws-block[surfaces^="ws-dark"] > div > ws-text > p,
ws-block[surfaces^="ws-dark"] > div > div > ws-text > p { color:#edf0f4; }
.ef-contact { display:block; width:100%; max-width:100%; color:#142238; text-align:start; }
.ef-contact p { color:inherit; font-size:16px; line-height:1.65; }
.ef-contact a { color:#795616; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.ef-contact label { display:block; font-weight:600; margin:18px 0 7px; font-size:16px; }
.ef-contact input, .ef-contact textarea, .ef-contact select { box-sizing:border-box; display:block;
  width:100%; max-width:100%; padding:12px 14px; color:#142238; background:#fff;
  border:1px solid #7a828c; border-radius:4px; font:inherit; font-size:16px; line-height:1.5; }
.ef-contact input[type="email"] { direction:ltr; text-align:start; }
.ef-contact textarea { min-height:140px; resize:vertical; }
.ef-contact .ef-note { padding:14px 16px; border-inline-start:3px solid #9b7524;
  background:#f5f1e7; color:#283646; margin:0 0 20px; }
.ef-actions { display:flex; flex-wrap:wrap; gap:12px; margin-block-start:20px; align-items:center; }
.ef-button, .ef-contact a.ef-button { display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; box-sizing:border-box; padding:12px 20px; font:inherit; font-weight:600;
  line-height:1.4; border:1px solid #725118; border-radius:4px; background:#80601e; color:white;
  cursor:pointer; text-decoration:none; text-align:center; }
.ef-button:hover { background:#624911; }
.ef-button.ef-secondary { color:#142238; background:white; border-color:#737d89; }
.ef-button:disabled { opacity:.65; cursor:not-allowed; }
.ef-draft { border:1px solid #a6afba; border-radius:5px; padding:18px; margin-block-start:20px;
  background:#f8fafb; }
.ef-draft h3 { font-size:21px; margin:0 0 8px; }
.ef-contact .ef-status { min-height:1.7em; margin:16px 0 0; font-weight:600; }
.ef-map-card { box-sizing:border-box; width:100%; min-height:300px; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:32px; text-align:center; background:#142238; color:#fff; border:1px solid #ac8a35;
  border-radius:4px; font-family:inherit; }
.ef-map-card .ef-map-label { color:#e4c777; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin:0 0 12px; }
.ef-map-card h3 { font-size:clamp(24px,3vw,34px); line-height:1.25; color:#fff; margin:0 0 10px; }
.ef-map-card p { color:#e8edf2; font-size:16px; line-height:1.6; margin:0 0 18px; }
.ef-map-card a { color:#fff; text-decoration:none; border:1px solid #e4c777; border-radius:4px;
  min-height:48px; display:inline-flex; align-items:center; padding:10px 20px; margin-block-start:8px; }
.ef-map-card a:hover { background:#263951; }
.ef-map-card .ef-map-note { color:#d0d9e5; font-size:13px; margin:14px 0 0; }
.ef-placeholder-replacement img { object-fit:contain !important; background:#fff; }
html[dir="rtl"] ws-text, html[dir="rtl"] .ef-map-card { direction:rtl; }
html[dir="rtl"] a[href^="mailto:"], html[dir="rtl"] a[href^="tel:"] { direction:ltr; unicode-bidi:isolate; display:inline-block; }
.ef-error-page { margin:0; min-height:100vh; display:grid; place-items:center; background:#142238;
  color:white; font:18px/1.65 'Noto Sans',Arial,sans-serif; padding:24px; box-sizing:border-box; }
.ef-error-card { max-width:660px; padding:40px; background:#1d2c42; border:1px solid #ac8a35; border-radius:8px; }
.ef-error-card img { display:block; width:115px; height:auto; margin-bottom:24px; }
.ef-error-card h1 { font-size:clamp(32px,5vw,48px); line-height:1.2; margin:12px 0 18px; }
.ef-error-card a { color:#f2d780; }
.ef-error-card .ef-button { color:white; }
@media(max-width:600px) { .ef-map-card { min-height:260px; padding:24px 18px; }
 .ef-actions { flex-direction:column; align-items:stretch; } .ef-error-card { padding:28px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }
 *, *::before, *::after { animation-duration:.01ms !important; animation-delay:0ms !important;
 transition-duration:.01ms !important; scroll-behavior:auto !important; } }
/* A small independent contact section prevents the inherited builder's form CSS
   from recoloring native fields or positioning contact details over the map link. */
.ef-contact-section { background:#142238; color:#fff; padding:64px 24px 80px; font-family:'Noto Sans',Arial,sans-serif; }
.ef-contact-layout { max-width:1170px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:start; }
.ef-contact-heading { margin-bottom:28px; }
.ef-contact-heading h1 { font-size:clamp(30px,4vw,42px); line-height:1.25; color:#fff; margin:0 0 18px; }
.ef-contact-heading p { color:#edf1f5; font-size:17px; line-height:1.75; margin:0; }
#contact-form.ef-contact { box-sizing:border-box; padding:24px; background:#fbfaf6; color:#142238 !important; border-radius:6px; }
#contact-form.ef-contact p, #contact-form.ef-contact label, #contact-form.ef-contact h3,
#contact-form.ef-contact select { color:#142238 !important; }
#contact-form.ef-contact input, #contact-form.ef-contact textarea { color:#142238 !important; background:#fff !important; border:1px solid #7a828c !important; }
#contact-form.ef-contact input::placeholder, #contact-form.ef-contact textarea::placeholder { color:#65707e !important; opacity:1; }
#contact-form.ef-contact textarea { min-height:160px !important; }
#contact-form.ef-contact #ef-draft-text { min-height:230px !important; }
#contact-form.ef-contact a:not(.ef-button) { color:#725117 !important; }
#contact-form.ef-contact .ef-note { font-size:15px; }
#contact-form.ef-contact .ef-button { color:white !important; }
#contact-form.ef-contact .ef-secondary { color:#142238 !important; }
.ef-contact-aside { display:grid; gap:24px; margin-top:0; }
.ef-contact-aside .ef-map-card { min-height:300px; }
.ef-contact-details { padding:28px; border:1px solid #637086; border-radius:4px; background:#1b2b43; }
.ef-contact-details h2 { color:#fff; font-size:22px; margin:0 0 18px; }
.ef-contact-details p { color:#edf0f5; line-height:1.7; margin:12px 0; }
.ef-contact-details a { color:#f0d687; text-underline-offset:4px; overflow-wrap:anywhere; }
@media(max-width:800px) { .ef-contact-layout { grid-template-columns:1fr; gap:32px; } .ef-contact-section { padding:40px 20px 56px; } }
@media(max-width:450px) { #contact-form.ef-contact { padding:18px; } .ef-draft { padding:14px; } }
/* Readable body text while retaining each section's light/dark theme. */
ws-text p.ef-copy-light { color:#4b5563 !important; }
ws-text p.ef-copy-dark { color:#e6ebf1 !important; }
ws-text p.ef-copy-light span:not([style*="color"]),
ws-text p.ef-copy-dark span:not([style*="color"]) { color:inherit !important; }
