/* ============================================================
   ARIKI LAKE HOUSE — website upgrade
   Foundation: fonts, 3 switchable directions, components
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face { font-family:"IvyMode"; src:url("fonts/IvyMode-Light.ttf") format("truetype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"IvyMode"; src:url("fonts/IvyMode-SemiBold.ttf") format("truetype"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"IvyMode"; src:url("fonts/IvyMode-Bold.ttf") format("truetype"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("fonts/Montserrat-Light.ttf") format("truetype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("fonts/Montserrat-Regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("fonts/Montserrat-Medium.ttf") format("truetype"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("fonts/Montserrat-SemiBold.ttf") format("truetype"); font-weight:600; font-style:normal; font-display:swap; }

/* ---------- Brand palette (raw) ---------- */
:root{
  --forest:#1B2E22;
  --forest-deep:#12201A;
  --pine:#2C4636;
  --sage:#7EB89A;
  --sage-soft:#A8C7B4;
  --cream:#F4EFE6;
  --ivory:#FAF7F0;
  --paper:#FBFAF6;
  --clay:#B4825C;
  --clay-soft:#C9A98A;
  --stone:#9C968A;

  --maxw:1280px;
  --gutter:clamp(22px,5vw,80px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   THREE DIRECTIONS — token sets
   ============================================================ */

/* 1 — EDITORIAL  (cream paper, green ink, hairlines, airy, magazine) */
:root[data-theme="editorial"]{
  --bg:var(--ivory); --bg-2:#F1EBDF; --bg-dark:var(--forest);
  --ink:#1E2A22; --ink-soft:#5C6258; --line:#D9D1C2;
  --accent:#2C4636; --accent-2:var(--sage);
  --label:#8A8475;
  --hero-overlay:linear-gradient(180deg,rgba(18,32,26,.14) 0%,rgba(18,32,26,.10) 38%,rgba(18,32,26,.56) 78%,rgba(15,26,20,.80) 100%);
  --hero-ink:#FAF7F0;
  --disp:"IvyMode"; --disp-w:300; --disp-track:-0.01em; --disp-lh:1.02;
  --radius:0px; --radius-img:0px; --radius-btn:0px;
  --sec-pad:clamp(80px,11vw,160px);
  --card-bg:#FFFFFF; --footer-bg:var(--forest); --footer-ink:#CDE0D4;
}
/* 2 — CINEMATIC  (deep green/near-black, white, imagery dominant, dramatic) */
:root[data-theme="cinematic"]{
  --bg:#0E1813; --bg-2:#16241C; --bg-dark:#0A120D;
  --ink:#F0EDE4; --ink-soft:#A9B3AC; --line:rgba(214,222,216,.16);
  --accent:var(--sage); --accent-2:var(--sage-soft);
  --label:#7FA793;
  --hero-overlay:linear-gradient(180deg,rgba(8,14,11,.46) 0%,rgba(8,14,11,.34) 45%,rgba(8,14,11,.84) 100%);
  --hero-ink:#FBF9F2;
  --disp:"IvyMode"; --disp-w:300; --disp-track:0em; --disp-lh:1.0;
  --radius:0px; --radius-img:2px; --radius-btn:0px;
  --sec-pad:clamp(84px,11vw,168px);
  --card-bg:#16241C; --footer-bg:#0A120D; --footer-ink:#9FB6A8;
}
/* 3 — NATURAL  (warm ivory + sage + clay, soft, organic, rounded, retreat) */
:root[data-theme="natural"]{
  --bg:#FBF7EF; --bg-2:#EFE7D8; --bg-dark:#22382B;
  --ink:#2A3A30; --ink-soft:#6A6F62; --line:#E2D9C7;
  --accent:#3A5742; --accent-2:var(--clay);
  --label:#A08C72;
  --hero-overlay:linear-gradient(180deg,rgba(34,40,30,.12) 0%,rgba(34,40,30,.05) 35%,rgba(40,46,32,.55) 100%);
  --hero-ink:#FCFAF3;
  --disp:"IvyMode"; --disp-w:600; --disp-track:-0.005em; --disp-lh:1.05;
  --radius:18px; --radius-img:16px; --radius-btn:999px;
  --sec-pad:clamp(76px,10vw,150px);
  --card-bg:#FFFFFF; --footer-bg:#22382B; --footer-ink:#CBDDCF;
}

/* ---------- Reset / base ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"Montserrat",system-ui,sans-serif;
  background:var(--bg); color:var(--ink);
  font-size:16px; line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  transition:background .6s var(--ease), color .6s var(--ease);
  overflow-x:hidden;
}
img,svg,video{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit;}
::selection{background:var(--accent); color:var(--bg);}

/* ---------- Typography primitives ---------- */
.display{ font-family:var(--disp); font-weight:var(--disp-w); letter-spacing:var(--disp-track); line-height:var(--disp-lh); }
.eyebrow{
  font-family:"Montserrat",sans-serif; font-weight:500; font-size:12px;
  letter-spacing:.32em; text-transform:uppercase; color:var(--label);
  display:flex; align-items:center; gap:14px;
}
.eyebrow::before{content:""; width:34px; height:1px; background:currentColor; opacity:.6; display:inline-block;}
.eyebrow.center{justify-content:center;}
.eyebrow.center::after{content:""; width:34px; height:1px; background:currentColor; opacity:.6;}
.lead{ font-size:clamp(18px,2vw,22px); line-height:1.6; color:var(--ink-soft); font-weight:300; }
.kicker{ font-family:"Montserrat"; font-weight:600; font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--accent-2); }

.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter);}
.section{padding-block:var(--sec-pad);}
.section--tight{padding-block:clamp(56px,7vw,96px);}
.rule{height:1px; background:var(--line); border:0; width:100%;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:"Montserrat"; font-weight:600; font-size:12.5px;
  letter-spacing:.2em; text-transform:uppercase;
  padding:18px 30px; border-radius:var(--radius-btn);
  transition:all .4s var(--ease); position:relative; white-space:nowrap;
}
.btn .arw{transition:transform .4s var(--ease);}
.btn:hover .arw{transform:translateX(5px);}
.btn--solid{ background:var(--accent); color:var(--bg); }
.btn--solid:hover{ filter:brightness(1.12); transform:translateY(-2px); }
:root[data-theme="cinematic"] .btn--solid{ color:#0E1813; }
:root[data-theme="editorial"] .btn--solid{ color:var(--ivory); }
.btn--ghost{ border:1px solid currentColor; color:inherit; }
.btn--ghost:hover{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.btn--light{ border:1px solid rgba(255,255,255,.55); color:#fff; }
.btn--light:hover{ background:#fff; color:var(--forest); }
.btn--lightsolid{ background:var(--hero-ink); color:var(--forest); }
.btn--lightsolid:hover{ transform:translateY(-2px); filter:brightness(1.05); }
.link-underline{ position:relative; font-weight:600; font-size:13px; letter-spacing:.04em; display:inline-flex; gap:.5em; align-items:center; }
.link-underline::after{content:""; position:absolute; left:0; bottom:-4px; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);}
.link-underline:hover::after{transform:scaleX(1);}
.link-underline:hover .arw{transform:translateX(4px);} .link-underline .arw{transition:transform .4s var(--ease);}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--gutter); transition:all .5s var(--ease);
  color:var(--hero-ink);
}
.nav__brand{display:flex; align-items:center; gap:14px; height:46px;}
.nav__brand .mark{height:44px; width:auto; color:currentColor; transition:color .5s var(--ease);}
.nav__brand .word{height:18px; width:auto; color:currentColor; display:none;}
.nav__links{display:flex; align-items:center; gap:30px;}
.nav__links a{ font-family:"Montserrat"; font-weight:500; font-size:12px; letter-spacing:.15em; text-transform:uppercase; position:relative; opacity:.92; transition:opacity .3s; }
.nav__links a::after{content:""; position:absolute; left:0; bottom:-6px; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease);}
.nav__links a:hover{opacity:1;} .nav__links a:hover::after,.nav__links a.active::after{transform:scaleX(1);}
.nav__right{display:flex; align-items:center; gap:22px;}
.nav__phone{font-size:12px; letter-spacing:.12em; font-weight:500; opacity:.9;}
.nav .btn{padding:13px 22px; font-size:11px;}
/* scrolled state */
.nav.scrolled{ background:var(--bg); color:var(--ink); box-shadow:0 1px 0 var(--line); padding-top:14px; padding-bottom:14px; }
.nav.scrolled .nav__brand .mark{height:34px;}
.nav.scrolled .btn--light{ border-color:var(--accent); color:var(--accent); }
.nav.scrolled .btn--light:hover{ background:var(--accent); color:var(--bg); }
.nav__burger{display:none; flex-direction:column; gap:5px; width:30px;}
.nav__burger span{height:1.5px; background:currentColor; width:100%; transition:.3s;}

/* mobile menu */
.mobilemenu{position:fixed; inset:0; z-index:70; background:var(--forest); color:var(--cream); display:flex; flex-direction:column; justify-content:center; padding:var(--gutter); transform:translateY(-100%); opacity:0; visibility:hidden; pointer-events:none; transition:transform .55s var(--ease), opacity .55s var(--ease), visibility 0s linear .55s;}
.mobilemenu.open{transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto; transition:transform .55s var(--ease), opacity .55s var(--ease), visibility 0s;}
.mobilemenu a{font-family:var(--disp); font-weight:300; font-size:clamp(34px,9vw,54px); padding:8px 0; border-bottom:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; align-items:center;}
.mobilemenu .close{position:absolute; top:24px; right:var(--gutter); font-size:30px; font-weight:200;}
.mobilemenu .mm-foot{margin-top:40px; font-size:13px; letter-spacing:.1em; color:var(--sage);}

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--hero-ink); overflow:hidden; }
.hero__media{position:absolute; inset:0; z-index:0;}
.hero__media image-slot, .hero__media video, .hero__media .ph{position:absolute; inset:0; width:100%; height:100%;}
.hero__media::after{content:""; position:absolute; inset:0; background:var(--hero-overlay); z-index:2;}
.hero__media .kenburns{animation:kenburns 24s ease-in-out infinite alternate;}
@keyframes kenburns{from{transform:scale(1.04) translate(0,0);}to{transform:scale(1.15) translate(-1.5%,-1.5%);}}
.hero__inner{position:relative; z-index:3; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter) clamp(60px,8vh,110px);}
.hero h1,.hero__sub,.hero__eyebrow,.pagehead h1,.pagehead p,.pagehead .eyebrow{ text-shadow:0 1px 2px rgba(0,0,0,.18), 0 6px 34px rgba(0,0,0,.30); }
.hero__eyebrow{color:rgba(255,255,255,.85); margin-bottom:26px;}
.hero__eyebrow::before{background:rgba(255,255,255,.7);}
.hero h1{ font-family:var(--disp); font-weight:var(--disp-w); line-height:var(--disp-lh); letter-spacing:var(--disp-track); font-size:clamp(54px,11vw,150px); margin-bottom:22px; }
.hero h1 em{font-style:italic; font-weight:300;}
.hero__sub{font-size:clamp(17px,2.1vw,24px); font-weight:300; max-width:34ch; line-height:1.5; color:rgba(255,255,255,.92);}
.hero__cta{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
.hero__scroll{position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.8);}
.hero__scroll .ln{width:1px; height:46px; background:linear-gradient(rgba(255,255,255,.7),rgba(255,255,255,0)); animation:scrolln 2.2s var(--ease) infinite;}
@keyframes scrolln{0%{transform:scaleY(0);transform-origin:top;}45%{transform:scaleY(1);transform-origin:top;}55%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}
/* hero alignment variants by direction */
:root[data-theme="cinematic"] .hero{align-items:center; text-align:center;}
:root[data-theme="cinematic"] .hero__inner{padding-bottom:0; text-align:center; display:flex; flex-direction:column; align-items:center;}
:root[data-theme="cinematic"] .hero__eyebrow.eyebrow::after{content:""; width:34px;height:1px;background:rgba(255,255,255,.7);display:inline-block;}
:root[data-theme="cinematic"] .hero__sub{max-width:42ch;}
:root[data-theme="cinematic"] .hero__cta{justify-content:center;}

/* ---------- Placeholder media (when no photo dropped) ---------- */
.ph{ position:relative; background:
   radial-gradient(120% 90% at 70% 18%, #cfe0d6 0%, #9db8a6 26%, #6f8f7c 52%, #3f5a49 78%, #243a2d 100%);
   overflow:hidden; }
.ph::after{content:""; position:absolute; inset:0; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='0.5'/></svg>"); opacity:.06; mix-blend-mode:overlay;}
.ph__label{ position:absolute; left:0; right:0; bottom:0; padding:14px 16px; z-index:3;
  font-family:"Montserrat"; font-weight:500; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.78); background:linear-gradient(transparent,rgba(0,0,0,.45)); }
.ph--img{background-size:cover; background-position:center;}
.ph--warm{background:radial-gradient(120% 90% at 30% 20%, #f0e3cf 0%, #d8b790 30%, #b88e63 60%, #7d5e3f 100%);}
.ph--lake{background:linear-gradient(180deg,#bcd2c6 0%,#8fb0a0 34%,#5d7e6c 60%,#36513f 100%);}
:root[data-theme="cinematic"] .ph--lake{background:linear-gradient(180deg,#5d7e6c 0%,#33503f 50%,#162019 100%);}
:root[data-theme="natural"] .ph--lake{background:linear-gradient(170deg,#d9c8a8 0%,#a89270 45%,#6f5d44 100%);}

/* image-slot baseline so empty slots look intentional */
image-slot{ background:var(--bg-2); border-radius:var(--radius-img); overflow:hidden; }
/* over-image text contexts: gradient lives on a .ph layer behind a transparent slot */
.hero__media image-slot, .pagehead__media image-slot, .aud__card image-slot{ background:transparent; }
.hero__media .ph, .pagehead__media .ph, .aud__card .ph{ position:absolute; inset:0; z-index:0; }
.hero__media image-slot, .pagehead__media image-slot{ z-index:1; }

/* ============================================================
   LAYOUT BLOCKS
   ============================================================ */
.stack > * + *{margin-top:1.1em;}
.center{text-align:center;}
.measure{max-width:64ch;} .measure-sm{max-width:50ch;}
.sec-head{max-width:760px; margin-bottom:clamp(40px,5vw,64px);}
.sec-head .eyebrow{margin-bottom:22px;}
.sec-head h2{font-family:var(--disp); font-weight:var(--disp-w); letter-spacing:var(--disp-track); line-height:1.06; font-size:clamp(34px,5.2vw,68px); margin-bottom:20px;}
.sec-head.center{margin-inline:auto;}

/* Stats bar */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border-block:1px solid var(--line);}
.stat{background:var(--bg); padding:34px 26px; text-align:center;}
.stat__num{font-family:var(--disp); font-weight:var(--disp-w); font-size:clamp(34px,4vw,52px); line-height:1; color:var(--accent); margin-bottom:10px;}
.stat__lbl{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);}

/* Split feature */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,84px); align-items:center;}
.split--rev .split__media{order:2;}
.split__media{position:relative; aspect-ratio:4/5;}
.split__media.wide{aspect-ratio:5/4;}
.split__media image-slot,.split__media .ph{position:absolute; inset:0; width:100%; height:100%;}

/* Audience cards */
.aud{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.aud--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:1100px){
  .aud--3{grid-template-columns:1fr 1fr;}
  .aud--3 .aud__card:last-child{grid-column:1 / -1;}
}
.aud__card{position:relative; min-height:clamp(420px,52vw,560px); overflow:hidden; border-radius:var(--radius-img); display:flex; align-items:flex-end; color:#fff;}
.aud__card image-slot,.aud__card .ph{position:absolute; inset:0; width:100%; height:100%; z-index:0; transition:transform 1s var(--ease);}
.aud__card:hover image-slot,.aud__card:hover .ph{transform:scale(1.05);}
.aud__card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,32,26,.05),rgba(18,32,26,.72)); z-index:1;}
.aud__body{position:relative; z-index:2; padding:clamp(28px,3.5vw,46px);}
.aud__body .kicker{color:var(--sage-soft); margin-bottom:14px; display:block;}
.aud__body h3{font-family:var(--disp); font-weight:300; font-size:clamp(28px,3.4vw,42px); line-height:1.05; margin-bottom:14px;}
.aud__body p{font-size:14.5px; color:rgba(255,255,255,.85); max-width:42ch; margin-bottom:22px; font-weight:300;}

/* Spaces list */
.spaces{display:flex; flex-direction:column;}
.space-row{display:grid; grid-template-columns:80px 1.1fr 1fr; gap:clamp(24px,4vw,60px); align-items:center; padding-block:clamp(34px,4vw,56px); border-top:1px solid var(--line);}
.space-row:last-child{border-bottom:1px solid var(--line);}
.space-row__no{font-family:var(--disp); font-weight:300; font-size:30px; color:var(--accent-2);}
.space-row__txt h3{font-family:var(--disp); font-weight:var(--disp-w); font-size:clamp(26px,3vw,38px); margin-bottom:8px;}
.space-row__txt .cap{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px;}
.space-row__txt p{font-size:14.5px; color:var(--ink-soft); max-width:46ch; font-weight:300;}
.space-row__media{position:relative; aspect-ratio:3/2;}
.space-row__media image-slot,.space-row__media .ph{position:absolute; inset:0; width:100%; height:100%;}

/* Amenities */
.amen{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.amen__card{position:relative;}
.amen__media{position:relative; aspect-ratio:4/3; margin-bottom:18px;}
.amen__media image-slot,.amen__media .ph{position:absolute; inset:0; width:100%; height:100%;}
.amen__card h4{font-family:var(--disp); font-weight:var(--disp-w); font-size:22px; margin-bottom:6px; display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
.amen__card h4 .dist{font-family:"Montserrat"; font-weight:500; font-size:11px; letter-spacing:.14em; color:var(--accent-2); text-transform:uppercase;}
.amen__card p{font-size:14px; color:var(--ink-soft); font-weight:300;}

/* Gallery */
.gallery{display:grid; grid-template-columns:repeat(12,1fr); gap:14px;}
.gallery .g{position:relative; overflow:hidden;}
.gallery .g image-slot,.gallery .g .ph{position:absolute; inset:0; width:100%; height:100%; transition:transform 1.1s var(--ease);}
.gallery .g:hover image-slot,.gallery .g:hover .ph{transform:scale(1.06);}
.g.tall{grid-column:span 4; aspect-ratio:3/4;}
.g.sq{grid-column:span 4; aspect-ratio:1/1;}
.g.wide{grid-column:span 8; aspect-ratio:16/10;}
.g.span6{grid-column:span 6; aspect-ratio:4/3;}

/* Marquee strip */
.marquee{overflow:hidden; border-block:1px solid var(--line); padding-block:clamp(14px,1.8vw,22px); background:var(--bg);}
.marquee__track{display:flex; width:max-content; animation:marq 36s linear infinite;}
.marquee__track span{font-family:var(--disp); font-weight:300; font-style:italic; font-size:clamp(20px,2.6vw,34px); white-space:nowrap; color:var(--ink); display:inline-flex; align-items:center; gap:clamp(28px,4vw,56px); padding-right:clamp(28px,4vw,56px);}
.marquee__track .tld{color:var(--accent-2); font-style:normal; font-weight:300;}
@keyframes marq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;}}

/* Film band */
.film{position:relative; height:min(86svh,820px); overflow:hidden; display:flex; align-items:flex-end; color:#fff;}
.film video,.film .film__img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.film .film__img{background-size:cover; background-position:center;}
.film::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,18,13,.08) 30%,rgba(10,18,13,.58) 100%);}
.film__cap{position:relative; z-index:2; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter) clamp(36px,5vh,56px); display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;}
.film__cap .kicker{color:var(--sage-soft); display:block; margin-bottom:10px;}
.film__cap h3{font-family:var(--disp); font-weight:300; font-size:clamp(30px,4.6vw,58px); line-height:1.04;}
.film__note{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.75); padding-bottom:8px;}

/* Quote / testimonial */
.quote{ text-align:center; max-width:900px; margin:0 auto; }
.quote blockquote{font-family:var(--disp); font-weight:300; font-size:clamp(26px,3.6vw,46px); line-height:1.28; letter-spacing:-0.01em;}
.quote .cite{margin-top:30px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);}
.quote .mk{font-family:var(--disp); font-size:90px; line-height:.4; color:var(--accent-2); display:block; height:40px; opacity:.5;}

/* CTA band */
.ctaband{background:var(--bg-dark); color:var(--hero-ink); text-align:center; position:relative; overflow:hidden;}
.ctaband .wrap{position:relative; z-index:2;}
.ctaband h2{font-family:var(--disp); font-weight:300; font-size:clamp(34px,5.5vw,72px); line-height:1.05; margin-bottom:20px;}
.ctaband p{color:rgba(255,255,255,.78); max-width:48ch; margin:0 auto 36px; font-weight:300; font-size:17px;}
.ctaband .hero__cta{justify-content:center;}
.ctaband .brandmark-bg{position:absolute; right:-6%; top:50%; transform:translateY(-50%); width:520px; color:rgba(255,255,255,.05); z-index:1;}
.ctaband__bg{position:absolute; inset:0; background-size:cover; background-position:center; opacity:.25; z-index:0;}
.ctaband__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,18,13,.2),rgba(10,18,13,.55));}

/* ============================================================
   PAGE HEADER (inner pages)
   ============================================================ */
.pagehead{position:relative; min-height:62svh; display:flex; align-items:flex-end; color:var(--hero-ink); overflow:hidden;}
.pagehead__media{position:absolute; inset:0;}
.pagehead__media image-slot,.pagehead__media .ph{position:absolute; inset:0; width:100%; height:100%;}
.pagehead__media::after{content:""; position:absolute; inset:0; background:var(--hero-overlay);}
.pagehead__inner{position:relative; z-index:2; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter) clamp(48px,6vh,84px);}
.pagehead .eyebrow{color:rgba(255,255,255,.85); margin-bottom:20px;} .pagehead .eyebrow::before{background:rgba(255,255,255,.7);}
.pagehead h1{font-family:var(--disp); font-weight:var(--disp-w); font-size:clamp(42px,8vw,104px); line-height:1.0; letter-spacing:var(--disp-track);}
.pagehead p{margin-top:18px; max-width:46ch; font-weight:300; font-size:clamp(16px,1.8vw,20px); color:rgba(255,255,255,.9);}

/* Included list */
.incl{display:grid; grid-template-columns:repeat(2,1fr); gap:0 60px;}
.incl li{list-style:none; padding:20px 0; border-top:1px solid var(--line); display:flex; gap:16px; align-items:flex-start;}
.incl li .n{font-family:var(--disp); font-size:15px; color:var(--accent-2); min-width:30px;}
.incl li h4{font-size:14px; font-weight:600; letter-spacing:.04em; margin-bottom:4px;}
.incl li p{font-size:13.5px; color:var(--ink-soft); font-weight:300;}

/* Itinerary */
.itin{display:flex; flex-direction:column;}
.itin__row{display:grid; grid-template-columns:160px 1fr; gap:40px; padding-block:28px; border-top:1px solid var(--line);}
.itin__row .when{font-family:"Montserrat"; font-weight:600; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); padding-top:3px;}
.itin__row .what h4{font-family:var(--disp); font-weight:var(--disp-w); font-size:22px; margin-bottom:6px;}
.itin__row .what p{font-size:14px; color:var(--ink-soft); font-weight:300;}

/* Capacity table */
.captable{width:100%; border-collapse:collapse;}
.captable th,.captable td{text-align:left; padding:18px 16px; border-bottom:1px solid var(--line); font-size:14px;}
.captable th{font-family:"Montserrat"; font-weight:600; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft);}
.captable td:first-child{font-family:var(--disp); font-weight:var(--disp-w); font-size:18px;}
.captable .num{font-family:var(--disp); font-size:18px; color:var(--accent);}

/* Deck cards */
.decks{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.deck{background:var(--card-bg); border:1px solid var(--line); border-radius:var(--radius-img); overflow:hidden; display:flex; flex-direction:column;}
.deck__media{position:relative; aspect-ratio:16/10;}
.deck__media image-slot,.deck__media .ph{position:absolute; inset:0; width:100%; height:100%;}
.deck__body{padding:30px 30px 34px;}
.deck__body .kicker{display:block; margin-bottom:12px;}
.deck__body h3{font-family:var(--disp); font-weight:var(--disp-w); font-size:28px; margin-bottom:12px;}
.deck__body p{font-size:14px; color:var(--ink-soft); font-weight:300; margin-bottom:20px;}

/* Form */
.form{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.field{display:flex; flex-direction:column; gap:9px;}
.field.full{grid-column:1/-1;}
.field label{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}
.field input,.field select,.field textarea{ font-family:"Montserrat"; font-size:15px; color:var(--ink); background:var(--card-bg); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; transition:border .3s; }
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--accent);}
.field textarea{resize:vertical; min-height:120px;}
.segmented{display:flex; gap:10px; flex-wrap:wrap;}
.segmented button{padding:12px 20px; border:1px solid var(--line); border-radius:var(--radius-btn); font-size:12px; letter-spacing:.08em; transition:all .3s; font-weight:500;}
.segmented button.on{background:var(--accent); color:var(--bg); border-color:var(--accent);}
.formnote{font-size:12px; color:var(--ink-soft); display:flex; align-items:center; gap:8px;}

/* FAQ */
.faq__item{border-top:1px solid var(--line);}
.faq__item:last-child{border-bottom:1px solid var(--line);}
.faq__q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 0; text-align:left; font-family:var(--disp); font-weight:var(--disp-w); font-size:clamp(18px,2vw,24px);}
.faq__q .pl{font-family:"Montserrat"; font-weight:300; font-size:24px; transition:transform .4s var(--ease); color:var(--accent-2);}
.faq__item.open .faq__q .pl{transform:rotate(45deg);}
.faq__a{overflow:hidden; max-height:0; transition:max-height .5s var(--ease);}
.faq__a p{padding:0 0 24px; max-width:64ch; color:var(--ink-soft); font-weight:300; font-size:15px;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--footer-bg); color:var(--footer-ink); padding-top:clamp(64px,8vw,110px);}
.footer a:hover{color:#fff;}
.footer__top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.12);}
.footer__brand .mark{height:80px; color:var(--sage); margin-bottom:22px;}
.footer__brand p{font-size:14px; font-weight:300; max-width:30ch; opacity:.85;}
.footer__col h5{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--sage); margin-bottom:20px; font-weight:600;}
.footer__col a,.footer__col p{display:block; font-size:14px; font-weight:300; padding:5px 0; opacity:.88;}
.footer__news input{width:100%; background:transparent; border:1px solid rgba(255,255,255,.2); border-radius:var(--radius); padding:13px 14px; color:#fff; font-family:"Montserrat"; font-size:13px; margin-bottom:12px;}
.footer__bottom{display:flex; justify-content:space-between; align-items:center; padding-block:28px; font-size:12px; letter-spacing:.06em; opacity:.7; flex-wrap:wrap; gap:14px;}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal{opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal.snap{transition:none;}
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}
.no-heromotion .kenburns{animation:none !important;}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none;} .kenburns,.hero__scroll .ln{animation:none;} }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .nav__links{display:none;}
  .nav__burger{display:flex;}
  .nav__phone{display:none;}
  .footer__top{grid-template-columns:1fr 1fr;}
}
@media (max-width:820px){
  .split,.aud,.amen,.decks,.form{grid-template-columns:1fr;}
  .split--rev .split__media{order:0;}
  .stats{grid-template-columns:1fr 1fr;}
  .space-row{grid-template-columns:1fr; gap:18px;}
  .space-row__media{aspect-ratio:16/10;}
  .incl{grid-template-columns:1fr;}
  .itin__row{grid-template-columns:1fr; gap:8px;}
  .gallery .g{grid-column:span 6 !important;}
  .footer__top{grid-template-columns:1fr;}
  .aud__card{min-height:440px;}
}
@media (max-width:560px){
  .stats{grid-template-columns:1fr 1fr;}
  .gallery .g{grid-column:span 12 !important;}
  .footer__bottom{flex-direction:column; text-align:center;}
}
