/* ============================================================
   Awesome Experiences — bespoke Home, matched to William's
   AX Gen 2 template (the attachment).
   Header pine #00302B · Trip Builder navy #001D41 · accent green #56AD6D
   Hero/nav: bold uppercase Inter · tagline: Instrument Serif · body: Inter
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* Official AX Gen 2 palette (handover Section 6) */
  --pine:#377347; --pine-2:#2d6039; --navy:#2d6039; --navy-2:#24502f;
  --green:#56AD6D; --green-d:#3D804C; --title:#3D804C; --orange:#49828f;
  --blue:#49828f; --blue-h:#237da3; --panel:#3F3F3F; --grey:#D3D8DB;
  --ink:#23302a; --muted:#5d6b63; --faint:#9aa39d;
  --bg:#fff; --bg-2:#f5f8f6; --surface:#eef2ef; --border:#e6ece8;
  --display:Georgia,"Times New Roman",serif;
  --head:"Open Sans",system-ui,sans-serif;
  --sans:"Open Sans",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:"Open Sans",ui-monospace,Menlo,monospace;
  --maxw:1280px; --gut:clamp(20px,5vw,68px); --r:12px;
  --shadow:0 22px 60px -22px rgba(34,70,48,.30);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);}
.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.32em;font-size:11px;color:var(--blue);font-weight:600;display:inline-block;margin-bottom:14px;}
/* strapline = Open Sans uppercase, weight 525, wide tracking (Section 6) */
.h-display{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.03;}
/* serif tagline */
.serif{font-family:var(--display);font-weight:400;letter-spacing:-.01em;line-height:1.1;}
.lede{font-size:clamp(1rem,1.4vw,1.16rem);color:var(--muted);}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--head);font-weight:600;font-size:14px;
  text-transform:uppercase;letter-spacing:.06em;padding:.9em 1.7em;border-radius:8px;border:1.5px solid transparent;cursor:pointer;
  transition:transform .18s,background-color .2s,border-color .2s,box-shadow .2s;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:linear-gradient(180deg,#62bb7c 0%,var(--green) 55%,#4ea163 100%);color:#fff;
  box-shadow:0 14px 32px -10px rgba(86,173,109,.75),inset 0 1px 0 rgba(255,255,255,.32);}
.btn-primary:hover{background:linear-gradient(180deg,var(--green) 0%,var(--green-d) 100%);
  box-shadow:0 18px 40px -10px rgba(86,173,109,.9),inset 0 1px 0 rgba(255,255,255,.32);}
.btn-quote{display:inline-flex;align-items:center;gap:11px;background:var(--green);border-color:var(--green);color:#fff!important;font-weight:700;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:12px 28px;line-height:1;white-space:nowrap;border-radius:9px;box-shadow:0 8px 20px -8px rgba(0,0,0,.4);}
/* boarding-pass cue: plane glyph + a perforated divider (evenly balanced spacing) */
.btn-quote::before{content:"\2708\FE0E";font-size:12px;line-height:1;display:inline-block;transform:translateY(.5px);padding-right:10px;border-right:1.5px dashed rgba(255,255,255,.55);transition:border-color .2s;}
.btn-quote:hover{background:var(--green-d);border-color:var(--green-d);color:#fff!important;}
.btn-quote:hover::before{border-right-color:rgba(255,255,255,.6);}
/* boarding-pass accent for quote/contact CTAs (a "ticket" cue on conversion moments) */
.btn-pass::before{content:"\2708\FE0E";font-size:.92em;line-height:1;padding-right:.7em;margin-right:.05em;border-right:1.5px dashed currentColor;opacity:.65;}
.btn-outline{background:rgba(255,255,255,.14);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);
  border-color:rgba(255,255,255,.55);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 10px 26px -14px rgba(0,0,0,.45);}
.btn-outline:hover{background:rgba(255,255,255,.26);border-color:#fff;}
@media (prefers-reduced-transparency:reduce){.btn-outline{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(40,70,52,.72);}}

/* ---- header (transparent over hero -> solid green on scroll) ---- */
header.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:#fff;box-shadow:0 2px 18px -12px rgba(0,0,0,.2);transition:box-shadow .35s ease;}
header.nav.scrolled{background:#fff;box-shadow:0 6px 26px -14px rgba(0,0,0,.22);}
.nav .wrap{display:flex;align-items:center;gap:24px;height:74px;}
.nav .wrap>a{flex-shrink:0;}
.nav .logo{height:44px;width:auto;flex-shrink:0;object-fit:contain;}
.nav .tag{display:none;}
.nav nav{display:flex;gap:22px;margin-left:auto;align-items:center;}
.nav nav a{font-family:var(--head);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#2c4034;position:relative;padding:5px 0;}
header.nav.scrolled nav a{text-shadow:none;}
.nav nav a:not(.btn-quote)::after{content:"";position:absolute;left:50%;right:50%;bottom:-2px;height:2px;background:var(--green);transition:left .2s,right .2s;}
.nav nav a:hover{color:var(--pine);}.nav nav a:not(.btn-quote):hover::after{left:0;right:0;}

/* ---- hero ---- */
.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:kenburns 26s ease-in-out infinite alternate;}
@keyframes kenburns{from{transform:scale(1.03)}to{transform:scale(1.13)}}

/* scroll-reveal: elements fade + rise as they enter the viewport */
.reveal{opacity:0;transform:translateY(36px) scale(.984);filter:blur(7px);
  transition:opacity .85s ease, transform .95s cubic-bezier(.16,1,.3,1), filter .85s ease;
  transition-delay:var(--d,0s);will-change:opacity,transform,filter;}
.reveal.in{opacity:1;transform:none;filter:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;filter:none;transition:none;}}
.hero::after{content:"";position:absolute;inset:0;background:none;}
/* filmic grain overlay — reads as expensive, near-zero cost, static (motion-safe) */
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E");
  background-size:180px 180px;}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(48px,9vh,96px);padding-bottom:clamp(72px,13vh,150px);}
.hero .eyebrow,.hero h1,.hero p,.hero .cta-row{opacity:0;transform:translateY(22px);animation:heroIn .9s cubic-bezier(.16,1,.3,1) forwards;}
.hero h1{animation-delay:.12s}.hero p{animation-delay:.24s}.hero .cta-row{animation-delay:.36s}
@keyframes heroIn{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hero .bg{animation:none}.hero .eyebrow,.hero h1,.hero p,.hero .cta-row{opacity:1;transform:none;animation:none}}
.hero h1{color:#fff;font-size:clamp(2.5rem,5.2vw,4.6rem);max-width:16ch;text-shadow:0 2px 30px rgba(0,0,0,.3);}
.hero p{color:rgba(255,255,255,.92);margin-top:18px;font-size:clamp(1.05rem,1.6vw,1.28rem);max-width:46ch;}
.hero .cta-row{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}

/* ---- category tiles (image + pine label bar, per template) ---- */
section.block{padding-block:clamp(52px,7vw,92px);}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.cat{border-radius:var(--r);overflow:hidden;background:var(--pine);box-shadow:0 1px 2px rgba(0,32,28,.08);transition:transform .3s,box-shadow .3s;display:block;}
.cat:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.cat .img{aspect-ratio:1/1;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.cat:hover .img{transform:scale(1.06);}
.cat .lab{padding:14px 12px;text-align:center;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:#fff;}

/* ---- bespoke line + trip builder (navy panel, per template) ---- */
.pitch{text-align:center;max-width:760px;margin:0 auto clamp(26px,4vw,40px);}
.pitch h2{font-size:clamp(2rem,3.6vw,3rem);color:var(--title);font-weight:510;}
.pitch p{margin-top:12px;color:var(--muted);font-size:1.08rem;}
.tb{background:var(--navy);border-radius:18px;padding:clamp(26px,3.4vw,44px);color:#fff;max-width:1000px;margin:0 auto;box-shadow:var(--shadow);}
.tb .lab{text-align:center;font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.3rem,2.4vw,1.8rem);margin-bottom:6px;}
.tb .sub{text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:22px;}
.tb form{display:flex;flex-direction:column;gap:12px;}
.tb .selects{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.tb .f{position:relative;}
.tb select{width:100%;appearance:none;-webkit-appearance:none;background:#fff;border:none;border-radius:9px;padding:15px 42px 15px 16px;font-family:var(--sans);font-size:14.5px;color:var(--ink);cursor:pointer;}
.tb .f::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-65%) rotate(45deg);pointer-events:none;}
.tb .paste{display:flex;gap:12px;flex-wrap:wrap;}
.tb .paste input{flex:1;min-width:240px;border:none;border-radius:9px;padding:15px 16px;font-family:var(--sans);font-size:14.5px;color:var(--ink);}
.tb .paste input::placeholder{color:#9aa0a0;}
.tb .go{align-self:stretch;}

/* ---- AI TripBuilder ambient video stage ---- */
.tb-stage{position:relative;overflow:hidden;isolation:isolate;background:#0c1c14;}
section.block.tb-stage{padding-block:clamp(27px,3.5vw,45px);}
.tb-stage .tb-bg{position:absolute;inset:0;z-index:0;overflow:hidden;opacity:0;transition:opacity 1.1s ease;}
.tb-stage.tb-bg-on .tb-bg{opacity:1;}
.tb-stage .tb-bg #tbBgVid{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%) scale(1.06);border:0;pointer-events:none;filter:blur(1px) brightness(1.08) saturate(1.02);}
.tb-stage .tb-bg-scrim{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:none;}
.tb-stage>.wrap{position:relative;z-index:1;}
.tb-stage .pitch{margin-bottom:clamp(18px,2.6vw,28px);}
.tb-stage .pitch h2{color:#fff;text-shadow:0 2px 22px rgba(0,0,0,.55);}
.tb-stage .pitch p{color:rgba(255,255,255,.9);text-shadow:0 1px 12px rgba(0,0,0,.5);}
@media(prefers-reduced-motion:reduce){.tb-stage .tb-bg{display:none;}.tb-stage{background:linear-gradient(160deg,#1d4a31,#0c1c14);}.tb-stage .pitch h2{color:#fff;}.tb-stage .pitch p{color:rgba(255,255,255,.82);}}

/* ---- "inspiring your travels" — featured trips ---- */
.alt{background:var(--bg-2);}
/* free-guide band: soft light-green so it stands out from neighbouring white/grey sections */
.course-band{background:linear-gradient(180deg,#edf6f0 0%,#dff0e6 100%);}
.sec-head{text-align:center;margin-bottom:clamp(28px,4vw,44px);}
.sec-head .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.3em;font-size:11px;color:var(--blue);font-weight:600;}
.sec-head h2{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.7rem,3vw,2.4rem);color:var(--title);margin-top:8px;}
.tours{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:1040px){.tours{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.tours{grid-template-columns:1fr;}}
.tour{border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--border);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s;}
.tour:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.tour .ph{aspect-ratio:16/10;background-size:cover;background-position:center;}
.tour .body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:9px;flex:1;}
.tour .k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);}
.tour h3{font-family:var(--display);font-size:1.4rem;color:var(--title);line-height:1.15;}
.tour .meta{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;padding-top:8px;}
.tour .price{font-family:var(--head);font-weight:700;font-size:1.5rem;color:var(--title);}
.tour .price small{font-family:var(--sans);font-size:11px;color:var(--faint);display:block;font-weight:500;}
.tour .price small.lead{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;color:var(--green-d);margin-bottom:1px;}
.tour .go{font-family:var(--head);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--green-d);}

/* ---- CTA + footer ---- */
/* Lighter overlay (client request 2026-06-29): the bottom CTA was "virtually black";
   let the sunset photo through while keeping the white text legible via text-shadow. */
.cta{background:url('/assets/userfiles/phu-quoc-sunset.jpg') center/cover;background-attachment:scroll;color:#fff;text-align:center;padding-block:clamp(69px,8.8vw,118px)!important;}
/* R2-8: CTA heading + subtext on one line (desktop); wrap gracefully on mobile */
.cta h2{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(1.7rem,3vw,2.5rem);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.4);white-space:nowrap;}
.cta p{color:rgba(255,255,255,.92);margin:14px auto 30px;max-width:none;font-size:1.06rem;text-shadow:0 1px 10px rgba(0,0,0,.3);white-space:nowrap;}
@media(max-width:820px){.cta h2{white-space:normal;font-size:1.85rem;}.cta p{white-space:normal;max-width:44ch;font-size:1rem;}}
footer.ft{background:linear-gradient(180deg,#2f6640 0%,#21482d 100%);color:rgba(255,255,255,.72);font-size:13.5px;position:relative;}
footer.ft::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#56AD6D,#49828f 55%,#237da3);}
footer.ft .wrap{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-block:clamp(42px,6vw,66px);}
footer.ft h4{font-family:var(--head);font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.5);margin-bottom:14px;font-weight:700;}
footer.ft a{display:block;color:rgba(255,255,255,.78);padding:5px 0;}
footer.ft a:hover{color:#fff;}
footer.ft .logo{height:38px;width:auto;display:inline-block;margin-bottom:14px;}
.subfoot{border-top:1px solid rgba(255,255,255,.12);}
.subfoot .wrap{display:flex;justify-content:space-between;gap:18px;padding-block:16px;font-size:12px;color:rgba(255,255,255,.5);flex-wrap:wrap;}

/* ---- responsive ---- */
@media (max-width:920px){
  .cats{grid-template-columns:repeat(2,1fr);}
  .tb .selects{grid-template-columns:1fr;}
  .tours{grid-template-columns:1fr;}
  footer.ft .wrap{grid-template-columns:1fr 1fr;}
  .nav .tag{display:none;}
}
/* Mobile hamburger nav — CSS-only checkbox toggle (no JS, works all browsers) */
.nav-burger{display:none;}
@media (max-width:900px){
  .nav .wrap{height:64px;position:relative;gap:14px;}
  .nav .logo{height:36px;}
  .nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;margin-left:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  .nav-burger span{display:block;width:25px;height:2px;margin:0 auto;border-radius:2px;background:var(--pine);transition:transform .25s ease,opacity .2s ease;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .nav nav{display:none;}
  .nav-toggle:checked ~ nav{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:64px;left:0;right:0;margin:0;background:#fff;padding:6px 22px 18px;box-shadow:0 22px 34px -18px rgba(0,0,0,.34);border-top:1px solid #eef2ef;max-height:calc(100dvh - 64px);overflow:auto;}
  .nav nav a{font-size:14px;letter-spacing:.04em;padding:14px 2px;border-bottom:1px solid #f0f3f1;color:#243029;}
  .nav nav a:not(.btn-quote)::after{display:none;}
  .nav nav a.btn-quote{margin-top:14px;text-align:center;border-bottom:none;padding:14px 20px;}
}

/* accreditation badges (BA Appointed Operator + PTS) in the footer */
.accred-img{width:clamp(230px,90%,272px);height:auto;margin:18px 0 0;display:block;background:#fff;border-radius:10px;padding:11px 16px;box-shadow:0 10px 24px -12px rgba(0,0,0,.5);}
.ft .legal{margin-top:14px;font-size:12px;color:rgba(255,255,255,.5);}

/* ============================================================
   PREMIUM PASS — depth · glass · motion (editorial luxury)
   ============================================================ */
/* hero content gently parallaxes + fades as it exits (CSS scroll-driven) */
@supports (animation-timeline: view()){
  .hero .wrap{animation:heroPar linear both;animation-timeline:view();animation-range:exit -5% exit 95%;}
  @keyframes heroPar{to{opacity:.2;transform:translateY(-46px);}}
}
@media(prefers-reduced-motion:reduce){.hero .wrap{animation:none!important;}}

/* category tiles -> premium bento with glass labels */
.cats{grid-template-columns:repeat(4,1fr);gap:16px;}
.cat{position:relative;aspect-ratio:1/1;border-radius:16px;box-shadow:0 20px 46px -26px rgba(20,45,30,.5);}
.cat .img{position:absolute;inset:0;height:100%;aspect-ratio:auto;}
.cat::after{content:"";position:absolute;inset:0;z-index:1;background:none;transition:background .45s ease;}
.cat:hover::after{background:none;}
.cat .lab{position:absolute;left:12px;right:auto;bottom:12px;max-width:calc(100% - 24px);z-index:2;display:inline-flex;align-items:center;gap:8px;
  padding:8px 13px;text-align:left;border-radius:10px;font-size:12.5px;font-weight:600;letter-spacing:.06em;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.34);
  -webkit-backdrop-filter:blur(14px) saturate(155%);backdrop-filter:blur(14px) saturate(155%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 12px 24px -16px rgba(0,0,0,.6);
  transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s;}
.cat:hover .lab{transform:translateY(-3px);}
.cat .lab::after{content:"\2192";font-weight:400;opacity:.9;transition:transform .35s ease;}
.cat:hover .lab::after{transform:translateX(6px);}
@media (prefers-reduced-transparency:reduce){.cat .lab{background:rgba(45,80,50,.94);backdrop-filter:none;-webkit-backdrop-filter:none;}}

/* AI TripBuilder -> high-tech command console */
.tb{position:relative;overflow:hidden;border-radius:20px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='150'%3E%3Cg fill='none' stroke='%2356ad6d' stroke-opacity='0.4'%3E%3Cpath d='M16,126 C120,18 250,18 338,104' stroke-width='1.5' stroke-dasharray='1 9' stroke-linecap='round'/%3E%3C/g%3E%3Ccircle cx='16' cy='126' r='3.5' fill='%2356ad6d' fill-opacity='0.5'/%3E%3Cpath d='M338,104 l-12,-3 l4,5 l-4,5 z' fill='%2356ad6d' fill-opacity='0.6'/%3E%3C/svg%3E") no-repeat right 6% top 16% / 340px auto,
    radial-gradient(130% 150% at 88% -12%,rgba(86,173,109,.24),transparent 56%),
    linear-gradient(165deg,#0d2c1f 0%,#0a2017 58%,#08190f 100%);
  border:1px solid rgba(86,173,109,.30);
  box-shadow:0 46px 100px -42px rgba(0,40,24,.85),inset 0 1px 0 rgba(255,255,255,.06);}
/* faint tech grid, fading out from the centre */
.tb::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.6;
  background-image:linear-gradient(rgba(86,173,109,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(86,173,109,.08) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(circle at 50% 26%,#000 38%,transparent 82%);mask-image:radial-gradient(circle at 50% 26%,#000 38%,transparent 82%);}
/* glowing top hairline */
.tb::after{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(86,173,109,.9),transparent);}
.tb form,.tb .lab,.tb .sub{position:relative;z-index:1;}
/* live indicator + title */
.tb .lab{display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;}
.tb .lab::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 12px rgba(86,173,109,.9);animation:tbPulse 2.2s ease-out infinite;}
@keyframes tbPulse{0%{box-shadow:0 0 0 0 rgba(86,173,109,.55)}70%{box-shadow:0 0 0 11px rgba(86,173,109,0)}100%{box-shadow:0 0 0 0 rgba(86,173,109,0)}}
@media(prefers-reduced-motion:reduce){.tb .lab::before{animation:none;}}
/* step badge */
.tb .sub{display:inline-block;margin:8px auto 24px;padding:5px 14px;border-radius:999px;
  border:1px solid rgba(86,173,109,.4);background:rgba(86,173,109,.1);color:#bfe6cb;}
/* dark glass inputs that read as a console */
.tb select,.tb .paste input{background:rgba(255,255,255,.055);color:#eaf5ee;border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:border-color .2s,box-shadow .2s;}
.tb .paste input::placeholder{color:rgba(234,245,238,.45);}
.tb .f::after{border-color:rgba(191,230,203,.7);}
.tb select:focus,.tb .paste input:focus{outline:none;border-color:rgba(86,173,109,.85);
  box-shadow:0 0 0 3px rgba(86,173,109,.22),0 0 22px -4px rgba(86,173,109,.55);}
.tb select option{background:#0d2c1f;color:#eaf5ee;}

/* ---- AI TripBuilder: premium command deck (form + live boarding pass) ---- */
.tb{max-width:1080px;}
.tb-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.6fr .9fr;gap:clamp(20px,2.6vw,40px);align-items:stretch;}
@media(max-width:820px){.tb-grid{grid-template-columns:1fr;}}
.tb-main{min-width:0;}
.tb-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;}
.tb-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#bfe6cb;background:rgba(86,173,109,.12);border:1px solid rgba(86,173,109,.34);border-radius:999px;padding:5px 12px;}
.tb-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(86,173,109,.9);animation:tbPulse 2.2s ease-out infinite;}
@media(prefers-reduced-motion:reduce){.tb-dot{animation:none;}}
.tb-rail{display:flex;gap:5px;align-items:center;}
.tb-rail i{width:13px;height:4px;border-radius:999px;background:rgba(255,255,255,.16);transition:width .3s,background .3s;}
.tb-rail i.on{background:var(--green);box-shadow:0 0 8px rgba(86,173,109,.7);width:22px;}
@media(max-width:560px){.tb-rail{display:none;}}
/* title + step badge: left-aligned in the deck, single dot lives in the chip */
.tb .lab{justify-content:flex-start;text-align:left;gap:0;}
.tb .lab::before{display:none;}
.tb .sub{margin:10px 0 22px;}
/* field micro-labels + chevron anchored to the select (not the label) */
.tb .f .fl{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:rgba(191,230,203,.72);margin:0 0 6px;font-weight:600;}
.tb .f::after{top:auto;bottom:20px;}
/* live boarding-pass preview */
.tb-pass{position:relative;display:flex;flex-direction:column;border-radius:16px;color:#eaf5ee;padding:17px 18px 15px;
  background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.17);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 22px 54px -32px rgba(0,0,0,.85);}
.pass-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(191,230,203,.85);}
.pass-cls{color:var(--green);font-weight:700;}
.pass-route{display:flex;align-items:center;gap:10px;margin:15px 0 2px;}
.pass-route .pt b{display:block;font-family:var(--head);font-size:1.45rem;line-height:1;color:#fff;letter-spacing:.01em;}
.pass-route .pt span{font-size:10px;color:rgba(234,245,238,.6);letter-spacing:.03em;}
.pass-route .pt.r{text-align:right;margin-left:auto;}
.pass-fly{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-width:46px;height:20px;}
.pass-line{position:absolute;left:2px;right:2px;top:50%;border-top:1.5px dashed rgba(191,230,203,.42);}
.pass-plane{position:relative;font-size:14px;line-height:1;color:var(--green);}
.pass-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0 2px;}
.pass-meta span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(191,230,203,.6);margin-bottom:3px;}
.pass-meta b{font-size:13.5px;color:#fff;font-weight:700;}
.pass-perf{position:relative;height:0;margin:15px -18px;border-top:1.5px dashed rgba(255,255,255,.22);}
.pass-perf::before,.pass-perf::after{content:"";position:absolute;top:-9px;width:18px;height:18px;border-radius:50%;background:#0a2017;}
.pass-perf::before{left:-9px;}.pass-perf::after{right:-9px;}
.pass-foot{display:flex;justify-content:space-between;align-items:flex-end;}
.pass-foot span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(191,230,203,.6);margin-bottom:2px;}
.pass-foot b{font-size:13px;color:#fff;}
.pass-bars{height:26px;width:92px;border-radius:2px;opacity:.85;
  background:repeating-linear-gradient(90deg,#eaf5ee 0 2px,transparent 2px 4px,#eaf5ee 4px 5px,transparent 5px 9px,#eaf5ee 9px 12px,transparent 12px 14px);}

/* favourites -> depth + image zoom + arrow nudge */
.tour{border-radius:16px;box-shadow:0 22px 50px -28px rgba(20,45,30,.45);}
.tour .ph{overflow:hidden;transition:transform .7s cubic-bezier(.16,1,.3,1);}
.tour:hover .ph{transform:scale(1.05);}
.tour:hover{box-shadow:0 32px 64px -28px rgba(20,45,30,.55);}
.tour .go{display:inline-flex;align-items:center;gap:6px;transition:gap .3s ease;}
.tour .go::after{content:"\2192";}
.tour:hover .go{gap:11px;}

/* closing CTA -> atmospheric depth */
.cta{position:relative;overflow:hidden;}
.cta::before{content:"";position:absolute;inset:0;pointer-events:none;background:none;}
.cta .wrap{position:relative;z-index:1;}

@media (max-width:920px){
  .cats{grid-template-columns:1fr 1fr;gap:12px;}
}

/* hero eyebrow legibility over photos + active nav tab underline */
.hero .eyebrow{color:#e3f6ea;text-shadow:0 1px 14px rgba(0,0,0,.55);font-weight:700;}
.nav nav a.active{color:var(--green);}
.nav nav a:not(.btn-quote).active::after{left:0;right:0;}

/* ============================================================
   LAYERED CUTOUT HERO — headline between a sky plate and a real
   mountain silhouette. JS-driven parallax (works in every browser):
   at rest the peaks sit low and ALL text reads on the sky; on scroll
   the mountains rise and the text sinks + fades behind them.
   ============================================================ */
.hero-cut{align-items:flex-start;overflow:hidden;
  background:linear-gradient(180deg,#07224a 0%,#103a76 28%,#2a61a4 55%,#6f9bc6 100%);}
.hero-cut .cut-sky{position:absolute;inset:0;z-index:0;will-change:transform;
  background:
    radial-gradient(130% 80% at 50% 4%,rgba(255,255,255,.20),transparent 52%),
    radial-gradient(90% 50% at 80% 26%,rgba(255,255,255,.14),transparent 60%),
    linear-gradient(180deg,#0e3d7c 0%,#2360a6 42%,#5689bd 68%,#9ab9d6 100%);}
.hero-cut .cut-sky::after{content:"";position:absolute;inset:-6%;opacity:.45;pointer-events:none;
  background:radial-gradient(42% 22% at 22% 24%,rgba(255,255,255,.5),transparent 70%),
            radial-gradient(34% 18% at 72% 16%,rgba(255,255,255,.4),transparent 72%),
            radial-gradient(30% 16% at 52% 34%,rgba(255,255,255,.3),transparent 74%);
  animation:cutClouds 70s linear infinite alternate;}
@keyframes cutClouds{to{transform:translate3d(3%,1.4%,0) scale(1.05);}}
/* top scrim: full-width gradient (no box edges) so white text always reads */
.hero-cut::after{z-index:1;background:linear-gradient(180deg,rgba(5,14,34,.58) 0%,rgba(5,14,34,.3) 24%,rgba(5,14,34,.06) 44%,transparent 58%);}
.hero-cut::before{z-index:6;opacity:.4;} /* grain on top */
.hero-cut .wrap{z-index:3;position:relative;padding-top:clamp(96px,14vh,165px);padding-bottom:0;will-change:transform,opacity;}
.hero-cut .h-display{font-size:clamp(2.5rem,5.2vw,4.6rem);max-width:20ch;line-height:1.04;text-shadow:0 2px 26px rgba(4,12,30,.5);}
.hero-cut .wrap p{max-width:42ch;text-shadow:0 1px 16px rgba(4,12,30,.55);}
/* the real mountain silhouette as an <img> — full image, never cropped.
   transform-origin bottom + JS keeps the base pinned to the hero floor so no
   light-blue sky shows beneath the peaks as they rise on scroll. */
.hero-cut .cut-fg{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:4;display:block;
  transform-origin:50% 100%;pointer-events:none;will-change:transform;transform:translateY(40%);
  filter:drop-shadow(0 -10px 30px rgba(8,20,40,.26));}
@media (prefers-reduced-motion:reduce){.hero-cut .cut-sky::after{animation:none;}}

/* ============================================================
   FREE-COURSE band + FOUNDER story (extended home, from AX Gen 1)
   ============================================================ */
.course{display:grid;grid-template-columns:1.05fr 1fr;gap:0;border-radius:20px;overflow:hidden;
  border:1px solid var(--border);box-shadow:0 30px 70px -34px rgba(34,70,48,.4);background:#fff;}
.course-copy{padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;}
.course-copy h2{font-size:clamp(1.7rem,3vw,2.5rem);color:var(--title);line-height:1.12;margin:6px 0 14px;}
.course-copy p{color:var(--muted);font-size:1.05rem;line-height:1.7;margin-bottom:24px;max-width:46ch;}
.course-img{background-size:cover;background-position:center;min-height:300px;}
@media(max-width:780px){.course{grid-template-columns:1fr;}.course-img{min-height:220px;order:-1;}}

.founder{display:grid;grid-template-columns:.62fr 1fr;gap:clamp(28px,5vw,64px);align-items:center;}
.founder-photo img{width:100%;border-radius:18px;box-shadow:0 28px 60px -30px rgba(20,45,30,.6);object-fit:cover;aspect-ratio:4/5;}
.founder-copy blockquote{font-family:var(--display);font-style:italic;color:var(--ink);
  font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.5;position:relative;}
.founder-copy blockquote em{color:var(--green-d);font-style:italic;}
.founder-copy blockquote::before{content:"\201C";position:absolute;left:-.18em;top:-.35em;font-size:3.4em;
  color:var(--green);opacity:.18;font-family:var(--display);line-height:1;}
.founder-name{margin-top:24px;font-family:var(--head);font-weight:700;color:var(--title);font-size:1.05rem;}
.founder-name span{display:block;font-weight:500;color:var(--muted);font-size:.92rem;margin-top:2px;}
@media(max-width:780px){.founder{grid-template-columns:1fr;}.founder-photo{max-width:300px;}}

/* ============================================================
   DEPARTURES BOARD — flight-board motif (split-flap reveal)
   ============================================================ */
.board{font-family:var(--mono);border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,#0c1c14 0%,#081109 100%);
  border:1px solid rgba(86,173,109,.26);box-shadow:0 44px 100px -46px rgba(0,30,18,.85),inset 0 1px 0 rgba(255,255,255,.05);}
.board-top{display:flex;align-items:center;gap:16px;padding:18px 26px;background:rgba(0,0,0,.28);border-bottom:1px solid rgba(255,255,255,.08);}
.board-title{font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.2em;font-size:15px;color:var(--green);display:flex;align-items:center;gap:10px;}
.board-title::before{content:"\2708\FE0E";font-size:14px;}
.board-sub{color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
.board-clock{margin-left:auto;color:var(--green);font-size:15px;letter-spacing:.12em;font-variant-numeric:tabular-nums;}
.board-head,.board-row{display:grid;grid-template-columns:1.7fr 1.5fr .55fr .85fr;gap:14px;align-items:center;padding:14px 26px;}
.board-head{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.38);border-bottom:1px solid rgba(255,255,255,.08);}
.board-row{border-bottom:1px solid rgba(255,255,255,.06);color:#eef3ee;font-size:14px;transition:background .2s;}
.board-row:hover{background:rgba(86,173,109,.08);}
.board-row span:nth-child(2),.board-row span:nth-child(3){color:rgba(255,255,255,.66);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;}
.bd-dest{font-family:var(--head);font-weight:700;letter-spacing:.09em;color:#fff;text-transform:uppercase;font-size:14.5px;}
.bd-st{justify-self:start;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:5px;font-weight:700;white-space:nowrap;}
.bd-st.boarding{color:#ffe2a6;background:rgba(232,181,74,.16);}
.bd-st.boarding::before{content:"\25CF ";font-size:8px;vertical-align:middle;animation:tbPulse 1.6s ease-out infinite;}
.bd-st.ontime{color:#8fe0a6;background:rgba(111,207,138,.14);}
.board-cta{padding:24px;text-align:center;border-top:1px solid rgba(255,255,255,.08);}
/* split-flap reveal: each row flips down into place */
.board .board-row{transform-origin:top center;opacity:0;}
.board.in .board-row{animation:flapIn .55s cubic-bezier(.2,.85,.25,1) both;}
.board.in .board-row:nth-child(3){animation-delay:.05s}
.board.in .board-row:nth-child(4){animation-delay:.12s}
.board.in .board-row:nth-child(5){animation-delay:.19s}
.board.in .board-row:nth-child(6){animation-delay:.26s}
.board.in .board-row:nth-child(7){animation-delay:.33s}
.board.in .board-row:nth-child(8){animation-delay:.40s}
@keyframes flapIn{from{opacity:0;transform:perspective(500px) rotateX(-88deg);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.board .board-row{opacity:1;}.board.in .board-row{animation:none;}}
@media(max-width:680px){
  .board-head{display:none;}
  .board-row{grid-template-columns:1fr auto;gap:4px 14px;}
  .board-row span:nth-child(2){grid-column:1;}
  .board-row span:nth-child(3){grid-column:2;grid-row:1;justify-self:end;}
  .bd-st{grid-column:2;grid-row:2;justify-self:end;}
}

/* ============================================================
   ELEVATED EDITORIAL SYSTEM (v4) — within brand
   Georgia display headlines · mono eyebrows · generous rhythm.
   Anchored to luxury-travel editorial (Black Tomato / Original Travel).
   ============================================================ */
section.block{padding-block:clamp(53px,7.2vw,104px);}
/* reusable editorial section header */
.ed-head{max-width:760px;margin:0 0 clamp(34px,5vw,60px);}
.ed-head.center{margin-inline:auto;text-align:center;}
.ed-head .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.3em;font-size:11px;color:var(--blue);font-weight:600;display:inline-block;margin-bottom:16px;}
.ed-head h2{font-family:var(--display);font-weight:400;color:var(--title);font-size:clamp(2.1rem,4.3vw,3.5rem);line-height:1.07;letter-spacing:-.015em;}
.ed-head .lede{margin-top:16px;font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--muted);line-height:1.65;max-width:62ch;}
.ed-head.center .lede{margin-inline:auto;}
.ed-head .more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-family:var(--head);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--green-d);}
.ed-head .more::after{content:"\2192";transition:transform .3s;}
.ed-head .more:hover::after{transform:translateX(6px);}

/* convert legacy section headers to the editorial (serif) language */
.pitch{max-width:820px;}
.pitch h2{font-family:var(--display)!important;font-weight:400;text-transform:none;letter-spacing:-.015em;font-size:clamp(2.1rem,4vw,3.3rem);}
.sec-head{text-align:left;max-width:760px;margin-inline:0;}
.sec-head .k{color:var(--blue);}
.sec-head h2{font-family:var(--display)!important;font-weight:400;text-transform:none;letter-spacing:-.015em;font-size:clamp(2.1rem,4.3vw,3.5rem);line-height:1.07;margin-top:14px;}

/* ---- Browse by destination: asymmetric editorial photo grid ---- */
.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.regions .rg:nth-child(1){grid-column:span 2;}
@media(max-width:900px){.regions{grid-template-columns:1fr 1fr;}.regions .rg:nth-child(1){grid-column:span 2;}}
@media(max-width:600px){.regions{grid-template-columns:1fr;}.regions .rg:nth-child(1){grid-column:auto;}}
.rg{position:relative;border-radius:16px;overflow:hidden;min-height:clamp(230px,27vw,330px);display:flex;align-items:flex-end;
  box-shadow:0 22px 50px -28px rgba(20,45,30,.5);isolation:isolate;}
.rg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .8s cubic-bezier(.16,1,.3,1);}
.rg:hover img{transform:scale(1.06);}
/* Lighter scrim (client request 2026-06-29): was darkening ~70% of the photo; pull it
   down to a soft foot of shade behind the caption only. */
.rg::after{content:"";position:absolute;inset:0;z-index:1;background:none;transition:background .45s ease;}
.rg:hover::after{background:none;}
.rg .cap{position:relative;z-index:2;padding:clamp(18px,2.3vw,30px);color:#fff;width:100%;}
.rg .cap .ek{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.78);}
.rg .cap h3{font-family:var(--display);font-weight:400;font-size:clamp(1.45rem,2.5vw,2.1rem);line-height:1.08;margin-top:5px;text-shadow:0 2px 18px rgba(0,0,0,.45);}
.rg .cap .go{display:inline-flex;align-items:center;gap:7px;margin-top:11px;font-family:var(--head);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#fff;opacity:.94;}
.rg .cap .go::after{content:"\2192";transition:transform .35s;}
.rg:hover .cap .go::after{transform:translateX(6px);}

/* ============================================================
   FULL-VIEWPORT SNAP FRAMES (home only, via body.snaphome)
   Each section fills one screen and snaps into place on scroll.
   Window still scrolls (so the cutout-hero parallax + reveal keep working).
   ============================================================ */
html:has(.snaphome){scroll-snap-type:y proximity;scroll-padding-top:0;}
.snaphome .hero{scroll-snap-align:start;}
.snaphome .vh{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;
  scroll-snap-align:start;padding-block:clamp(86px,11vh,120px) clamp(56px,7vh,84px);}
.snaphome .vh>.wrap{width:100%;}
/* center the editorial header in a frame, with a little more drama */
.snaphome .vh .ed-head{margin-bottom:clamp(26px,3.4vw,42px);}
/* the favourites frame: a single confident row (full set lives in the finder) */
.snaphome .tours{grid-template-columns:repeat(4,1fr);}
@media(max-width:1040px){.snaphome .tours{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.snaphome .tours{grid-template-columns:1fr;}}
.tours-more{margin-top:clamp(24px,3vw,40px);}
.tours-more a{display:inline-flex;align-items:center;gap:9px;font-family:var(--head);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--green-d);}
.tours-more a::after{content:"\2192";transition:transform .3s;}
.tours-more a:hover::after{transform:translateX(6px);}
/* on short viewports, don't force a full screen (avoid clipping content) */
@media(max-height:720px){.snaphome .vh{min-height:auto;padding-block:clamp(64px,8vh,83px) clamp(32px,4.8vh,51px);}html:has(.snaphome){scroll-snap-type:none;}}
@media(prefers-reduced-motion:reduce){html:has(.snaphome){scroll-snap-type:none;}}

/* keep the two photo-grid frames within one screen */
.snaphome .cats{grid-auto-rows:auto;}
.snaphome .regions .rg{min-height:clamp(188px,17vw,242px);}
.snaphome .vh .ed-head{margin-bottom:clamp(22px,2.6vw,34px);}

/* ---- premium headline wrapping: one line on desktop, balanced (no orphans) ---- */
.ed-head{max-width:920px;}
.pitch{max-width:980px;}
.ed-head h2,.pitch h2,.sec-head h2{font-size:clamp(1.9rem,3.3vw,2.75rem);text-wrap:balance;}
.hero h1,.rg .cap h3,.course-copy h2{text-wrap:balance;}

/* FIX: the nav Get-a-Quote button was squashed to padding:5px 0 by `.nav nav a`
   (higher specificity than .btn-quote). This rule wins and restores generous
   outer padding so there is clear space before the plane and after the text. */
.nav nav a.btn-quote{padding:12px 28px;font-size:10.5px;gap:11px;}

/* footer logo sits on dark green -> reverse the colour logo to clean white */
footer.ft .logo{filter:brightness(0) invert(1);opacity:.95;}

/* AI TripBuilder box -> clean WHITE deck (home) per Oliver */
.tb{background:#fff!important;border:1px solid var(--border)!important;
  box-shadow:0 32px 74px -36px rgba(20,45,30,.42)!important;color:var(--ink);}
.tb::before{display:none;}                         /* drop dark tech grid */
.tb::after{background:linear-gradient(90deg,transparent,rgba(86,173,109,.55),transparent);}
.tb .lab{color:var(--title);}
.tb-chip{color:var(--green-d);background:rgba(86,173,109,.10);border-color:rgba(86,173,109,.32);}
.tb-rail i{background:rgba(20,45,30,.14);} .tb-rail i.on{background:var(--green);}
.tb .sub{color:var(--green-d)!important;background:rgba(86,173,109,.10)!important;border-color:rgba(86,173,109,.35)!important;}
.tb .f .fl{color:var(--muted)!important;}
.tb select,.tb .paste input{background:#fff!important;color:var(--ink)!important;border:1px solid var(--border)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.03)!important;}
.tb .paste input::placeholder{color:#9aa0a0!important;}
.tb .f::after{border-color:var(--muted)!important;}
.tb select option{background:#fff;color:var(--ink);}
.tb select:focus,.tb .paste input:focus{border-color:var(--green)!important;box-shadow:0 0 0 3px rgba(86,173,109,.18)!important;}
/* boarding pass stays a green accent ticket on the white deck */
.tb-pass{background:linear-gradient(160deg,#2f6640,#21482d)!important;border:none!important;}
.pass-perf::before,.pass-perf::after{background:#fff!important;}

/* ============================================================
   WT4 — Departures board flipped to a light/white deck
   (matches the white AI TripBuilder treatment; was too dark)
   ============================================================ */
.board{background:#fff!important;border:1px solid #e6ece8!important;
  box-shadow:0 30px 70px -40px rgba(20,45,30,.45),inset 0 1px 0 rgba(255,255,255,.6)!important;}
.board-top{background:linear-gradient(180deg,#f4f8f5,#eef4f0)!important;border-bottom:1px solid #e6ece8!important;}
.board-sub{color:#5d6b63!important;}
.board-head{color:#8a978f!important;border-bottom:1px solid #e6ece8!important;}
.board-row{color:#2c4034!important;border-bottom:1px solid #eef2ef!important;}
.board-row:hover{background:rgba(86,173,109,.10)!important;}
.board-row span:nth-child(2),.board-row span:nth-child(3){color:#5d6b63!important;}
.bd-dest{color:#1f3a2a!important;}
.bd-st.boarding{color:#9a6a00!important;background:rgba(232,181,74,.20)!important;}
.bd-st.ontime{color:#2f7d46!important;background:rgba(86,173,109,.16)!important;}
.board-cta{border-top:1px solid #e6ece8!important;}

/* ============================================================
   Home hero — realistic passenger-jet flyover, starts on load.
   Level (horizontal) cruise, slow, long twin contrails. Sits at
   z-3 (above text, below the z-4 mountain cutout) so the peaks
   pass in FRONT of the plane; flies the sky gap between the CTA
   and the ridgeline. Single pass.
   ============================================================ */
.hero-cut .planefly{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;}
.hero-cut .jet{position:absolute;top:54%;left:0;width:108px;height:auto;
  filter:drop-shadow(0 4px 9px rgba(4,12,30,.4));
  opacity:0;transform:translateX(-12vw);will-change:transform,opacity;}
.hero-cut .jet svg{width:100%;height:auto;display:block;}
/* long, soft twin contrails streaming back from the engines */
.hero-cut .jet .trail{position:absolute;right:58%;top:53%;height:0;width:clamp(280px,54vw,760px);pointer-events:none;}
.hero-cut .jet .trail::before,.hero-cut .jet .trail::after{content:"";position:absolute;right:0;width:100%;height:2px;border-radius:2px;filter:blur(.6px);
  background:linear-gradient(270deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,.16) 50%,rgba(255,255,255,0) 100%);}
.hero-cut .jet .trail::before{top:-2px;}
.hero-cut .jet .trail::after{top:3px;}
/* Two alternating aircraft on one 68s loop: jet 1 flies left->right (lower),
   ~8s gap, jet 2 flies right->left a touch higher + smaller (reads as a
   different, further jet), ~8s gap, repeat. scaleX(-1) flips jet 2 (and its
   contrail) to face its direction of travel. */
.hero-cut .jet1{top:59%;animation:jetR 68s linear 0s infinite, fadeR 68s linear 0s infinite;}
.hero-cut .jet2{top:64%;width:72px;animation:jetL 68s linear 0s infinite, fadeL 68s linear 0s infinite;}
@keyframes jetR{0%{transform:translateX(-12vw);}38.2%{transform:translateX(120vw);}100%{transform:translateX(120vw);}}
@keyframes fadeR{0%{opacity:0;}1.5%{opacity:1;}36%{opacity:1;}38.2%{opacity:0;}100%{opacity:0;}}
@keyframes jetL{0%,50%{transform:translateX(120vw) scaleX(-1);}88.2%,100%{transform:translateX(-12vw) scaleX(-1);}}
@keyframes fadeL{0%,50%{opacity:0;}51.5%{opacity:1;}86%{opacity:1;}88.2%{opacity:0;}100%{opacity:0;}}
@media(max-width:680px){.hero-cut .jet{width:70px;}.hero-cut .jet1{top:70%;}.hero-cut .jet2{top:76%;width:50px;}.hero-cut .jet .trail{width:clamp(160px,46vw,300px);}}
@media(prefers-reduced-motion:reduce){.hero-cut .planefly{display:none;}}
/* Planes HIDDEN at client request (2026-06-25). Reversible: delete the next line to restore. */
.hero-cut .planefly{display:none!important;}

/* ---- Mobile homepage category-tile legibility (client request 2026-06-28):
   drop the frosted pill on phones, let the label sit on a stronger bottom scrim. */
@media(max-width:920px){
  .cat::after{background:none;}
  .cat .lab{left:13px;right:13px;bottom:11px;max-width:none;padding:0;border-radius:0;font-size:12px;
    background:none;border:none;box-shadow:none;
    -webkit-backdrop-filter:none;backdrop-filter:none;
    text-shadow:0 1px 10px rgba(0,0,0,.8),0 2px 4px rgba(0,0,0,.55);}
  .cat:hover .lab{transform:none;}
}
