/* header + footer live in Elementor theme-builder locations: force edge-to-edge */
.elementor-location-header .elementor-section,
.elementor-location-footer .elementor-section,
.elementor-location-header .elementor-container,
.elementor-location-footer .elementor-container,
.elementor-location-header .e-con,
.elementor-location-footer .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-footer .e-con-inner{max-width:100% !important;width:100% !important;padding-left:0 !important;padding-right:0 !important}
.elementor-location-header .elementor-column-wrap,
.elementor-location-footer .elementor-column-wrap,
.elementor-location-header .elementor-widget-wrap,
.elementor-location-footer .elementor-widget-wrap,
.elementor-location-header .elementor-widget-html,
.elementor-location-footer .elementor-widget-html{padding:0 !important;margin:0 !important}

/* ============================================================
   LUXE LODGE · Blue Ridge, GA — home page
   Brand system from 2026_LuxeLodge_StyleGuide_v1
   Type:   Tenor Sans (display) · Montserrat (body)
   Colour: Eclipse #1A3636 · Forest Roast #42534C
           Sage #697D6A · Almond #D6BD98
   ============================================================ */

:root{
  /* ---- official brand colours ---- */
  --eclipse:#1A3636;
  --forest-roast:#42534C;
  --sage:#697D6A;
  --almond:#D6BD98;
  --almond-deep:#C0A87F;

  /* Little Luxe sub-brand accents (from little-luxe-brand-colors) */
  --ll-teal:#284751;
  --ll-gold:#F1D383;
  --ll-aqua:#A1C6C8;

  /* ---- light theme, built off Almond ---- */
  --bg:#F7F2E9;
  --surface:#FCF9F3;
  --panel:#EDE3D2;
  --ink:#1A3636;
  --muted:#5D6E66;
  --line:#DFD3BD;
  --on-dark:#F4EEE2;

  --serif:"Tenor Sans","Optima","Gill Sans MT",Candara,"Segoe UI",sans-serif;
  --display:"Tenor Sans","Optima","Gill Sans MT",Candara,"Segoe UI",sans-serif;
  --body:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --wrap:1220px;

  /* golden-ratio modular type scale (phi = 1.618), base 1rem */
  --gr:1.618;
  --f-2xs:.618rem;   /* base / phi   */
  --f-xs:.786rem;    /* base / phi^0.5 */
  --f-sm:.875rem;
  --f-md:1rem;
  --f-lg:1.618rem;   /* phi   */
  --f-xl:2.618rem;   /* phi^2 */
  --f-2xl:4.236rem;  /* phi^3 */
  --f-3xl:6.854rem;  /* phi^4 */

  /* ---- semantic layer (shadcn-shaped naming, brand values) ----
     These map 1:1 onto Elementor Global Colors, so the theme can be
     set up once and every widget inherits the system. */
  --background:var(--bg);
  --foreground:var(--ink);
  --card:var(--surface);
  --card-foreground:var(--ink);
  --primary:var(--eclipse);
  --primary-foreground:var(--almond);
  --secondary:var(--panel);
  --secondary-foreground:var(--ink);
  --accent:var(--almond);
  --accent-foreground:var(--eclipse);
  --muted-foreground:var(--muted);
  --border:var(--line);
  --input:var(--line);
  --ring:var(--almond-deep);

  /* ---- radius scale ---- */
  --radius:6px;
  --radius-sm:calc(var(--radius) - 3px);
  --radius-md:calc(var(--radius) - 1px);
  --radius-lg:var(--radius);
  --radius-xl:calc(var(--radius) + 6px);

  /* ---- spacing rhythm (4px base) ---- */
  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;

  /* ---- elevation: restrained, border-first ---- */
  --shadow-sm:0 1px 2px rgba(18,36,36,.06);
  --shadow-md:0 4px 14px rgba(18,36,36,.08);
  --shadow-lg:0 12px 34px rgba(18,36,36,.12);

  /* Single mode only. Warm, brand-aligned, light-to-medium. Depth
     comes from ALTERNATING sections (bg / surface / panel) and from
     the dark forest image bands and footer, not from a dark theme. */
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.7;
  font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:.01em;text-wrap:balance;line-height:1.12}
p{margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.eyebrow{font-family:var(--body);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-weight:600}
/* focus ring: 2px ring + 2px offset, never removed on keyboard nav */
:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius-sm)}

/* ---------- buttons ----------
   Variants: .btn-solid (primary) · .btn-almond (accent)
             .btn-line (outline) · .btn-ghost · .btn-onlight-line (on imagery)
   Sizes:    default · .btn-sm · .btn-lg                                     */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font-family:var(--body);
  font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:16px 36px;line-height:1;white-space:nowrap;
  border:1px solid transparent;cursor:pointer;border-radius:var(--radius-md);
  transition:background .2s ease,color .2s ease,border-color .2s ease,
             transform .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
.btn-sm{font-size:11px;padding:12px 22px;letter-spacing:.14em}
.btn-lg{font-size:13px;padding:20px 46px}
.btn-ghost{background:transparent;color:var(--foreground);border-color:transparent}
.btn-ghost:hover{background:var(--secondary);box-shadow:none}
.btn-solid{background:var(--eclipse);color:var(--almond)}
.btn-solid:hover{background:var(--forest-roast)}
.btn-almond{background:var(--almond);color:var(--eclipse)}
.btn-almond:hover{background:var(--almond-deep)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-line:hover{border-color:var(--ink)}
.btn-onlight-line{background:transparent;color:var(--almond);border-color:rgba(214,189,152,.55)}
.btn-onlight-line:hover{border-color:var(--almond);background:rgba(214,189,152,.12)}

/* ---------- primitives: badge · card · input · separator ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--body);font-size:10.5px;
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:5px 11px;
  border-radius:999px;border:1px solid var(--border);color:var(--muted-foreground);background:transparent}
.badge-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}
.badge-solid{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.badge-onlight{background:rgba(26,54,54,.55);border-color:rgba(214,189,152,.4);color:var(--almond);
  backdrop-filter:blur(3px)}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.card:hover{border-color:var(--sage);box-shadow:var(--shadow-md)}
.card-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}
.card-title{font-family:var(--serif);font-size:1.35rem}
.card-desc{font-family:var(--body);font-size:14px;color:var(--muted-foreground);line-height:1.65}

.input{font-family:var(--body);font-size:14px;padding:14px 16px;width:100%;
  background:transparent;border:1px solid var(--input);border-radius:var(--radius-md);color:var(--foreground)}
.input:focus{outline:2px solid var(--ring);outline-offset:1px;border-color:transparent}
.separator{height:1px;background:var(--border);border:0;margin:0}

/* stat / spec row — used on property pages */
.specs{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.spec{display:flex;flex-direction:column;gap:2px;padding:14px 22px;border:1px solid var(--border);
  border-radius:var(--radius-md);background:var(--card);min-width:110px}
.spec-k{font-family:var(--body);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted-foreground);font-weight:600}
.spec-v{font-family:var(--serif);font-size:1.2rem;color:var(--foreground)}

/* ---------- announcement + header ---------- */
.announce{background:var(--eclipse);color:var(--almond);font-family:var(--body);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.announce-in{width:100%;padding:9px clamp(20px,2.2vw,34px);display:flex;align-items:center;justify-content:space-between;gap:14px}
.announce-msg{margin:0;display:inline-flex;align-items:center;gap:8px}
.announce-msg .star{color:var(--almond-deep)}
.announce-right{display:flex;align-items:center;gap:14px}
.announce-loc{opacity:.82}
.announce-phone{color:var(--almond);text-decoration:none;white-space:nowrap;transition:color .2s;
  padding:12px 6px;margin:-12px -6px}
.announce-phone:hover,.announce-phone:focus{color:#FBF7EE}
/* two Instagram accounts, one per lodge, so each needs a label to be
   distinguishable; labels drop away on small screens leaving two icons */
.announce-ig{display:inline-flex;align-items:center;gap:6px;color:var(--almond);transition:color .2s;text-decoration:none;
  padding:12px 8px;margin:-12px -8px}
.announce-ig:hover,.announce-ig:focus{color:#FBF7EE}
.announce-ig svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;flex:none}
.ig-lab{font-size:10px;letter-spacing:.12em}
@media(max-width:980px){.ig-lab{display:none}}
@media(max-width:600px){.announce-in{padding:8px 18px;gap:12px;justify-content:center}.announce-msg,.announce-loc{display:none}.announce{font-size:10px;letter-spacing:.08em}.ig-lab{display:inline}}
header.nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
header.nav.scrolled{border-color:var(--line)}
.nav-in{width:100%;padding:14px clamp(20px,2.2vw,34px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.nav-left{display:flex;gap:18px;align-items:center}
.icon-btn{background:none;border:none;color:var(--ink);cursor:pointer;padding:6px;display:grid;place-items:center;
  border-radius:50%;transition:color .2s ease,background .2s ease}
/* override Hello Elementor reset.css: button:hover{background:#c36} */
button.icon-btn:hover,button.icon-btn:focus,button.icon-btn:active{background:transparent;color:var(--almond-deep)}
.sheet button.icon-btn:hover,.sheet button.icon-btn:focus,.sheet button.icon-btn:active{color:#fff}
.icon-btn svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.5}
.brand-lockup{display:flex;flex-direction:column;align-items:center;gap:3px;justify-self:center}
.brand-lockup img{height:30px;width:auto}
/* single mode: always the eclipse wordmark on the light header */
.brand-lockup .mark-light{display:block}
.brand-lockup .mark-dark{display:none}
.nav-right{display:flex;justify-content:flex-end}
.nav-cta .cta-short{display:none}
@media(max-width:720px){
  .brand-lockup img{height:20px}
  .nav-in{padding:10px 16px;gap:10px}
  /* 44px effective tap targets without changing the visual size */
  .nav-left .icon-btn{padding:10px;margin:-4px}
  .sheet-top .icon-btn{padding:10px;margin:-4px}
  .nav-right .btn{padding:12px 18px;font-size:10.5px;letter-spacing:.14em}
  .nav-cta .cta-full{display:none}
  .nav-cta .cta-short{display:inline}
  .wrap{padding:0 20px}
}

/* ---------- off-canvas mega-menu (image preview, golden-ratio type, phi = 1.618) ---------- */
.sheet{position:fixed;inset:0;z-index:80;background:var(--eclipse);color:var(--on-dark);
  transform:translateX(-100%);transition:transform .55s cubic-bezier(.7,0,.15,1);
  visibility:hidden;overflow-y:auto}
.sheet.open{transform:none;visibility:visible}
.sheet-in{min-height:100vh;max-width:var(--wrap);margin:0 auto;display:flex;flex-direction:column;
  padding:clamp(16px,2.5vw,28px) clamp(24px,5vw,64px) clamp(24px,3vw,40px)}
.sheet-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(20px,4vw,44px)}
.sheet .sheet-mark{height:30px !important;width:auto !important}
.sheet .icon-btn{color:var(--almond)}

.sheet-body{display:grid;grid-template-columns:1fr 1.618fr;gap:clamp(32px,6vw,72px);align-items:center;flex:1}
@media(max-width:900px){.sheet-body{grid-template-columns:1fr}.sheet-feature{display:none}}

.sheet-nav{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3vw,34px)}

/* primary links: sublabel + display title on the golden scale (phi to phi^2) */
.sheet-primary{display:flex;flex-direction:column;gap:clamp(4px,.8vw,10px)}
.sheet-primary a{display:flex;flex-direction:column;gap:2px;width:max-content;max-width:100%;
  opacity:0;transform:translateY(16px);
  transition:opacity .5s ease,transform .5s cubic-bezier(.5,0,.1,1)}
.sheet.open .sheet-primary a{opacity:1;transform:none}
.sheet.open .sheet-primary a:nth-child(1){transition-delay:.10s}
.sheet.open .sheet-primary a:nth-child(2){transition-delay:.16s}
.sheet.open .sheet-primary a:nth-child(3){transition-delay:.22s}
.sheet.open .sheet-primary a:nth-child(4){transition-delay:.28s}
.sheet-primary .pl{font-family:var(--serif);line-height:1.05;letter-spacing:-.008em;color:#F5EFE3;
  font-size:clamp(1.618rem,3.2vw,2.618rem);transition:color .3s ease}
.sheet-primary .ps{font-family:var(--body);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sage);font-weight:600;transition:color .3s ease}
.sheet-primary a:hover .pl,.sheet-primary a.is-active .pl{color:var(--almond)}
.sheet-primary a:hover .ps,.sheet-primary a.is-active .ps{color:var(--almond-deep)}

/* secondary links (golden -> phi) */
.sheet-explore .sheet-eyebrow{font-family:var(--body);font-size:.618rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--sage);font-weight:600;margin:0 0 14px}
.sheet-secondary{display:flex;flex-wrap:wrap;gap:6px 26px}
.sheet-secondary a{font-family:var(--serif);font-size:clamp(1.15rem,1.4vw,1.618rem);color:#DCE3D6;transition:color .2s}
.sheet-secondary a:hover{color:var(--almond)}

/* feature image (crossfades to the hovered lodge) */
.sheet-feature{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:5/4;
  background:var(--forest);opacity:0;transform:scale(.98);transition:opacity .6s ease,transform .6s ease}
.sheet.open .sheet-feature{opacity:1;transform:none;transition-delay:.18s}
.sheet-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s ease}
.sheet-feature.swapping img{opacity:0}
.sheet-feature figcaption{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2vw,26px) clamp(20px,2vw,28px);
  color:#F4EEE2;font-family:var(--serif);font-style:normal;font-size:clamp(1.15rem,1.6vw,1.618rem);
  background:linear-gradient(180deg,transparent,rgba(18,36,36,.85))}

/* footer bar: book CTA + meta */
.sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(20px,3vw,36px);padding-top:clamp(16px,2vw,26px);border-top:1px solid rgba(214,189,152,.18)}
.sheet-meta{display:flex;align-items:center;gap:22px;font-family:var(--body);font-size:.786rem;color:var(--sage)}
.sheet-meta a{transition:color .2s}
.sheet-meta a:hover{color:var(--almond)}
.sheet-coords{letter-spacing:.22em;text-transform:uppercase;font-size:10px}
@media(max-width:600px){.sheet-meta{gap:14px}.sheet-coords{display:none}}
@media (prefers-reduced-motion:reduce){
  .sheet-primary a,.sheet-feature{opacity:1;transform:none;transition:color .2s}
}

/* ---------- hero ---------- */
.hero{position:relative;height:90vh;min-height:580px;display:grid;place-items:center;
  color:var(--on-dark);overflow:hidden;isolation:isolate}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-dim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(26,54,54,.5) 0%,rgba(26,54,54,.3) 40%,rgba(18,36,36,.78) 100%)}
.hero-mid{text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px;padding:0 24px}
.hero-mid .eyebrow{color:var(--almond)}
.hero-mid h1{font-size:clamp(1.6rem,3.9vw,3.05rem);line-height:1.14;color:#FBF7EE;max-width:32ch;text-wrap:balance}
.hero-mid .hero-lede{font-family:var(--body);font-size:clamp(.92rem,1.45vw,1.05rem);line-height:1.6;
  color:rgba(244,238,226,.9);max-width:42ch;margin:-6px auto 0}
.hero-coords{position:absolute;bottom:26px;left:0;right:0;text-align:center;font-family:var(--body);
  font-size:10.5px;letter-spacing:.34em;color:rgba(214,189,152,.8);text-transform:uppercase}

/* HomeRunner search bar embedded in the hero */
.hero-search{position:relative;width:100%;max-width:680px;margin:10px auto 0;
  background:rgba(247,242,233,.96);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:8px;display:flex;align-items:stretch;gap:2px;text-align:left}
.hero-search .hr-badge{position:absolute;top:-10px;left:16px;background:var(--almond);color:var(--eclipse);
  font-family:var(--body);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--radius-sm)}
.hero-search .hr-field{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;
  padding:9px 18px;border-right:1px solid var(--line);min-width:0}
.hero-search .hr-lab{font-family:var(--body);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.hero-search .hr-val{font-family:var(--serif);font-size:1.05rem;color:var(--ink)}
.hero-search .btn{white-space:nowrap;align-self:stretch}
@media(max-width:640px){
  .hero-search{flex-wrap:wrap;gap:6px;padding:12px}
  .hero-search .hr-field{flex:1 1 42%;border-right:0;border-bottom:1px solid var(--line);padding:8px 10px}
  .hero-search .btn{flex:1 1 100%;justify-content:center;margin-top:2px}
}
.sec-label .sec-sub{font-family:var(--body);font-size:1rem;line-height:1.65;color:var(--muted);
  max-width:52ch;margin:14px auto 0}

/* ---------- HomeRunner search slot ----------
   Placeholder. Swap .hr-slot for the HomeRunner search shortcode
   once Guesty (Pro) + HomeRunner are connected. */
.hr-search{background:var(--surface);border-bottom:1px solid var(--line);padding:26px 0}
.hr-slot{position:relative;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--bg);padding:20px 22px}
.hr-badge{position:absolute;top:-9px;left:18px;background:var(--almond);color:var(--eclipse);
  font-family:var(--body);font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--radius-sm)}
.hr-fields{display:flex;flex:1;flex-wrap:wrap;gap:8px}
.hr-field{flex:1 1 150px;display:flex;flex-direction:column;gap:2px;padding:6px 16px 6px 0;
  border-right:1px solid var(--line)}
.hr-field:last-child{border-right:0}
.hr-lab{font-family:var(--body);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);font-weight:600}
.hr-val{font-family:var(--serif);font-size:1.05rem;color:var(--ink)}
@media(max-width:720px){
  .hr-slot{flex-direction:column;align-items:stretch}
  .hr-field{border-right:0;border-bottom:1px solid var(--line);padding:8px 0}
  .hr-field:last-child{border-bottom:0}
  .hr-slot .btn{width:100%}
}

/* ---------- section CTA ---------- */
.sec-cta{text-align:center;margin-top:34px}

/* ---------- brand pattern divider ---------- */
.pattern-band{height:56px;background-image:url("images/pattern-eclipse-almond.png");
  background-size:auto 100%;background-repeat:repeat-x;background-position:center}

/* ---------- marquee: a fine editorial ticker, not a banner ----------
   Deliberately small and wide-tracked so it reads as a rule of type, and
   plays against the oversized numerals in the proof band below it.
   Edge mask stops the cheap mid-word clip at the viewport edges. */
.marquee{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;white-space:nowrap;padding:15px 0;line-height:1;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
/* Seamless loop: the track is exactly two identical groups, so translating it
   by -50% lands group 2 precisely where group 1 started and the reset is
   invisible. Each group is repeated enough times to be wider than the
   viewport, otherwise a gap appears before the loop point. */
.marquee__track{display:flex;width:max-content;will-change:transform;
  animation:marq 60s linear infinite}
.marquee__group{display:flex;align-items:center;flex:none}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:var(--forest-roast);padding:0 1.15em;white-space:nowrap}
.marquee .star{color:var(--almond-deep);font-size:9px;padding:0;letter-spacing:0}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- intro + film ---------- */
.intro{padding:clamp(64px,9vw,120px) 0;text-align:center}
.intro .lead{font-family:var(--serif);font-size:clamp(1.55rem,3vw,2.3rem);line-height:1.32;
  max-width:24ch;margin:14px auto 44px;color:var(--ink)}
.film{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/9;isolation:isolate;
  border:1px solid var(--line);background:var(--eclipse)}
.film video{width:100%;height:100%;object-fit:cover;display:block}
.film .play{position:absolute;inset:0;margin:auto;width:82px;height:82px;border-radius:50%;
  background:rgba(26,54,54,.42);border:1.5px solid rgba(214,189,152,.8);color:var(--almond);
  display:grid;place-items:center;cursor:pointer;transition:background .25s,transform .25s;backdrop-filter:blur(2px)}
.film .play:hover{background:rgba(26,54,54,.62);transform:scale(1.06)}
.film .play svg{width:26px;height:26px;fill:currentColor;margin-left:3px}
.film.playing .play{opacity:0;pointer-events:none}

/* ---------- section heads ---------- */
.sec-label{text-align:center;margin-bottom:52px}
.sec-label h2{font-size:clamp(2.1rem,4.6vw,3.4rem);margin-top:10px}

/* ---------- comparison / collection cards (Which stay is yours?) ---------- */
.compare{padding:clamp(56px,8vw,110px) 0;background:var(--surface)}
.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.compare-grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
.cmp-card{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.cmp-card:hover{border-color:var(--sage);box-shadow:var(--shadow-md);transform:translateY(-4px)}
.cmp-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--panel)}
.cmp-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cmp-card:hover .cmp-media img{transform:scale(1.04)}
.cmp-badge{position:absolute;top:14px;left:14px;font-family:var(--body);font-size:10px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--almond);background:rgba(26,54,54,.62);
  border:1px solid rgba(214,189,152,.4);padding:5px 11px;border-radius:var(--radius-sm)}
.cmp-badge-soon{color:#E7D3A6}
.cmp-body{padding:26px 24px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.cmp-best{font-family:var(--body);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--almond-deep);font-weight:600}
.cmp-name{font-family:var(--serif);font-size:1.7rem;margin:2px 0 0}
.cmp-vibe{font-family:var(--body);font-size:14.5px;color:var(--muted);line-height:1.6}
.cmp-facts{list-style:none;margin:8px 0 0;padding:14px 0 0;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px}
.cmp-facts li{font-family:var(--body);font-size:13.5px;color:var(--ink);padding-left:18px;position:relative}
.cmp-facts li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--almond-deep)}
.cmp-cta{margin-top:auto;padding-top:18px;font-family:var(--body);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--forest-roast)}
.cmp-cta::after{content:" \2192";color:var(--almond-deep)}
.cmp-card:hover .cmp-cta{color:var(--eclipse)}
.cmp-soon{border-style:dashed}
.cmp-soon .cmp-media img{filter:saturate(.72) brightness(.92)}
.cmp-soon .cmp-name,.cmp-soon .cmp-vibe{color:var(--muted)}

/* ---------- experience carousel ---------- */
.exp{padding:clamp(64px,9vw,120px) 0;background:var(--surface)}
.exp-scroll{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;
  padding-block:6px 26px;
  padding-inline:max(32px,calc((100% - var(--wrap))/2 + 32px));}
@media(max-width:720px){.exp-scroll{padding-inline:20px}}
.exp-scroll::-webkit-scrollbar{height:6px}
.exp-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.ecard{scroll-snap-align:start;flex:0 0 340px;max-width:82vw;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,border-color .25s}
.ecard:hover{transform:translateY(-5px);border-color:var(--sage)}
.ecard .eimg{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--panel)}
.ecard .eimg img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ecard:hover .eimg img{transform:scale(1.04)}
.ecard .etag{position:absolute;top:14px;left:14px;font-family:var(--body);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--almond);background:rgba(26,54,54,.62);
  border:1px solid rgba(214,189,152,.4);padding:5px 10px;border-radius:var(--radius-sm);font-weight:600}
.ecard .ebody{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.ecard h4{font-family:var(--serif);font-size:1.4rem;margin:0}
.ecard p{font-family:var(--body);font-size:14px;color:var(--muted);line-height:1.65;flex:1}
.ecard h4::after{content:" →";font-family:var(--body);font-size:.8em;color:var(--almond-deep);
  opacity:0;transition:opacity .25s,padding-left .25s;padding-left:0}
.ecard:hover h4::after{opacity:1;padding-left:4px}

/* ---------- biohacking teaser ---------- */
.biohack{padding:clamp(64px,9vw,120px) 0;background:var(--bg)}
.biohack-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.biohack-copy h2{font-size:clamp(2rem,4.2vw,3rem);margin:10px 0 18px}
.biohack-copy p{color:var(--muted);font-size:1.02rem}
.biohack-copy .btn{margin-top:28px}
.biohack-media img{width:100%;height:100%;max-height:520px;object-fit:cover;border-radius:var(--radius-lg);
  border:1px solid var(--line)}
@media(max-width:860px){.biohack-in{grid-template-columns:1fr}.biohack-media{order:-1}}

/* ---------- reconnect band ---------- */
.band{position:relative;text-align:center;color:var(--on-dark);padding:clamp(80px,12vw,150px) 24px;isolation:isolate}
.band img.band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band .band-dim{position:absolute;inset:0;z-index:-1;background:rgba(26,54,54,.66)}
.band h2{font-size:clamp(2.1rem,5.2vw,3.8rem);line-height:1.1;max-width:18ch;margin:0 auto;color:#FBF7EE}
.band .btn{margin-top:38px}

/* ---------- story ---------- */
.story{padding:clamp(64px,9vw,120px) 0}
.story-in{max-width:760px;margin:0 auto;text-align:center}
.story .story-lead{font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,2rem);line-height:1.35;
  color:var(--ink);margin-top:14px}
.story p{color:var(--muted);font-size:1.02rem;margin-top:22px}
.story .btn{margin-top:38px}

/* ---------- footer ---------- */
footer{background:var(--eclipse);color:#CFDACF}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.foot-signup{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;
  padding:clamp(40px,6vw,64px) 0;border-bottom:1px solid rgba(214,189,152,.16)}
.foot-signup .eyebrow{color:var(--almond)}
.foot-signup h3{font-size:clamp(1.4rem,2.6vw,2rem);color:#F2ECDF;margin-top:8px;max-width:22ch}
.signup-form{display:flex;gap:10px;flex-wrap:wrap}
.signup-form input{font-family:var(--body);font-size:14px;padding:16px 18px;min-width:260px;
  background:transparent;border:1px solid rgba(214,189,152,.4);border-radius:var(--radius-sm);color:#F2ECDF}
.signup-form input::placeholder{color:#8FA394}
.signup-form input:focus{outline:none;border-color:var(--almond)}
@media(max-width:860px){.foot-signup{grid-template-columns:minmax(0,1fr)}.signup-form{max-width:100%}.signup-form input{flex:1 1 160px;min-width:0}}
.foot-grid{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr;gap:34px;padding:clamp(52px,7vw,80px) 0 44px}
@media(max-width:980px){.foot-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;gap:26px}}
.foot-grid .flogo{height:38px;width:auto;margin-bottom:4px}
.foot-grid .fsub{font-family:var(--body);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--sage);margin-top:6px}
.foot-grid p.fp{font-family:var(--body);font-size:13.5px;color:#A7B9AC;margin-top:16px;max-width:34ch;line-height:1.75}
.fcol h5{font-family:var(--body);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--almond);margin:0 0 14px;font-weight:600}
.fcol a{display:block;font-family:var(--body);font-size:14px;color:#C3D0C4;padding:5px 0;transition:color .2s}
.fcol a:hover{color:var(--almond)}
.foot-base{border-top:1px solid rgba(214,189,152,.16);padding:20px 0;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:8px;font-family:var(--body);font-size:11.5px;letter-spacing:.08em;color:var(--sage)}

.mock-flag{font-family:var(--body);font-size:11px;letter-spacing:.1em;color:var(--muted);text-align:center;
  padding:13px;background:var(--panel)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .marquee__track{animation:none}
  .btn:hover,.ecard:hover,.film .play:hover{transform:none}
  .ecard:hover .eimg img,.lodge:hover img.lph,.pcard:hover .pimg img,.feat:hover img{transform:none}
}

/* ============================================================
   TEMPLATE STYLES — 404, blog archive, single post
   ============================================================ */

/* ---------- 404 ---------- */
.err{position:relative;min-height:82vh;display:grid;place-items:center;text-align:center;
  color:var(--on-dark);padding:clamp(70px,10vw,120px) 24px;isolation:isolate}
.err-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.err-dim{position:absolute;inset:0;z-index:-1;background:rgba(18,36,36,.74)}
.err-in .eyebrow{color:var(--almond)}
.err-in h1{font-size:clamp(2.2rem,5.6vw,4rem);margin:14px 0 0;color:#FBF7EE}
.err-lead{font-family:var(--body);font-size:1.02rem;color:rgba(244,238,226,.86);
  max-width:44ch;margin:18px auto 34px}
.err-links{display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:center;margin-top:42px}
.err-links a{font-family:var(--body);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(244,238,226,.72);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .2s,border-color .2s}
.err-links a:hover{color:var(--almond);border-color:var(--almond)}

/* ---------- page head (archive + generic) ---------- */
.page-head{padding:clamp(56px,8vw,96px) 0 clamp(28px,4vw,44px);text-align:center}
.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-top:10px}
.page-lead{font-family:var(--body);font-size:1.02rem;color:var(--muted);max-width:52ch;margin:18px auto 0}

/* ---------- category filter ---------- */
.cat-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:44px}
.cat{font-family:var(--body);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  padding:10px 20px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);transition:all .2s}
.cat:hover{border-color:var(--ink);color:var(--ink)}
.cat.is-on{background:var(--eclipse);border-color:var(--eclipse);color:var(--almond)}

/* ---------- shared post bits ---------- */
.pcat{display:inline-block;font-family:var(--body);font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;font-weight:600;color:var(--almond-deep)}
.pmeta{font-family:var(--body);font-size:11.5px;letter-spacing:.1em;color:var(--muted)}

/* ---------- featured post ---------- */
.feat{display:grid;grid-template-columns:1.25fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;margin-bottom:44px;background:var(--surface);transition:border-color .25s}
.feat:hover{border-color:var(--sage)}
.feat img{width:100%;height:100%;min-height:300px;object-fit:cover;transition:transform .6s ease}
.feat:hover img{transform:scale(1.03)}
.feat-body{padding:clamp(26px,4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:12px}
.feat-body h2{font-size:clamp(1.6rem,3vw,2.4rem)}
.feat-body p{font-family:var(--body);font-size:15px;color:var(--muted);line-height:1.7}
@media(max-width:820px){.feat{grid-template-columns:1fr}.feat img{min-height:220px}}

/* ---------- post grid ---------- */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:34px 26px}
.pcard{display:flex;flex-direction:column;gap:9px}
.pimg{aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--line);
  background:var(--panel);margin-bottom:5px}
.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.pcard:hover .pimg img{transform:scale(1.04)}
.pcard h3{font-size:1.28rem;line-height:1.25;transition:color .2s}
.pcard:hover h3{color:var(--forest-roast)}
.pcard p{font-family:var(--body);font-size:14px;color:var(--muted);line-height:1.65}

/* ---------- pagination ---------- */
.pager{display:flex;gap:8px;justify-content:center;align-items:center;margin:clamp(48px,7vw,80px) 0 0}
.pg{font-family:var(--body);font-size:13px;font-weight:600;letter-spacing:.08em;min-width:44px;height:44px;
  display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);transition:all .2s}
.pg:hover{border-color:var(--ink);color:var(--ink)}
.pg.is-on{background:var(--eclipse);border-color:var(--eclipse);color:var(--almond)}
.pg-next{padding:0 20px}

.band-short{padding:clamp(64px,9vw,110px) 24px;margin-top:clamp(56px,8vw,100px)}

/* ============================================================
   OUR STAYS · PROPERTY · EXPERIENCE · BIOHACKING
   ============================================================ */

/* HomeRunner-owned region marker */
.hr-region{position:relative;border:1px dashed var(--border);border-radius:var(--radius-lg);
  padding:clamp(24px,4vw,40px);margin-top:14px}

/* ---------- stays list ---------- */
.stays{padding:clamp(40px,6vw,72px) 0}
.stay{display:grid;grid-template-columns:1fr 1.15fr;margin-bottom:26px}
.stay:last-child{margin-bottom:0}
.stay-img{position:relative;display:block;min-height:340px;overflow:hidden}
.stay-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.stay:hover .stay-img img{transform:scale(1.03)}
.stay-tag{position:absolute;top:16px;left:16px}
.stay-body{padding:clamp(24px,3.5vw,40px);display:flex;flex-direction:column;gap:var(--space-3);justify-content:center}
.stay-body h2{font-size:clamp(1.5rem,2.8vw,2.1rem)}
.stay-desc{font-family:var(--body);font-size:14.5px;color:var(--muted-foreground);line-height:1.7}
.stay-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;
  margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border)}
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.price-from{font-family:var(--body);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-foreground);font-weight:600}
.price-val{font-family:var(--serif);font-size:1.7rem;color:var(--foreground)}
.price-unit{font-family:var(--body);font-size:12.5px;color:var(--muted-foreground)}
.price-note{flex-basis:100%;font-family:var(--body);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted-foreground)}
@media(max-width:860px){.stay{grid-template-columns:1fr}.stay-img{min-height:240px}}

/* ---------- book both ---------- */
.both{padding:clamp(48px,7vw,90px) 0;background:var(--surface)}
.both-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,60px);align-items:center}
.both-copy h2{font-size:clamp(1.9rem,4vw,2.8rem);margin:14px 0 16px}
.both-copy p{color:var(--muted-foreground);font-size:1.02rem}
.both-note{margin-top:12px;font-size:13px !important;font-style:italic}
.both-copy .btn{margin-top:26px}
.both-media img{width:100%;max-height:420px;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border)}
@media(max-width:860px){.both-in{grid-template-columns:1fr}}

/* ---------- why direct ---------- */
.why{padding:clamp(56px,8vw,100px) 0}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.why-card .card-body{gap:var(--space-2)}

/* ---------- property hero ---------- */
.prop-hero{position:relative;min-height:64vh;display:grid;align-items:end;color:var(--on-dark);
  isolation:isolate;padding:clamp(48px,8vw,90px) 0 clamp(38px,5vw,60px)}
.prop-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.prop-hero-dim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(26,54,54,.35) 0%,rgba(18,36,36,.45) 45%,rgba(18,36,36,.88) 100%)}
.prop-hero-in{max-width:var(--wrap);margin:0 auto;padding:0 32px;width:100%}
.prop-hero-in .crumbs{justify-content:flex-start;color:rgba(244,238,226,.7)}
.prop-hero-in .crumbs a:hover{color:var(--almond)}
.prop-hero-in .eyebrow{color:var(--almond)}
.prop-hero-in h1{font-size:clamp(2.2rem,5.4vw,4rem);margin:12px 0 0;color:#FBF7EE}
.prop-hero-sub{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.45rem);
  color:rgba(244,238,226,.9);margin-top:16px;max-width:34ch}
@media(max-width:720px){.prop-hero-in{padding:0 20px}}

/* ---------- property layout ---------- */
.prop-layout{display:grid;grid-template-columns:1fr 380px;gap:clamp(30px,4vw,56px);
  align-items:start;padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(56px,8vw,100px)}
.prop-specs{margin-bottom:clamp(30px,4vw,44px)}
.prop-block{margin:clamp(30px,4vw,46px) 0}
.prop-block h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:18px}
.prop-block p{color:var(--muted-foreground);margin-bottom:16px}
.lead-copy{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.45;
  color:var(--foreground) !important;margin-bottom:22px !important}
.amen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px 26px;margin-bottom:28px}
.amen h3{font-family:var(--serif);font-size:1.15rem;margin-bottom:6px}
.amen p{font-size:14px;line-height:1.65;margin:0}
.gal-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gal-3 img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border)}
@media(max-width:620px){.gal-3{grid-template-columns:1fr 1fr}.gal-3 img:last-child{display:none}}
.protocol{margin:0;padding-left:20px;color:var(--muted-foreground)}
.protocol li{margin-bottom:12px;line-height:1.7}
.protocol strong,.know strong{color:var(--foreground);font-weight:600}
.know{margin:0;padding-left:20px;color:var(--muted-foreground)}
.know li{margin-bottom:9px;line-height:1.7}

/* ---------- sticky booking rail ---------- */
.prop-rail{position:sticky;top:96px;display:flex;flex-direction:column;gap:20px}
.book-card{position:relative;border:1px solid var(--border);border-radius:var(--radius-lg);
  background:var(--card);padding:26px 24px;box-shadow:var(--shadow-md)}
.book-card .hr-badge{top:-9px;left:20px}
.book-price{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}
.book-note{font-family:var(--body);font-size:11.5px;color:var(--muted-foreground);
  line-height:1.6;margin-bottom:18px}
.book-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.book-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.book-f{display:flex;flex-direction:column;gap:2px;border:1px solid var(--input);
  border-radius:var(--radius-md);padding:11px 14px}
.book-cta{width:100%}
.book-list{list-style:none;margin:18px 0 0;padding:0}
.book-list li{font-family:var(--body);font-size:12px;color:var(--muted-foreground);
  padding:6px 0 6px 18px;position:relative}
.book-list li::before{content:"✓";position:absolute;left:0;color:var(--almond-deep)}
.rail-note .eyebrow{margin-bottom:10px;display:block}
.rail-link{display:flex;gap:14px;align-items:center;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:12px;transition:border-color .2s}
.rail-link:hover{border-color:var(--sage)}
.rail-link img{width:84px;height:64px;object-fit:cover;border-radius:var(--radius-sm);flex:none}
.rail-link span{font-family:var(--body);font-size:12.5px;color:var(--muted-foreground);line-height:1.5}
.rail-link strong{color:var(--foreground)}
.rail-compound{display:block;margin-top:12px;font-family:var(--body);font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--forest-roast);text-align:center;
  padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .2s,color .2s}
.rail-compound::after{content:" \2192";color:var(--almond-deep)}
.rail-compound:hover{border-color:var(--sage);color:var(--eclipse)}
@media(max-width:980px){
  .prop-layout{grid-template-columns:1fr}
  .prop-rail{position:static;order:-1}
}

/* ---------- biohacking / experience grids ---------- */
.bio-sec{padding:clamp(52px,7vw,92px) 0}
.bio-sec.alt{background:var(--surface)}
.bio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.bio-card{display:flex;flex-direction:column}
.bio-img{aspect-ratio:4/3;overflow:hidden;background:var(--secondary)}
.bio-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bio-card:hover .bio-img img{transform:scale(1.04)}
.bio-card .badge{align-self:flex-start}
.bio-use{font-family:var(--body);font-size:12.5px;color:var(--muted-foreground);
  line-height:1.6;margin-top:6px;padding-top:12px;border-top:1px solid var(--border)}
.bio-use strong{color:var(--foreground)}
.inline-link{color:var(--almond-deep);font-weight:600;white-space:nowrap}
.inline-link:hover{text-decoration:underline}

/* ---------- experience split ---------- */
.split-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:clamp(20px,3vw,36px)}
.split-card{position:relative;min-height:340px;display:grid;align-items:end;overflow:hidden;
  border-radius:var(--radius-lg);isolation:isolate}
.split-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.split-card:hover img{transform:scale(1.04)}
.split-dim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(26,54,54,.15),rgba(18,36,36,.85))}
.split-body{padding:28px;color:var(--on-dark);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.split-body h2{font-size:clamp(1.4rem,2.6vw,1.9rem);color:#FBF7EE}
.split-body p{font-family:var(--body);font-size:14px;color:rgba(244,238,226,.85)}
@media(max-width:720px){.split-two{grid-template-columns:1fr}.split-card{min-height:260px}}

/* ---------- shop (pending decision) ---------- */
.shop-region{padding:clamp(40px,6vw,72px) 0}
.shop-slot h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:8px}
.shop-lead{font-family:var(--body);color:var(--muted-foreground);margin-bottom:26px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.shop-card .price-val{font-size:1.25rem;margin-top:6px}
.shop-note{margin-top:26px;padding:18px 20px;background:var(--secondary);border-radius:var(--radius-md);
  font-family:var(--body);font-size:13.5px;line-height:1.7;color:var(--muted-foreground)}
.shop-note strong{color:var(--foreground)}
.ext-note{display:flex;gap:16px;align-items:flex-start;margin-top:28px;padding:20px 22px;
  border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}
.ext-note p{font-family:var(--body);font-size:13.5px;line-height:1.7;color:var(--muted-foreground);margin:0}
.ext-note strong{color:var(--foreground)}
.ext-note .badge{flex:none}
@media(max-width:560px){.ext-note{flex-direction:column;gap:12px}}

/* ---------- single post ---------- */
.post-wrap{max-width:760px}
.post-head{padding:clamp(44px,6vw,72px) 0 clamp(22px,3vw,32px);text-align:center}
.crumbs{font-family:var(--body);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:22px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.crumbs a:hover{color:var(--ink)}
.post-head h1{font-size:clamp(2rem,4.6vw,3.2rem);margin:12px 0 0}
.post-standfirst{font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.4;
  color:var(--muted);margin:20px 0 0}
.post-meta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px;
  font-family:var(--body);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.post-hero{margin:0 0 clamp(36px,5vw,56px)}
.post-hero img{width:100%;max-height:62vh;object-fit:cover}
.post-hero figcaption{font-family:var(--body);font-size:11.5px;letter-spacing:.1em;color:var(--muted);
  text-align:center;padding:12px 20px 0}

.post-body{font-size:1.04rem;line-height:1.85}
.post-body p{margin:0 0 22px;color:var(--ink)}
.post-body .drop{font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.5;
  color:var(--ink);margin-bottom:30px}
.post-body h2{font-size:clamp(1.5rem,2.8vw,2rem);margin:44px 0 16px}
.post-body ul{margin:0 0 24px;padding-left:22px;color:var(--ink)}
.post-body li{margin-bottom:9px}
.post-body strong{font-weight:600}
.post-body blockquote{margin:34px 0;padding:22px 0 22px 26px;border-left:2px solid var(--almond);
  font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.45;color:var(--ink)}
.post-cta{margin:52px 0 12px;padding:clamp(30px,4vw,44px);background:var(--panel);
  border-radius:var(--radius-lg);text-align:center}
.post-cta h3{font-size:clamp(1.35rem,2.4vw,1.85rem);margin:8px 0 26px}
.share{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:34px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:20px}
.share a{font-family:var(--body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);transition:color .2s}
.share a:hover{color:var(--ink)}
.related{padding:clamp(56px,8vw,100px) 0}

/* ---------- book the compound (enquiry) ---------- */
.compound{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start;
  padding-top:clamp(20px,3vw,36px);padding-bottom:clamp(56px,8vw,100px)}
@media(max-width:860px){.compound{grid-template-columns:1fr}}
.compound-copy .specs{margin-bottom:6px}
.compound-copy h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:22px 0 14px}
.compound-copy p{color:var(--muted-foreground);margin-bottom:16px}
.compound-copy .know{margin:0 0 16px;padding-left:20px;color:var(--muted-foreground)}
.compound-copy .know li{margin-bottom:9px;line-height:1.7}
.compound-note{font-size:13.5px !important;font-style:italic}
.compound-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,34px);box-shadow:var(--shadow-md);position:sticky;top:96px}
@media(max-width:860px){.compound-form{position:static}}
.eq-form{display:flex;flex-direction:column;gap:14px}
.eq-legend{font-family:var(--body);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--almond-deep);font-weight:600;margin-top:6px}
.eq-legend:first-child{margin-top:0}
.eq-checks{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.eq-check{display:flex;align-items:center;gap:10px;font-family:var(--body);font-size:14px;color:var(--ink);cursor:pointer}
.eq-check input{width:16px;height:16px;accent-color:var(--eclipse);flex:none}
.eq-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.eq-row{grid-template-columns:1fr}}
.eq-field{display:flex;flex-direction:column;gap:6px}
.eq-field span{font-family:var(--body);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.eq-field textarea.input{resize:vertical;min-height:76px}
.eq-flex{margin:0}
.eq-submit{width:100%;margin-top:6px}
.eq-sla{font-family:var(--body);font-size:12px;color:var(--muted);text-align:center;line-height:1.6}

/* ---------- lodge #3 waitlist ---------- */
.notify{background:var(--eclipse);color:var(--on-dark)}
.notify-in{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:clamp(40px,6vw,64px) 0}
@media(max-width:760px){.notify-in{grid-template-columns:1fr}}
.notify .eyebrow{color:var(--almond)}
.notify h2{color:#F2ECDF;font-size:clamp(1.5rem,3vw,2.2rem);margin:8px 0 10px}
.notify p{font-family:var(--body);font-size:14.5px;color:#A7B9AC;max-width:44ch;line-height:1.7}
.notify-form{display:flex;gap:10px;flex-wrap:wrap}
.notify-form .input{min-width:220px;background:transparent;border-color:rgba(214,189,152,.4);color:#F2ECDF}
.notify-form .input::placeholder{color:#8FA394}
@media(max-width:760px){.notify-form .input{flex:1;min-width:0}}

/* ============================================================
   MOTION: restrained (Onera-style: simple, minimal, calm)
   Only gentle fade-ups and one soft hero settle. No grain,
   no parallax, no cursor tricks. Gated for reduced motion.
   ============================================================ */

/* longer, softer fade-up easing (delays staggered in JS) */
.reveal{transition:opacity .8s cubic-bezier(.16,.7,.2,1),transform .8s cubic-bezier(.16,.7,.2,1)}

/* hero image settles in from a slow, subtle push */
@media (prefers-reduced-motion:no-preference){
  .hero-img{animation:heroSettle 1.6s cubic-bezier(.16,.7,.2,1) both}
}
@keyframes heroSettle{from{transform:scale(1.05);opacity:.6}to{transform:scale(1);opacity:1}}

/* ============================================================
   Native Elementor blog templates (archive #luxe-blog-grid,
   single #luxe-post-*). Skins the Posts widget + theme-post-content
   to match the .post-grid / .pcard / .post-body design.
   ============================================================ */
#luxe-blog-grid,#luxe-related{max-width:var(--wrap);margin:0 auto;padding:0 32px}
#luxe-related{margin-top:8px}
#luxe-blog-grid .elementor-posts-container,
#luxe-related .elementor-posts-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:34px 26px;margin:0;padding:0}
#luxe-blog-grid .elementor-post,
#luxe-related .elementor-post{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;border:0;background:transparent}
#luxe-blog-grid .elementor-post__thumbnail,
#luxe-related .elementor-post__thumbnail{aspect-ratio:3/2;height:auto;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--line);margin:0}
#luxe-blog-grid .elementor-post__thumbnail img,
#luxe-related .elementor-post__thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
#luxe-blog-grid .elementor-post:hover .elementor-post__thumbnail img,
#luxe-related .elementor-post:hover .elementor-post__thumbnail img{transform:scale(1.04)}
#luxe-blog-grid .elementor-post__title,
#luxe-related .elementor-post__title{font-family:var(--serif);font-weight:400;font-size:1.28rem;line-height:1.25;margin:2px 0 0}
#luxe-blog-grid .elementor-post__title a,
#luxe-related .elementor-post__title a{color:var(--ink);text-decoration:none;transition:color .2s}
#luxe-blog-grid .elementor-post:hover .elementor-post__title a,
#luxe-related .elementor-post:hover .elementor-post__title a{color:var(--forest-roast)}
#luxe-blog-grid .elementor-post__excerpt p,
#luxe-related .elementor-post__excerpt p{font-family:var(--body);font-size:14px;color:var(--muted);line-height:1.65;margin:0}
#luxe-blog-grid .elementor-post__meta-data,
#luxe-related .elementor-post__meta-data{font-family:var(--body);font-size:11px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin:0;border:0;padding:0}
#luxe-blog-grid .elementor-post__read-more,
#luxe-related .elementor-post__read-more{font-family:var(--body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--forest-roast);text-decoration:none;font-weight:600;margin-top:2px}
/* archive load-more / pagination */
#luxe-blog-grid .elementor-pagination{margin-top:44px;text-align:center;font-family:var(--body);font-size:13px;letter-spacing:.08em}
#luxe-blog-grid .elementor-pagination .page-numbers{padding:6px 12px;color:var(--muted);text-decoration:none}
#luxe-blog-grid .elementor-pagination .page-numbers.current{color:var(--eclipse);font-weight:600}

/* single: dynamic title / meta / hero, then the post body */
#luxe-post-title{max-width:var(--wrap);margin:0 auto;padding:clamp(44px,6vw,72px) 32px 0;text-align:center}
#luxe-post-title h1{font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.12}
#luxe-post-meta{max-width:var(--wrap);margin:0 auto;padding:18px 32px 0;text-align:center}
#luxe-post-meta .elementor-icon-list-items,#luxe-post-meta .elementor-post-info{justify-content:center;display:flex;flex-wrap:wrap;gap:0 18px}
#luxe-post-meta .elementor-post-info__item,#luxe-post-meta .elementor-post-info__terms-list-item{font-family:var(--body);font-size:11.5px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
#luxe-post-meta a{color:var(--muted);text-decoration:none}
#luxe-post-hero{margin:clamp(30px,5vw,52px) 0 0}
#luxe-post-hero img{width:100%;max-height:62vh;object-fit:cover;display:block}
#luxe-post-body{max-width:760px;margin:clamp(36px,5vw,56px) auto 0;padding:0 32px;font-size:1.04rem;line-height:1.85}
#luxe-post-body p{margin:0 0 22px;color:var(--ink)}
#luxe-post-body .drop{font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.5;color:var(--eclipse)}
#luxe-post-body h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.8vw,2rem);margin:44px 0 16px}
#luxe-post-body ul{margin:0 0 24px;padding-left:22px;color:var(--ink)}
#luxe-post-body li{margin-bottom:9px}
#luxe-post-body strong{font-weight:600}
#luxe-post-body blockquote{margin:34px 0;padding:22px 0 22px 26px;border-left:2px solid var(--almond);font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.45rem);line-height:1.5;color:var(--forest-roast)}

/* ============================================================
   Button hover: Hello Elementor's reset has a:hover{color:...}
   at specificity (0,1,1) which beats .btn-solid{color} (0,1,0),
   flipping link-buttons to the theme's link colour on hover.
   Pin each variant's text colour with a.btn-* (0,2,1) to win.
   ============================================================ */
a.btn-solid:hover,a.btn-solid:focus,a.btn-solid:active{color:var(--almond)}
a.btn-almond:hover,a.btn-almond:focus,a.btn-almond:active{color:var(--eclipse)}
a.btn-line:hover,a.btn-line:focus,a.btn-line:active{color:var(--ink)}
a.btn-onlight-line:hover,a.btn-onlight-line:focus,a.btn-onlight-line:active{color:var(--almond)}
a.btn-ghost:hover,a.btn-ghost:focus,a.btn-ghost:active{color:var(--foreground)}

/* ============================================================
   Book Both Lodges page (Elementor containers + Elementor Form).
   #luxe-both-wrap = two-column container; #luxe-eq-form skins
   the native Form widget to match the .compound-form / .eq-form.
   ============================================================ */
#luxe-both-wrap{max-width:var(--wrap);margin:0 auto;padding:clamp(30px,4vw,56px) 32px;align-items:flex-start}
@media(max-width:860px){#luxe-both-wrap{flex-direction:column}#luxe-both-wrap>*{width:100%!important}}
.bb-copy .specs{margin-bottom:6px}
.bb-copy h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:22px 0 14px}
.bb-copy p{color:var(--muted-foreground);margin-bottom:16px}
.bb-copy .know{margin:0 0 16px;padding-left:20px;color:var(--muted-foreground)}
.bb-copy .know li{margin-bottom:9px;line-height:1.7}
.bb-copy .bb-note{font-size:13.5px;font-style:italic}
/* Elementor Form skin */
#luxe-eq-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(24px,3vw,36px)}
#luxe-eq-form .elementor-form-fields-wrapper{row-gap:14px}
#luxe-eq-form .elementor-field-group{margin-bottom:0}
#luxe-eq-form .elementor-field-label{font-family:var(--body);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
#luxe-eq-form .elementor-field-textual,#luxe-eq-form select.elementor-field,#luxe-eq-form textarea.elementor-field{font-family:var(--body);font-size:14px;padding:14px 16px;width:100%;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink);line-height:1.4}
#luxe-eq-form textarea.elementor-field{resize:vertical;min-height:80px}
#luxe-eq-form .elementor-field-textual:focus,#luxe-eq-form select.elementor-field:focus,#luxe-eq-form textarea.elementor-field:focus{outline:2px solid var(--ring);outline-offset:1px;border-color:transparent}
#luxe-eq-form .elementor-field-subgroup{display:flex;flex-direction:column;gap:8px}
#luxe-eq-form .elementor-field-subgroup .elementor-field-option label,#luxe-eq-form .elementor-field-subgroup label{font-family:var(--body);font-size:14px;color:var(--ink);display:flex;align-items:center;gap:10px;cursor:pointer}
#luxe-eq-form input[type=checkbox]{width:16px;height:16px;accent-color:var(--eclipse);flex:none}
#luxe-eq-form .elementor-button{width:100%;justify-content:center;background:var(--eclipse);color:var(--almond);font-family:var(--body);text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600;padding:17px 24px;border-radius:10px;border:0;transition:background .2s}
#luxe-eq-form .elementor-button:hover{background:var(--forest-roast);color:var(--almond)}
#luxe-eq-form .elementor-message{font-family:var(--body);font-size:13.5px}

/* ============================================================
   Book Both Lodges - high-ticket landing page
   ============================================================ */
.bb-section{padding:clamp(60px,9vw,116px) 0}
.bb-tint{background:var(--panel)}
.bb-lead{max-width:760px;margin:0 auto;text-align:center}
.bb-lead .story-lead{font-family:var(--serif);font-size:clamp(1.5rem,2.8vw,2.15rem);line-height:1.32;color:var(--eclipse)}
.bb-lead p{color:var(--muted);font-size:1.04rem;line-height:1.8;margin-top:22px}

/* hero */
.bb-hero{position:relative;min-height:82vh;display:grid;place-items:center;text-align:center;color:var(--on-dark);isolation:isolate;padding:clamp(96px,13vw,150px) 24px}
.bb-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.bb-hero-dim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(26,54,54,.46),rgba(26,54,54,.72))}
.bb-hero-in{max-width:920px}
.bb-hero .eyebrow{color:var(--almond)}
.bb-hero h1{font-family:var(--serif);font-size:clamp(2.5rem,6.2vw,4.7rem);line-height:1.04;margin:16px 0 0;color:#FBF7EE}
.bb-hero-sub{font-family:var(--serif);font-size:clamp(1.15rem,2.2vw,1.6rem);line-height:1.42;color:rgba(251,247,238,.92);margin:22px auto 0;max-width:44ch}
.bb-hero-cta{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.bb-hero-note{margin-top:24px;font-family:var(--body);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(251,247,238,.72)}

/* stat row */
.bb-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg)}
.bb-stat{padding:clamp(26px,3.4vw,40px) 20px;text-align:center;border-right:1px solid var(--line)}
.bb-stat:last-child{border-right:0}
.bb-stat .n{font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.7rem);color:var(--eclipse);line-height:1}
.bb-stat .l{font-family:var(--body);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-weight:600}
@media(max-width:720px){.bb-stats{grid-template-columns:1fr 1fr}.bb-stat:nth-child(2n){border-right:0}.bb-stat:nth-child(1),.bb-stat:nth-child(2){border-bottom:1px solid var(--line)}}

/* who it's for */
.usecases{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:900px){.usecases{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.usecases{grid-template-columns:1fr}}
.usecase{position:relative;aspect-ratio:3/4;border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;display:flex;align-items:flex-end}
.usecase img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.usecase::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 34%,rgba(20,40,38,.86))}
.usecase:hover img{transform:scale(1.05)}
.usecase-body{padding:22px 20px}
.usecase h3{font-family:var(--serif);font-size:1.28rem;margin:0;color:#FBF7EE}
.usecase p{font-family:var(--body);font-size:12.5px;color:rgba(251,247,238,.86);margin:6px 0 0;line-height:1.55}

/* the two lodges - caption under compare grid */
.duo-note{text-align:center;font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.4rem);color:var(--forest-roast);margin-top:34px}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,4vw,54px)}
@media(max-width:760px){.steps{grid-template-columns:1fr;gap:30px}}
.step{border-top:1px solid var(--line);padding-top:18px}
.step .step-n{font-family:var(--serif);font-size:2.3rem;color:var(--almond-deep);line-height:1}
.step h3{font-family:var(--serif);font-size:1.32rem;margin:12px 0 8px}
.step p{font-family:var(--body);font-size:14.5px;color:var(--muted);line-height:1.72;margin:0}

/* why book direct */
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;text-align:center}
@media(max-width:760px){.trust-strip{grid-template-columns:1fr 1fr;gap:32px 18px}}
.trust h3{font-family:var(--serif);font-size:1.12rem;margin:0 0 7px;color:var(--eclipse)}
.trust p{font-family:var(--body);font-size:13px;color:var(--muted);line-height:1.6;margin:0}

/* enquire */
#luxe-enquire .sec-label{margin-bottom:38px}
.bb-copy .specs{margin-bottom:8px}
.bb-copy h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:22px 0 14px}
.bb-copy p{color:var(--muted-foreground);margin-bottom:16px}
.bb-copy .know{margin:0 0 16px;padding-left:20px;color:var(--muted-foreground)}
.bb-copy .know li{margin-bottom:9px;line-height:1.7}
.bb-copy .bb-note{font-size:13.5px;font-style:italic}

/* FAQ */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 2px;font-family:var(--serif);font-size:clamp(1.05rem,1.8vw,1.22rem);color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--body);font-size:1.5rem;color:var(--almond-deep);transition:transform .2s;flex:none}
.faq details[open] summary::after{content:"\2013"}
.faq details .faq-a{font-family:var(--body);font-size:14.5px;color:var(--muted);line-height:1.78;margin:0 0 22px;max-width:70ch}

/* ============================================================
   Full-bleed cover images: an img{height:auto!important} rule
   (Elementor/Hello) beats .hero-img{height:100%}, and because
   <img> is a replaced element, inset:0 does NOT stretch it, so
   on mobile the image collapses to its aspect height and leaves
   a gap below. Force height:100% to fill the section again.
   ============================================================ */
.hero-img,.bb-hero-img,.prop-hero-img,.err-img,.band .band-img,
.usecase img,.cmp-media img{height:100%!important;width:100%!important;object-fit:cover}
.hero{height:90svh}
@media(max-width:720px){
  .hero{min-height:88svh}
  .hero-coords{display:none}
}

/* hero background video: sits over the still, under the dim; the still is the
   instant poster and the only layer on mobile / reduced motion */
.hero-video{position:absolute;inset:0;width:100%!important;height:100%!important;
  object-fit:cover;z-index:-2;opacity:0;transition:opacity 1s ease}
.hero-video.is-playing{opacity:1}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}

/* same lazy-video treatment inside the Big Luxe lodge media frame */
.lodge-media{position:relative}
.lodge-media .lodge-video{position:absolute;inset:0;width:100%!important;height:100%!important;
  object-fit:cover;opacity:0;transition:opacity 1s ease}
.lodge-media .lodge-video.is-playing{opacity:1}
@media(prefers-reduced-motion:reduce){.lodge-video{display:none}}

/* ============================================================
   Book Both - immersive two-column hero with premium form card
   ============================================================ */
#book{position:relative;isolation:isolate;display:flex!important;flex-direction:row;align-items:center;
  gap:clamp(28px,4vw,64px);min-height:92svh;
  padding:clamp(122px,16vh,178px) clamp(24px,5vw,80px) clamp(56px,8vh,88px)!important;
  background:url("/wp-content/uploads/luxe/hero-aframe-dusk.jpg") center/cover no-repeat;overflow:hidden}
#book::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(102deg,rgba(18,36,36,.88) 0%,rgba(18,36,36,.58) 48%,rgba(18,36,36,.34) 100%)}
#bb-hero-pitch{flex:1 1 46%;max-width:560px}
#bb-hero-pitch .eyebrow{color:var(--almond)}
#bb-hero-pitch h1{font-family:var(--serif);font-size:clamp(2.3rem,4.4vw,3.9rem);line-height:1.05;color:#FBF7EE;margin:14px 0 0}
.bb-hero-sub{font-family:var(--serif);font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.42;color:rgba(251,247,238,.9);margin:20px 0 0;max-width:42ch}
.bb-hero-points{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:11px}
.bb-hero-points li{font-family:var(--body);font-size:14px;color:#FBF7EE;padding-left:26px;position:relative;line-height:1.5}
.bb-hero-points li::before{content:"\10022";position:absolute;left:0;top:1px;color:var(--almond)}
.bb-hero-scroll{display:inline-block;margin-top:26px;padding-top:10px;margin-bottom:-10px;font-family:var(--body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--almond);text-decoration:none;border-bottom:1px solid rgba(214,189,152,.4);padding-bottom:4px;transition:border-color .2s,color .2s}
.bb-hero-scroll:hover,.bb-hero-scroll:focus{color:#FBF7EE;border-color:#FBF7EE}

/* the form card = the form column container */
#bb-hero-formcol{flex:0 1 470px;max-width:470px;margin-left:auto;
  background:#FBF7EE;border:1px solid rgba(214,189,152,.6);border-radius:18px;
  box-shadow:0 40px 90px -30px rgba(12,28,26,.7),0 2px 0 rgba(255,255,255,.55) inset;
  padding:clamp(22px,2vw,30px)!important}
.eq-card-head{margin-bottom:16px}
.eq-card-head .eyebrow{color:var(--forest-roast);font-size:10px}
.eq-card-head h2{font-family:var(--serif);font-size:clamp(1.35rem,1.8vw,1.7rem);color:var(--eclipse);margin:6px 0 6px;line-height:1.1}
.eq-card-sub{font-family:var(--body);font-size:12.5px;color:var(--muted);line-height:1.55;margin:0}
.eq-card-foot{font-family:var(--body);font-size:10.5px;letter-spacing:.05em;color:var(--muted);text-align:center;margin:13px 0 0;line-height:1.55}

/* premium form fields (override the earlier #luxe-eq-form card + field rules) */
#luxe-eq-form{background:transparent;border:0;padding:0}
#luxe-eq-form .elementor-form-fields-wrapper{row-gap:11px}
#luxe-eq-form .elementor-field-group{margin-bottom:0}
#luxe-eq-form .elementor-field-label{font-family:var(--body);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest-roast);font-weight:600;margin-bottom:5px}
#luxe-eq-form .elementor-field-textual,#luxe-eq-form select.elementor-field,#luxe-eq-form textarea.elementor-field{font-family:var(--body);font-size:14px;padding:11px 13px;width:100%;background:#fff;border:1px solid rgba(26,54,54,.14);border-radius:10px;color:var(--ink);line-height:1.3;box-shadow:0 1px 2px rgba(20,40,38,.03);transition:border-color .18s,box-shadow .18s}
#luxe-eq-form textarea.elementor-field{min-height:74px;resize:vertical}
#luxe-eq-form .elementor-field-textual:focus,#luxe-eq-form select.elementor-field:focus,#luxe-eq-form textarea.elementor-field:focus{border-color:var(--sage);box-shadow:0 0 0 3px rgba(105,125,106,.16);outline:none}
#luxe-eq-form .elementor-field-subgroup{display:flex;flex-direction:column;gap:9px;margin-top:2px}
#luxe-eq-form .elementor-field-subgroup .elementor-field-option label{font-family:var(--body);font-size:14px;color:var(--ink);display:flex;align-items:center;gap:10px;cursor:pointer}
#luxe-eq-form input[type=checkbox]{width:17px;height:17px;accent-color:var(--eclipse);flex:none}
#luxe-eq-form .elementor-button{width:100%;justify-content:center;background:var(--eclipse);color:var(--almond);font-family:var(--body);text-transform:uppercase;letter-spacing:.18em;font-size:11.5px;font-weight:600;padding:15px 24px;border-radius:11px;border:0;margin-top:3px;cursor:pointer;box-shadow:0 12px 26px -12px rgba(26,54,54,.6);transition:transform .18s,background .2s,box-shadow .2s}
#luxe-eq-form .elementor-button:hover{background:var(--forest-roast);color:var(--almond);transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(26,54,54,.65)}
#luxe-eq-form .elementor-button:active{transform:translateY(0)}

@media(max-width:900px){
  #book{flex-direction:column;align-items:stretch;min-height:0;gap:30px;
    padding:clamp(112px,17vh,150px) 20px clamp(48px,7vh,72px)!important}
  #bb-hero-pitch,#bb-hero-formcol{flex:1 1 auto;max-width:100%;margin-left:0;width:100%}
}
@media(prefers-reduced-motion:no-preference){
  #bb-hero-pitch>*{opacity:0;transform:translateY(16px);animation:bbIn .7s cubic-bezier(.16,.7,.2,1) forwards}
  #bb-hero-pitch>*:nth-child(2){animation-delay:.07s}
  #bb-hero-pitch>*:nth-child(3){animation-delay:.14s}
  #bb-hero-pitch>*:nth-child(4){animation-delay:.21s}
  #bb-hero-pitch>*:nth-child(5){animation-delay:.28s}
  #bb-hero-formcol{opacity:0;transform:translateY(20px);animation:bbIn .8s cubic-bezier(.16,.7,.2,1) .16s forwards}
}
@keyframes bbIn{to{opacity:1;transform:none}}

/* Full width is handled structurally: every Luxe section is saved with
   Elementor's section setting layout = full_width. Setting content_width
   alone does NOT work; the section renders .elementor-section-boxed and its
   inner .elementor-container gets capped at the kit width (1140px), which is
   what caused side gaps on the home page. No CSS override needed. */


/* ---------- lodge blocks (make it obvious which stay each section is) ---------- */
.lodge-sec{padding:clamp(58px,9vw,110px) 0}
.lodge-alt{background:var(--panel)}
.lodge-head{text-align:center;max-width:64ch;margin:0 auto clamp(30px,4vw,46px)}
.lodge-chip{display:inline-block;font-family:var(--body);font-size:10.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;background:var(--almond);color:var(--eclipse);padding:6px 13px;border-radius:100px}
.lodge-head h2{font-size:clamp(2.1rem,4.6vw,3.3rem);margin:16px 0 0;line-height:1.06}
.lodge-tag{font-family:var(--body);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--almond-deep);font-weight:600;margin:10px 0 0}
.lodge-sub{font-family:var(--body);font-size:1rem;line-height:1.7;color:var(--muted);margin:18px auto 0;max-width:56ch}
.lodge-specs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
.lodge-specs span{font-family:var(--body);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
  font-weight:600;border:1px solid var(--line);border-radius:100px;padding:8px 16px}
.lodge-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/9;border:1px solid var(--border)}
.lodge-media img{width:100%;height:100%;object-fit:cover;display:block}
.film-cap{position:absolute;left:14px;bottom:14px;z-index:2;font-family:var(--body);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--almond);background:rgba(18,36,36,.72);
  backdrop-filter:blur(6px);padding:7px 12px;border-radius:100px}
.both .lodge-chip{margin-bottom:14px}
/* the card rail sits directly after the film/media, which have no bottom margin,
   so it needs its own breathing room (the old layout got this from .sec-label) */
.lodge-sec .exp-scroll{margin-top:clamp(30px,4.4vw,58px)}
.lodge-sec .sec-cta{margin-top:clamp(28px,3.6vw,46px)}

/* ---------- testimonials (real Google reviews) ---------- */
.testi{padding:clamp(58px,9vw,110px) 0;background:var(--panel)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,26px)}
@media(max-width:900px){.testi-grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
.testi-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(24px,2.6vw,32px);margin:0;display:flex;flex-direction:column;gap:14px}
.testi-stars{color:var(--almond-deep);font-size:13px;letter-spacing:.2em;line-height:1}
.testi-card blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.02rem,1.5vw,1.16rem);
  line-height:1.55;color:var(--eclipse);flex:1}
.testi-card figcaption{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--line);padding-top:14px}
.testi-name{font-family:var(--body);font-size:13px;font-weight:600;color:var(--ink)}
.testi-meta{font-family:var(--body);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.testi-foot{text-align:center;margin-top:clamp(26px,3vw,38px);font-family:var(--body);font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.testi-foot a{color:var(--forest-roast);text-decoration:none;border-bottom:1px solid var(--line)}
.testi-foot a:hover{color:var(--eclipse);border-color:var(--eclipse)}
/* compact variant used inside the book-both page */
.testi-slim{background:transparent;padding:clamp(46px,6vw,78px) 0}

/* ---------- lodge footer: address + compact map + CTA, inside each lodge block ---------- */
.lodge-foot{display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(24px,4vw,52px);align-items:center;
  margin-top:clamp(34px,4.6vw,60px)}
@media(max-width:820px){.lodge-foot{grid-template-columns:1fr;gap:26px}}
.lodge-addr-line{font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.4;color:var(--eclipse);margin:12px 0 0}
.lodge-addr-sub{font-family:var(--body);font-size:13px;color:var(--muted);line-height:1.6;margin:10px 0 0}
.lodge-addr .btn{margin-top:24px}
.lodge-map{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line);background:var(--panel)}
@media(max-width:820px){.lodge-map{aspect-ratio:4/3}}
.lodge-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* ---------- our story (editorial two-column) ---------- */
.story-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,72px);align-items:center;text-align:left}
@media(max-width:900px){.story-grid{grid-template-columns:1fr;gap:32px}}
.story-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;border:1px solid var(--border)}
@media(max-width:900px){.story-media{aspect-ratio:16/10}}
.story-media img{width:100%;height:100%;object-fit:cover;display:block}
.story-copy h2{font-family:var(--serif);font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.14;color:var(--eclipse);margin:16px 0 0;max-width:20ch}
.story-copy h2::after{content:"";display:block;width:64px;height:1px;background:var(--almond-deep);margin-top:24px}
.story-copy p{font-family:var(--body);color:var(--muted);font-size:1.02rem;line-height:1.8;margin-top:22px;max-width:52ch}
.story-copy .btn{margin-top:32px}


/* ============================================================
   Plain WordPress pages (no Elementor), e.g. /privacy/.
   Hello theme gives them no real container, so text runs
   edge to edge; wrap and set brand typography.
   ============================================================ */
body.page-id-3 .site-main{
  max-width:760px;margin:0 auto;
  padding:clamp(40px,6vw,72px) 24px clamp(56px,8vw,96px);
  font-family:var(--body);font-size:16px;line-height:1.8;color:var(--muted-foreground)}
body.page-id-3 .site-main h1{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.5vw,2.8rem);
  line-height:1.15;color:var(--ink);margin:0 0 .6em}
body.page-id-3 .site-main h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2.6vw,1.8rem);
  color:var(--ink);margin:2em 0 .6em}
body.page-id-3 .site-main h3{
  font-family:var(--serif);font-weight:400;font-size:1.15rem;color:var(--ink);margin:1.6em 0 .5em}
body.page-id-3 .site-main p{margin:0 0 1.4em}
body.page-id-3 .site-main ul,
body.page-id-3 .site-main ol{margin:0 0 1.4em;padding-left:1.4em}
body.page-id-3 .site-main li{margin-bottom:.5em}
body.page-id-3 .site-main a{
  color:var(--forest-roast);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(192,168,127,.55)}
body.page-id-3 .site-main a:hover{color:var(--eclipse)}


/* ============================================================
   Book Both fixes (mobile audit)
   ============================================================ */
/* The Elementor kit applies a 10px default padding to every
   container on the /book-both/ page, insetting each section's
   background from the viewport edge. Kill it - the page HTML
   carries its own .wrap padding. */
.elementor-61 .e-con{padding:0}

/* Two-lodge comparison grid: 2-up on desktop, stacked on phones.
   (Was an inline grid-template-columns that beat the media query.) */
.compare-grid--two{grid-template-columns:repeat(2,1fr)}
@media(max-width:700px){
  .compare-grid--two{grid-template-columns:1fr;max-width:460px;margin-inline:auto}
}


/* ============================================================
   Footer newsletter form (Hello reset overrides + autofill + states)
   ============================================================ */
button.btn-solid:hover,button.btn-solid:focus,button.btn-solid:active{
  background:var(--forest-roast);color:var(--almond)}
button.btn-almond:hover,button.btn-almond:focus,button.btn-almond:active{
  background:var(--almond-deep);color:var(--eclipse)}
.signup-form input:-webkit-autofill,
.signup-form input:-webkit-autofill:hover,
.signup-form input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px var(--eclipse) inset;
  -webkit-text-fill-color:#F2ECDF;
  caret-color:#F2ECDF;
  border:1px solid rgba(214,189,152,.4)}
.signup-form .nl-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.signup-form{position:relative}
.signup-msg{flex-basis:100%;margin:6px 0 0;font-family:var(--body);font-size:13px;min-height:1.2em;color:var(--almond)}
.signup-msg.is-error{color:#E8A9A0}
.signup-form button[disabled]{opacity:.65;cursor:wait;transform:none}


/* ============================================================
   Footer form sizing + type scale lift
   ============================================================ */
.signup-form{width:540px;max-width:100%;margin-left:auto}
.signup-form input{flex:1 1 260px;min-width:0}
.signup-form .btn{flex:0 0 auto}
@media(max-width:860px){.signup-form{margin-left:0;width:100%}}
.foot-grid h5{font-size:11.5px}
.foot-signup .eyebrow{font-size:12px}
@media(max-width:860px){.signup-form input{flex-basis:160px}}


/* ============================================================
   Mobile font-size pass
   ============================================================ */



/* ============================================================
   Related posts grid (single-post template)
   ============================================================ */
.rel-wrap{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,7vw,84px) 20px clamp(56px,8vw,96px)}
.rel-head{margin-bottom:28px}
.rel-eyebrow{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);margin:0 0 8px}
.rel-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--ink);margin:0}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rel-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;
  transition:border-color .25s ease,box-shadow .25s ease}
.rel-card:hover{border-color:var(--sage);box-shadow:var(--shadow-md)}
.rel-media{aspect-ratio:16/10;overflow:hidden;background:var(--panel)}
.rel-media img{width:100%;height:100%;object-fit:cover;display:block}
.rel-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px}
.rel-date{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0}
.rel-card-title{font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.3;color:var(--ink);margin:0}
.rel-more{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--almond-deep);margin-top:auto;padding-top:6px}
@media(max-width:900px){.rel-grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}


/* ============================================================
   Sticky header
   The Elementor header wrapper is only as tall as the header, so
   position:sticky on header.nav has no travel room. Stick the
   wrapper instead, offset by the announcement bar so the nav (and
   its CTA) pins to the top while the announce bar scrolls away.
   ============================================================ */
:root{--luxe-announce-h:37px}
.elementor-location-header{position:sticky;top:calc(0px - var(--luxe-announce-h));z-index:100}
@media(max-width:600px){:root{--luxe-announce-h:33px}}
/* explorer hides the announce bar on mobile, so there is nothing to offset */
@media(max-width:959.9px){.post-type-archive-property .elementor-location-header{top:0}}


/* ============================================================
   Offers popup (newsletter)
   ============================================================ */
.luxe-pop{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:20px}
.luxe-pop[hidden]{display:none}
.luxe-pop__scrim{position:absolute;inset:0;background:rgba(18,36,36,.55);backdrop-filter:blur(3px);
  opacity:0;transition:opacity .28s ease}
.luxe-pop.is-open .luxe-pop__scrim{opacity:1}
.luxe-pop__card{position:relative;display:grid;grid-template-columns:1fr 1.05fr;
  width:min(760px,100%);max-height:calc(100dvh - 40px);overflow:hidden auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:0 24px 60px rgba(18,36,36,.28);
  opacity:0;transform:translateY(14px) scale(.985);transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.luxe-pop.is-open .luxe-pop__card{opacity:1;transform:none}
.luxe-pop__x{position:absolute;top:10px;right:10px;z-index:2;width:40px;height:40px;display:grid;place-items:center;
  background:rgba(252,249,243,.9);border:1px solid var(--line);border-radius:50%;color:var(--ink);cursor:pointer;
  transition:background .2s ease,color .2s ease}
.luxe-pop__x:hover,.luxe-pop__x:focus{background:var(--panel);color:var(--eclipse)}
.luxe-pop__x svg{width:17px;height:17px}
.luxe-pop__media{margin:0;min-height:100%}
.luxe-pop__media img{width:100%;height:100%;object-fit:cover;display:block}
.luxe-pop__body{padding:clamp(26px,3.4vw,38px)}
.luxe-pop__eyebrow{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--sage);margin:0 0 10px}
.luxe-pop__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.4vw,2rem);
  line-height:1.15;color:var(--ink);margin:0 0 10px}
.luxe-pop__sub{font-family:var(--body);font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 20px}
.luxe-pop__form{display:flex;flex-wrap:wrap;gap:10px}
.luxe-pop__form input[name="email"]{flex:1 1 100%;font-family:var(--body);font-size:15px;padding:15px 16px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink)}
.luxe-pop__form input[name="email"]::placeholder{color:#93A197}
.luxe-pop__form input[name="email"]:focus{outline:none;border-color:var(--almond-deep);
  box-shadow:0 0 0 3px rgba(192,168,127,.28)}
.luxe-pop__form .btn{flex:1 1 100%;justify-content:center;min-height:50px}
.luxe-pop__form button[disabled]{opacity:.65;cursor:wait;transform:none}
.luxe-pop__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.luxe-pop__msg{flex-basis:100%;margin:2px 0 0;font-family:var(--body);font-size:13px;min-height:1.1em;color:var(--forest-roast)}
.luxe-pop__msg.is-error{color:#A8443A}
.luxe-pop__fine{font-family:var(--body);font-size:12px;color:var(--muted);margin:14px 0 0}
@media(max-width:720px){
  .luxe-pop{padding:14px}
  .luxe-pop__card{grid-template-columns:1fr}
  .luxe-pop__media{max-height:150px}
}
@media(prefers-reduced-motion:reduce){
  .luxe-pop__scrim,.luxe-pop__card{transition:none}
  .luxe-pop__card{transform:none}
}
