/* ============================================================
   WILD WINTER EXPEDITION - Design System
   Deep Navy dominant · Blood Red sparingly · Ice Blue / White for clarity
   ============================================================ */

:root{
  --navy:        #0E1A2B;   /* dominant brand colour */
  --navy-deep:   #060F1A;   /* deeper sections */
  --navy-soft:   #16273C;   /* raised surfaces */
  --red:         #C1272D;   /* blood red - CTA + intensity only */
  --red-bright:  #E23B34;
  --ice:         #A8C5D6;   /* ice blue */
  --ice-dim:     #6E8C9E;
  --white:       #F2F5F7;
  --white-pure:  #FFFFFF;
  --line:        rgba(168,197,214,.18);
  --shadow:      0 24px 60px rgba(0,0,0,.45);

  --display: "Anton", "Oswald", "Arial Narrow", sans-serif;
  --label: "Oswald", "Arial Narrow", sans-serif;
  --body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --wrap: 1200px;
  --gutter: clamp(20px, 5vw, 64px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--body);
  background:var(--navy);
  color:var(--white);
  line-height:1.65;
  overflow-x:hidden;
  font-size:17px;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ---------- Typography ---------- */
h1,h2,h3,h4{ font-family:var(--display); font-weight:700; line-height:1.06; letter-spacing:.015em; text-transform:uppercase; }
/* Keep the Anton display headings crisp and full-weight in Safari (which otherwise
   thins them via aggressive font-smoothing). Restores the vividness seen in Chrome. */
h1, h2, h3, h4, .display-xl, .display-lg, .display-md,
.day-title, .zz-body h3, .hero-winter, .final-statement, .pin-text h2, .sig-screen h2{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:auto;
  text-rendering:optimizeLegibility;
  -webkit-text-stroke:.012em currentColor;
}
.display-xl{ font-size:clamp(2.9rem, 7vw, 6.4rem); font-weight:700; letter-spacing:.01em; line-height:1.08; }
.display-lg{ font-size:clamp(2.6rem, 6.4vw, 5.4rem); font-weight:700; letter-spacing:.012em; line-height:1.1; }
.display-md{ font-size:clamp(1.9rem, 4.2vw, 3.4rem); font-weight:700; letter-spacing:.015em; line-height:1.14; }
.eyebrow{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.42em;
  font-size:.78rem; font-weight:500; color:var(--ice);
}
.eyebrow-lg{ font-size:clamp(1.1rem,2.4vw,1.8rem); letter-spacing:.16em; }
.hotel-label{ font-family:var(--label); text-transform:uppercase; letter-spacing:.14em; color:var(--white); font-size:clamp(1rem,1.8vw,1.3rem); margin-bottom:.9em; }
.hotel-stars{ display:flex; align-items:center; justify-content:flex-start; gap:.35em; margin-bottom:.7em; }
.hotel-stars svg{ width:clamp(18px,2vw,24px); height:clamp(18px,2vw,24px); fill:var(--red); flex:none; }
.hotel-stars-line{ height:1px; width:clamp(28px,5vw,64px); background:rgba(255,255,255,.35); }
.lede{ font-size:clamp(1.05rem,1.6vw,1.3rem); color:rgba(242,245,247,.86); max-width:60ch; }
p{ max-width:66ch; }
.muted{ color:rgba(242,245,247,.62); }

/* Brand signature line: MOUNTAIN · COLD · BREATH · SCIENCE */
.signature{
  font-family:var(--label); text-transform:uppercase;
  letter-spacing:.36em; font-size:.82rem; font-weight:500; color:var(--ice);
  display:flex; gap:.9em; flex-wrap:wrap; align-items:center;
}
.signature span{ white-space:nowrap; }
.signature .dot{ color:var(--red); }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding-inline:var(--gutter); }
section{ position:relative; }
.pad{ padding-block:clamp(72px, 12vw, 160px); }
.pad-sm{ padding-block:clamp(48px, 8vw, 96px); }

/* ---------- Header / Nav ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(6,15,26,.82); backdrop-filter:blur(12px);
  border-bottom-color:var(--line); padding:12px var(--gutter);
}
.brand{ font-family:var(--label); font-weight:700; text-transform:uppercase; letter-spacing:.14em; font-size:1.05rem; line-height:1; display:inline-flex; align-items:center; }
.brand img{ height:44px; width:auto; display:block; transition:height .4s ease; }
.site-header.scrolled .brand img{ height:38px; }
.brand-logo img{ height:15px; width:auto; display:block; transition:height .4s ease; max-width:min(42vw,380px); object-fit:contain; object-position:left center; filter:drop-shadow(0 1px 3px rgba(6,15,26,.55)); }
.site-header.scrolled .brand-logo img{ height:13px; filter:none; }
@media (max-width:900px){ .brand-logo img{ height:14px; max-width:58vw; } }
@media (max-width:600px){ .brand-logo img{ height:12px; max-width:62vw; } }
.nav{ display:flex; align-items:center; gap:clamp(18px,2.4vw,40px); }
.nav a.navlink{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.18em;
  font-size:.82rem; font-weight:500; color:rgba(242,245,247,.82);
  transition:color .25s;
}
.nav a.navlink:hover, .nav a.navlink.active{ color:var(--white); }
.nav a.navlink.active{ position:relative; }
.nav a.navlink.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-7px; height:2px; background:var(--red);
}
.btn{
  font-family:var(--label); text-transform:uppercase; letter-spacing:.16em;
  font-size:.82rem; font-weight:600;
  display:inline-flex; align-items:center; gap:.6em;
  padding:.85em 1.5em; border-radius:2px; cursor:pointer; border:1px solid transparent;
  transition:transform .2s, background .25s, border-color .25s, color .25s;
  white-space:nowrap;
}
.btn-red{ background:var(--red); color:var(--white-pure); }
.btn-red:hover{ background:var(--red-bright); transform:translateY(-2px); }
.btn-ghost{ border-color:rgba(168,197,214,.4); color:var(--white); background:transparent; }
.btn-ghost:hover{ border-color:var(--ice); background:rgba(168,197,214,.08); transform:translateY(-2px); }
.btn-lg{ padding:1.05em 2em; font-size:.9rem; }

.nav-toggle{ display:none; background:none; border:0; color:var(--white); cursor:pointer; padding:6px; }
.nav-toggle svg{ width:26px; height:26px; }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding-bottom:clamp(64px,9vh,110px); padding-top:120px; overflow:hidden;
}
/* On very wide/short screens, grow the split hero taller so the 16:9 photo isn't
   over-zoomed (which would push the group up into the text). */
.hero.hero-split{ min-height:max(100svh, 50vw); }
.hero-media{ position:absolute; inset:0; z-index:-2; }
.hero-media img, .hero-media video{ width:100%; height:100%; object-fit:cover; }
.hero.hero-split .hero-media img{ object-position:center bottom; transform:scale(1.04); transform-origin:center bottom; }
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(6,15,26,.55) 0%, rgba(6,15,26,.20) 35%, rgba(6,15,26,.85) 100%);
}
.hero.hero-split::after{
  background:linear-gradient(180deg, rgba(6,15,26,.5) 0%, rgba(6,15,26,.12) 30%, rgba(6,15,26,.12) 58%, rgba(6,15,26,.8) 100%);
}
.hero-inner{ max-width:900px; }
.hero.hero-center{ align-items:center; text-align:center; }
/* Split hero: WILD top, people visible middle, WINTER EXPEDITION + CTA bottom */
.hero.hero-split{ align-items:stretch; text-align:center; padding-top:96px; padding-bottom:clamp(40px,6vh,72px); }
.hero-split-inner{ display:flex; flex-direction:column; justify-content:space-between; width:100%; max-width:var(--wrap); margin:0 auto; }
.hero-top{ padding-top:clamp(40px,10vh,120px); display:flex; flex-direction:column; align-items:center; gap:.15em; }
.hero-wild img{ height:auto; width:min(52vw,760px); display:inline-block; }
.hero-winter{ font-family:var(--display); text-transform:uppercase; color:var(--white); font-size:clamp(1.4rem,4vw,3rem); letter-spacing:.14em; line-height:1; }
@media (max-width:700px){
  .hero-wild img{ width:78vw; }
  .hero.hero-split .hero-media img{ object-position:center 100%; transform:scale(1.15); transform-origin:center bottom; }
}
.hero-bottom{ display:flex; flex-direction:column; align-items:center; gap:1.1em; }
.hero-meta{ font-family:var(--label); text-transform:uppercase; letter-spacing:.22em; color:var(--ice); font-size:clamp(.72rem,1.4vw,.92rem); }
.hero.hero-center .hero-inner{ margin:0 auto; max-width:1000px; }
.hero.hero-center .cta-row{ justify-content:center; }
.hero.hero-center .signature{ justify-content:center; }
.hero.hero-center .lede{ margin-left:auto; margin-right:auto; }
.hero h1{ margin:.2em 0 .3em; }
.em-red{ color:var(--red); }
/* Varied-size hero title */
.hero-title{ display:flex; flex-direction:column; align-items:center; margin:.15em 0 .35em; line-height:.98; }
.hero-title .l1{ font-size:clamp(2rem,4.6vw,4rem); letter-spacing:.015em; }
.hero-title .l2{ font-size:clamp(4.6rem,13vw,11rem); line-height:.82; letter-spacing:.01em; margin:.02em 0; }
.hero-title .l2-logo{ margin:.12em 0 .14em; display:block; }
.hero-title .l2-logo img{ height:clamp(3.4rem,10vw,8.5rem); width:auto; display:inline-block; }
.hero-title .l3{ font-size:clamp(1.8rem,4vw,3.4rem); line-height:1.02; letter-spacing:.015em; margin-top:.04em; }
.hero.hero-center .hero-title{ align-items:center; }
.hero .kicker{ margin-bottom:1.4em; }
.hero .meta{
  font-family:var(--label); letter-spacing:.22em; text-transform:uppercase;
  font-size:.9rem; color:var(--ice); margin:1.1em 0 1.6em;
}
.hero .cta-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:1.8em; }
.hero .sig-wrap{ margin-top:clamp(28px,5vh,60px); }

/* scroll cue */
.scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:1;
  font-family:var(--display); letter-spacing:.3em; font-size:.62rem; color:rgba(242,245,247,.6);
  text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:8px; }
.scroll-cue .line{ width:1px; height:34px; background:linear-gradient(var(--ice),transparent); animation:cue 2s infinite; }
@keyframes cue{ 0%{opacity:.2; transform:scaleY(.4); transform-origin:top} 50%{opacity:1;transform:scaleY(1)} 100%{opacity:.2;transform:scaleY(.4);transform-origin:bottom} }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform .9s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Intro / prose blocks ---------- */
.prose-block{ max-width:760px; }
.prose-block p + p{ margin-top:1.1em; }
.section-head{ margin-bottom:clamp(32px,5vw,64px); }
.section-head .eyebrow{ display:block; margin-bottom:1em; }

/* ---------- Signature scroll moment (big statements over image) ---------- */
.signature-moment{ background:var(--navy-deep); }
.stmt{
  min-height:80vh; display:flex; align-items:center; justify-content:center; text-align:center;
  padding:12vh var(--gutter);
}
.stmt h2{ font-size:clamp(2.2rem,7vw,6rem); max-width:16ch; }
.stmt.final h2 .em{ color:var(--red); display:block; }

/* ---------- Experience pillars ---------- */
.pillar{
  display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(28px,5vw,80px);
  padding-block:clamp(40px,7vw,90px);
}
.pillar:nth-child(even) .pillar-media{ order:2; }
.pillar-media{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:3px; box-shadow:var(--shadow); }
.pillar-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.pillar-media img.focus-top{ object-position:center 18%; }
.pillar-media img.focus-upper{ object-position:center 30%; }
.pillar-media img.focus-bottom{ object-position:center 82%; }
.pillar-media img.focus-left{ object-position:30% center; }
.pillar:hover .pillar-media img{ transform:scale(1.05); }
.pillar-index{ font-family:var(--label); font-size:.9rem; letter-spacing:.3em; color:var(--red); font-weight:600; }
.pillar h3{ font-size:clamp(1.6rem,3vw,2.6rem); margin:.35em 0 .5em; }
.pillar .tag{ color:var(--ice); font-family:var(--label); letter-spacing:.2em; text-transform:uppercase; font-size:.85rem; margin-bottom:1em; display:block;}

/* ---------- Full-bleed contrast band ---------- */
.band{ position:relative; min-height:70vh; display:flex; align-items:center; overflow:hidden; }
.band-media{ position:absolute; inset:0; z-index:-2; }
.band-media img{ width:100%; height:100%; object-fit:cover; }
.band::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(6,15,26,.9) 0%, rgba(6,15,26,.5) 55%, rgba(6,15,26,.2) 100%); }
.band .wrap{ position:relative; }

/* ---------- Wild by day / luxury by night split ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.split-cell{ position:relative; min-height:64vh; display:flex; align-items:flex-end; overflow:hidden; }
.split-cell img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.4s ease; }
.split-cell:hover img{ transform:scale(1.06); }
.split-cell::after{ content:""; position:absolute; inset:0; z-index:-1; }
.split-cell.cold::after{ background:linear-gradient(180deg, rgba(6,15,26,.15), rgba(6,15,26,.8)); }
.split-cell.warm::after{ background:linear-gradient(180deg, rgba(20,10,4,.15), rgba(6,15,26,.82)); }
.split-cell .cell-body{ position:relative; padding:clamp(28px,4vw,56px); }
.split-cell h3{ font-size:clamp(1.8rem,3.4vw,3rem); }
.split-list{ list-style:none; margin-top:1em; font-family:var(--label); text-transform:uppercase; letter-spacing:.18em; font-size:.9rem; color:var(--ice); line-height:2.1; }

/* ---------- Experience grid (what you'll experience) ---------- */
.xgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:2px; background:var(--line); }
.xcard{ background:var(--navy); padding:clamp(26px,3vw,44px); min-height:220px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; }
.xcard .xnum{ font-family:var(--label); color:var(--red); letter-spacing:.2em; font-size:.8rem; font-weight:600; margin-bottom:auto; }
.xcard h4{ font-size:1.3rem; margin:.6em 0 .4em; }
.xcard p{ font-size:.95rem; color:rgba(242,245,247,.68); }

/* ---------- Included list ---------- */
.included{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px 40px; }
.included li{ list-style:none; padding-left:28px; position:relative; color:rgba(242,245,247,.86); }
.included li::before{ content:""; position:absolute; left:0; top:.7em; width:12px; height:2px; background:var(--red); }
/* Checkmark variant */
.included.checks{ grid-template-columns:repeat(3,1fr); gap:28px 40px; align-items:start; }
.included.checks li{ padding-left:34px; line-height:1.5; }
.included.checks li::before{ content:"✓"; top:0; left:0; width:auto; height:auto; background:none; color:var(--red); font-size:1.05rem; font-weight:700; font-family:var(--body); }
@media (max-width:820px){ .included.checks{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .included.checks{ grid-template-columns:1fr; } }

/* ---------- Price block ---------- */
.price-block{ text-align:center; }
.price-block .price{ font-family:var(--label); font-size:clamp(2.4rem,5vw,4rem); font-weight:700; line-height:1; }
.price-block .price small{ font-size:.28em; color:var(--ice); letter-spacing:.1em; display:inline-block; margin-left:.3em; vertical-align:super; }
.price-block .terms{ color:var(--ice); font-family:var(--label); letter-spacing:.14em; text-transform:uppercase; font-size:.86rem; margin-top:1em; }

/* ---------- Team ---------- */
.team-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); }
.member-media{ aspect-ratio:3/4; overflow:hidden; border-radius:3px; box-shadow:var(--shadow); }
.member-media img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.member .role{ color:var(--ice); font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:.82rem; margin:1.2em 0 .3em; }
.member h3{ font-size:clamp(1.6rem,3vw,2.4rem); }
.member .titles{ color:rgba(242,245,247,.6); font-size:.92rem; margin-bottom:1em; }
/* Wide member (mountain guide) */
.member-wide{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(28px,5vw,64px); align-items:center; }
.member-media-wide{ aspect-ratio:4/3; overflow:hidden; border-radius:3px; box-shadow:var(--shadow); }
.member-media-wide img{ width:100%; height:100%; object-fit:cover; }
.member-body .role{ color:var(--ice); font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:.82rem; margin-bottom:.3em; }
.member-body h3{ font-size:clamp(1.6rem,3vw,2.4rem); margin-bottom:.6em; }
.member-body em{ font-style:italic; color:var(--ice); }
@media (max-width:760px){ .member-wide{ grid-template-columns:1fr; } }

/* ---------- FAQ accordion ---------- */
.faq-cat{ font-family:var(--label); text-transform:uppercase; letter-spacing:.24em; color:var(--red); font-size:.9rem; margin:2.4em 0 1em; }
.faq-cat:first-of-type{ margin-top:0; }
.acc{ border-top:1px solid var(--line); }
.acc:last-child{ border-bottom:1px solid var(--line); }
.acc-q{
  width:100%; text-align:left; background:none; border:0; color:var(--white); cursor:pointer;
  font-family:var(--label); text-transform:uppercase; letter-spacing:.06em; font-size:clamp(1rem,1.6vw,1.2rem);
  padding:1.15em 44px 1.15em 0; position:relative; display:block;
}
.acc-q::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:1.5rem; color:var(--ice); transition:transform .3s; font-family:var(--body); }
.acc.open .acc-q::after{ content:"−"; }
.acc-a{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.acc-a-inner{ padding:0 44px 1.5em 0; color:rgba(242,245,247,.78); }
.acc-a-inner a{ color:var(--ice); text-decoration:underline; }

/* ---------- Booking / cards ---------- */
.book-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:8px; }
.book-card{ background:var(--navy-soft); border:1px solid var(--line); border-radius:4px; padding:clamp(28px,3.4vw,44px); display:flex; flex-direction:column; }
/* Room option toggle */
.room-option{ display:flex; align-items:center; gap:clamp(16px,3vw,32px); flex-wrap:wrap; background:var(--navy-soft); border:1px solid var(--line); border-radius:4px; padding:18px clamp(20px,3vw,32px); margin-bottom:20px; }
.room-option .room-label{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; font-size:.78rem; color:var(--ice); }
.room-choice{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-size:.98rem; color:var(--white); }
.room-choice input{ width:18px; height:18px; accent-color:var(--red); }
.room-choice em{ font-style:normal; color:var(--ice); margin-left:.3em; }
.book-card.featured{ border-color:rgba(193,39,45,.6); }
.book-card .tier{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; color:var(--ice); font-size:.86rem; }
.book-card .amt{ font-family:var(--label); font-size:clamp(2.4rem,5vw,3.6rem); font-weight:700; line-height:1; margin:.35em 0 .1em; }
.book-card .amt small{ font-size:.3em; color:var(--ice); letter-spacing:.06em; }
.book-card .note{ color:rgba(242,245,247,.68); font-size:.95rem; margin-bottom:1.6em; }
.book-card .btn{ margin-top:auto; justify-content:center; }
.consent{ display:flex; gap:12px; align-items:flex-start; margin:22px 0; font-size:.92rem; color:rgba(242,245,247,.78); }
.consent input{ margin-top:5px; width:18px; height:18px; accent-color:var(--red); flex:none; }
.consent a{ color:var(--ice); text-decoration:underline; }

/* ---------- Info rows (dates/location) ---------- */
.info-rows{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-cell{ background:var(--navy); padding:clamp(20px,2.4vw,32px); }
.info-cell .k{ font-family:var(--label); letter-spacing:.2em; text-transform:uppercase; font-size:.72rem; color:var(--ice); }
.info-cell .v{ font-family:var(--label); font-size:1.25rem; margin-top:.4em; text-transform:uppercase; }

/* ---------- CTA closer ---------- */
.closer{ position:relative; text-align:center; overflow:hidden; }
.closer-media{ position:absolute; inset:0; z-index:-2; }
.closer-media img{ width:100%; height:100%; object-fit:cover; }
.closer-media img.focus-face-low{ object-position:center 34%; }
.closer::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(6,15,26,.7), rgba(6,15,26,.9)); }
.closer h2{ font-size:clamp(2.2rem,6vw,5rem); }
.closer .tagline{ font-family:var(--label); letter-spacing:.3em; text-transform:uppercase; color:var(--ice); margin-top:1em; font-size:1rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy-deep); border-top:1px solid var(--line); padding-block:clamp(48px,7vw,80px); }
.footer-cols{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:clamp(32px,5vw,72px); }
.footer-brand img{ height:56px; width:auto; display:block; margin-bottom:1.2em; }
.footer-tagline{ color:rgba(242,245,247,.6); font-size:.95rem; max-width:38ch; line-height:1.6; }
.footer-col h4{ font-family:var(--label); text-transform:uppercase; letter-spacing:.2em; font-size:.78rem; color:var(--red); margin-bottom:1.2em; font-weight:600; }
.footer-col ul{ list-style:none; }
.footer-col li{ margin-bottom:.7em; }
.footer-col a{ font-family:var(--body); font-size:.98rem; color:rgba(242,245,247,.78); transition:color .2s; }
.footer-col a:hover{ color:var(--white); }
.footer-meta{ margin-top:clamp(40px,6vw,64px); padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:center; gap:20px; flex-wrap:wrap; font-size:.82rem; color:rgba(242,245,247,.5); text-align:center; }
.footer-min{ display:flex; gap:32px; flex-wrap:wrap; justify-content:center; }
.footer-min a{ font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; font-size:.85rem; color:rgba(242,245,247,.8); transition:color .2s; }
.footer-min a:hover{ color:var(--white); }
.footer-meta a{ color:rgba(242,245,247,.6); text-decoration:underline; }
.footer-meta a:hover{ color:var(--white); }
@media (max-width:760px){
  .footer-cols{ grid-template-columns:1fr 1fr; }
  .footer-brand-col{ grid-column:1 / -1; margin-bottom:8px; }
}
@media (max-width:440px){ .footer-cols{ grid-template-columns:1fr; } }

/* ---------- Scrolling gallery (marquee) ---------- */
.gallery-scroll{ overflow:hidden; padding:clamp(10px,2vw,20px) 0; background:var(--navy-deep); }
.gallery-track{ display:flex; gap:14px; width:max-content; animation:marquee 40s linear infinite; }
.gallery-scroll:hover .gallery-track{ animation-play-state:paused; }
.gallery-track figure{ margin:0; flex:none; width:clamp(220px,26vw,360px); aspect-ratio:4/3; overflow:hidden; border-radius:3px; }
.gallery-track img{ width:100%; height:100%; object-fit:cover; object-position:center 32%; }
.gallery-track img.g-focus-bottom{ object-position:center 80%; }
/* Portrait variant: taller frames for vertical phone photos so faces stay in frame */
.gallery-scroll.gallery-portrait .gallery-track figure{ width:clamp(200px,22vw,300px); aspect-ratio:3/4; }
.gallery-scroll.gallery-portrait .gallery-track img{ object-position:center 28%; }
.gallery-track img.g-focus-top{ object-position:center 12%; }
.gallery-track img.g-focus-center{ object-position:center center; }
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
@keyframes marquee-rev{ from{ transform:translateX(-50%);} to{ transform:translateX(0);} }
.gallery-track.reverse{ animation:marquee-rev 40s linear infinite; }
@media (prefers-reduced-motion: reduce){ .gallery-track{ animation:none; } }

/* ---------- Signature parallax (fixed video, text screens scroll past) ---------- */
.sig-parallax{ position:relative; background:var(--navy-deep); }
.sig-parallax-video{ position:sticky; top:0; height:100vh; overflow:hidden; z-index:0; }
.sig-parallax-video video{ width:100%; height:100%; object-fit:cover; }
.sig-parallax-video::after{ content:""; position:absolute; inset:0; background:rgba(6,15,26,.5); }
.sig-parallax-lines{ position:relative; z-index:1; margin-top:-100vh; }
.sig-screen{ min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:0 var(--gutter); }
.sig-screen h2{ font-size:clamp(2rem,6vw,5rem); line-height:1.05; max-width:18ch; color:var(--white); }
.sig-screen h2.sig-final{ color:var(--red); }
/* Single-line signature phrases: keep each on one line, scale with viewport width */
.sig-screen h2.sig-oneline{ max-width:none; white-space:nowrap; font-size:clamp(1.4rem,5.2vw,4.4rem); }

/* ---------- Final parallax (JS-driven, works on mobile like KILI48) ---------- */
.final-parallax{ position:relative; overflow:hidden; }
.final-parallax-bg{ position:absolute; top:0; left:0; width:100%; height:150%; z-index:0; will-change:transform; }
.final-parallax-bg img{ width:100%; height:100%; object-fit:cover; }
.final-parallax::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,15,26,.4), rgba(6,15,26,.55)); z-index:1; }
.final-parallax .final-screen{ position:relative; z-index:2; }
.final-screen{ min-height:58vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:11vh var(--gutter); }
.final-statement{ font-size:clamp(2.2rem,6vw,5.4rem); line-height:1.05; max-width:16ch; margin:0 auto; }
.wild-inline{ height:1.1em; width:auto; display:inline-block; margin:.14em 0; }
.final-sub{ font-family:var(--display); text-transform:uppercase; letter-spacing:.06em; color:var(--ice); font-size:clamp(1.1rem,2.4vw,1.8rem); margin:1.2em auto 0; }
.final-price{ display:flex; flex-direction:column; align-items:center; gap:.6em; }
.final-dates{ font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; color:var(--ice); font-size:clamp(1.1rem,2.4vw,1.8rem); }
.final-price .price{ font-family:var(--label); font-size:clamp(2.4rem,5vw,3.6rem); font-weight:700; line-height:1; }
.final-cta-row{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:1em; }

/* ---------- Hotel gallery (Recovery & Spa) ---------- */
.hotel-gallery{
  display:grid; gap:12px; margin-top:clamp(28px,4vw,48px);
  grid-template-columns:2fr 1fr;
  grid-template-areas:
    "pool pool"
    "aerial view"
    "room view";
}
.hotel-gallery figure{ position:relative; overflow:hidden; border-radius:3px; box-shadow:var(--shadow); margin:0; }
.hotel-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.hotel-gallery figure:hover img{ transform:scale(1.05); }
.hotel-gallery .g-pool{ grid-area:pool; aspect-ratio:16/7; }
.hotel-gallery .g-aerial{ grid-area:aerial; aspect-ratio:4/3; }
.hotel-gallery .g-view{ grid-area:view; aspect-ratio:3/5; }
.hotel-gallery .g-room{ grid-area:room; aspect-ratio:4/3; }
@media (max-width:700px){
  .hotel-gallery{ grid-template-columns:1fr 1fr; grid-template-areas:"pool pool" "aerial room" "view view"; }
  .hotel-gallery .g-pool{ aspect-ratio:16/9; }
  .hotel-gallery .g-view{ aspect-ratio:16/9; }
}

/* ---------- Food gallery ---------- */
.food-gallery{
  display:grid; gap:12px; margin-top:clamp(28px,4vw,48px);
  grid-template-columns:1fr 1fr 1fr;
  grid-template-areas:
    "table table table"
    "tartare pasta pizza";
}
.food-gallery figure{ position:relative; overflow:hidden; border-radius:3px; box-shadow:var(--shadow); margin:0; }
.food-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.food-gallery figure:hover img{ transform:scale(1.05); }
.food-gallery .f-table{ grid-area:table; aspect-ratio:16/8; }
.food-gallery .f-tartare{ grid-area:tartare; aspect-ratio:4/5; }
.food-gallery .f-pasta{ grid-area:pasta; aspect-ratio:4/5; }
.food-gallery .f-pizza{ grid-area:pizza; aspect-ratio:4/5; }
.food-gallery .f-pizza img{ object-position:center 92%; }
@media (max-width:700px){
  .food-gallery{ grid-template-columns:1fr 1fr; grid-template-areas:"table table" "tartare pasta" "pizza pizza"; }
  .food-gallery .f-table{ aspect-ratio:16/9; }
  .food-gallery .f-pizza{ aspect-ratio:16/9; }
}

/* ---------- Contact form ---------- */
.contact-form{ max-width:620px; margin-top:clamp(24px,4vw,40px); }
.contact-form .field{ margin-bottom:20px; }
.contact-form label{ display:block; font-family:var(--label); text-transform:uppercase; letter-spacing:.18em; font-size:.76rem; color:var(--ice); margin-bottom:8px; }
.contact-form input, .contact-form textarea{
  width:100%; background:var(--navy-soft); border:1px solid var(--line); border-radius:3px;
  color:var(--white); font-family:var(--body); font-size:1rem; padding:14px 16px; transition:border-color .25s;
}
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color:var(--ice); }
.contact-form textarea{ min-height:150px; resize:vertical; }
.form-note{ color:rgba(242,245,247,.55); font-size:.86rem; margin-top:14px; }

/* ---------- Legal pages ---------- */
.legal{ max-width:820px; }
.legal h1{ margin-bottom:.4em; }
.legal h2{ font-size:1.3rem; margin:2em 0 .6em; color:var(--ice); letter-spacing:.04em; }
.legal p, .legal li{ color:rgba(242,245,247,.82); font-size:.98rem; }
.legal ul{ margin:.6em 0 .6em 1.2em; }
.legal li{ margin-bottom:.4em; }
.legal .updated{ color:rgba(242,245,247,.5); font-size:.86rem; }

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .nav .navlink, .nav .btn{ display:none; }
  .nav-toggle{ display:block; }
  .mobile-open .nav{ position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:stretch;
    background:rgba(6,15,26,.97); backdrop-filter:blur(14px); padding:20px var(--gutter) 32px; gap:4px; border-bottom:1px solid var(--line); }
  .mobile-open .nav .navlink{ display:block; padding:14px 0; border-bottom:1px solid var(--line); font-size:1rem; }
  .mobile-open .nav .btn{ display:inline-flex; margin-top:16px; justify-content:center; }
  .pillar{ grid-template-columns:1fr; }
  .pillar:nth-child(even) .pillar-media{ order:0; }
  .pillar-media{ aspect-ratio:16/11; }
  .split{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; gap:40px; }
  .book-grid{ grid-template-columns:1fr; }
}

/* ---------- Expedition day-by-day program ---------- */
.program-intro{ padding:clamp(56px,9vw,110px) 0 clamp(30px,5vw,60px); }
.program-intro .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,72px); align-items:start; }
.program-intro .muted-lg{ color:var(--ice); font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.7; }
.program-intro .muted-lg p+p{ margin-top:1em; }
.journey-track{ display:flex; gap:0; margin-top:clamp(28px,4vw,48px); }
.journey-step{ flex:1; position:relative; padding-top:20px; text-align:left; }
.journey-step::before{ content:""; position:absolute; top:5px; left:0; width:11px; height:11px; border-radius:50%; background:var(--red); }
.journey-step::after{ content:""; position:absolute; top:10px; left:11px; right:0; height:1px; background:var(--line); }
.journey-step:last-child::after{ display:none; }
.journey-step span{ font-family:var(--label); text-transform:uppercase; letter-spacing:.12em; font-size:clamp(.62rem,1vw,.75rem); color:var(--ice-dim); }
@media (max-width:760px){
  .program-intro .grid2{ grid-template-columns:1fr; }
  .journey-track{ flex-wrap:wrap; gap:14px 0; }
  .journey-step{ flex:0 0 33.33%; }
}

.day-row{ display:grid; grid-template-columns:1fr 1fr; min-height:clamp(460px,70vh,760px); }
.day-row.dark{ background:var(--navy-deep); }
.day-row.light{ background:var(--white); color:var(--navy); }
.day-media{ position:relative; overflow:hidden; }
.day-media img, .day-media video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.day-media img.focus-people{ object-position:center 82%; }
.day-body{ display:flex; flex-direction:column; justify-content:center; padding:clamp(36px,6vw,88px); }
.day-eyebrow{ font-family:var(--label); text-transform:uppercase; letter-spacing:.18em; color:var(--red-bright); font-size:clamp(.7rem,1.1vw,.82rem); margin-bottom:.8em; }
.day-title{ font-family:var(--display); text-transform:uppercase; line-height:.98; font-size:clamp(2rem,4.4vw,3.6rem); }
.day-sub{ font-family:var(--label); font-weight:500; font-size:clamp(1rem,1.7vw,1.35rem); margin-top:.5em; opacity:.75; }
.day-text{ margin-top:1.4em; font-size:clamp(.95rem,1.2vw,1.05rem); line-height:1.7; }
.day-row.light .day-text{ color:#3a4a5c; }
.day-row.dark .day-text{ color:var(--ice); }
.day-text p+p{ margin-top:.9em; }
.day-quote{ margin-top:1.5em; font-family:var(--label); font-weight:600; font-size:clamp(1.1rem,1.9vw,1.5rem); line-height:1.25; }
.day-row.light .day-quote{ color:var(--navy); }
.day-row.dark .day-quote{ color:var(--white); }
/* zig-zag: even rows put media on the right */
.day-row.media-right .day-media{ order:2; }
.day-row.media-right .day-body{ order:1; }
@media (max-width:820px){
  .day-row{ grid-template-columns:1fr; }
  .day-media{ min-height:56vw; order:0 !important; }
  .day-body{ order:0 !important; }
}

/* One-rule band */
.one-rule{ padding:clamp(60px,10vw,140px) 0; text-align:center; }
.one-rule .display-md{ max-width:16ch; margin:0 auto; }

/* ---------- Pinned parallax band (KILI-style: bg fixed while text scrolls) ---------- */
.pin-band{ position:relative; }
.pin-band-bg{ position:absolute; inset:0; overflow:hidden; z-index:0; }
.pin-band-bg img{ position:absolute; top:0; left:0; width:100%; height:130%; object-fit:cover; will-change:transform; }
.pin-band::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(6,15,26,.55), rgba(6,15,26,.35) 45%, rgba(6,15,26,.7)); }
.pin-band > .wrap{ position:relative; z-index:2; }
.pin-band .pin-inner{ min-height:88vh; display:flex; align-items:center; }
.pin-band .pin-text{ max-width:820px; }
.pin-band .pin-text h2{ font-size:clamp(2rem,5vw,4.4rem); line-height:1.02; }

/* ---------- KILI-style team members (zig-zag) ---------- */
.team-lead{ padding:clamp(50px,7vw,90px) 0 clamp(10px,2vw,24px); text-align:center; }
.member-zz{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:center; padding:clamp(36px,6vw,80px) 0; }
.member-zz .zz-media{ position:relative; }
.member-zz .zz-media img{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; border-radius:4px; box-shadow:var(--shadow); }
.member-zz .zz-media img.focus-top{ object-position:center 8%; }
.member-zz .zz-media img.focus-topleft{ object-position:22% 18%; }
.member-zz.flip .zz-media{ order:2; }
.member-zz.flip .zz-body{ order:1; }
.zz-role{ font-family:var(--label); text-transform:uppercase; letter-spacing:.16em; color:var(--red-bright); font-size:clamp(.68rem,1vw,.8rem); margin-bottom:.6em; }
.zz-body h3{ font-family:var(--display); text-transform:uppercase; font-size:clamp(1.8rem,3.4vw,3rem); line-height:1; margin-bottom:.2em; }
.zz-titles{ font-family:var(--label); letter-spacing:.06em; color:var(--ice); font-size:clamp(.85rem,1.3vw,1rem); margin-bottom:1em; }
.zz-body p{ color:var(--ice); line-height:1.7; font-size:clamp(.95rem,1.2vw,1.02rem); }
.zz-body p+p{ margin-top:.85em; }
.zz-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:1.2em; }
.zz-tag{ font-family:var(--label); text-transform:uppercase; letter-spacing:.1em; font-size:.64rem; color:var(--ice); border:1px solid var(--line); border-radius:20px; padding:5px 12px; }
.zz-quote{ margin-top:1.3em; padding-left:16px; border-left:3px solid var(--red); font-style:italic; color:var(--white); font-size:clamp(.95rem,1.3vw,1.08rem); }
@media (max-width:820px){
  .member-zz{ grid-template-columns:1fr; gap:22px; }
  .member-zz.flip .zz-media{ order:0; }
  .member-zz.flip .zz-body{ order:0; }
  .member-zz .zz-media img{ aspect-ratio:4/3; }
}

/* Team page heading: one line, centered, scales to fit */
.team-heading{ font-family:var(--display); text-transform:uppercase; white-space:nowrap; font-size:clamp(1.15rem,6.3vw,5rem); line-height:1.05; letter-spacing:.02em; }
