/* EFV client updates. Loads after the theme stylesheet. */

/* ============ CLEARER TYPE ============
   Body copy moves from Jost Light (300) to Regular (400), a size up, on a
   darker ink. Headings step up to Cormorant SemiBold so the thin strokes
   hold at every size. */
:root{
  --text:#1c1d17;
  --muted:#4d5047;
}
body{font-weight:400;font-size:17px;line-height:1.7;color:var(--text);text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.005em}
h3{font-size:clamp(1.3rem,1.9vw,1.6rem)}
.eyebrow,.sec-head .eyebrow,.page-hero .eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.16em}
.sec-lead,.about-lead-body,.about-text .prose,.prose{color:#2f312a}
.card-meta,.card-excerpt,.exp-card p,.do-text,.stay-meta,.assurances li,.rooms-foot,.review-by span{color:var(--muted);font-size:max(.92rem,15px)}
.card-meta{font-weight:500}
.review blockquote{font-size:1.22rem;font-weight:500}
.btn{font-size:.92rem;font-weight:500;letter-spacing:.04em}
.form-grid label,.bookbar label{font-size:.8rem;font-weight:500;color:#3d4037}
.form-grid input,.form-grid textarea,.form-grid select,.bookbar input,.bookbar select{font-weight:400;font-size:1rem}
.topbar{font-size:.86rem;color:#e3e8df}
.footer{color:#c3cdc1;font-size:.95rem}
.footer h4{font-weight:600;font-size:1.25rem}
.brand{font-weight:600}

/* ============ NAV + DROPDOWNS ============ */
.nav-menu{font-size:.97rem;font-weight:500;color:#33352e;gap:28px}
.nav-menu > li{position:relative}
.nav-menu .menu-item-has-children > a{display:inline-flex;align-items:center;gap:6px}
.nav-menu .menu-item-has-children > a::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease)}
.nav-menu .sub-menu{list-style:none;margin:0;padding:10px 0;position:absolute;left:-18px;top:100%;min-width:210px;background:#fff;border:1px solid var(--gray);border-top:2px solid var(--gold);border-radius:0 0 8px 8px;box-shadow:0 18px 40px rgba(8,29,17,.12);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;z-index:65}
.nav-menu > li:hover > .sub-menu,.nav-menu > li:focus-within > .sub-menu,.nav-menu > li.efvu-open > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-menu > li:hover > a::after,.nav-menu > li.efvu-open > a::after{transform:translateY(1px) rotate(225deg)}
.nav-menu .sub-menu a{display:block;padding:9px 20px;border:0;color:#33352e;font-size:.95rem;white-space:nowrap}
.nav-menu .sub-menu a:hover,.nav-menu .sub-menu .current-menu-item > a{color:var(--green);background:var(--cream-alt)}
.nav-menu .current .sub-menu a{border-bottom-color:transparent;color:#33352e}
.nav-menu .current-menu-item > a,.nav-menu .current-menu-ancestor > a{color:var(--green)}
@media(max-width:1000px){
  .nav-menu{overflow-y:auto}
  .nav-menu > li{width:100%}
  .nav-menu .menu-item-has-children > a::after{display:none}
  .nav-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--gold);border-radius:0;padding:0 0 6px 14px;margin:0 0 6px;min-width:0;background:transparent}
  .nav-menu .sub-menu a{padding:7px 0;font-size:.98rem}
  .nav-menu .sub-menu a:hover{background:transparent}
}

/* ============ BRAND-COLOURED SOCIAL ICONS ============ */
.efvu-socials{gap:10px;flex-wrap:wrap}
.efvu-soc{width:32px;height:32px;border-radius:50%;display:inline-flex !important;align-items:center;justify-content:center;color:#fff !important;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.efvu-soc:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.25)}
.efvu-soc .efvu-ic{width:18px;height:18px;flex:none}
.topbar .efvu-soc{width:28px;height:28px}
.topbar .efvu-soc .efvu-ic{width:16px;height:16px}
.efvu-soc-instagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.efvu-soc-facebook{background:#1877f2}
.efvu-soc-youtube{background:#ff0000}
.efvu-soc-tiktok{background:#010101;box-shadow:-1.5px -1.5px 0 #25f4ee inset,1.5px 1.5px 0 #fe2c55 inset}
.efvu-soc-linkedin{background:#0a66c2}
.efvu-soc-whatsapp{background:#25d366}
.efvu-soc-booking{background:#003580}

/* ============ BANNER PHOTO / VIDEO ON EVERY PAGE ============ */
.efvu-hero{min-height:clamp(340px,58vh,620px);display:flex;align-items:center;justify-content:center;isolation:isolate}
.efvu-hero > .wrap{width:100%}
.efvu-hero img,.efvu-hero .efvu-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;z-index:0}
.efvu-hero .efvu-hero-video{z-index:1}
.efvu-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,18,10,.35) 0%,rgba(5,18,10,.5) 55%,rgba(5,18,10,.75) 100%)}
.efvu-hero > .wrap{z-index:2}
.efvu-hero h1{text-shadow:0 2px 24px rgba(0,0,0,.35)}
.efvu-hero .page-hero-sub{color:#eef1ea;font-size:1.08rem}
@media(prefers-reduced-motion:reduce){.efvu-hero .efvu-hero-video{display:none}}

/* ============ LOCATION: DIRECTIONS VIDEO ============ */
.efvu-directions{background:var(--cream-alt)}
.efvu-video-frame{position:relative;max-width:960px;margin:0 auto;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--green-dark)}
.efvu-video-frame video{width:100%;height:100%;object-fit:cover;display:block}
.efvu-video-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:#dfe5dc;border:1px dashed var(--gold);background:linear-gradient(135deg,var(--green-dark),var(--green))}
.efvu-video-empty .efvu-ic{width:58px;height:58px;color:var(--gold);margin:0 auto 14px;display:block}
.efvu-video-empty strong{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:#fff}
.efvu-video-empty p{margin:0 0 6px;padding:0 20px}

/* ============ FLOATING WHATSAPP ============ */
.efvu-wa{position:fixed;right:clamp(14px,2.4vw,28px);bottom:clamp(14px,2.4vw,28px);z-index:90;display:inline-flex;align-items:center;gap:10px;height:58px;padding:0 15px;border-radius:999px;background:#25d366;color:#fff !important;box-shadow:0 10px 26px rgba(0,0,0,.25);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.efvu-wa:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.3)}
.efvu-wa .efvu-ic{width:28px;height:28px;flex:none}
.efvu-wa-label{font-weight:500;font-size:.95rem;padding-right:4px}
.efvu-wa::before{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(37,211,102,.55);animation:efvu-pulse 2.6s infinite}
@keyframes efvu-pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
@media(max-width:640px){.efvu-wa{width:56px;height:56px;padding:0;justify-content:center}.efvu-wa-label{display:none}}
@media(prefers-reduced-motion:reduce){.efvu-wa::before{animation:none}}
.lightbox[style*="flex"] ~ .efvu-wa,.lightbox.open ~ .efvu-wa{display:none}
