/* =========================================================
 Outdoor Adventures BC — design system
 Palette: deep lake blue + warm cream + sunset amber
 ========================================================= */

:root{
 /* Palette — Ferrari-inspired: warm near-black · white · Rosso Corsa */
 --ink:#181818;
 --ink-2:#303030;
 --muted:#666666;
 --line:#EBEBEB;
 --bg:#FFFFFF;
 --bg-2:#F7F7F7;
 --surface:#F7F7F7;
 --canvas:#181818;
 --canvas-elev:#303030;
 --primary:#DA291C;
 --primary-ink:#B01E0A;
 --primary-glow:#9D2211;
 --forest:#181818;
 --forest-ink:#000000;
 --accent:#DA291C;
 --accent-ink:#B01E0A;
 --accent-glow:#9D2211;
 --sand:#EBEBEB;
 --radius:0px;
 --radius-sm:0px;
 --shadow-1:0 1px 2px rgba(24,24,24,.04), 0 6px 16px rgba(24,24,24,.06);
 --shadow-2:0 18px 40px rgba(24,24,24,.10);
 --shadow-3:0 30px 60px rgba(24,24,24,.16);
 --container:1180px;
 --nav-h:72px;
 --serif:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
 --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
 /* ---- Spacing scale (consistent rhythm across sections, padding, gaps) ---- */
 --space-1: 0.5rem;
 --space-2: 1rem;
 --space-3: 1.5rem;
 --space-4: 2rem;
 --space-5: 3rem;
 --space-6: 4rem;
 --space-7: 6rem;
 --read-width: 68ch;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
 margin:0;
 font-family:var(--sans);
 font-size:17px;
 line-height:1.65;
 color:var(--ink);
 background:var(--bg);
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 text-rendering:optimizeLegibility;
 font-feature-settings:"ss01","cv11";
 overflow-x:hidden;
 max-width:100vw;
 position:relative;
}
/* DM Sans / Instrument Serif kerning + ligatures */
@supports (font-variation-settings: normal){
  h1,h2,h3{font-feature-settings:"liga","calt","kern"}
}
/* Defensive — stop any element from forcing horizontal scroll. */
img,video,iframe,table{max-width:100%}
.container{max-width:100%;overflow-x:hidden}
.species-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
/* Inline body links — must be distinguishable from surrounding text without
   relying on color alone (WCAG link-in-text-block). Underline inline links
   inside paragraphs, definition lists (facts-box), and other prose blocks.
   Nav, buttons, card titles, and footer columns keep their no-underline look. */
.facts-box a,.prose a,p a:not(.btn):not(.link):not(.navlink),
section .lede a,details a,.review-card a,article a:not(.btn):not(.link){
 text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px
}
/* =========================================================
 Destination grid — 6 image tiles on homepage
 Each tile: photo background + dark gradient overlay + label + teaser.
 Click-anywhere card; entire tile is a link.
 ========================================================= */
.dest-grid{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px;
}
@media (max-width:900px){.dest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.dest-grid{grid-template-columns:1fr;gap:10px}}
.dest-tile{
 position:relative;display:flex;align-items:flex-end;
 aspect-ratio:5/4;min-height:240px;
 border-radius:0;overflow:hidden;
 text-decoration:none;color:#fff;
 background:var(--canvas) center/cover no-repeat;
 transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;
 box-shadow:0 1px 2px rgba(12,19,21,.06),0 10px 28px rgba(12,19,21,.10);
}
.dest-tile:hover{transform:translateY(-3px);box-shadow:0 6px 14px rgba(12,19,21,.10),0 22px 46px rgba(12,19,21,.18);text-decoration:none}
.dest-tile::after{
 content:"";position:absolute;inset:0;z-index:1;
 background:linear-gradient(180deg,rgba(8,29,40,.05) 0%,rgba(8,29,40,.20) 40%,rgba(6,22,32,.82) 100%);
}
.dest-tile > div{position:relative;z-index:2;padding:24px;width:100%}
.dest-tile .eyebrow{
 display:inline-block;font-family:var(--sans);font-size:.7rem;
 letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:600;
 margin-bottom:8px;background:none;padding:0;
}
.dest-tile .eyebrow::before{display:none}
.dest-tile h3{
 color:#fff;font-family:var(--serif);font-size:1.55rem;font-weight:400;
 letter-spacing:-.018em;line-height:1.1;margin:0 0 6px;
}
.dest-tile p{
 color:rgba(255,255,255,.82);font-size:.92rem;line-height:1.4;
 margin:0;max-width:none;
}
.dest-tile .arrow{
 display:inline-flex;align-items:center;gap:4px;
 margin-top:12px;font-size:.85rem;font-weight:600;color:#fff;
 opacity:.9;letter-spacing:.02em;
}
.dest-tile:hover .arrow{opacity:1}

/* Big single-quote band (replaces 3-card review grid on homepage) */
.big-quote{
 max-width:880px;margin:0 auto;text-align:center;
 padding:24px 20px;
}
.big-quote .stars{color:var(--accent);font-size:1.05rem;letter-spacing:.15em;margin-bottom:14px}
.big-quote blockquote{
 font-family:var(--serif);font-size:clamp(1.5rem,3.4vw,2.1rem);
 font-weight:400;line-height:1.25;letter-spacing:-.015em;color:var(--ink);
 margin:0 0 18px;max-width:none;
}
.big-quote blockquote em{font-style:italic}
.big-quote cite{
 display:block;font-style:normal;font-size:.92rem;color:var(--muted);
 letter-spacing:.04em;
}
.big-quote cite strong{color:var(--ink-2);font-weight:600;letter-spacing:0}
.big-quote .more{
 display:inline-block;margin-top:18px;font-size:.88rem;color:var(--accent-ink);
 font-weight:600;text-decoration:underline;text-underline-offset:3px;
}

/* ---- Typography (Newsreader headlines + Geist body) ---- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-0.018em;line-height:1.06;margin:0 0 0.4em;color:var(--ink)}
h1{font-size:clamp(2.6rem, 6vw, 5rem);letter-spacing:-0.03em;line-height:1.02}
h2{font-size:clamp(1.85rem, 3.6vw, 2.75rem);letter-spacing:-0.022em;line-height:1.08}
h3{font-size:clamp(1.2rem, 2vw, 1.4rem);font-weight:500;letter-spacing:-0.012em;line-height:1.18}
h4{font-size:1.05rem;font-weight:500;letter-spacing:-0.005em}
/* Instrument Serif's italic is a feature — use it for em / strong-italic emphasis in headings */
h1 em,h2 em,h3 em{font-style:italic;font-weight:400}
p{margin:0 0 1em;max-width:var(--read-width)}
.lede,p.lede{max-width:60ch}
/* Long sections of body prose stay readable — cap line length */
.prose p,.facts-box dd,article p{max-width:var(--read-width)}
hr{border:none;border-top:1px solid var(--line);margin:3rem 0}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
.section{padding:96px 0}
@media (max-width:900px){.section{padding:72px 0}}
@media (max-width:600px){
  .container{padding:0 18px}
  .section{padding:56px 0}
}
@media (max-width:380px){
  .container{padding:0 14px}
}

/* ---------- Navigation ---------- */.nav{
 position:sticky;top:0;z-index:50;
 background:rgba(255,255,255,.92);
 backdrop-filter:saturate(160%) blur(14px);
 -webkit-backdrop-filter:saturate(160%) blur(14px);
 border-bottom:1px solid var(--line);
 height:var(--nav-h);
 display:flex;align-items:center;
 transition:background.3s, border-color.3s, box-shadow.3s;
}.nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%}.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:1.02rem;letter-spacing:-0.01em}.brand img{height:36px;width:auto}.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;align-items:center}.nav a.navlink{color:var(--ink);font-size:.95rem;font-weight:500}.nav a.navlink:hover{color:var(--primary);text-decoration:none}.nav.btn{padding:10px 18px;font-size:.92rem}.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}.nav-toggle svg{width:26px;height:26px;stroke:var(--ink)}
@media (max-width:900px){.nav ul{
 position:absolute;top:var(--nav-h);left:0;right:0;
 flex-direction:column;gap:0;padding:10px 20px 20px;
 background:var(--bg);border-bottom:1px solid var(--line);
 transform:translateY(-8px);opacity:0;pointer-events:none;transition:.2s;
 align-items:stretch;
 }.nav ul.open{transform:none;opacity:1;pointer-events:auto}.nav ul li{border-bottom:1px solid var(--line)}.nav ul li:last-child{border-bottom:0;padding-top:10px}.nav a.navlink{display:block;padding:14px 4px;font-size:1.05rem}.nav-toggle{display:block}
}

/* ---------- Buttons ---------- */.btn{
 display:inline-flex;align-items:center;gap:10px;
 padding:14px 26px;border-radius:0;font-weight:600;
 font-size:.98rem;letter-spacing:.01em;
 border:1px solid transparent;cursor:pointer;
 transition:transform.15s, box-shadow.25s, background.2s, border-color.2s;
 line-height:1;text-decoration:none;
}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{
 background:linear-gradient(180deg, var(--accent) 0%, var(--accent-ink) 100%);
 color:#fff;box-shadow:0 4px 14px rgba(194,87,26,.35), inset 0 1px 0 rgba(255,255,255,.2);
}.btn-primary:hover{box-shadow:0 8px 24px rgba(194,87,26,.45), inset 0 1px 0 rgba(255,255,255,.2);background:linear-gradient(180deg, var(--accent-glow) 0%, var(--accent) 100%)}.btn-secondary{background:var(--primary);color:#fff;box-shadow:0 4px 14px rgba(14,59,79,.25)}.btn-secondary:hover{background:var(--primary-ink);box-shadow:0 8px 24px rgba(14,59,79,.35)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--bg)}.btn-lg{padding:18px 32px;font-size:1.02rem}

/* ---------- Hero ---------- */.hero{
 position:relative;
 min-height:min(86vh, 720px);
 display:flex;align-items:center;
 color:#fff;
 overflow:hidden;
 isolation:isolate;
}.hero::before{
 content:"";position:absolute;inset:0;z-index:-2;
 background:center/cover no-repeat var(--hero-img, url("../img/okanagan-lake-1024x682.jpg"));
}.hero::after{
 content:"";position:absolute;inset:0;z-index:-1;
 background:
 radial-gradient(ellipse at 70% 20%, rgba(194,87,26,.12) 0%, transparent 55%),
 linear-gradient(180deg, rgba(8,29,40,.25) 0%, rgba(8,29,40,.55) 55%, rgba(6,22,32,.88) 100%);
}.hero-inner{padding:72px 0 88px;max-width:820px}.hero h1{color:#fff;margin-bottom:.3em}.hero.lede{font-size:clamp(1.05rem, 1.6vw, 1.25rem);color:rgba(255,255,255,.92);max-width:640px;margin-bottom:1.5em}.hero.eyebrow{display:inline-block;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.9);background:rgba(255,255,255,.14);padding:7px 14px;border-radius:999px;margin-bottom:18px;font-weight:600}.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.hero-facts{display:flex;gap:36px;margin-top:40px;flex-wrap:wrap}.hero-fact{font-size:.85rem;color:rgba(255,255,255,.8);letter-spacing:.02em;text-transform:uppercase;font-weight:500;border-left:2px solid var(--accent);padding-left:14px}.hero-fact strong{display:block;font-family:var(--serif);font-size:1.55rem;color:#fff;font-weight:600;letter-spacing:-.01em;text-transform:none;margin-bottom:2px}

/* ---------- Sections ---------- */.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);font-weight:700;margin-bottom:14px}.eyebrow::before{content:"";width:24px;height:1.5px;background:var(--accent)}.hero.eyebrow::before,.hero.eyebrow::after{display:none}.section-head{max-width:720px;margin-bottom:48px}.section-head p{color:var(--ink-2);font-size:1.08rem;line-height:1.65}

/* ---------- Grid / Cards ---------- */.grid{display:grid;gap:24px}.grid-3{grid-template-columns:repeat(3, minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
@media (max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}.card{
 background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
 overflow:hidden;box-shadow:var(--shadow-1);transition:transform.3s cubic-bezier(.2,.7,.2,1), box-shadow.3s;
 display:flex;flex-direction:column;color:inherit;
}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--sand)}.card img{width:100%;aspect-ratio:3/2;object-fit:cover}.card-body{padding:22px 22px 24px;flex:1;display:flex;flex-direction:column}.card-body h3{margin-bottom:.35em}.card-body p{color:var(--ink-2);font-size:.98rem;flex:1}.card-body.card-meta{color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.card-body.link{margin-top:14px;color:var(--primary);font-weight:600}

/* ---------- Split feature rows ---------- */.split{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}.split.reverse{grid-template-columns:1fr 1.1fr}.split.reverse.split-media{order:-1}.split-media img{border-radius:var(--radius);box-shadow:var(--shadow-2);aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:820px){.split,.split.reverse{grid-template-columns:1fr;gap:28px}.split.reverse.split-media{order:0}}

/* ---------- Pill list ---------- */.pill-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none;margin:12px 0 20px}.pill-list li{background:var(--bg-2);border:1px solid var(--line);padding:6px 12px;border-radius:999px;font-size:.85rem;color:var(--ink-2)}

/* ---------- Price band ---------- */.price-band{
 background:
 radial-gradient(ellipse at 85% 10%, rgba(194,87,26,.18) 0%, transparent 55%),
 linear-gradient(135deg, var(--primary) 0%, var(--primary-ink) 50%, var(--primary-glow) 100%);
 color:#fff;border-radius:var(--radius);padding:44px 36px;
 display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:28px;
 box-shadow:var(--shadow-2);
 position:relative;overflow:hidden;
}.price-band::before{
 content:"";position:absolute;inset:0;pointer-events:none;
 background:radial-gradient(600px circle at 20% 120%, rgba(232,159,59,.12), transparent 60%);
}.price-band h2{color:#fff;margin:0}.price-band.price{font-family:var(--serif);font-size:2.4rem;font-weight:600;letter-spacing:-.01em}.price-band.price small{font-family:var(--sans);font-size:.95rem;opacity:.85;font-weight:500;display:block;margin-top:4px}.price-band.cta-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
@media (max-width:740px){.price-band{grid-template-columns:1fr;text-align:left}}

/* ---------- FAQ ---------- */.faq{max-width:820px;margin:0 auto}.faq details{
 background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);
 padding:18px 22px;margin-bottom:10px;
}.faq details[open]{border-color:var(--primary)}.faq summary{
 font-family:var(--serif);font-size:1.15rem;font-weight:600;cursor:pointer;
 list-style:none;display:flex;justify-content:space-between;gap:16px;
}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--primary);font-weight:700;transition:transform.2s}.faq details[open] summary::after{content:"–"}.faq details p{margin:.8em 0 0;color:var(--ink-2)}

/* ---------- Footer ---------- */.footer{
 background:linear-gradient(180deg, var(--canvas) 0%, #000000 100%);
 color:#B5C2C9;padding:64px 0 28px;margin-top:72px;
 position:relative;
}.footer::before{
 content:"";position:absolute;top:0;left:0;right:0;height:3px;
 background:linear-gradient(90deg, transparent, var(--accent) 40%, var(--accent-glow) 60%, transparent);
}.footer h4{color:#fff;font-family:var(--sans);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}.footer a{color:#C9D4DA}.footer a:hover{color:#fff}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}.footer-grid ul{list-style:none;padding:0;margin:0}.footer-grid li{margin-bottom:8px;font-size:.95rem}.footer-brand p{color:#94A3AA;font-size:.92rem;max-width:320px}.footer-brand img{height:44px;filter:brightness(0) invert(1);opacity:.9;margin-bottom:12px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:20px;color:#94A3AA;font-size:.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:span 2}}

/* ---------- Breadcrumbs ---------- */.breadcrumbs{font-size:.85rem;color:var(--muted);margin-bottom:16px}.breadcrumbs a{color:var(--muted)}.breadcrumbs a:hover{color:var(--primary)}

/* ---------- Contact form ---------- */.form{display:grid;gap:14px;max-width:640px}.form label{font-size:.9rem;font-weight:600;color:var(--ink-2)}.form input,.form textarea,.form select{
 width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);
 font-family:var(--sans);font-size:1rem;background:var(--bg-2);color:var(--ink);
}.form textarea{min-height:140px;resize:vertical}.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(11,79,108,.15)}

/* ---------- Gallery ---------- */.gallery{display:grid;grid-template-columns:repeat(4, 1fr);gap:12px}.gallery img{aspect-ratio:1;object-fit:cover;border-radius:0}.gallery img:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:1}
@media (max-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery img:nth-child(1){grid-column:span 2;grid-row:auto;aspect-ratio:16/10}}

/* ---------- Small utility ---------- */.text-center{text-align:center}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:2rem}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:28px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}.stat-row.stat{padding:28px 20px;text-align:center;border-right:1px solid var(--line);background:transparent;border:none;border-right:1px solid var(--line)}.stat-row.stat:last-child{border-right:none}.stat strong{display:block;font-family:var(--serif);font-size:2rem;color:var(--primary);margin-bottom:6px;font-weight:600;letter-spacing:-.01em}.stat span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-weight:600}
@media (max-width:700px){.stat-row{grid-template-columns:1fr 1fr}.stat-row.stat:nth-child(2n){border-right:none}.stat-row.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* ---------- Quick facts box (good for GEO) ---------- */.facts-box{
 background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
 padding:28px 30px;margin:24px 0;box-shadow:var(--shadow-1);
 border-left:3px solid var(--accent);
}.facts-box h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:14px;font-weight:700}.facts-box dl{display:grid;grid-template-columns:160px 1fr;gap:10px 18px;margin:0}.facts-box dt{font-weight:600;color:var(--ink)}.facts-box dd{margin:0;color:var(--ink-2)}
@media (max-width:600px){.facts-box dl{grid-template-columns:120px 1fr}}

/* ---------- Species table ---------- */.species-table{width:100%;border-collapse:collapse;margin:16px 0;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.species-table th,.species-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}.species-table th{background:var(--surface);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.species-table tr:last-child td{border-bottom:0}

/* ---------- Skip link ---------- */.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip:focus{left:10px;top:10px;width:auto;height:auto;background:#fff;padding:10px 14px;border:2px solid var(--primary);z-index:100}

/* Prose for rich article content */.prose{max-width:760px}.prose ul,.prose ol{padding-left:1.25em}.prose li{margin-bottom:.4em}

/* =========================================================
 Animations + micro-interactions
 ========================================================= */

/* Reveal-on-scroll (IntersectionObserver adds.in) */.reveal{opacity:0;transform:translateY(28px);transition:opacity.9s cubic-bezier(.2,.7,.2,1), transform.9s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.reveal.delay-1{transition-delay:.08s}.reveal.delay-2{transition-delay:.16s}.reveal.delay-3{transition-delay:.24s}.reveal.delay-4{transition-delay:.32s}.reveal-left{opacity:0;transform:translateX(-28px);transition:.9s cubic-bezier(.2,.7,.2,1)}.reveal-left.in{opacity:1;transform:none}.reveal-right{opacity:0;transform:translateX(28px);transition:.9s cubic-bezier(.2,.7,.2,1)}.reveal-right.in{opacity:1;transform:none}.reveal-scale{opacity:0;transform:scale(.96);transition:.9s cubic-bezier(.2,.7,.2,1)}.reveal-scale.in{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1 !important;transform:none !important;transition:none !important}
 *{animation:none !important;transition:none !important}
}

/* Hero ken-burns */
@keyframes kenburns{
 0%{transform:scale(1.04) translateY(0)}
 100%{transform:scale(1.12) translateY(-1%)}
}.hero::before{animation:kenburns 18s ease-out infinite alternate}

/* Hero gradient shimmer on eyebrow */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.hero.eyebrow{
 background:linear-gradient(90deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.3) 50%, rgba(255,255,255,.14) 100%);
 background-size:200% 100%;
 animation:shimmer 6s linear infinite;
}

/* Fade-in-up for hero content on load */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.hero h1,.hero.lede,.hero.hero-cta,.hero.hero-facts,.hero.eyebrow,.hero.breadcrumbs{
 animation:fadeUp.9s cubic-bezier(.2,.7,.2,1) both;
}.hero.eyebrow{animation-delay:.05s}.hero h1{animation-delay:.12s}.hero.lede{animation-delay:.22s}.hero.hero-cta{animation-delay:.32s}.hero.hero-facts{animation-delay:.42s}

/* Button micro-interaction */.btn{position:relative;overflow:hidden;isolation:isolate}.btn::after{
 content:"";position:absolute;inset:0;z-index:-1;
 background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.28), transparent 60%);
 opacity:0;transition:opacity.3s;
}.btn:hover::after{opacity:1}.btn:hover{box-shadow:0 8px 28px rgba(15,27,31,.18)}.btn:active{transform:translateY(0) scale(.98)}

/* Card hover lift + image zoom */.card{position:relative}.card img{transition:transform.8s cubic-bezier(.2,.7,.2,1)}.card:hover img{transform:scale(1.05)}

/* Nav elevate-on-scroll */.nav.scrolled{box-shadow:0 8px 28px rgba(12,19,21,.08);background:rgba(246,241,231,.98);border-bottom-color:var(--line)}

/* Hero video overlay (if used) */.hero-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}

/* Counters */.stat strong{transition:color.4s}.stat.in-view strong{color:var(--accent)}

/* Underline sweep for nav links */.nav a.navlink{position:relative;padding:6px 2px}.nav a.navlink::after{
 content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;
 background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform.3s;
}.nav a.navlink:hover::after{transform:scaleX(1)}
@media (max-width:900px){.nav a.navlink::after{display:none}}

/* =========================================================
 Reviews
 ========================================================= */.reviews-wrap{position:relative}.reviews-header{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:28px}.google-badge{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:10px 16px;border-radius:999px;box-shadow:var(--shadow-1);font-weight:600}.google-badge.stars{color:#FBBC04;letter-spacing:2px;font-size:1.05rem}.google-badge svg{width:22px;height:22px}.review-grid{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:22px}
@media (max-width:900px){.review-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.review-grid{grid-template-columns:1fr}}.review-card{
 background:#fff;border:1px solid var(--line);border-radius:var(--radius);
 padding:24px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:12px;
 transition:transform.3s, box-shadow.3s;
}.review-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}.review-card.stars{color:#FBBC04;letter-spacing:2px;font-size:1rem}.review-card.text{color:var(--ink-2);font-size:.98rem;flex:1}.review-card.author{display:flex;align-items:center;gap:10px;font-size:.92rem;color:var(--ink);font-weight:600}.review-card.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg, var(--primary), var(--accent));display:grid;place-items:center;color:#fff;font-family:var(--serif);font-weight:600}.review-card.meta{color:var(--muted);font-size:.82rem;font-weight:400}.review-card.source{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted);margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}

/* =========================================================
 Instagram feed
 ========================================================= */.ig-grid{display:grid;grid-template-columns:repeat(6, 1fr);gap:10px}
@media (max-width:900px){.ig-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.ig-grid{grid-template-columns:repeat(2,1fr)}}.ig-tile{position:relative;aspect-ratio:1;overflow:hidden;border-radius:0;background:var(--line)}.ig-tile img{width:100%;height:100%;object-fit:cover;transition:transform.5s}.ig-tile:hover img{transform:scale(1.08)}.ig-tile.ig-overlay{
 position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%);
 display:flex;align-items:flex-end;justify-content:space-between;padding:10px;color:#fff;font-size:.82rem;opacity:0;transition:.3s;
}.ig-tile:hover.ig-overlay{opacity:1}.ig-cta{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF,#515BD4);color:#fff;font-weight:600;box-shadow:var(--shadow-1);transition:transform.2s}.ig-cta:hover{transform:translateY(-2px);text-decoration:none;color:#fff}.ig-embed{min-height:220px;position:relative}.ig-embed [class^="elfsight-app-"]:not(:empty) +.ig-fallback{display:none}.ig-fallback{display:flex;justify-content:center}.ig-profile-card{
 display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center;
 background:#fff;border:1px solid var(--line);border-radius:var(--radius);
 padding:28px 32px;box-shadow:var(--shadow-1);max-width:640px;width:100%;
 transition:transform.2s, box-shadow.3s;text-decoration:none;color:var(--ink);
}.ig-profile-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);text-decoration:none}.ig-avatar{
 width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#fff;
 background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF,#515BD4);flex:0 0 auto;
}.ig-handle{display:flex;flex-direction:column;line-height:1.3}.ig-handle strong{font-family:var(--serif);font-size:1.2rem}.ig-handle span{color:var(--muted);font-size:.9rem}
body.dark.ig-profile-card{background:var(--bg-2);color:var(--ink)}

/* =========================================================
 Map embed
 ========================================================= */.map-frame{position:relative;width:100%;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2);background:var(--line)}.map-frame iframe{width:100%;height:100%;border:0;display:block}

/* =========================================================
 Floating call button (mobile)
 ========================================================= */.fab-call{
 position:fixed;right:16px;bottom:16px;z-index:60;
 width:56px;height:56px;border-radius:50%;
 background:var(--accent);color:#fff;display:none;
 align-items:center;justify-content:center;
 box-shadow:0 10px 30px rgba(217,119,6,.45);
 animation:pulseRing 2.4s infinite;
}.fab-call svg{width:26px;height:26px}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(217,119,6,.5)}70%{box-shadow:0 0 0 18px rgba(217,119,6,0)}100%{box-shadow:0 0 0 0 rgba(217,119,6,0)}}
@media (max-width:820px){.fab-call{display:flex}}

/* =========================================================
 404
 ========================================================= */.notfound{min-height:70vh;display:grid;place-items:center;text-align:center;padding:60px 20px}.notfound h1{font-size:clamp(4rem,12vw,9rem);margin:0;line-height:1;color:var(--primary)}

/* =========================================================
 Trust strip
 ========================================================= */.trust-strip{
 display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap;
 padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
}.trust-item{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-weight:600;font-size:.95rem}.trust-item svg{width:22px;height:22px;color:var(--primary)}

/* =========================================================
 Hero video
 ========================================================= */.hero.hero-video-mode::before{display:none}.hero-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
@keyframes slow-pan{0%{transform:scale(1.04) translateY(0)}100%{transform:scale(1.08) translateY(-1%)}}.hero-video{animation:slow-pan 30s ease-in-out infinite alternate}

/* Scroll-driven hero parallax */
@supports (animation-timeline: scroll()){.hero-video{animation: scroll-parallax linear both; animation-timeline: scroll(root block); animation-range: 0 100vh;}
 @keyframes scroll-parallax{to{transform:scale(1.15) translateY(6%)}}
}

/* =========================================================
 Sticky booking bar (mobile)
 ========================================================= */.sticky-book{
 position:fixed;left:0;right:0;bottom:0;z-index:55;
 background:rgba(248,245,239,.98);backdrop-filter:saturate(140%) blur(10px);
 border-top:1px solid var(--line);padding:10px 12px 14px;
 transform:translateY(120%);transition:transform.4s cubic-bezier(.2,.7,.2,1);
 box-shadow:0 -8px 24px rgba(15,27,31,.10);
 display:none;
}.sticky-book.visible{transform:none}.sticky-book-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:720px;margin:0 auto;flex-wrap:wrap}.sticky-book-inner > span{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sticky-book strong{color:var(--primary);font-family:var(--serif);font-size:1.2rem}.sticky-book.btn{padding:12px 18px}
@media (max-width:820px){
 .sticky-book{display:block}
 /* FAB is redundant with sticky bar's Call button on mobile — hide to prevent overlap */
 .fab-call{display:none}
 /* Sticky bar single-row layout on all mobile widths: hide the descriptor text, keep just the action buttons */
 .sticky-book-inner > span:first-child{display:none}
 .sticky-book-inner{justify-content:center;gap:8px;flex-wrap:nowrap}
 .sticky-book .btn{padding:10px 14px;font-size:.92rem;white-space:nowrap}
}
@media (max-width:480px){
 .sticky-book .btn{padding:10px 12px;font-size:.88rem}
 /* Hero stat row — tighter spacing on narrow screens */
 .hero-facts{gap:14px 12px;margin-top:28px}
 .hero-fact{font-size:.74rem;padding-left:10px}
 .hero-fact strong{font-size:1.15rem}
 /* Hero CTAs — prevent the long phone button from forcing overflow */
 .hero-cta{max-width:100%;gap:10px}
 .hero-cta .btn{min-width:0;max-width:100%}
 .hero-cta .btn-lg{font-size:1rem !important;padding:14px 18px}
 /* Trust band — tighter on phones */
 .trust-band{gap:14px;padding:14px 14px}
 .trust-badge{font-size:.78rem;gap:6px}
 /* Nav inner — never overflow viewport */
 .nav-inner{max-width:100%}
 /* Video + iframe defensive */
 .hero-video,iframe{max-width:100vw;width:100%}
}

/* =========================================================
 Exit-intent modal
 ========================================================= */.modal-backdrop{
 position:fixed;inset:0;background:rgba(8,25,35,.65);backdrop-filter:blur(6px);
 display:none;align-items:center;justify-content:center;z-index:100;padding:20px;
 opacity:0;transition:opacity.3s;
}.modal-backdrop.open{display:flex;opacity:1}.modal{
 background:var(--bg-2);border-radius:var(--radius);max-width:520px;width:100%;
 padding:40px 32px;position:relative;box-shadow:var(--shadow-2);
 transform:translateY(16px);transition:transform.3s cubic-bezier(.2,.7,.2,1);
}.modal-backdrop.open.modal{transform:none}.modal h2{margin-top:0}.modal-close{
 position:absolute;top:12px;right:12px;background:none;border:0;
 width:40px;height:40px;cursor:pointer;border-radius:50%;display:grid;place-items:center;color:var(--muted);
}.modal-close:hover{background:var(--line);color:var(--ink)}.modal.discount-code{
 display:inline-block;padding:10px 18px;background:var(--accent);color:#fff;
 border-radius:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.1em;
}

/* =========================================================
 Weather widget
 ========================================================= */.weather-widget{
 display:inline-flex;align-items:center;gap:12px;
 padding:10px 16px;background:#fff;border:1px solid var(--line);border-radius:999px;
 font-size:.9rem;font-weight:500;color:var(--ink-2);box-shadow:var(--shadow-1);
}.weather-widget.wx-icon{font-size:1.3rem}.weather-widget strong{color:var(--ink)}

/* =========================================================
 Logo animation
 ========================================================= */
@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}.brand img{animation:logoFloat 3.5s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.brand img{animation:none}}

/* =========================================================
 Cursor
 ========================================================= */
/* Custom cursor removed per client request — keep system cursor */
.cursor-dot,.cursor-ring{display:none !important}

/* Dark mode removed — single-theme conversion site. */

/* =========================================================
 Map skeleton loader
 ========================================================= */.map-frame{position:relative}.map-frame::before{
 content:"";position:absolute;inset:0;z-index:1;
 background:linear-gradient(90deg, var(--line) 0%, var(--surface) 50%, var(--line) 100%);
 background-size:200% 100%;animation:skeleton 1.6s infinite;
}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}.map-frame.loaded::before{display:none}.map-frame iframe{position:relative;z-index:2}

/* =========================================================
 Print
 ========================================================= */
@media print{.nav,.footer,.fab-call,.sticky-book,.hero-cta,.btn,.modal-backdrop,.theme-toggle,.reviews-header{display:none !important}.hero{min-height:auto !important;background:none !important;color:var(--ink) !important}.hero::before,.hero::after,.hero-video{display:none !important}.hero h1,.hero.lede,.hero.eyebrow{color:var(--ink) !important}
 body{background:#fff;color:#000;font-size:12pt}
 a{color:#000;text-decoration:underline}
 a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em}.section{padding:20pt 0;page-break-inside:avoid}.card,.facts-box{box-shadow:none;border:1px solid #999;page-break-inside:avoid}
}

/* =========================================================
 Trust badges
 ========================================================= */.trust-band{
 display:flex;justify-content:center;gap:48px;padding:22px 20px;flex-wrap:wrap;
 border-top:1px solid var(--line);border-bottom:1px solid var(--line);
 background:var(--bg-2);
}.trust-badge{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:600;font-size:.88rem;letter-spacing:.01em}.trust-badge svg{width:20px;height:20px;color:var(--accent);stroke-width:2.2}
@media (max-width:640px){.trust-band{gap:18px;padding:18px 16px}.trust-badge{font-size:.8rem}}
@media (max-width:640px){.trust-band{gap:20px}.trust-badge{font-size:.82rem}}

/* =========================================================
 Scroll-progress bar
 ========================================================= */.scroll-progress{
 position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));
 width:0;z-index:70;transition:width.1s;
}

/* =========================================================
 Visually hidden (SEO-only content)
 ========================================================= */.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Social card (captain page) */.social-card{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink);font-size:.9rem;font-weight:500;transition:.2s}.social-card:hover{background:var(--primary);color:#fff;border-color:var(--primary);text-decoration:none}

/* Feature-icon blocks (home) */.feature-row{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:32px}.feature-row.feature{text-align:center;padding:8px}.feature-row.f-icon{width:48px;height:48px;margin:0 auto 12px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-ink));color:#fff}.feature-row.f-icon svg{width:24px;height:24px}.feature-row strong{display:block;font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin-bottom:4px}.feature-row span{color:var(--muted);font-size:.88rem;line-height:1.5}
@media (max-width:760px){.feature-row{grid-template-columns:1fr 1fr;gap:22px}}

/* Press strip */.press-strip{display:flex;align-items:center;justify-content:center;gap:38px;flex-wrap:wrap;padding:24px;opacity:.7}.press-strip span{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:1rem;letter-spacing:.02em}.press-strip.press-label{font-family:var(--sans);font-style:normal;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;font-weight:700;color:var(--ink-2)}

/* Trip counter */.counter-band{
 background:linear-gradient(135deg, var(--primary) 0%, var(--forest) 100%);
 color:#fff;border-radius:var(--radius);padding:48px 32px;text-align:center;
 box-shadow:var(--shadow-2);position:relative;overflow:hidden;
}.counter-band::before{
 content:"";position:absolute;inset:0;pointer-events:none;
 background:radial-gradient(600px circle at 20% -20%, rgba(232,159,59,.2), transparent 60%);
}.counter-band h2{color:#fff;margin-bottom:10px}.counter-band p{color:rgba(255,255,255,.85);max-width:600px;margin:0 auto 28px}.counter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;max-width:800px;margin:0 auto;position:relative}.counter-grid.count-num{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3.5rem);font-weight:700;color:var(--accent-glow);letter-spacing:-.02em;line-height:1}.counter-grid.count-lbl{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:6px;font-weight:600}
@media (max-width:640px){.counter-grid{grid-template-columns:1fr 1fr;gap:20px}}

/* Licence widget */.licence-widget{
 display:flex;gap:18px;align-items:center;padding:18px 22px;
 background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
 border-left:3px solid var(--accent);box-shadow:var(--shadow-1);
}.licence-widget.lw-icon{flex:0 0 48px;height:48px;border-radius:0;background:var(--surface);display:grid;place-items:center;color:var(--accent)}.licence-widget.lw-icon svg{width:26px;height:26px}.licence-widget.lw-body{flex:1}.licence-widget strong{display:block;font-family:var(--serif);font-size:1.1rem;color:var(--ink)}.licence-widget span{color:var(--ink-2);font-size:.92rem}.licence-widget.btn{flex:0 0 auto}
@media (max-width:640px){.licence-widget{flex-direction:column;text-align:center;align-items:stretch}.licence-widget.lw-icon{margin:0 auto}}

/* Stay+Fish Airbnb partner */.stay-fish{
 background:linear-gradient(135deg, #FF5A5F 0%, var(--primary) 100%);
 color:#fff;border-radius:var(--radius);padding:40px 36px;
 display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;
 box-shadow:var(--shadow-2);position:relative;overflow:hidden;
}.stay-fish::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%, rgba(255,255,255,.15), transparent 55%);pointer-events:none}.stay-fish h2{color:#fff;margin:0 0.3em}.stay-fish p{color:rgba(255,255,255,.92);margin-bottom:1em}.stay-fish.btn{background:#fff;color:var(--accent-ink);border-color:#fff}.stay-fish.btn:hover{background:var(--bg);color:var(--accent-ink)}.stay-fish img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow-2)}
@media (max-width:760px){.stay-fish{grid-template-columns:1fr;padding:32px 24px}}

/* Seasonal strip */.season-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.season-strip.season{position:relative;aspect-ratio:3/4;border-radius:0;overflow:hidden;background:var(--sand)}.season-strip.season img{width:100%;height:100%;object-fit:cover;transition:transform.5s}.season-strip.season:hover img{transform:scale(1.08)}.season-strip.season-label{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
@media (max-width:820px){.season-strip{grid-template-columns:repeat(3,1fr)}}

/* Booking slot */.booking-slot{min-height:480px;background:var(--bg-2);border:1px dashed var(--line);border-radius:var(--radius);display:grid;place-items:center;padding:40px;text-align:center;color:var(--muted)}.booking-slot strong{display:block;color:var(--ink);font-family:var(--serif);font-size:1.3rem;margin-bottom:8px}

/* Per-page hero accent tint */.page-hero-fishing::after{background:radial-gradient(ellipse at 70% 20%, rgba(194,87,26,.18) 0%, transparent 55%), linear-gradient(180deg, rgba(8,29,40,.25) 0%, rgba(8,29,40,.55) 55%, rgba(6,22,32,.88) 100%) !important}.page-hero-captain::after{background:radial-gradient(ellipse at 30% 30%, rgba(232,159,59,.18) 0%, transparent 55%), linear-gradient(180deg, rgba(8,29,40,.3) 0%, rgba(8,29,40,.58) 55%, rgba(6,22,32,.85) 100%) !important}.page-hero-sunset::after{background:radial-gradient(ellipse at 80% 10%, rgba(232,159,59,.25) 0%, transparent 60%), linear-gradient(180deg, rgba(26,12,8,.2) 0%, rgba(20,8,5,.55) 55%, rgba(10,4,2,.85) 100%) !important}.page-hero-boat::after{background:radial-gradient(ellipse at 50% 0%, rgba(31,58,46,.3) 0%, transparent 60%), linear-gradient(180deg, rgba(8,29,40,.28) 0%, rgba(8,29,40,.6) 60%, rgba(6,22,32,.88) 100%) !important}.page-hero-soft{background:linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%);padding-top:72px}.page-hero-soft h1{color:var(--ink)}

/* =========================================================
 Page enter animation
 ========================================================= */
body{opacity:0;animation:pageIn.5s ease-out.1s forwards}
@keyframes pageIn{to{opacity:1}}
@media (prefers-reduced-motion: reduce){body{opacity:1;animation:none}}

/* =========================================================
 Status strip (season + activity ticker)
 ========================================================= */.status-strip{display:flex;align-items:stretch;justify-content:center;gap:0;flex-wrap:wrap;padding:12px 20px;background:linear-gradient(90deg, rgba(14,59,79,.06), rgba(194,87,26,.06), rgba(14,59,79,.06));border-bottom:1px solid var(--line);font-size:.88rem;color:var(--ink-2)}.status-item{display:inline-flex;align-items:center;gap:10px;padding:4px 24px;border-right:1px solid var(--line)}.status-item:last-child{border-right:none}.status-item strong{color:var(--ink);font-weight:600}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.pulse-green{background:#2F9E44;box-shadow:0 0 0 0 rgba(47,158,68,.6);animation:pulseDot 2.2s infinite}.pulse-amber{background:var(--accent);box-shadow:0 0 0 0 rgba(194,87,26,.6);animation:pulseDot 2.2s infinite.6s}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(47,158,68,.6)}70%{box-shadow:0 0 0 8px rgba(47,158,68,0)}100%{box-shadow:0 0 0 0 rgba(47,158,68,0)}}
@media (max-width:640px){.status-item{padding:4px 12px;font-size:.8rem;border-right:none;border-bottom:1px solid var(--line);width:100%;justify-content:center}.status-item:last-child{border-bottom:none}}

/* =========================================================
 Build Your Trip wizard
 ========================================================= */.wizard{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:36px 32px;box-shadow:var(--shadow-1);max-width:760px;margin:0 auto;position:relative}.wiz-step h3{margin-top:0;font-size:1.4rem}.wiz-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.wiz-opts button{padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:0;font-family:var(--serif);font-size:1.05rem;color:var(--ink);cursor:pointer;transition:.18s;text-align:left}.wiz-opts button:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px)}
@media (max-width:640px){.wiz-opts{grid-template-columns:1fr}}.wiz-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--line);border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.wiz-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width.4s}.wiz-result h3{font-size:1.8rem;color:var(--primary);margin-top:0}

/* =========================================================
 Windy iframe
 ========================================================= */.windy-wrap{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2);background:var(--line)}.windy-wrap iframe{display:block;width:100%;border:0}

/* =========================================================
 Mobile portrait orientation lock
 ========================================================= */
@media screen and (max-width:900px) and (orientation:landscape){
 body{overflow:hidden}
 body::before{
 content:"";position:fixed;inset:0;background:var(--canvas);z-index:9999;
 }
 body::after{
 content:"↻ Please rotate to portrait";
 position:fixed;inset:0;z-index:10000;
 display:grid;place-items:center;
 color:#fff;font-family:var(--serif);font-size:1.6rem;text-align:center;padding:20px;
 letter-spacing:.02em;font-weight:600;
 }
}

/* =========================================================
 Hover-expand card variant
 ========================================================= */.card.card-expand.card-body p{max-height:3.2em;overflow:hidden;transition:max-height.4s ease}.card.card-expand:hover.card-body p{max-height:30em}

/* Glossary */.glossary{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.glossary dt{font-family:var(--serif);font-weight:700;color:var(--primary);font-size:1.08rem;margin-bottom:4px}.glossary dd{color:var(--ink-2);margin:0 0 14px;font-size:.95rem;line-height:1.55}

/* ============================================================
 * Mobile readability defensives — fix text clipping & overflow
 * ============================================================ */

/* facts-box dl — collapse to single column on phones so long emails,
 * credentials, and lists of lakes don't get clipped by the narrow dd column */
.facts-box dl{grid-template-columns:minmax(110px,160px) minmax(0,1fr)}
.facts-box dt,.facts-box dd{min-width:0;overflow-wrap:anywhere;word-break:break-word}
@media (max-width:600px){.facts-box dl{grid-template-columns:120px 1fr}}
@media (max-width:480px){
  .facts-box{padding:20px 16px}
  .facts-box dl{grid-template-columns:1fr;gap:2px 0}
  .facts-box dt{margin-top:10px;font-weight:700}
  .facts-box dt:first-child{margin-top:0}
}

/* card-meta — shrink uppercase letter-spacing on phones so long
 * eyebrow text doesn't overflow card width */
@media (max-width:520px){
  .card-body .card-meta{letter-spacing:.06em;font-size:.78rem}
}

/* species-table — make horizontal scroll actually work on mobile.
 * The earlier rule set overflow:hidden which killed scroll. */
.species-table{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}

/* Global URL/email/long-word break safety net.
 * Without this, a single email or URL in body text forces horizontal scroll. */
.facts-box a,.prose a:not(.btn),.card-body a:not(.btn),.review-card a:not(.btn),
section .lede a,details a,p a:not(.btn):not(.link):not(.navlink){
  overflow-wrap:anywhere;word-break:break-word
}
.card-body code,.prose code{word-break:break-all}

/* Stay+Fish narrow-phone padding */
@media (max-width:480px){.stay-fish{padding:24px 18px}}

/* Heading margins — kill horizontal margin that eats narrow viewport */
h1,h2,h3,h4{margin:0 0 0.5em}

/* Modal narrow-phone padding */
@media (max-width:480px){.modal{padding:28px 20px}}

/* Hero CTA "or text" link gets its own row on narrow phones */
@media (max-width:480px){
  .hero-cta > a[href^="sms:"]{flex-basis:100%;margin-left:0;margin-top:6px;text-align:center}
}

/* =========================================================
   FERRARI-INSPIRED REDESIGN — slideshow hero, marquee, sharp buttons
   ========================================================= */

/* Sharp 0px corners + uppercase tracking on buttons (Ferrari signature) */
.btn,.btn-primary,.btn-ghost,.btn-lg{
  border-radius:0 !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  font-size:.82rem;
}
.btn-lg{padding:16px 32px;font-size:.88rem}
.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}
.btn-primary:hover{background:var(--primary-ink);border-color:var(--primary-ink);text-decoration:none}
.btn-ghost{background:transparent;color:#fff;border:1px solid #fff}
.btn-ghost:hover{background:#fff;color:var(--ink);text-decoration:none}

/* Cards / tiles / inputs — keep slight roundness only on inputs */
.dest-tile,.review-card,.facts-box,.card,.modal,.species-table{border-radius:0 !important}
input,textarea,select{border-radius:2px !important}

/* HERO SLIDESHOW — 5 full-bleed crossfading photos */
.hero.hero-slides{
  position:relative;min-height:88vh;display:flex;align-items:center;
  color:#fff;background:var(--canvas);overflow:hidden;isolation:isolate;
  padding:120px 0 80px;
}
.hero-slides-track{position:absolute;inset:0;z-index:0}
.hero-slides-track::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(24,24,24,.35) 0%,rgba(24,24,24,.55) 60%,rgba(24,24,24,.85) 100%);
  z-index:2;
}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;animation:heroSlide 35s infinite;z-index:1;
}
.hero-slide:nth-child(1){animation-delay:0s}
.hero-slide:nth-child(2){animation-delay:7s}
.hero-slide:nth-child(3){animation-delay:14s}
.hero-slide:nth-child(4){animation-delay:21s}
.hero-slide:nth-child(5){animation-delay:28s}
@keyframes heroSlide{
  0%,18%{opacity:1;transform:scale(1.04)}
  22%,100%{opacity:0;transform:scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .hero-slide{animation:none;opacity:0}
  .hero-slide:nth-child(1){opacity:1}
}

.hero.hero-slides .hero-inner{position:relative;z-index:3;max-width:980px}
.hero.hero-slides .eyebrow{
  color:#fff;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  background:none;padding:0;display:inline-block;margin-bottom:24px;
}
.hero.hero-slides .eyebrow::before{
  content:"";display:inline-block;width:36px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:14px;
}
.hero.hero-slides h1{
  font-family:var(--serif);font-weight:500;font-size:clamp(2.8rem,7vw,5.6rem);
  line-height:1.02;letter-spacing:-.02em;margin:0 0 22px;color:#fff;
}
.hero.hero-slides .lede{
  font-family:var(--sans);font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,.85);
  max-width:540px;margin:0 0 36px;
}
.hero.hero-slides .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:42px}

/* Hero social row — FB / IG / Google reviews badge / weather */
.hero-social{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding-top:28px;border-top:1px solid rgba(255,255,255,.18);
}
.hero-social a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;color:#fff;border:1px solid rgba(255,255,255,.35);
  transition:all .2s ease;text-decoration:none !important;
}
.hero-social a:hover{background:var(--primary);border-color:var(--primary)}
.hero-social a svg{width:18px;height:18px}
.hero-social a[aria-label="Google reviews"]{width:auto;padding:0 16px}
.hero-social .g-badge{display:inline-flex;align-items:center;gap:8px}
.hero-social .g-badge strong{font-family:var(--sans);font-weight:700;font-size:.95rem;color:#fff}
.hero-social .g-badge em{font-style:normal;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hero-weather{
  display:inline-flex;align-items:center;gap:8px;
  padding:0 14px;height:42px;border:1px solid rgba(255,255,255,.18);
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.82);
}

/* MARQUEE — Rosso Corsa band (reserve height to prevent CLS shift) */
.marquee{
  background:var(--primary);color:#fff;overflow:hidden;
  border-top:1px solid var(--primary-ink);border-bottom:1px solid var(--primary-ink);
  padding:18px 0;
  min-height:58px;display:flex;align-items:center;
  contain:layout style;
}
.marquee-track{
  display:inline-flex;gap:48px;white-space:nowrap;
  animation:marqueeScroll 38s linear infinite;
  font-family:var(--sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:.88rem;
}
.marquee-track span{display:inline-block}
.marquee-track span:nth-child(even){opacity:.55;font-weight:400}
@keyframes marqueeScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none;display:flex;flex-wrap:wrap;justify-content:center}
}

/* MOBILE — slideshow hero */
@media (max-width:720px){
  .hero.hero-slides{min-height:78vh;padding:110px 0 60px}
  .hero.hero-slides h1{font-size:clamp(2.2rem,9vw,3.4rem)}
  .hero.hero-slides .lede{font-size:.98rem}
  .hero-social{gap:10px}
  .marquee-track{font-size:.78rem;gap:32px}
}

/* NAV — Ferrari editorial: uppercase tracking, restrained */
.nav a.navlink{
  text-transform:uppercase;letter-spacing:.13em;font-size:.74rem !important;font-weight:600;
}
.nav .brand{font-family:var(--serif);font-weight:500;font-size:1.08rem;letter-spacing:-.005em}
.nav .btn.btn-primary{
  font-size:.74rem !important;letter-spacing:.13em;padding:12px 22px !important;
}
@media (max-width:900px){
  .nav a.navlink{font-size:.92rem !important;letter-spacing:.1em}
}

/* COMPACT FOOTER — Ferrari-style 2-row strip */
.footer{background:var(--canvas);color:#fff;padding:48px 0 28px;margin-top:0}
.footer .container{padding-left:24px;padding-right:24px}
.footer-top{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;
  padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-brand-row{
  display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none !important;
  font-family:var(--serif);font-size:1.05rem;font-weight:500;
}
.footer-brand-row img{width:auto;height:36px;max-width:120px;object-fit:contain}
.footer-nav{display:flex;flex-wrap:wrap;gap:20px}
.footer-nav a{
  color:rgba(255,255,255,.78);text-decoration:none !important;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  transition:color .15s;
}
.footer-nav a:hover{color:#fff}
.footer-social{display:inline-flex;gap:10px}
.footer-social a{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;color:#fff;border:1px solid rgba(255,255,255,.25);
  transition:all .18s;text-decoration:none !important;
}
.footer-social a:hover{background:var(--primary);border-color:var(--primary)}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  padding-top:24px;color:rgba(255,255,255,.6);font-size:.78rem;
}
.footer-bottom a{
  color:rgba(255,255,255,.85);text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.35);
  text-underline-offset:3px;text-decoration-thickness:1px;
}
.footer-bottom a:hover{color:#fff;text-decoration-color:#fff}
@media (max-width:640px){
  .footer-top{flex-direction:column;align-items:flex-start;text-align:left}
  .footer-nav{gap:14px 18px}
  .footer-bottom{flex-direction:column}
}

/* =========================================================
   MOTION POLISH & BRAND DETAILS — Ferrari-grade refinements
   ========================================================= */

/* Selection — Rosso Corsa highlight */
::selection{background:var(--primary);color:#fff}
::-moz-selection{background:var(--primary);color:#fff}

/* Focus rings — consistent, accessible, on-brand */
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.btn:focus-visible{outline-offset:4px}

/* Hero text entrance — staggered fade-up on load */
.hero.hero-slides .eyebrow,
.hero.hero-slides h1,
.hero.hero-slides .hero-cta,
.hero.hero-slides .lede{
  opacity:0;transform:translateY(18px);
  animation:heroFadeUp .9s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero.hero-slides .eyebrow{animation-delay:.15s}
.hero.hero-slides h1{animation-delay:.30s}
.hero.hero-slides .lede{animation-delay:.45s}
.hero.hero-slides .hero-cta{animation-delay:.55s}
@keyframes heroFadeUp{to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){
  .hero.hero-slides .eyebrow,
  .hero.hero-slides h1,
  .hero.hero-slides .hero-cta,
  .hero.hero-slides .lede{
    opacity:1;transform:none;animation:none;
  }
}

/* Slideshow Ken-Burns — slower, more cinematic scale + slight pan */
@keyframes heroSlide{
  0%{opacity:0;transform:scale(1.06) translate3d(-1%,0,0)}
  6%,18%{opacity:1}
  22%{opacity:0}
  22.01%,100%{opacity:0;transform:scale(1.0) translate3d(1%,0,0)}
}

/* Buttons — refined hover micro-interaction */
.btn{
  position:relative;overflow:hidden;
  transition:background .22s ease, color .22s ease, border-color .22s ease, transform .15s ease;
}
.btn-primary:hover{transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost:hover{transform:translateY(-1px)}

/* CTAs with arrow — animated nudge on hover */
.btn .arrow,.btn::after{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.btn:hover .arrow{transform:translateX(3px)}

/* Marquee — pause on hover (so people can read it) */
.marquee:hover .marquee-track{animation-play-state:paused}

/* Destination tiles — sharper hover with image-layer feel */
.dest-tile{transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s}
.dest-tile::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:inherit;background-size:cover;background-position:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.dest-tile:hover::before{transform:scale(1.04)}
.dest-tile .arrow{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:8px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;color:#fff;opacity:.92;
  transition:gap .25s ease, opacity .2s;
}
.dest-tile:hover .arrow{gap:10px;opacity:1}

/* Scroll-reveal — clean fade-up on enter */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in,.reveal.visible{opacity:1;transform:none}
.reveal.delay-1{transition-delay:.08s}
.reveal.delay-2{transition-delay:.16s}
.reveal.delay-3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* Section heads — Ferrari-style display restraint */
.section-head .eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:var(--primary);
  background:none;padding:0;display:inline-block;margin-bottom:14px;
}
.section-head .eyebrow::before{
  content:"";display:inline-block;width:28px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:12px;
}
.section-head h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(2rem,3.6vw,2.6rem);
  line-height:1.15;letter-spacing:-.012em;margin:0 0 .35em;
}

/* Big quote — editorial elegance */
.big-quote{max-width:780px;margin:0 auto;text-align:center;padding:48px 0}
.big-quote .stars{color:var(--primary);font-size:1.1rem;letter-spacing:.2em;margin-bottom:18px}
.big-quote blockquote{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.4vw,1.85rem);
  line-height:1.4;letter-spacing:-.005em;margin:0 0 18px;color:var(--ink);
}
.big-quote cite{font-style:normal;color:var(--muted);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.big-quote .more{
  display:inline-block;margin-top:22px;color:var(--primary);
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  border-bottom:1px solid var(--primary);padding-bottom:2px;text-decoration:none !important;
  transition:gap .25s, opacity .2s;
}
.big-quote .more:hover{opacity:.75}

/* Pre-footer CTA band — Rosso Corsa */
.price-band{
  background:var(--primary) !important;
  color:#fff;padding:56px 40px;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;
}
.price-band h2{color:#fff;font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.1;letter-spacing:-.015em;margin:0 0 .35em}
.price-band p{color:rgba(255,255,255,.92);font-size:1.02rem;margin:0}
.price-band .cta-col{display:flex;flex-direction:column;gap:12px;min-width:240px}
.price-band .btn-ghost{border-color:#fff;color:#fff}
.price-band .btn-ghost:hover{background:#fff;color:var(--primary)}
@media (max-width:720px){
  .price-band{padding:40px 24px;flex-direction:column;align-items:flex-start}
  .price-band .cta-col{width:100%}
}

/* Hairline section dividers — quiet rhythm */
section.section + section.section{border-top:1px solid var(--line)}
section.section:has(.price-band) + section{border-top:0}

/* Eyebrow base — make sure all eyebrows respect Ferrari spec */
.eyebrow{
  font-family:var(--sans);font-weight:600;font-size:.7rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
}

/* Hero CTA on mobile — full-width stack */
@media (max-width:480px){
  .hero.hero-slides .hero-cta{flex-direction:column;align-items:stretch;width:100%;max-width:340px}
  .hero.hero-slides .hero-cta .btn{justify-content:center;text-align:center}
}

/* Smooth scroll-margin so anchor links don't get tucked under sticky nav */
:target{scroll-margin-top:calc(var(--nav-h) + 12px)}

/* Print — strip slideshow, marquee, motion */
@media print{
  .marquee,.hero-slides-track,.fab-call,.sticky-book{display:none !important}
  .hero.hero-slides{min-height:auto;background:#fff;color:#000;padding:32px 0}
  .hero.hero-slides h1,.hero.hero-slides .eyebrow{color:#000 !important}
  *{animation:none !important;transition:none !important}
}

/* =========================================================
   MOBILE AUDIT FIXES (post-Ferrari)
   ========================================================= */

/* Defensive container padding inside hero — buttons must never bleed to edge */
.hero.hero-slides .hero-inner{padding-left:24px;padding-right:24px}
@media (max-width:480px){.hero.hero-slides .hero-inner{padding-left:20px;padding-right:20px}}

/* Marquee under prefers-reduced-motion — single line, no wrap (fix broken grid) */
@media (prefers-reduced-motion:reduce){
  .marquee{padding:14px 0;text-align:center}
  .marquee-track{
    animation:none !important;display:block !important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    flex-wrap:nowrap !important;
  }
  .marquee-track span{display:inline}
  .marquee-track span:nth-child(n+10){display:none}
}

/* FAQ <summary> — 48px tap target */
details > summary{
  padding:14px 16px;min-height:48px;
  cursor:pointer;list-style-position:inside;
}
details > summary:hover{background:rgba(0,0,0,.025)}

/* Header — wordmark only, no logo image (removed by request) */
.nav{height:64px;--nav-h:64px}
.nav .brand{gap:0;text-decoration:none !important}
.nav .brand img{display:none}
.nav .brand span{
  font-family:var(--sans);font-weight:700;
  font-size:.86rem !important;letter-spacing:.18em !important;
  text-transform:uppercase;color:var(--ink) !important;
  display:inline-block;
}
@media (max-width:720px){
  .nav .brand span{font-size:.76rem !important;letter-spacing:.14em !important}
}
@media (max-width:420px){
  .nav .brand span{font-size:.7rem !important;letter-spacing:.1em !important}
}

/* HERO LOGO — top of hero text column */
.hero-logo,
.hero-still .hero-logo,
.hero-still img.hero-logo{
  height:64px !important;width:auto !important;max-width:220px !important;object-fit:contain !important;
  display:block !important;margin:0 0 28px !important;
  filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.4)) !important;
  opacity:1 !important;
}
@media (max-width:720px){
  .hero-logo{height:48px;max-width:170px;margin-bottom:22px}
}

/* FOOTER LOGO — white-tinted via filter so it's visible on dark canvas */
.footer-brand-row img{
  filter:brightness(0) invert(1) !important;
  opacity:.95;
  height:42px !important;max-width:160px !important;
}

/* === BANDED LAYOUT — site-wide, less whitespace, more rhythm === */
.section{padding:56px 0 !important}
@media (max-width:720px){.section{padding:40px 0 !important}}
.section.section-tight{padding:36px 0 !important}

/* Alternate section backgrounds for visual rhythm (banded look) — site-wide */
/* EXCLUDE sections whose CHILDREN have their own bg (big-cta, spec-band, etc.) */
main .section:nth-of-type(odd):not(:has(.big-cta)):not(:has(.spec-band)):not(:has(.reviews-band)):not(:has(.guarantee-band)){background:#fff}
main .section:nth-of-type(even):not(:has(.big-cta)):not(:has(.spec-band)):not(:has(.reviews-band)):not(:has(.guarantee-band)){background:var(--surface)}
/* Section that WRAPS big-cta has no background — let big-cta's photo show */
main .section:has(.big-cta){background:transparent !important;padding:0 !important}

/* Banded sections keep their explicit backgrounds (override) */
body[data-page="home"] .spec-band,
body[data-page="home"] .reviews-band,
body[data-page="home"] .trust-strip,
body[data-page="home"] .guarantee-band{background:inherit-original}
/* Black-canvas bands stay black; surface bands stay surface */
.spec-band{background:var(--canvas) !important}
.reviews-band{background:var(--surface) !important}
.trust-strip{background:var(--canvas) !important}

/* Captain spotlight — keep generous on mobile but tighten on desktop */
.alt-row.alt-row--large{padding:72px 0 !important;gap:56px !important}
.alt-row.alt-row--large .alt-img{min-height:420px !important;aspect-ratio:1/1 !important}
@media (max-width:820px){
  .alt-row.alt-row--large{padding:48px 0 !important;gap:28px !important}
  .alt-row.alt-row--large .alt-img{min-height:auto !important;aspect-ratio:4/3 !important}
}

/* Gallery / How-it-works / sections — tighter section-head margin */
body[data-page="home"] .section-head{margin-bottom:28px !important}

/* Big CTA — tighter padding */
.big-cta{padding:64px 48px !important}
@media (max-width:720px){.big-cta{padding:44px 24px !important}}

/* Reviews band — tighter padding */
.reviews-band{padding:64px 0 !important}
@media (max-width:720px){.reviews-band{padding:44px 0 !important}}

/* Spec band — tighter */
.spec-band{padding:72px 0 !important}
@media (max-width:720px){.spec-band{padding:48px 0 !important}}
.spec-band .section-head{margin-bottom:32px !important}

/* How-it-works tighter */
.how-band{padding:56px 0 !important;background:#fff !important}
@media (max-width:720px){.how-band{padding:40px 0 !important}}

/* Hamburger — guaranteed 44×44 tap target */
.nav-toggle{
  min-width:44px;min-height:44px;
  display:none;align-items:center;justify-content:center;
  background:none;border:0;padding:8px;cursor:pointer;
}
.nav-toggle svg{width:24px;height:24px}
@media (max-width:900px){.nav-toggle{display:inline-flex}}

/* Pricing card CTAs — 48px height baseline */
.pricing .card .btn,.pricing-card .btn,
a.btn[href*="/contact"][class*="btn-lg"],
a.btn[href^="tel:"][class*="btn-lg"]{min-height:48px}

/* Footer social icons — bump to 24px (was 18px) */
.footer-social a svg{width:22px;height:22px}
.footer-social a{width:42px;height:42px}

/* Boat-page capacity strip — quick add via .boat-capacity utility */
.boat-capacity{
  display:inline-flex;gap:18px;flex-wrap:wrap;align-items:center;
  margin:18px 0 8px;padding:14px 18px;
  border:1px solid var(--line);background:var(--surface);
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink);
}
.boat-capacity strong{color:var(--primary);font-weight:700}

/* =========================================================
   FERRARI FULL REDESIGN — single Inter family, display 500
   ========================================================= */

/* Marquee fully removed */
.marquee,.marquee-track{display:none !important}

/* Single sans family — Inter for everything. Display always 500, body 400. */
html,body,h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,blockquote,cite,figcaption,th,td,dd,dt,label{
  font-family:var(--sans);
}
body{font-weight:400;letter-spacing:0;font-size:17px;line-height:1.65;color:var(--ink)}
@media (max-width:720px){body{font-size:17px;line-height:1.65}}
h1,h2,h3,h4,h5,h6{
  font-family:var(--sans);font-weight:500;color:var(--ink);
  letter-spacing:-.018em;line-height:1.15;
}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem);line-height:1.05;letter-spacing:-.022em;font-weight:500}
h2{font-size:clamp(1.8rem,3.4vw,2.4rem);font-weight:500}
h3{font-size:clamp(1.2rem,1.8vw,1.4rem);font-weight:500}
h4{font-size:1.05rem;font-weight:600}
em,blockquote em,blockquote i{font-style:normal}

/* Override editorial italic blockquotes — Ferrari is restrained, no italics */
.big-quote blockquote{font-family:var(--sans);font-weight:400;font-style:normal}
.big-quote blockquote em{font-weight:500;font-style:normal;color:var(--primary)}

/* Hero h1 — Ferrari display-mega cadence */
.hero.hero-slides h1,.hero-cinema h1{
  font-family:var(--sans) !important;font-weight:500;
  font-size:clamp(2.8rem,7vw,5.2rem);
  letter-spacing:-.024em;line-height:1.02;color:#fff;
}
.hero.hero-slides .lede,.hero-cinema .lede{
  font-family:var(--sans);font-weight:400;font-size:1rem;
}

/* SUBPAGE CINEMA HERO — full-bleed photo, single text column, no absolute overlap */
.hero,.hero-cinema{
  position:relative;min-height:min(56vh,460px);
  display:flex;align-items:flex-end;
  color:#fff;background:var(--canvas) center/cover no-repeat;
  background-image:linear-gradient(180deg,rgba(24,24,24,.25) 0%,rgba(24,24,24,.55) 50%,rgba(24,24,24,.92) 100%), var(--hero-img,linear-gradient(135deg,#181818,#303030));
  padding:120px 24px 56px;overflow:hidden;
}
.hero .hero-inner,.hero-cinema .hero-inner{
  position:relative;z-index:2;max-width:920px;
  width:100%;margin:0 auto;
}
.hero .breadcrumbs,.hero-cinema .breadcrumbs{
  position:static !important;top:auto !important;left:auto !important;right:auto !important;
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:rgba(255,255,255,.78) !important;
  margin:0 0 24px !important;display:block;
}
.hero .breadcrumbs a,.hero-cinema .breadcrumbs a{color:rgba(255,255,255,.78) !important;text-decoration:none}
.hero .breadcrumbs a:hover{color:#fff !important}
.hero .eyebrow,.hero-cinema .eyebrow{
  color:#fff;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;background:none;padding:0;display:inline-block;margin-bottom:18px;
}
.hero .eyebrow::before,.hero-cinema .eyebrow::before{
  content:"";display:inline-block;width:32px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:12px;
}
.hero h1,.hero-cinema h1{
  font-family:var(--sans);font-weight:600;font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.08;letter-spacing:-.024em;margin:0 0 18px;color:#fff;
  text-wrap:balance;
}
.hero .lede,.hero-cinema .lede{
  font-weight:400;font-size:clamp(1rem,1.4vw,1.12rem);
  line-height:1.55;color:#fff;max-width:580px;margin:0 0 20px;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
@media (max-width:720px){
  .hero,.hero-cinema{min-height:min(52vh,420px);padding:100px 20px 40px}
  .hero h1,.hero-cinema h1{font-size:clamp(1.8rem,7vw,2.4rem)}
  .hero .breadcrumbs{font-size:.66rem;margin-bottom:18px !important}
}

/* NAV redesign — Ferrari editorial: dark hairline border, single nav voice */
.nav{
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line);
  height:64px;
  --nav-h:64px;
}
.nav .container.nav-inner,.nav .nav-inner{padding:0 28px;height:100%}
.nav .brand{
  font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);
}
.nav .brand img{height:32px;width:auto;max-width:42px}
.nav ul{display:flex;gap:32px;align-items:center;margin:0;padding:0;list-style:none}
.nav a.navlink{
  color:var(--ink);font-family:var(--sans);
  text-transform:uppercase;letter-spacing:.16em;font-size:.7rem !important;font-weight:600;
  padding:8px 0;position:relative;
}
.nav a.navlink::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:var(--primary);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.nav a.navlink:hover{color:var(--primary);text-decoration:none}
.nav a.navlink:hover::after{transform:scaleX(1)}
.nav .btn.btn-primary{
  font-size:.7rem !important;letter-spacing:.16em;padding:12px 22px !important;
  margin-left:8px;
}
@media (max-width:900px){
  .nav ul{gap:0}
  .nav ul li{border-bottom:1px solid var(--line)}
  .nav a.navlink{font-size:.92rem !important;padding:16px 0 !important;letter-spacing:.13em}
  .nav .btn.btn-primary{margin-left:0;margin-top:12px}
}

/* Section rhythm — 96px Ferrari ladder */
.section{padding:96px 0}
.section.section-tight{padding:64px 0}
@media (max-width:720px){
  .section{padding:64px 0}
  .section.section-tight{padding:48px 0}
}

/* Section heads — left-aligned editorial default */
.section-head{margin-bottom:48px;max-width:760px}
.section-head .eyebrow{color:var(--primary)}
.section-head h2{font-weight:500;font-size:clamp(1.8rem,3.2vw,2.4rem);letter-spacing:-.018em;line-height:1.1}

/* Eyebrow override — Ferrari spec across the board */
.eyebrow{
  font-family:var(--sans);font-weight:600;font-size:.7rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--primary);
  background:none;padding:0;
}
.eyebrow::before{
  content:"";display:inline-block;width:28px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:12px;
}

/* Cards / tiles — Ferrari hairline rather than shadow */
.card,.review-card,.facts-box{
  border:1px solid var(--line);border-radius:0;background:#fff;
  box-shadow:none;padding:28px;
}
.card:hover,.review-card:hover{box-shadow:0 4px 8px rgba(24,24,24,.06)}

/* Destination tiles — sharper editorial typography */
.dest-tile{border-radius:0 !important;aspect-ratio:5/4;min-height:280px}
.dest-tile h3{font-family:var(--sans);font-weight:500;font-size:1.4rem;letter-spacing:-.012em;line-height:1.1}
.dest-tile .eyebrow{color:rgba(255,255,255,.8)}
.dest-tile .eyebrow::before{background:var(--primary)}

/* Breadcrumbs — Ferrari uppercase caption */
.breadcrumbs{
  font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--muted);margin-bottom:28px;
}

/* Footer brand — single-family treatment */
.footer-brand-row{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}

/* Body links — refined */
.prose a:not(.btn),p a:not(.btn):not(.navlink){
  color:var(--primary);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;
}
.prose a:not(.btn):hover{color:var(--primary-ink)}

/* Buttons — Ferrari spec restated for full-redesign uniformity */
.btn{
  font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;padding:14px 28px;min-height:48px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:0 !important;transition:all .2s ease;
}
.btn-lg{padding:16px 34px;font-size:.78rem;min-height:52px}

/* =========================================================
   MOBILE UX FIXES + MOTION POLISH (scroll/jank/length)
   ========================================================= */

/* Dest tiles — reduce min-height on phones so page isn't massive when 1-col */
@media (max-width:540px){
  .dest-tile{aspect-ratio:16/10 !important;min-height:200px !important}
  .dest-tile > div{padding:18px}
  .dest-tile h3{font-size:1.2rem}
  .dest-tile p{font-size:.85rem;line-height:1.35}
}

/* Quick Facts — stack on phone, side-by-side on tablet+ */
.quick-facts{display:grid;grid-template-columns:max-content 1fr;column-gap:24px;row-gap:10px;margin:0}
.quick-facts dt{font-weight:600;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-self:start;padding-top:2px}
.quick-facts dd{margin:0;font-size:.95rem;color:var(--ink);line-height:1.45}
.quick-facts dd a{color:var(--primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media (max-width:540px){
  .quick-facts{grid-template-columns:1fr;column-gap:0;row-gap:14px}
  .quick-facts dt{padding-top:0}
  .quick-facts dd{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:0}
  .quick-facts dd:last-child{border-bottom:0}
}

/* Sticky book bar — auto-hide near footer to prevent overlap */
.sticky-book{transition:transform .25s ease, opacity .25s ease}
.sticky-book.is-near-bottom{transform:translateY(110%);opacity:0;pointer-events:none}
body{padding-bottom:0} /* sticky-book handles its own real-estate via JS */
/* Sticky-book auto-hides at footer via JS observer, no extra padding needed */

/* Section padding rhythm tuned for mobile — less aggressive than 96px */
@media (max-width:720px){
  .section{padding:56px 0}
  .section.section-tight{padding:40px 0}
}

/* Hero on mobile — tighter height so user sees content faster */
@media (max-width:720px){
  .hero.hero-slides{min-height:72vh;padding:100px 0 48px}
  .hero.hero-slides h1{font-size:clamp(2rem,8.5vw,3.2rem);line-height:1.05}
  .hero.hero-slides .hero-cta{margin-bottom:0}
  .hero.hero-slides .hero-cta .btn-lg{padding:14px 22px;min-height:48px;font-size:.74rem}
}

/* Scroll behavior — instant on iOS (smooth scroll feels laggy), smooth only desktop */
html{scroll-behavior:auto}
@media (min-width:1024px) and (hover:hover){html{scroll-behavior:smooth}}
.hero-slides-track,.hero-slide{backface-visibility:hidden}
.dest-tile{transform:none}
.reveal{will-change:auto}

/* Mobile-only — kill heavy continuous animations and motion that jank scroll */
@media (max-width:820px){
  /* Show only the first hero slide on mobile — no crossfade / no Ken-Burns */
  .hero-slide{animation:none !important;opacity:0 !important;transform:none !important}
  .hero-slide:nth-child(1){opacity:1 !important}
  /* Reveal: opacity only, no translateY (which jolts page height as elements enter) */
  .reveal{opacity:0;transform:none !important;transition:opacity .45s ease}
  .reveal.in{opacity:1}
  /* Disable hero text fade-up stagger (cheaper paint, no shift on load) */
  .hero.hero-slides .eyebrow,
  .hero.hero-slides h1,
  .hero.hero-slides .lede,
  .hero.hero-slides .hero-cta{
    opacity:1 !important;transform:none !important;animation:none !important;
  }
  /* Sticky-book hide is instant on mobile, not animated */
  .sticky-book{transition:none}
  /* Kill scroll-progress on mobile — it's a desktop-only flourish, paints every scroll */
  .scroll-progress{display:none !important}
  /* Drop backdrop-filter on mobile nav (expensive on iOS, causes scroll jank) */
  .nav{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:rgba(255,255,255,.98) !important}
  /* Stable viewport units — iOS Safari address bar bug fix */
  .hero.hero-slides{min-height:520px;min-height:72svh}
  .hero,.hero-cinema{min-height:420px;min-height:56svh}
}

/* Global iOS Safari fix — anywhere vh is used, prefer dvh/svh */
.hero.hero-slides{min-height:88vh;min-height:88dvh}

/* Touch-device specific — disable hover-driven effects that confuse touchscreens */
@media (hover:none){
  .dest-tile:hover{transform:none}
  .dest-tile::before{display:none}
  .btn:hover{transform:none}
}

/* Subtle Ken-Burns on dest-tiles to give life on hover (but disable on touch devices to save battery) */
@media (hover:hover) and (pointer:fine){
  .dest-tile{overflow:hidden;position:relative;background-position:center}
  .dest-tile::before{
    content:"";position:absolute;inset:0;z-index:0;
    background:inherit;background-size:cover;background-position:center;
    transition:transform 1s cubic-bezier(.2,.7,.2,1);
  }
}

/* Section reveal — slight slide-in stagger, lighter than before */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.delay-1{transition-delay:.06s}
.reveal.delay-2{transition-delay:.12s}
.reveal.delay-3{transition-delay:.18s}

/* Big-quote — refine center alignment and quote marks */
.big-quote blockquote::before{content:"\201C";color:var(--primary);font-size:2.6rem;line-height:0;vertical-align:-.3em;margin-right:6px;font-weight:500}
.big-quote blockquote::after{content:"\201D";color:var(--primary);font-size:2.6rem;line-height:0;vertical-align:-.3em;margin-left:4px;font-weight:500}

/* Footer breath on mobile */
@media (max-width:720px){
  .footer{padding:36px 0 24px}
  .footer-bottom{font-size:.72rem}
}

/* Reduce paint flashing on slideshow swap */
.hero-slide{transform-origin:center center}

/* Anti-jank — let sticky/fixed elements layer correctly */
.nav{contain:layout style}
.scroll-progress{pointer-events:none}

/* Skip link visible only when focused — was off-screen but clean up */
.skip:focus{position:fixed;left:16px;top:12px;background:#fff;color:var(--ink);padding:8px 12px;z-index:100;border:2px solid var(--primary)}

/* =========================================================
   HOMEPAGE V2 — Editorial-luxury layout
   Display: Fraunces variable serif (homepage only)
   Body: Inter (everywhere)
   Direction: Captain-first storytelling, alternating editorial rows,
              oversized number callouts, restrained Rosso accents
   ========================================================= */

:root{
  --serif-display:"Inter", system-ui, sans-serif;
}

/* Homepage-scoped — clean Inter sans, tighter tracking on display */
body[data-page="home"] h1,
body[data-page="home"] h2,
body[data-page="home"] .display-quote,
body[data-page="home"] .spec-num,
body[data-page="home"] .hero-still h1,
body[data-page="home"] .big-cta h2{
  font-family:var(--sans);
  font-weight:600;
  letter-spacing:-.025em;
}

/* HERO STILL — single full-bleed photo, calm and confident */
.hero-still{
  position:relative;min-height:88vh;min-height:88dvh;
  display:flex;align-items:flex-end;
  background:var(--canvas);color:#fff;overflow:hidden;padding:0;
}
.hero-still > img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 35%;
  z-index:0;
}
.hero-still::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(24,24,24,0) 30%,rgba(24,24,24,.6) 75%,rgba(24,24,24,.92) 100%),
    linear-gradient(90deg,rgba(24,24,24,.55) 0%,rgba(24,24,24,.15) 55%,rgba(24,24,24,0) 100%);
}
.hero-still-text{
  position:relative;z-index:2;
  max-width:720px;margin:0;padding:160px 28px 64px;
  width:100%;
}
.hero-still .eyebrow{
  color:rgba(255,255,255,.85);font-family:var(--sans);
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  display:inline-block;margin:0 0 24px;padding:0;background:none;
}
.hero-still .eyebrow::before{
  content:"";display:inline-block;width:32px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:14px;
}
.hero-still h1{
  font-size:clamp(3rem,9vw,7.5rem);
  line-height:.95;color:#fff;margin:0 0 22px;
  font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;
}
.hero-still .lede{
  font-family:var(--sans);font-size:clamp(1.05rem,1.4vw,1.18rem);font-weight:400;
  line-height:1.5;color:rgba(255,255,255,.88);max-width:540px;margin:0 0 32px;
}
.hero-still .hero-cta{display:flex;gap:14px;flex-wrap:wrap}
@media (max-width:720px){
  .hero-still{min-height:74vh;min-height:74svh}
  .hero-still-text{padding:130px 22px 44px}
  .hero-still h1{font-size:clamp(2.5rem,12vw,4rem);line-height:.98}
}

/* INTRO PROSE — display pull quote, generous breathing room */
.intro-band{padding:120px 0 80px;background:#fff}
.intro-band .display-quote{
  max-width:880px;margin:0 auto;
  padding:0 28px;
  font-size:clamp(1.6rem,3.4vw,2.4rem);
  line-height:1.25;letter-spacing:-.018em;color:var(--ink);
  font-weight:400;text-wrap:balance;
  font-variation-settings:"opsz" 144,"SOFT" 50;
}
.intro-band .display-quote::first-letter{
  font-size:1.4em;color:var(--primary);font-weight:500;
}
@media (max-width:720px){
  .intro-band{padding:72px 0 48px}
}

/* ALTERNATING EDITORIAL ROWS — image + text, mirrored on every other */
.alt-row{
  display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;
  padding:80px 0;border-top:1px solid var(--line);
}
.alt-row:first-child{border-top:0}
.alt-row--reverse{direction:rtl}
.alt-row--reverse > *{direction:ltr}
.alt-img{aspect-ratio:5/4;overflow:hidden;background:var(--surface)}
.alt-img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.alt-row:hover .alt-img img{transform:scale(1.03)}
.alt-text .eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--primary);font-weight:600;
  display:inline-block;margin:0 0 18px;padding:0;background:none;
}
.alt-text .eyebrow::before{
  content:"";display:inline-block;width:28px;height:1px;background:var(--primary);
  vertical-align:middle;margin-right:12px;
}
.alt-text h2{
  font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.022em;
  margin:0 0 18px;color:var(--ink);
  font-variation-settings:"opsz" 144,"SOFT" 30;
  text-wrap:balance;
}
.alt-text p{
  font-family:var(--sans);font-size:1.02rem;line-height:1.6;
  color:var(--ink-2);max-width:520px;margin:0 0 22px;
}
.alt-text .link-arrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;color:var(--ink);
  border-bottom:1px solid var(--ink);padding-bottom:6px;
  text-decoration:none !important;
  transition:gap .25s ease, color .2s, border-color .2s;
}
.alt-text .link-arrow:hover{gap:14px;color:var(--primary);border-color:var(--primary)}
@media (max-width:820px){
  .alt-row,.alt-row--reverse{
    grid-template-columns:1fr;gap:32px;padding:56px 0;direction:ltr;
  }
  .alt-img{aspect-ratio:4/3}
  .alt-text h2{font-size:clamp(1.8rem,7vw,2.4rem)}
}

/* SPEC BAND — Ferrari number-display pricing band */
.spec-band{background:var(--canvas);color:#fff;padding:120px 0}
.spec-band .section-head{margin-bottom:64px}
.spec-band .section-head .eyebrow{color:rgba(255,255,255,.7)}
.spec-band .section-head .eyebrow::before{background:var(--primary)}
.spec-band .section-head h2{color:#fff;font-size:clamp(2rem,3.6vw,2.8rem)}
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
}
.spec-cell{padding:48px 32px 40px;border-right:1px solid rgba(255,255,255,.16);
  display:flex;flex-direction:column;align-items:flex-start;}
.spec-cell:last-child{border-right:0}
.spec-num{
  font-family:var(--serif-display);font-weight:400;font-size:clamp(3.6rem,7vw,5.4rem);
  line-height:1;letter-spacing:-.04em;color:#fff;margin:0 0 12px;
  font-variation-settings:"opsz" 144;
}
.spec-label{
  font-family:var(--sans);font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.7);
  margin:0 0 18px;
}
.spec-cell p{
  font-family:var(--sans);font-size:.95rem;line-height:1.55;
  color:rgba(255,255,255,.78);margin:0;
}
.spec-band .btn{
  margin-top:48px;color:#fff;border-color:#fff;background:transparent;
}
.spec-band .btn:hover{background:#fff;color:var(--canvas)}
@media (max-width:820px){
  .spec-band{padding:72px 0}
  .spec-grid{grid-template-columns:1fr;
    border-bottom:0}
  .spec-cell{border-right:0;border-bottom:1px solid rgba(255,255,255,.16);
    padding:36px 24px 32px}
  .spec-cell:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
}

/* GALLERY GRID — staggered masonry */
.gallery-grid{
  display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:8px;
}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;
  transition:opacity .2s;}
.gallery-grid img:hover{opacity:.88}
.gallery-grid img:nth-child(1){grid-column:span 3;grid-row:span 2}
.gallery-grid img:nth-child(2){grid-column:span 3;grid-row:span 1}
.gallery-grid img:nth-child(3){grid-column:span 2;grid-row:span 1}
.gallery-grid img:nth-child(4){grid-column:span 4;grid-row:span 2}
.gallery-grid img:nth-child(5){grid-column:span 2;grid-row:span 1}
.gallery-grid img:nth-child(6){grid-column:span 6;grid-row:span 2}
@media (max-width:820px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:110px}
  .gallery-grid img:nth-child(n){grid-column:auto;grid-row:auto}
  .gallery-grid img:nth-child(1){grid-column:span 2;grid-row:span 2}
  .gallery-grid img:nth-child(6){grid-column:span 2;grid-row:span 2}
}

/* REVIEWS WALL — 3-up testimonials with editorial framing */
.reviews-band{background:var(--surface);padding:120px 0}
.reviews-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review-card{
  background:#fff;padding:36px 28px 28px;margin:0;
  border:1px solid var(--line);position:relative;
}
.review-card::before{
  content:"\201C";position:absolute;top:14px;left:24px;
  font-family:var(--serif-display);font-weight:400;font-size:4.5rem;
  line-height:1;color:var(--primary);
}
.review-card p{
  font-family:var(--serif-display);font-weight:400;font-size:1.1rem;
  line-height:1.45;color:var(--ink);margin:32px 0 18px;
  font-variation-settings:"opsz" 60,"SOFT" 50;
}
.review-card p em{font-style:italic;color:var(--primary)}
.review-card cite{
  font-family:var(--sans);font-style:normal;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--muted);
}
@media (max-width:820px){
  .reviews-band{padding:72px 0}
  .reviews-wall{grid-template-columns:1fr;gap:14px}
}

/* LAKES STRIP — horizontal pill row */
.lakes-strip{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;
}
.lakes-strip a{
  display:inline-flex;align-items:center;
  padding:14px 22px;border:1px solid var(--line);
  font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--ink);
  text-decoration:none !important;
  transition:all .2s ease;
}
.lakes-strip a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* BIG CTA — photo-backed cinematic close, Rosso accent on CTA only */
.big-cta{
  position:relative;overflow:hidden;color:#fff;
  padding:80px 56px;
  display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:end;
  background:
    linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.7) 60%,rgba(0,0,0,.9) 100%),
    url('/assets/img/kalamalka-lake-3.jpg') center/cover no-repeat;
  border-top:3px solid var(--primary);
}
.big-cta::before{
  content:"";position:absolute;top:0;left:0;width:80px;height:3px;
  background:var(--primary);
}
.big-cta h2{
  font-size:clamp(2.8rem,6vw,5rem);line-height:.98;letter-spacing:-.024em;
  margin:0;color:#fff;
  font-variation-settings:"opsz" 144,"SOFT" 30;
  position:relative;z-index:1;
}
.big-cta p{
  font-family:var(--sans);font-size:1.05rem;color:rgba(255,255,255,.92);
  margin:0 0 24px;position:relative;z-index:1;
}
.big-cta > div:last-child{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1}
.big-cta .btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.big-cta .btn-primary:hover{background:#fff;color:var(--primary);border-color:#fff}
.big-cta .btn-ghost{border-color:#fff;color:#fff;background:transparent}
.big-cta .btn-ghost:hover{background:#fff;color:var(--ink)}
.big-cta h2,.big-cta p{text-shadow:0 2px 8px rgba(0,0,0,.5)}
@media (max-width:820px){
  .big-cta{padding:64px 32px;grid-template-columns:1fr;gap:32px;align-items:start}
}

/* HOMEPAGE — section-head left-aligned for editorial feel */
body[data-page="home"] .section-head{
  margin-bottom:48px;max-width:760px;text-align:left;
}
body[data-page="home"] .section-head h2{
  font-family:var(--sans);font-weight:600;
  font-size:clamp(2rem,3.8vw,2.8rem);letter-spacing:-.025em;line-height:1.08;
  text-wrap:balance;
}
body[data-page="home"] .section-head .eyebrow{
  color:var(--primary);
}

/* === PROFESSIONAL POLISH PASS — Inter-only, tighter, more conventional === */

/* Hero — bigger headline tracking, less precious */
.hero-still h1{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(2.6rem,6.5vw,4.6rem) !important;
  letter-spacing:-.028em !important;
  line-height:1.05 !important;
  font-variation-settings:normal !important;
}
.hero-still .lede{font-weight:400;letter-spacing:-.005em}

/* TRUST STRIP — under hero, restraint not decoration */
.trust-strip{background:var(--canvas);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.trust-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.trust-cell{
  padding:32px 24px;text-align:left;
  border-right:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:6px;
}
.trust-cell:last-child{border-right:0}
.trust-cell strong{
  font-family:var(--sans);font-weight:600;font-size:clamp(1.6rem,2.4vw,2rem);
  color:#fff;letter-spacing:-.022em;line-height:1;
}
.trust-cell span{
  font-family:var(--sans);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65);
}
@media (max-width:720px){
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .trust-cell:nth-child(2){border-right:0}
  .trust-cell:nth-child(1),.trust-cell:nth-child(2){border-bottom:1px solid rgba(255,255,255,.1)}
  .trust-cell{padding:24px 18px}
}

/* Intro band — kill drop-cap, use clean lede */
.intro-band{display:none}

/* Alt-rows — Inter sans, refined */
.alt-text h2{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(1.7rem,3vw,2.4rem) !important;letter-spacing:-.024em !important;
  line-height:1.1 !important;font-variation-settings:normal !important;
}
.alt-text p{font-size:1rem;line-height:1.6;color:var(--ink-2)}

/* Spec band — tighter, more business */
.spec-num{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(2.8rem,5.5vw,4rem) !important;letter-spacing:-.032em !important;
  line-height:1 !important;font-variation-settings:normal !important;
}
.spec-cell p{font-size:.92rem;line-height:1.5;max-width:280px}

/* Review cards — Inter, no italic, refined readable */
.review-card p{
  font-family:var(--sans) !important;font-weight:400 !important;
  font-size:1rem !important;line-height:1.55 !important;
  font-variation-settings:normal !important;
  color:var(--ink);
}
.review-card p em{font-style:normal;color:var(--primary);font-weight:600}
.review-card::before{
  font-family:var(--sans) !important;font-weight:700;font-size:3.4rem;
  top:18px;
}

/* Big CTA — Inter headline */
.big-cta h2{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(2.4rem,5vw,4rem) !important;letter-spacing:-.028em !important;
  font-variation-settings:normal !important;
}

/* Lake strip — slightly tighter */
.lakes-strip a{font-size:.74rem;padding:13px 20px}

/* Hero still — increase photo zoom slightly so subject is clearer */
.hero-still > img{object-position:center 30%}

/* Hero gradient — strong dark overlay so white text is razor-readable */
.hero-still::after{
  background:
    linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.55) 50%,rgba(0,0,0,.92) 100%),
    linear-gradient(90deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.1) 100%);
}
/* Hero text — bold weights + text-shadow for max legibility on photo */
.hero-still h1,.hero-still .lede,.hero-still .eyebrow{
  text-shadow:0 2px 8px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
}
.hero-still .lede{
  font-weight:500 !important;font-size:clamp(1.05rem,1.5vw,1.2rem) !important;
  color:#fff !important;opacity:1 !important;
}
.hero-still h1{font-weight:700 !important}
.hero-still .eyebrow{font-weight:700 !important;color:#fff !important}

/* === CONVERSION-FOCUSED COMPONENTS === */

/* HOW IT WORKS — 3-step booking process */
.how-band{background:#fff;padding:96px 0}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.how-step{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:0 16px 0 0;border-left:1px solid var(--line);padding-left:32px;
}
.how-step:first-child{border-left:0;padding-left:0}
.how-num{
  font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.2em;
  color:var(--primary);margin-bottom:14px;
}
.how-step h3{
  font-family:var(--sans);font-weight:600;font-size:1.3rem;letter-spacing:-.018em;
  margin:0 0 12px;color:var(--ink);line-height:1.2;
}
.how-step p{font-size:.96rem;line-height:1.55;color:var(--ink-2);margin:0;max-width:320px}
.how-step a{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){
  .how-band{padding:64px 0}
  .how-grid{grid-template-columns:1fr;gap:32px}
  .how-step{border-left:0;border-top:1px solid var(--line);padding:24px 0 0 0}
  .how-step:first-child{border-top:0;padding-top:0}
}

/* SPEC INCLUSIONS list */
.spec-incl{
  list-style:none;margin:18px 0 28px;padding:0;
  font-family:var(--sans);font-size:.92rem;line-height:1.6;
  color:rgba(255,255,255,.85);
}
.spec-incl li{
  position:relative;padding-left:22px;margin-bottom:6px;
}
.spec-incl li::before{
  content:"";position:absolute;left:0;top:.6em;width:10px;height:10px;
  border-left:1.5px solid var(--primary);border-bottom:1.5px solid var(--primary);
  transform:rotate(-45deg);
}

/* FEATURED spec cell — Most Booked badge highlight */
.spec-cell{position:relative}
.spec-cell--featured{background:rgba(218,41,28,.06);border-top:2px solid var(--primary);border-bottom:2px solid var(--primary);margin-top:-2px;margin-bottom:-2px}
.spec-badge{
  position:absolute;top:-12px;left:24px;
  background:var(--primary);color:#fff;
  padding:6px 12px;font-size:.66rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;line-height:1;
}
.spec-cta{
  margin-top:auto;width:100%;justify-content:center;
  background:var(--primary);color:#fff;border:1px solid var(--primary);
}
.spec-cta:hover{background:#fff;color:var(--primary)}
.spec-cell--featured .spec-cta{background:var(--primary)}

.spec-fineprint{
  margin-top:32px;font-family:var(--sans);font-size:.82rem;
  color:rgba(255,255,255,.6);max-width:780px;line-height:1.5;
}

@media (max-width:820px){
  .spec-cell--featured{margin:0;border-left:0;border-right:0}
  .spec-badge{left:18px;top:-10px}
}

/* Why-Dennis pull list (sits under captain bio) */
.why-list{
  list-style:none;margin:24px 0 28px;padding:24px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-size:.98rem;line-height:1.5;
}
.why-list li{
  position:relative;padding-left:24px;margin-bottom:10px;color:var(--ink);
}
.why-list li:last-child{margin-bottom:0}
.why-list li::before{
  content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;
  border-left:1.5px solid var(--primary);border-bottom:1.5px solid var(--primary);
  transform:rotate(-45deg);
}
.why-list strong{font-weight:600;color:var(--ink)}

/* CAPTAIN SPOTLIGHT — single prominent editorial row (LSC-simple) */
.alt-row.alt-row--large{
  grid-template-columns:1.25fr 1fr;gap:80px;padding:100px 0;
  border:0;
}
.alt-row.alt-row--large .alt-img{aspect-ratio:4/5;min-height:520px}
.alt-row.alt-row--large h2{
  font-size:clamp(2.2rem,4.4vw,3.2rem) !important;
  letter-spacing:-.024em !important;line-height:1.05 !important;margin:0 0 22px;
}
.alt-row.alt-row--large p{
  font-size:1.08rem;line-height:1.6;max-width:480px;
}
@media (max-width:820px){
  .alt-row.alt-row--large{grid-template-columns:1fr;gap:32px;padding:64px 0}
  .alt-row.alt-row--large .alt-img{aspect-ratio:4/3;min-height:auto}
}

/* THINGS TO KNOW BEFORE YOU BOOK — 3-up card grid */
.know-band{padding:96px 0;background:#fff}
.know-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.know-card{
  background:var(--surface);border:1px solid var(--line);
  padding:32px 28px;border-radius:0;
}
.know-card h3{
  font-family:var(--sans);font-weight:600;font-size:1.05rem;
  letter-spacing:.04em;text-transform:uppercase;color:var(--primary);
  margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--line);
}
.know-card ul{list-style:none;margin:0;padding:0;font-size:.96rem;line-height:1.55}
.know-card li{
  position:relative;padding-left:22px;margin-bottom:10px;color:var(--ink);
}
.know-card li::before{
  content:"";position:absolute;left:0;top:.6em;width:10px;height:10px;
  border-left:1.5px solid var(--primary);border-bottom:1.5px solid var(--primary);
  transform:rotate(-45deg);
}
.know-card a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){
  .know-band{padding:64px 0}
  .know-grid{grid-template-columns:1fr;gap:12px}
  .know-card{padding:24px 22px}
}

/* === OLDER-AUDIENCE READABILITY PASS ===
   Target: 50+ year-old guests reading on phones outdoors.
   Bigger type, higher contrast, larger tap targets, no tiny captions.
=== */

/* Body & general prose contrast — EXCLUDE hero/dark-background contexts */
.alt-text p,.know-card li,.how-step p,
.facts-box dd,.prose p{
  color:var(--ink) !important;
  font-size:1.02rem;line-height:1.65;
}
section:not(.hero):not(.hero-still):not(.hero-cinema):not(.spec-band):not(.guarantee-band):not(.trust-strip):not(.reviews-band) > .container > p,
section:not(.hero):not(.hero-still):not(.hero-cinema):not(.spec-band):not(.guarantee-band):not(.trust-strip):not(.reviews-band) > .container .lede{
  color:var(--ink);font-size:1.02rem;line-height:1.65;
}
/* HERO TEXT MUST BE WHITE — restore after broad rules */
.hero,.hero-still,.hero-cinema{color:#fff !important}
.hero p,.hero .lede,.hero h1,.hero h2,.hero .eyebrow,
.hero-still p,.hero-still .lede,.hero-still h1,.hero-still .eyebrow,
.hero-cinema p,.hero-cinema .lede,.hero-cinema h1,.hero-cinema .eyebrow{
  color:#fff !important;
}
.hero .breadcrumbs,.hero-cinema .breadcrumbs{color:rgba(255,255,255,.85) !important}
.hero .breadcrumbs a,.hero-cinema .breadcrumbs a{color:rgba(255,255,255,.85) !important}
/* spec-band white text — restore for black-canvas pricing */
.spec-band,.spec-band h2,.spec-band .section-head h2{color:#fff !important}
.spec-cell p{color:rgba(255,255,255,.85) !important}
/* big-cta white text — restore for Rosso CTA wall */
.big-cta,.big-cta h2,.big-cta p{color:#fff !important}
/* But muted captions / cites stay muted for hierarchy */
cite,.muted,.eyebrow,.spec-label,.trust-cell span,.how-num,
.section-head .eyebrow,.footer-bottom,.spec-fineprint{
  color:inherit !important;font-size:.78rem;
}

/* CTAs — minimum 54px tap height, larger phone-number text */
.btn-lg{min-height:54px !important;padding:18px 32px !important;font-size:.92rem !important}
.btn{min-height:50px}
.nav .btn.btn-primary{
  min-height:48px;padding:14px 24px !important;
  font-size:.82rem !important;letter-spacing:.1em !important;
}

/* Hero CTAs and price-band CTAs — extra emphasis on phone-call CTA */
.hero-still .btn-primary,.big-cta .btn-primary,.spec-cta{
  font-size:1rem !important;font-weight:700 !important;
  letter-spacing:.08em !important;
}

/* Phone-number CTA inside body copy — bold + underlined */
.hero-still .lede a,
.guarantee-row p a,
.how-step p a,
section p a[href^="tel:"]{
  color:#fff;font-weight:700;border-bottom:2px solid currentColor;
  text-decoration:none;padding-bottom:1px;
}
section p a[href^="tel:"]{color:var(--primary)}

/* H1 / display — slightly less tight tracking for legibility */
h1,h2,.spec-num{letter-spacing:-.018em !important}

/* Eyebrow and small caps — bump up so eyebrows aren't microscopic */
.eyebrow,.section-head .eyebrow{font-size:.78rem !important;letter-spacing:.18em !important}

/* Form inputs (contact form) — bigger tap area, 17px to avoid iOS zoom */
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],
input[type="date"],input[type="time"],textarea,select{
  font-size:17px !important;min-height:52px;padding:14px 16px;
  border:1px solid var(--line) !important;
}
textarea{min-height:120px}
label{font-size:.96rem;font-weight:500;margin-bottom:6px;display:block}

/* Lake strip pills — bigger tap targets */
.lakes-strip a{font-size:.84rem;padding:16px 24px;min-height:48px;display:inline-flex;align-items:center}

/* Big CTA — bigger phone number for older eyes */
.big-cta h2{font-weight:700 !important;letter-spacing:-.02em !important}
.big-cta p{font-size:1.05rem !important;color:rgba(255,255,255,.92) !important}

/* Footer link contrast bump */
.footer-nav a{color:rgba(255,255,255,.92) !important;font-size:.82rem !important}
.footer-bottom{font-size:.86rem !important;color:rgba(255,255,255,.78) !important}
.footer-bottom a{font-weight:500}

/* Sticky-book bar — larger, more obvious phone number */
.sticky-book-inner{padding:14px 16px !important}
.sticky-book-inner .btn{font-size:.88rem !important;min-height:48px !important}

/* === REMAINING AUDIT FIXES + REFINEMENTS === */

/* "Most Booked" badge — real visible chip, top-left of featured pricing card */
.spec-cell--featured{position:relative;padding-top:48px !important}
.spec-badge{
  position:absolute !important;top:0 !important;left:0 !important;
  background:var(--primary) !important;color:#fff !important;
  padding:8px 16px !important;font-size:.7rem !important;font-weight:700 !important;
  letter-spacing:.16em !important;text-transform:uppercase !important;
  line-height:1 !important;border:0 !important;
}

/* Form input focus — bold Rosso accent */
input:focus,textarea:focus,select:focus{
  outline:none !important;
  border-color:var(--primary) !important;
  box-shadow:0 0 0 3px rgba(218,41,28,.15) !important;
}

/* dest-tile / btn hover micro-interaction (small premium feel) */
@media (hover:hover){
  .btn-primary:hover{box-shadow:0 4px 12px rgba(218,41,28,.25)}
  .btn-ghost:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}
}

/* Captain page breadcrumb — pulled out of hero overlay */
body[data-page="captain"] .hero .breadcrumbs{
  position:relative;top:auto;left:auto;
  margin:0 0 16px;font-size:.75rem;
}

/* Subtle nav border on scroll */
.nav.scrolled{border-bottom:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.04)}

/* Body link consistency — refined underline offset */
.prose a:not(.btn),p a:not(.btn):not(.navlink):not([class*="cta"]){
  text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:3px;text-decoration-color:rgba(218,41,28,.4);
  color:var(--primary);font-weight:500;
}
.prose a:not(.btn):hover{text-decoration-color:var(--primary)}

/* Page-specific banding rhythm — break consecutive same-bg runs */
/* Captain: convert middle how-band from white to surface so 3 whites don't run */
body[data-page="captain"] .how-band{background:var(--surface) !important}
/* Pricing: 2nd spec-band (ocean) gets a hairline accent on top to break the dark-dark run */
body[data-page="pricing"] .spec-band + .spec-band{
  border-top:1px solid rgba(255,255,255,.1);
  position:relative;
}
body[data-page="pricing"] .spec-band + .spec-band::before{
  content:"";position:absolute;top:-1px;left:50%;transform:translateX(-50%);
  width:120px;height:3px;background:var(--primary);
}

/* === AUDIT FIXES BATCH 2 — padding, eyebrow floor, banded rhythm === */

/* Section wrapping big-cta — restore bottom padding so big-cta doesn't slam into next section */
main .section:has(.big-cta){background:transparent !important;padding:0 0 56px !important}
@media (max-width:720px){main .section:has(.big-cta){padding:0 0 40px !important}}

/* Normalize section rhythm: spec-band and reviews-band align to the 56px standard */
.spec-band{padding:56px 0 !important}
.reviews-band{padding:56px 0 !important}
@media (max-width:720px){
  .spec-band,.reviews-band{padding:40px 0 !important}
}

/* Eyebrow floor 13.1px — extend to hero-still + trust-strip variants that fell below */
.hero-still .eyebrow,
.trust-strip .trust-cell span,
.trust-strip .eyebrow{
  font-size:.82rem !important;letter-spacing:.16em !important;
}

/* Body padding-bottom for sticky-book bar on mobile so it stops covering content */
@media (max-width:820px){
  body{padding-bottom:96px}
}

/* PACKAGE CARDS — equal height + mobile header stack */
.package-list{align-items:stretch}
.package-card{display:flex;flex-direction:column}
.package-card .package-body{display:flex;flex-direction:column;flex:1}
.package-card .package-body .btn{margin-top:auto}
@media (max-width:480px){
  .package-card header{flex-direction:column;align-items:flex-start;gap:8px}
  .package-price{white-space:normal}
}

/* === MAKE LINKS LOOK LIKE BUTTONS — black-bordered chips for scattered CTAs === */

/* link-arrow (used in alt-rows, captain spotlight, "Read all reviews", etc.)
   Was just underlined text; now a real outlined button. */
.link-arrow,
a.link-arrow{
  display:inline-flex !important;
  align-items:center !important;justify-content:center !important;gap:8px !important;
  padding:14px 24px !important;
  background:#fff !important;
  color:var(--ink) !important;
  border:1.5px solid var(--ink) !important;
  border-radius:0 !important;
  font-family:var(--sans) !important;
  font-size:.78rem !important;font-weight:700 !important;
  letter-spacing:.14em !important;text-transform:uppercase !important;
  text-decoration:none !important;
  min-height:48px !important;
  transition:background .2s ease, color .2s ease, transform .15s ease;
}
.link-arrow::after{
  content:"→";font-weight:600;font-size:.95rem;
  margin-left:4px;transition:transform .2s ease;
}
.link-arrow:hover,
a.link-arrow:hover{
  background:var(--ink) !important;
  color:#fff !important;
  transform:translateY(-1px);
}
.link-arrow:hover::after{transform:translateX(3px)}

/* Lakes strip pills — solid border at rest (not just on hover) */
.lakes-strip a{
  border:1.5px solid var(--ink) !important;
  font-weight:700 !important;background:#fff;color:var(--ink) !important;
}
.lakes-strip a:hover{background:var(--ink) !important;color:#fff !important}

/* Footer nav — clean spaced links (no border, breathing room) */
.footer-nav{
  display:flex !important;flex-wrap:wrap !important;
  gap:14px 28px !important;
  padding:0 !important;
}
.footer-nav a{
  border:0 !important;background:transparent !important;
  padding:8px 0 !important;min-height:auto !important;
  display:inline-block !important;
  color:rgba(255,255,255,.85) !important;
  transition:color .15s ease;
}
.footer-nav a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:6px;
  text-decoration-color:var(--primary) !important;
  text-decoration-thickness:2px !important;
}
@media (max-width:540px){
  .footer-nav{gap:12px 20px !important}
}

/* Dest-tile .arrow — also bump to feel more clickable as a button-style chip */
.dest-tile .arrow{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;
  border:1.5px solid rgba(255,255,255,.6);
  background:rgba(0,0,0,.25);
  font-weight:700;font-size:.78rem;
  letter-spacing:.12em;text-transform:uppercase;
  margin-top:14px;
  transition:background .2s ease, border-color .2s ease;
}
.dest-tile:hover .arrow{
  background:#fff;color:var(--ink);border-color:#fff;
}

/* "See all reviews" / Read more arrow link on reviews-band */
.reviews-band > .container > .link-arrow{margin-top:24px}

/* === OCEAN CHARTER PACKAGES — LSC-style breakdown cards === */
.package-list{display:grid;gap:18px;margin-top:32px}
.package-card{
  background:#fff;border:1px solid var(--line);border-radius:0;
  padding:32px 28px;
  display:grid;grid-template-columns:1fr;gap:16px;
}
.package-card header{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:1px solid var(--line);
}
.package-card h3{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(1.4rem,2.4vw,1.8rem) !important;
  letter-spacing:-.018em;margin:0;color:var(--ink);line-height:1.15;
}
.package-price{
  font-family:var(--sans);font-weight:700;font-size:.92rem;
  color:var(--primary);letter-spacing:-.005em;white-space:nowrap;
}
.package-body p{margin:0 0 12px;color:var(--ink);font-size:1rem;line-height:1.6}
.package-meta{
  display:grid;grid-template-columns:max-content 1fr;column-gap:24px;row-gap:8px;
  margin:6px 0 18px;
}
.package-meta dt{
  font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);align-self:start;padding-top:2px;
}
.package-meta dd{margin:0;font-size:.96rem;line-height:1.5;color:var(--ink)}
.package-body .btn{margin-top:6px;align-self:start}
@media (max-width:720px){
  .package-card{padding:24px 20px}
  .package-meta{grid-template-columns:1fr;column-gap:0;row-gap:4px}
  .package-meta dt{padding-top:8px}
  .package-meta dd{padding-bottom:8px;border-bottom:1px solid var(--line)}
  .package-meta dd:last-child{border-bottom:0}
}

/* WEATHER STRIP — live Kelowna conditions between Big CTA and footer */
.weather-strip{
  background:var(--canvas);color:#fff;padding:18px 0;
  border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.weather-strip .container{
  display:flex;align-items:center;justify-content:center;gap:18px;
  flex-wrap:wrap;text-align:center;
}
.weather-label{
  font-family:var(--sans);font-size:.78rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);
}
.weather-data{
  font-family:var(--sans);font-size:.92rem;font-weight:500;
  color:#fff;display:inline-flex;align-items:center;gap:10px;
}
.weather-data strong{color:var(--primary);font-weight:700}
@media (max-width:540px){
  .weather-strip{padding:14px 0}
  .weather-label{font-size:.7rem}
  .weather-data{font-size:.86rem}
}

/* === AUDIT FIXES BATCH — H1 unification, CTA font restore, eyebrow floor, tap targets === */

/* H1: unify all pages to 38.4px / weight 500 (was split between subpages at 28.8/600) */
h1,
.hero h1,.hero-still h1,.hero-cinema h1{
  font-family:var(--sans) !important;
  font-weight:600 !important;
  font-size:clamp(2.2rem,5.5vw,2.8rem) !important;
  letter-spacing:-.022em !important;line-height:1.08 !important;
}
.hero-still h1{font-size:clamp(2.4rem,7vw,3.6rem) !important;line-height:1.05 !important}

/* CTA font size restore — spec-cta and big-cta buttons were collapsing to 11-12px */
.spec-cta,.big-cta .btn-lg,.big-cta .btn,
.btn.btn-lg{
  font-size:.9rem !important;
  letter-spacing:.1em !important;
  font-weight:700 !important;
  padding:18px 28px !important;min-height:52px !important;
}
.spec-cta{width:100% !important;justify-content:center !important;margin-top:auto !important}

/* Eyebrow floor — bump from 11.2px to 13.1px minimum (50+ readability) */
.eyebrow,
.trust-cell span,.spec-label,.how-num,.footer-nav a,
.section-head .eyebrow,.spec-fineprint{
  font-size:.82rem !important;letter-spacing:.15em !important;
}

/* Hero eyebrow — shorten/tighter so it doesn't wrap on 390px phones */
.hero-still .eyebrow{
  font-size:.78rem !important;letter-spacing:.18em !important;
  white-space:nowrap;
}
@media (max-width:420px){
  .hero-still .eyebrow{font-size:.72rem !important;letter-spacing:.14em !important}
}

/* Footer nav: 48px row height for thumb-friendly tap targets */
.footer-nav a{
  padding:14px 0 !important;min-height:44px;
  display:inline-flex;align-items:center;
}

/* Header phone CTA: ensure 48px height */
.nav .btn.btn-primary{
  min-height:48px !important;padding:14px 20px !important;
  display:inline-flex;align-items:center;
}

/* PHOTO GRADING — unified outdoor-premium tone across all photography */
.hero img,.hero-still img,.hero-cinema img,
.alt-img img,.gallery-grid img,
.dest-tile,section[class*="hero"] img{
  filter:saturate(.95) contrast(1.04) brightness(.99);
}
/* don't grade tiny brand logos / icons */
.brand img,.footer-brand-row img,.know-card svg,.guarantee-icon svg{filter:none}

/* WEATHER / RESCHEDULE GUARANTEE BAND — black canvas trust signal */
.guarantee-band{
  background:var(--canvas) !important;
  color:#fff;padding:48px 0 !important;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.guarantee-band .container{max-width:960px}
.guarantee-row{
  display:flex;gap:20px;align-items:flex-start;
  max-width:none;margin:0;padding:0;
}
.guarantee-icon{
  width:40px;height:40px;flex-shrink:0;margin-top:2px;
  color:var(--primary);
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(218,41,28,.12);
  border:0;
}
.guarantee-icon svg{width:22px;height:22px;stroke-width:2.2}
.guarantee-row h2{
  font-family:var(--sans) !important;font-weight:600 !important;
  font-size:clamp(1.15rem,2vw,1.4rem) !important;
  letter-spacing:-.018em !important;line-height:1.25 !important;
  margin:0 0 6px !important;color:#fff !important;
}
.guarantee-row p{
  font-family:var(--sans);font-size:.92rem;line-height:1.55;
  color:rgba(255,255,255,.78) !important;margin:0;max-width:none;
}
.guarantee-row > div:last-child{flex:1;min-width:0}
@media (max-width:720px){
  .guarantee-band{padding:36px 0 !important}
  .guarantee-row{gap:16px;align-items:flex-start;flex-direction:row}
  .guarantee-icon{width:36px;height:36px}
  .guarantee-icon svg{width:18px;height:18px}
}

