
/* ═══════════════════════════
   ACCESSIBILITY
═══════════════════════════ */

/* Skip to content link — visible only on keyboard focus */
.skip-link{position:absolute;top:-100px;left:16px;z-index:10000;background:var(--orange-cta);color:#fff;padding:12px 24px;border-radius:8px;font-weight:700;font-size:14px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:12px}

/* Focus indicators — visible outline on keyboard navigation */
*:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
button:focus-visible,a:focus-visible,.btn:focus-visible,.btn-primary:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
/* Remove focus ring on mouse click */
*:focus:not(:focus-visible){outline:none}

/* Reduced motion — respect user preference */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1 !important;transform:none !important}
}

/* ═══════════════════════════
   TOKENS
═══════════════════════════ */
:root {
  --navy:   #07172B;
  --navy2:  #0D2340;
  --navy3:  #153055;
  --orange: #F04E1F;
  --olt:    #FF6840;
  --odk:    #C03C12;
  /* CTA fill behind WHITE text — darker than --orange so white passes WCAG AA
     (4.87:1 vs 3.61:1 for --orange). Used for interactive buttons/links only;
     keep --orange for accents, badges, glows + orange-text-on-navy. */
  --orange-cta: #CC4018;
  --ice:    #C2E8FF;
  --sage:   #6A9E85;
  --sage-dark: #1E3F4D;
  --sage-light: #EEF5F1;
  --sage-mid: #D4E5DC;
  --white:  #FFFFFF;
  --off:    #F4F7FB;
  --border: #DDE8F2;
  --gray:   #4A6580;
  --text:   #162840;
  --green:  #16833E;
  --orange-text: #CC4018;
  --gold:   #F59E0B;
  --gold-deep: #B5730A;  /* gold dark enough for star/rating glyphs on light bg — WCAG 1.4.11 (3:1) */
  /* ─── BRAND SYSTEM A · TYPE TOKENS ─── */
  --font-display: 'Barlow Condensed', 'Oswald', sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-accent: 'Caveat', cursive;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  /* legacy aliases — keep so older selectors still work */
  --disp: 'Barlow Condensed', sans-serif;
  --body: 'Inter', system-ui, sans-serif;
  --cursive: 'Caveat', cursive;
  --serif: 'Playfair Display', serif;
  --hero-eyebrow-size: 12px;
  /* Eyebrow type tokens — use these for any new eyebrow rule.
     Section-level (block, plain): var(--eyebrow-size). Chip/pill (inline-flex with icons): var(--eyebrow-chip-size). */
  --eyebrow-size: 13px;
  --eyebrow-chip-size: 12px;
  /* Section vertical-rhythm tokens — three-tier scale.
     LG = marquee / hero-adjacent. Default = standard content section. SM = utility/transition bands.
     Use for `padding:var(--section-pad-*) 0`. Don't touch hero internal padding or `.final` 120px (intentionally heavier). */
  --section-pad-lg: 96px;
  --section-pad: 80px;
  --section-pad-sm: 56px;
  --display-italic-ratio: 0.78;
  --statband-pad: 18px 14px;
  --info-strip-bg: rgba(7,23,43,.92);
  --trust-gold: #E8B33B;
  --card-feat-shadow: 0 8px 24px rgba(240,78,31,.12);
  --tag-pad: 5px 11px;
}
@media(max-width:780px){:root{--hero-eyebrow-size:11px;--eyebrow-size:12px;--eyebrow-chip-size:11px}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
/* Anchor offset for fixed 64px nav — keeps deep-linked sections from hiding behind nav */
#pd-yeti,#pd-little,#pd-skiboard,#pd-private,#pd-extras{scroll-margin-top:80px}

/* ═══════════════════════════
   "MORE WAYS" CARDS — Variant C: peeking sticker
   Used on every location page in the "More at Shredder" grid.
═══════════════════════════ */
.cv-card{background:#fff;border:1.5px solid var(--border);border-radius:14px;overflow:visible;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;cursor:pointer}
.cv-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(7,23,43,.12);border-color:rgba(240,78,31,.3)}
.cv-head{padding:18px 20px;color:#fff;position:relative;border-radius:14px 14px 0 0;overflow:visible}
.cv-name{font-family:var(--disp);font-size:21px;letter-spacing:1.1px;line-height:1.05;margin-bottom:4px;max-width:65%}
.cv-age{font-size:11px;letter-spacing:.5px;color:#fff;font-weight:600}
.cv-icon-peek{position:absolute;top:-22px;right:-12px;width:96px;height:96px;transform:rotate(8deg);filter:drop-shadow(0 4px 14px rgba(0,0,0,.3));pointer-events:none;z-index:2}
.cv-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.cv-desc{font-size:13px;color:var(--text);line-height:1.6;margin:0 0 14px}
.cv-price{font-size:13px;color:var(--text);margin:auto 0 12px;padding-top:12px;border-top:1px solid var(--border)}
.cv-price strong{font-family:var(--disp);font-size:24px;color:var(--navy);letter-spacing:.5px}
.cv-price span{color:var(--gray)}
.cv-price small{display:block;font-size:11.5px;color:var(--gray);margin-top:2px;font-weight:600}
.cv-btn{display:block;text-align:center;padding:11px;background:var(--orange-cta);color:#fff;border-radius:8px;font-size:12.5px;font-weight:700;letter-spacing:.3px;transition:background .2s}
.cv-card:hover .cv-btn{background:var(--olt)}
@media(max-width:980px){
  .cv-icon-peek{width:80px;height:80px;top:-18px;right:-8px}
}
body{font-family:var(--body);background:var(--white);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}
.container{max-width:1160px;margin:0 auto;padding:0 32px}
.eyebrow{font-family:var(--font-mono);font-size:var(--eyebrow-size);font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange-text)}

/* ── STAGGERED ENTRANCE ANIMATIONS ── */
.testi.visible{animation:cardReveal .5s ease-out both}
.testi:nth-child(1).visible{animation-delay:0s}
.testi:nth-child(2).visible{animation-delay:.12s}
.testi:nth-child(3).visible{animation-delay:.24s}
@keyframes cardReveal{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}

/* ── PAGE ROUTING ── */
.page{display:none;opacity:0;transition:opacity .18s ease}
.page.active{display:block}
.page.visible{opacity:1}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:999;height:64px;background:rgba(7,23,43,.97);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{height:64px;max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer}
.logo-mark{width:36px;height:36px;border-radius:8px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:20px;color:#fff;box-shadow:0 2px 12px rgba(240,78,31,.45);flex-shrink:0}
.logo-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:3px}
.logo-name span{color:var(--orange)}
.logo-img{height:54px;width:auto}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{color:#fff;font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:7px;transition:all .18s;cursor:pointer}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav-links a.active{color:#fff;background:rgba(255,255,255,.06)}
.nav-city{display:inline-flex;align-items:center;gap:6px;margin-left:18px;padding:6px 11px;font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:1.3px;color:var(--orange);text-transform:uppercase;text-decoration:none;border:1.5px solid var(--orange);border-radius:7px;background:transparent;transition:all .15s ease;cursor:pointer;white-space:nowrap}
.nav-city:hover{background:var(--orange-cta);color:#fff}
.nav-city:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.nav-city .nav-city-icon{width:11px;height:11px;flex-shrink:0}
.nav-city .nav-city-chev{font-size:9px;opacity:.7;margin-left:1px;transition:opacity .15s}
.nav-city:hover .nav-city-chev{opacity:1}
.nav-city:hover .nav-city-icon{color:#fff}
.nav-cta{background:var(--orange-cta)!important;color:#fff!important;font-weight:700!important;padding:9px 20px!important;border-radius:8px!important;box-shadow:0 2px 14px rgba(240,78,31,.35);transition:background .18s,transform .15s!important;animation:pulse-cta 3s ease-in-out infinite}
.nav-cta:hover{background:var(--olt)!important;transform:translateY(-1px);box-shadow:0 4px 22px rgba(240,78,31,.5)!important;animation:none}
@keyframes pulse-cta{0%,100%{box-shadow:0 2px 14px rgba(240,78,31,.35)}50%{box-shadow:0 2px 22px rgba(240,78,31,.65)}}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--body);font-weight:700;border-radius:10px;transition:all .2s;cursor:pointer;white-space:nowrap;border:none;line-height:1}
.btn-lg{padding:17px 36px;font-size:16px}
.btn-md{padding:13px 26px;font-size:14px}
.btn-primary{background:var(--orange-cta);color:#fff;box-shadow:0 4px 22px rgba(240,78,31,.38)}
.btn-primary:hover{background:var(--olt);transform:translateY(-2px);box-shadow:0 8px 32px rgba(240,78,31,.5)}
.btn-primary .arr{transition:transform .2s}
.btn-primary:hover .arr{transform:translateX(4px)}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.28)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.btn-outline-dark{background:transparent;color:var(--orange);border:1.5px solid var(--orange)}
.btn-outline-dark:hover{background:var(--orange-cta);color:#fff}
.btn-outline{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:10px;font-size:14px;font-weight:700;background:transparent;color:var(--orange);border:1.5px solid var(--orange);transition:all .2s;cursor:pointer}
.btn-outline:hover{background:var(--orange-cta);color:#fff}
.play-ring{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}

/* ════════════════════════════════════
   HOMEPAGE STYLES
════════════════════════════════════ */

/* HERO */
.hero{position:relative;min-height:100vh;padding-top:64px;background:var(--navy);display:flex;align-items:center;overflow:hidden}
.hero-photo{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,14,26,.82) 0%,rgba(13,34,64,.68) 40%,rgba(7,23,43,.62) 100%);pointer-events:none}
.hero-bg{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse 75% 65% at 100% 55%,rgba(240,78,31,.12) 0%,transparent 58%),radial-gradient(ellipse 55% 50% at 5% 80%,rgba(194,232,255,.05) 0%,transparent 55%)}
.hero-grid-tex{position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px);background-size:52px 52px}
.hero-ring{position:absolute;top:-120px;right:-120px;width:580px;height:580px;border-radius:50%;background:conic-gradient(from 210deg,rgba(240,78,31,.15) 0deg,transparent 55deg,transparent 360deg);pointer-events:none}
.snow{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.s{position:absolute;top:-14px;color:rgba(194,232,255,.28);animation:sf linear infinite;user-select:none}
.s:nth-child(1){left:4%;font-size:8px;animation-duration:11s;animation-delay:0s}
.s:nth-child(2){left:11%;font-size:11px;animation-duration:15s;animation-delay:2.5s}
.s:nth-child(3){left:20%;font-size:14px;animation-duration:10s;animation-delay:5s}
.s:nth-child(4){left:30%;font-size:9px;animation-duration:9s;animation-delay:1s}
.s:nth-child(5){left:42%;font-size:12px;animation-duration:14s;animation-delay:3.5s}
.s:nth-child(6){left:54%;font-size:8px;animation-duration:17s;animation-delay:7s}
.s:nth-child(7){left:64%;font-size:13px;animation-duration:11s;animation-delay:4s}
.s:nth-child(8){left:74%;font-size:9px;animation-duration:13s;animation-delay:6s}
.s:nth-child(9){left:84%;font-size:11px;animation-duration:10s;animation-delay:.5s}
.s:nth-child(10){left:92%;font-size:14px;animation-duration:16s;animation-delay:8.5s}
@keyframes sf{0%{transform:translateY(0) rotate(0);opacity:0}8%{opacity:.9}88%{opacity:.4}100%{transform:translateY(104vh) rotate(380deg);opacity:0}}
.hero-mtn{position:absolute;bottom:0;left:0;right:0;height:200px;pointer-events:none;overflow:hidden}
.hero-mtn svg{position:absolute;bottom:0;width:100%}
.hero-inner{position:relative;z-index:2;width:100%;max-width:1160px;margin:0 auto;padding:80px 32px 100px;display:grid;grid-template-columns:1fr 420px;gap:56px;align-items:center}
.hero-lede{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px}
.hero-lede::before{content:'';width:32px;height:2px;background:var(--orange);display:block;flex-shrink:0}
.hero-lede span{font-size:11px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--orange-cta)}
.hero-h1{font-family:var(--disp);font-size:clamp(68px,8.5vw,118px);line-height:.92;color:#fff;letter-spacing:2px;margin-bottom:8px}
.hero-h1 .acc{color:var(--orange)}
.hero-h1 .curs{font-family:var(--font-accent);font-style:normal;font-weight:600;font-size:clamp(54px,6.8vw,94px);letter-spacing:0;display:block;color:#fff}
.hero-h1 em.cursive{font-family:'Caveat',cursive;font-style:normal;font-weight:600;color:#fff;font-size:1.04em;letter-spacing:0;display:block;line-height:1.0;margin-top:8px}
em.cursive{font-family:'Caveat',cursive;font-style:normal;font-weight:600;font-size:1.04em;letter-spacing:0;display:inline}
.hero-sub{font-size:clamp(15px,1.7vw,18px);color:#fff;line-height:1.72;max-width:500px;margin:22px 0 0;font-weight:400}
.hero-sub strong{color:var(--ice);font-weight:600}
.hero-tag{font-size:14px;color:var(--ice);font-weight:600;font-style:italic;margin:8px 0 22px}
.hero-btns{display:flex;flex-wrap:wrap;gap:13px;margin-bottom:48px}

/* hero floating badge */
.hero-badge{position:absolute;z-index:3;bottom:160px;right:10%;width:110px;height:110px;border-radius:50%;background:var(--orange);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 40px rgba(240,78,31,.5),0 0 0 8px rgba(240,78,31,.15);animation:heroBadgePulse 3s ease-in-out infinite}
.hero-badge-n{font-family:var(--disp);font-size:34px;color:#fff;line-height:1;letter-spacing:1px}
.hero-badge-l{font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px;margin-top:2px}
@keyframes heroBadgePulse{0%,100%{transform:scale(1);box-shadow:0 8px 40px rgba(240,78,31,.5),0 0 0 8px rgba(240,78,31,.15)}50%{transform:scale(1.04);box-shadow:0 12px 48px rgba(240,78,31,.6),0 0 0 12px rgba(240,78,31,.2)}}
@media(max-width:768px){.hero-badge{width:80px;height:80px;bottom:auto;top:80px;right:16px}.hero-badge-n{font-size:24px}.hero-badge-l{font-size:9px}}

/* hero stat band */
.hero-statband{margin-top:20px;display:flex;align-items:center;gap:0;background:rgba(255,255,255,.05);border:1px solid rgba(194,232,255,.1);border-radius:14px;overflow:hidden;box-shadow:0 0 32px rgba(194,232,255,.08)}
.hsb-item{flex:1;padding:18px 14px;text-align:center;transition:all .25s}
.hsb-item:hover{background:rgba(194,232,255,.08);transform:scale(1.02)}
.hsb-n{font-family:var(--disp);font-size:30px;color:#fff;line-height:1;margin-bottom:5px;letter-spacing:1px}
.hsb-n span{color:var(--orange)}
.hsb-l{font-size:11px;color:#fff;font-weight:500;line-height:1.3}
.hsb-div{width:1px;background:rgba(255,255,255,.1);align-self:stretch;flex-shrink:0}

/* stats card */
.stats-card{background:linear-gradient(145deg,rgba(13,35,64,.95),rgba(8,22,44,.98));border:1px solid rgba(194,232,255,.12);border-radius:20px;padding:28px;box-shadow:0 24px 72px rgba(0,0,0,.5),0 0 40px rgba(194,232,255,.1);position:relative;overflow:hidden}
.stats-card::before{content:'';position:absolute;inset:0;border-radius:20px;background:radial-gradient(ellipse 80% 50% at 100% 0%,rgba(240,78,31,.1) 0%,transparent 65%);pointer-events:none}
.slope-wrap{border-radius:14px;overflow:hidden;height:172px;position:relative;background:linear-gradient(180deg,#7ec8e3 0%,#a8d8ea 42%,#d6edf5 75%,#e8f5fb 100%);margin-bottom:22px}
.slope-mtn{position:absolute;top:0;left:0;right:0;height:80px}
.slope-hill{position:absolute;bottom:0;left:0;right:0;height:96px}
.skier{position:absolute;font-size:26px;animation:skiRun 4.2s cubic-bezier(.4,0,.6,1) infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));z-index:2}
@keyframes skiRun{0%{left:6%;top:14%;opacity:0}6%{opacity:1}94%{opacity:1}100%{left:76%;top:58%;opacity:0}}
.speed-lines{position:absolute;top:20%;left:3%;display:flex;flex-direction:column;gap:4px;animation:speedFade 4.2s ease-in-out infinite}
@keyframes speedFade{0%,10%{opacity:0}20%{opacity:.5}70%{opacity:.2}100%{opacity:0}}
.sl{height:1.5px;background:rgba(255,255,255,.5);border-radius:2px}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.stat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:14px 12px;text-align:center;transition:background .2s,border-color .2s}
.stat:hover{background:rgba(240,78,31,.08);border-color:rgba(240,78,31,.2)}
.stat-n{font-family:var(--disp);font-size:34px;color:var(--orange);line-height:1;margin-bottom:4px}
.stat-l{font-size:10px;color:#fff;font-weight:600;letter-spacing:.4px;line-height:1.35}
.card-badge{position:absolute;top:-1px;right:20px;background:var(--orange);color:#fff;border-radius:0 0 12px 12px;padding:8px 16px;text-align:center;box-shadow:0 6px 20px rgba(240,78,31,.45)}
.cb-big{font-family:var(--disp);font-size:28px;line-height:1}
.cb-sm{font-size:9px;font-weight:700;letter-spacing:1px;opacity:.85}

/* TRUST BAR */
.trust-bar{background:var(--off);border-bottom:1px solid var(--border)}
.trust-bar-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:repeat(5,1fr)}
.tb-item{display:flex;align-items:center;gap:14px;padding:20px 16px;border-right:1px solid var(--border);transition:background .18s;position:relative;cursor:default}
.tb-item:last-child{border-right:none}
.tb-item:hover{background:rgba(240,78,31,.04)}
.tb-item:hover::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--orange);border-radius:2px 2px 0 0}
.tb-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.tbi-orange{background:rgba(240,78,31,.1)}
.tbi-navy{background:rgba(7,23,43,.07)}
.tbi-blue{background:rgba(194,232,255,.35)}
.tbi-green{background:rgba(34,197,94,.1)}
.tbi-gold{background:rgba(245,158,11,.1)}
.tb-text-main{font-size:13px;font-weight:700;color:var(--text);line-height:1.3}
.tb-text-sub{font-size:11px;color:var(--gray);font-weight:500;line-height:1.3;margin-top:1px}

/* PROBLEM */
.problem{padding:100px 0 48px;background:var(--white)}
.problem-grid,.swim-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.problem-eyebrow{display:block;margin-bottom:16px}
.problem-h2{font-size:clamp(32px,3.8vw,50px);font-weight:800;color:var(--navy);line-height:1.1;margin-bottom:20px}
.problem-h2 em{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--orange)}
.problem-p{font-size:16px;color:var(--gray);line-height:1.78;margin-bottom:14px}
.solution-pill{display:inline-flex;align-items:center;gap:10px;background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.22);color:#15803d;padding:11px 20px;border-radius:30px;font-size:14px;font-weight:700;margin-top:8px}
.swim-inline{margin:24px 0 20px;background:var(--off);border:1px solid var(--border);border-left:3px solid var(--orange);border-radius:0 12px 12px 0;padding:22px 24px}
.swim-inline-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange-cta);margin-bottom:10px}
.swim-inline-text{font-size:15px;color:var(--navy);line-height:1.72;font-weight:500}
.swim-inline-text strong{color:var(--orange-cta)}
.pain-stack{display:flex;flex-direction:column;gap:13px}
.pain-card{display:flex;gap:17px;align-items:flex-start;padding:19px 22px;background:var(--off);border-radius:12px;border-left:3px solid transparent;transition:all .2s;cursor:default}
.pain-card:hover{border-left-color:var(--orange);background:#fff;box-shadow:0 4px 24px rgba(7,23,43,.1);transform:translateX(4px)}
.pain-em{font-size:22px;flex-shrink:0;margin-top:1px;line-height:1}
.pain-title{font-size:14.5px;font-weight:700;color:var(--navy);margin-bottom:3px}
.pain-desc{font-size:13px;color:var(--gray);line-height:1.55}

/* HOW */
.how{background:var(--navy);padding:var(--section-pad-lg) 0;position:relative;overflow:hidden}
.how::before{content:'';position:absolute;top:-200px;right:-200px;width:680px;height:680px;background:radial-gradient(circle,rgba(240,78,31,.09) 0%,transparent 65%);pointer-events:none}
.how::after{content:'';position:absolute;bottom:-150px;left:-150px;width:500px;height:500px;background:radial-gradient(circle,rgba(194,232,255,.04) 0%,transparent 65%);pointer-events:none}
.sec-head{text-align:center;margin-bottom:64px;position:relative;z-index:1}
.sec-head .eyebrow{display:block;margin-bottom:16px}
.sec-head h2{font-family:var(--disp);font-size:clamp(40px,5.5vw,68px);color:#fff;letter-spacing:2px;margin-bottom:14px}
.sec-head p{font-size:16px;color:#fff;max-width:500px;margin:0 auto;line-height:1.65}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;position:relative;z-index:1}
.steps::before{content:'';position:absolute;top:40px;left:calc(16.67%+16px);right:calc(16.67%+16px);height:2px;background:linear-gradient(90deg,var(--orange),rgba(240,78,31,.15));z-index:0}
.step{position:relative;z-index:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:18px;padding:38px 28px 34px;text-align:center;transition:all .25s}
.step:hover{background:rgba(255,255,255,.08);border-color:rgba(240,78,31,.3);transform:translateY(-6px)}
.step-n{width:50px;height:50px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:26px;color:#fff;margin:0 auto 22px;box-shadow:0 4px 18px rgba(240,78,31,.42)}
.step h3{font-family:var(--disp);font-size:24px;color:#fff;letter-spacing:1px;margin-bottom:11px}
.step p{font-size:14px;color:#fff;line-height:1.65}

/* PROGRAMS */
.programs{padding:var(--section-pad-lg) 0;background:var(--off)}
.prog-head{text-align:center;margin-bottom:56px}
.prog-head .eyebrow{display:block;margin-bottom:14px}
.prog-head h2{font-family:var(--disp);font-size:clamp(40px,5.5vw,68px);color:var(--navy);letter-spacing:2px;margin-bottom:12px}
.prog-head p{font-size:16px;color:var(--gray);max-width:500px;margin:0 auto}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prog-card{border-radius:18px;background:var(--white);border:1px solid var(--border);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}
.prog-card:hover{transform:translateY(-8px);box-shadow:0 24px 64px rgba(7,23,43,.16),0 0 0 1px rgba(194,232,255,.1);border-color:rgba(194,232,255,.2)}
.ph{padding:30px 28px 22px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:200px}
.p1,.p2,.p3,.p4{background-size:cover;background-position:center}
.p1{background:linear-gradient(145deg,#0b2540,#163a5f)}
.p2{background:linear-gradient(145deg,#d44018,#f04e1f)}
.p3{background:linear-gradient(145deg,#152e52,#1f4475)}
.ph[data-img]{background-size:cover;background-position:center 30%;position:relative}
.ph[data-img]::before{content:'';position:absolute;inset:0;z-index:0}
.ph[data-img] > *{position:relative;z-index:1}
.ph.p1[data-img]::before{background:linear-gradient(to top,rgba(11,37,64,.92) 0%,rgba(11,37,64,.6) 50%,rgba(11,37,64,.35) 100%)}
.ph.p2[data-img]::before{background:linear-gradient(to top,rgba(180,50,15,.92) 0%,rgba(212,64,24,.55) 50%,rgba(240,78,31,.3) 100%)}
.ph.p3[data-img]::before{background:linear-gradient(to top,rgba(21,46,82,.92) 0%,rgba(21,46,82,.6) 50%,rgba(21,46,82,.35) 100%)}
.ph.p4[data-img]::before{background:linear-gradient(to top,rgba(42,31,58,.92) 0%,rgba(42,31,58,.6) 50%,rgba(74,53,112,.35) 100%)}
.prog-em{font-size:36px;margin-bottom:13px;display:block;line-height:1}
.prog-card-stage{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;color:#fff;margin-bottom:auto;font-weight:500;text-transform:uppercase}
.prog-age{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ice);margin-bottom:4px}
.prog-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:1.5px;line-height:1;margin-bottom:0}
.prog-tagline{font-size:13px;color:#fff;margin-top:6px}
.prog-pop{position:absolute;top:13px;right:13px;background:rgba(255,255,255,.2);color:#fff;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;border-radius:20px;z-index:3;white-space:nowrap}
.prog-body{padding:20px 28px 26px}
.prog-body p{font-size:13.5px;color:var(--gray);line-height:1.68;margin-bottom:16px}
.prog-feats{list-style:none;display:flex;flex-direction:column;gap:7px;margin-bottom:20px}
.prog-feats li{font-size:12.5px;color:var(--gray);padding-left:18px;position:relative}
.prog-feats li::before{content:'✓';position:absolute;left:0;color:var(--orange);font-weight:700}
.btn-prog{display:block;text-align:center;padding:12px;border-radius:8px;font-size:13px;font-weight:700;background:var(--navy);color:#fff;transition:all .25s;letter-spacing:.4px;cursor:pointer}
.btn-prog:hover{background:var(--orange-cta);box-shadow:0 8px 20px rgba(240,78,31,.3);transform:translateY(-2px)}
.prog-cta{text-align:center;margin-top:38px}

/* PROOF */
.proof{padding:var(--section-pad-lg) 0;background:var(--white)}
.proof-head{text-align:center;margin-bottom:56px}
.proof-head .eyebrow{display:block;margin-bottom:14px}
.proof-head h2{font-family:var(--disp);font-size:clamp(40px,5.5vw,68px);color:var(--navy);letter-spacing:2px;margin-bottom:12px}
.proof-head p{font-size:16px;color:var(--gray);max-width:480px;margin:0 auto}
.stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--border);border-radius:16px;overflow:hidden;margin-bottom:56px}
.sbox{background:var(--white);padding:36px 20px;text-align:center}
.sbox-n{font-family:var(--disp);font-size:58px;color:var(--orange);line-height:1;margin-bottom:7px}
.sbox-l{font-size:13px;color:var(--gray);font-weight:500;line-height:1.4}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.testi{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:28px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}
.testi::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--sage));opacity:0;transition:opacity .3s}
.testi:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(7,23,43,.16),0 0 0 1px rgba(194,232,255,.08)}
.testi:hover::before{opacity:1}
.testi-stars{color:var(--gold-deep);font-size:13px;letter-spacing:2px;margin-bottom:13px}
.testi-q{font-size:14px;color:#3d5265;line-height:1.78;margin-bottom:20px;position:relative;z-index:1}
.testi-auth{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:16px}
.testi-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy3));display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:15px;flex-shrink:0}
.testi-name{font-size:14px;font-weight:700;color:var(--navy)}
.testi-detail{font-size:11.5px;color:var(--gray)}
.testi-av{width:38px;height:38px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:16px;color:#fff;flex-shrink:0;box-shadow:0 0 16px rgba(240,78,31,.25),inset 0 1px 2px rgba(255,255,255,.2)}
.testi-prog{display:inline-block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--orange-cta);background:rgba(240,78,31,.08);border-radius:20px;padding:3px 10px;margin-bottom:11px}
.proof-pull{background:var(--navy);border-radius:20px;padding:48px 52px;margin-bottom:52px;position:relative;overflow:hidden}
.proof-pull::before{content:'“';font-family:var(--serif);font-size:160px;color:rgba(240,78,31,.15);position:absolute;top:-20px;left:28px;line-height:1;pointer-events:none}
.proof-pull-q{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.2vw,26px);color:#fff;line-height:1.62;margin-bottom:28px;position:relative;z-index:1;max-width:740px}
.proof-pull-auth{display:flex;align-items:center;gap:14px}
.proof-pull-av{width:48px;height:48px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:22px;color:#fff;flex-shrink:0}
.proof-pull-name{font-size:15px;font-weight:800;color:#fff;margin-bottom:2px}
.proof-pull-detail{font-size:12px;color:#fff}
.testi-hidden{display:none}
.testi-hidden.revealed{display:block}

/* GUARANTEE */
.guarantee{background:linear-gradient(135deg,#eef5f1,#f5fbfa);padding:var(--section-pad) 0;border-top:1px solid var(--sage-mid);border-bottom:1px solid var(--sage-mid);position:relative;overflow:hidden}
.guarantee::after{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(106,158,133,.1) 0%,transparent 65%);pointer-events:none}
.guar-inner{display:grid;grid-template-columns:auto 1fr auto;gap:56px;align-items:center}
.guar-ring{width:128px;height:128px;border-radius:50%;border:3px solid var(--sage);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;text-align:center;gap:1px;box-shadow:0 0 0 8px rgba(106,158,133,.12),0 0 32px rgba(106,158,133,.1);animation:shieldPulse 3s ease-in-out infinite}
@keyframes shieldPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 8px rgba(106,158,133,.12),0 0 32px rgba(106,158,133,.1)}50%{transform:scale(1.03);box-shadow:0 0 0 12px rgba(106,158,133,.16),0 0 48px rgba(106,158,133,.15)}}
.gr-top{font-size:10px;font-weight:700;letter-spacing:2px;color:#fff;text-transform:uppercase}
.gr-pct{font-family:var(--disp);font-size:48px;color:var(--orange);line-height:1}
.gr-bot{font-size:9px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px}
.guar-text .eyebrow{display:block;margin-bottom:10px}
.guar-text h2{font-family:var(--disp);font-size:clamp(32px,4vw,52px);color:var(--navy);letter-spacing:2px;margin-bottom:14px}
.guar-text p{font-size:16px;color:var(--text);line-height:1.72;max-width:500px}
.guar-action{text-align:center;flex-shrink:0}
.guar-action .btn{display:block;margin-bottom:12px}
.guar-fine{font-size:11.5px;color:var(--text);line-height:1.5}

/* LOCATIONS */
.locs{padding:var(--section-pad-lg) 0;background:var(--off)}
.locs-head{text-align:center;margin-bottom:56px}
.locs-head .eyebrow{display:block;margin-bottom:14px}
.locs-head h2{font-family:var(--disp);font-size:clamp(40px,5.5vw,68px);color:var(--navy);letter-spacing:2px;margin-bottom:12px}
.locs-head p{font-size:16px;color:var(--gray);max-width:480px;margin:0 auto}
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.loc-card{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--white);border:1.5px solid var(--border);border-radius:12px;transition:all .2s;cursor:pointer}
.loc-card:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(240,78,31,.12);transform:translateY(-2px)}
.loc-city{font-size:15px;font-weight:700;color:var(--navy)}
.loc-state{font-size:12px;color:var(--gray);margin-top:2px}
.loc-badge{font-size:9.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--orange-cta);background:rgba(240,78,31,.08);padding:3px 9px;border-radius:10px;margin-top:6px;display:inline-block}
.loc-arrow{color:var(--orange);font-size:18px;opacity:.7}
.loc-soon{background:var(--off);border-style:dashed}
.loc-soon .loc-city{color:var(--gray)}
.loc-soon .loc-arrow{color:var(--border)}
.loc-franchise{background:rgba(240,78,31,.04);border-color:rgba(240,78,31,.22)}
.loc-franchise .loc-city{color:var(--orange)}
.loc-franchise .loc-arrow{color:var(--orange);opacity:1}

/* CAPTURE */
.capture{padding:var(--section-pad) 0;background:linear-gradient(140deg,var(--odk) 0%,var(--orange) 55%,#e8481a 100%);position:relative;overflow:hidden}
.capture::before{content:'SHREDDER';font-family:var(--disp);font-size:200px;color:#fff;letter-spacing:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;user-select:none}
.capture-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;position:relative;z-index:1}
.capture-text h2{font-family:var(--disp);font-size:clamp(38px,5vw,62px);color:#fff;letter-spacing:2px;line-height:1.02;margin-bottom:16px}
.capture-text p{font-size:17px;color:#fff;line-height:1.68}
.capture-offer{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.15);border-radius:10px;padding:12px 18px;font-size:14px;font-weight:700;color:#fff;margin-top:22px}
.cap-box{background:rgba(255,255,255,.12);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:34px}
.cap-box h3{font-size:18px;font-weight:800;color:#fff;margin-bottom:6px}
.cap-box>p{font-size:13px;color:#fff;margin-bottom:22px}
.loc-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
.loc-check{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:9px 12px;font-size:13px;color:#fff;font-weight:500;cursor:pointer;transition:background .18s}
.loc-check:hover{background:rgba(255,255,255,.2)}
.loc-check input{accent-color:var(--navy);width:14px;height:14px}
.email-row{display:flex;gap:10px}
.email-in{flex:1;padding:14px 18px;border-radius:9px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.13);color:#fff;font-size:14px;font-family:inherit;outline:none;transition:all .2s}
.email-in::placeholder{color:#fff}
.email-in:focus{border-color:#fff;background:rgba(255,255,255,.2)}
.btn-white{background:#fff;color:var(--orange);padding:14px 22px;border-radius:9px;font-size:14px;font-weight:800;font-family:inherit;border:none;cursor:pointer;white-space:nowrap;transition:all .2s}
.btn-white:hover{transform:translateY(-1px);box-shadow:0 4px 18px rgba(0,0,0,.2)}
.privacy{font-size:11px;color:#fff;margin-top:12px}

/* FINAL CTA */
.final{background:var(--navy);padding:120px 0;text-align:center;position:relative;overflow:hidden}
.final::before{content:'';position:absolute;top:-300px;left:50%;transform:translateX(-50%);width:900px;height:900px;background:radial-gradient(circle,rgba(240,78,31,.11) 0%,transparent 60%);pointer-events:none}
.final .eyebrow{display:block;margin-bottom:20px;position:relative;z-index:1}
.final h2{font-family:var(--disp);font-size:clamp(56px,8.5vw,108px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:18px;position:relative;z-index:1}
.final h2 .curs{font-family:var(--font-accent);font-style:normal;font-weight:600;color:var(--orange);font-size:clamp(46px,7vw,88px)}
.final p{font-size:18px;color:#fff;max-width:480px;margin:0 auto 48px;line-height:1.65;position:relative;z-index:1}
.final-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;z-index:1}
.urgency{font-size:13px;color:#fff;margin-top:24px;position:relative;z-index:1}
.urgency strong{color:var(--olt)}

/* FOOTER */
.footer{background:linear-gradient(180deg,#030c17,#050f1f);padding:64px 0 28px;position:relative;overflow:hidden;border-top:1px solid rgba(194,232,255,.06)}
.footer::before{content:'';position:absolute;bottom:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(240,78,31,.06) 0%,transparent 65%);pointer-events:none}
.footer-grid{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.05)}
.footer-logo-text{font-family:var(--disp);letter-spacing:3px;line-height:1.1}
.flt-shredder{font-size:26px;color:var(--orange);display:block}
.flt-sub{font-size:14px;color:#fff;letter-spacing:2px}
.fb p{font-size:13px;color:#fff;line-height:1.78;max-width:260px;margin-top:16px}
.f-social{display:flex;gap:10px;margin-top:18px}
.f-sico{width:34px;height:34px;border-radius:8px;background:rgba(240,78,31,.08);border:1.5px solid rgba(240,78,31,.15);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;transition:all .3s;cursor:pointer}
.f-sico:hover{background:var(--orange);border-color:var(--orange);color:#fff;transform:translateY(-3px);box-shadow:0 8px 24px rgba(240,78,31,.25)}
.fc h2{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin:0 0 16px}
.fc ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.fc a{font-size:13px;color:#fff;transition:color .18s;cursor:pointer}
.fc a:hover{color:var(--orange)}
.footer-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:12px;color:#fff}
.f-certs{display:flex;gap:8px;flex-wrap:wrap}
.f-cert{background:rgba(106,158,133,.1);border:1px solid rgba(106,158,133,.18);border-radius:8px;padding:6px 14px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--sage);transition:all .2s}
.f-cert:hover{background:rgba(106,158,133,.18);border-color:var(--sage)}

/* Footer email-signup band (Constant Contact · Master list) */
.footer-cc{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center;margin-bottom:44px;padding:30px 34px;background:linear-gradient(135deg,rgba(126,200,227,.07),rgba(240,78,31,.05));border:1px solid rgba(194,232,255,.10);border-radius:16px;position:relative;z-index:1}
.footer-cc-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--ice-blue,#7ec8e3);margin-bottom:8px}
.footer-cc-title{font-family:var(--disp);font-size:clamp(22px,3vw,30px);color:#fff;letter-spacing:.5px;line-height:1.08;margin:0 0 8px}
.footer-cc-sub{font-size:13px;color:#fff;line-height:1.6;margin:0;max-width:380px;opacity:.92}
.footer-cc-form{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px}
.footer-cc-btn{display:inline-flex;align-items:center;gap:4px;padding:15px 30px;background:var(--orange-cta);color:#fff;border:none;border-radius:11px;font-size:15px;font-weight:800;letter-spacing:.4px;text-decoration:none;font-family:var(--body);box-shadow:0 6px 18px rgba(240,78,31,.28);transition:all .2s}
.footer-cc-btn:hover{background:var(--orange);transform:translateY(-2px);box-shadow:0 10px 26px rgba(240,78,31,.4)}
.footer-cc-btnnote{font-size:11px;color:#fff;opacity:.55}
.footer-cc-btn{cursor:pointer}
@media(max-width:760px){.footer-cc{grid-template-columns:1fr;gap:18px;padding:24px 20px}}

/* ===== On-brand email-signup MODAL (wraps the Constant Contact inline form) ===== */
/* Closed state uses visibility/opacity (NOT display:none) so the Constant Contact
   widget — which renders forms once on load and skips display:none containers —
   still injects the form into the modal. Opened state just reveals it. */
.cc-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease}
.cc-modal[aria-hidden="false"]{visibility:visible;opacity:1;pointer-events:auto}
.cc-modal-ov{position:absolute;inset:0;background:rgba(3,10,22,.78);backdrop-filter:blur(5px)}
.cc-modal-card{position:relative;max-width:440px;width:100%;background:linear-gradient(180deg,#0d2138,#0a1828);padding:38px 32px 30px;border-radius:18px;border:1px solid rgba(126,200,227,.18);box-shadow:0 24px 70px rgba(0,0,0,.55);max-height:90vh;overflow-y:auto;text-align:left}
.cc-modal-close{position:absolute;top:12px;right:16px;background:none;border:0;color:#9fb3c8;font-size:28px;line-height:1;cursor:pointer;padding:2px 8px;transition:color .15s}
.cc-modal-close:hover{color:#fff}
.cc-modal-eb{display:block;font-size:11px;font-weight:800;letter-spacing:2.4px;text-transform:uppercase;color:var(--ice-blue,#7ec8e3)}
.cc-modal-title{font-family:var(--disp);font-size:clamp(26px,4vw,32px);color:#fff;letter-spacing:.5px;line-height:1.05;margin:8px 0 8px}
.cc-modal-sub{font-size:13.5px;color:#cdd9e6;line-height:1.6;margin:0 0 18px}
/* --- restyle the Constant Contact inline form to match (CC renders inside .ctct-inline-form) --- */
/* hide CC's own logo + heading + intro/description text (our modal already provides these) */
.cc-modal-card .ctct-inline-form .ctct-form-header,
.cc-modal-card .ctct-inline-form .ctct-form-text,
.cc-modal-card .ctct-inline-form .ctct-form-subheader,
.cc-modal-card .ctct-inline-form .ctct-form-logo,
.cc-modal-card .ctct-inline-form img{display:none !important}
.cc-modal-card .ctct-inline-form .ctct-form-defaults,
.cc-modal-card .ctct-inline-form form,
.cc-modal-card .ctct-inline-form .ctct-form-custom{background:transparent !important;padding:0 !important;box-shadow:none !important;border:0 !important}
.cc-modal-card .ctct-inline-form label,
.cc-modal-card .ctct-inline-form .ctct-form-label{color:#cdd9e6 !important;font-family:var(--body) !important;font-size:12px !important;font-weight:700 !important}
.cc-modal-card .ctct-inline-form input[type="text"],
.cc-modal-card .ctct-inline-form input[type="email"],
.cc-modal-card .ctct-inline-form .ctct-form-element{background:#fff !important;border:1.5px solid transparent !important;border-radius:10px !important;padding:13px 15px !important;font-family:var(--body) !important;font-size:15px !important;color:#07172B !important}
.cc-modal-card .ctct-inline-form button,
.cc-modal-card .ctct-inline-form .ctct-form-button{background:var(--orange-cta) !important;color:#fff !important;border:0 !important;border-radius:10px !important;padding:14px 20px !important;font-family:var(--body) !important;font-weight:800 !important;font-size:15px !important;letter-spacing:.4px !important;width:100% !important;cursor:pointer !important}
.cc-modal-card .ctct-inline-form button:hover,
.cc-modal-card .ctct-inline-form .ctct-form-button:hover{background:var(--orange) !important}
.cc-modal-card .ctct-inline-form .ctct-form-footer,
.cc-modal-card .ctct-inline-form .ctct-gdpr-text,
.cc-modal-card .ctct-inline-form .ctct-form-footer *{color:#7e93ab !important;font-size:10.5px !important;line-height:1.5 !important}
/* defensive: hide last-name + phone if the CC form still includes them (real fix = trim in CC designer) */
.cc-modal-card .ctct-inline-form .ctct-form-field:has(input[name="last_name"]),
.cc-modal-card .ctct-inline-form .ctct-form-field:has(input[name*="phone"]),
.cc-modal-card .ctct-inline-form .ctct-form-field:has(select){display:none !important}

/* ════════════════════════════════════
   HOW IT WORKS PAGE STYLES
════════════════════════════════════ */
.page-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 100% 60%,rgba(240,78,31,.14) 0%,transparent 58%),radial-gradient(ellipse 40% 40% at 0% 30%,rgba(194,232,255,.06) 0%,transparent 55%),linear-gradient(158deg,#050e1a 0%,#0d2240 50%,#07172b 100%)}
.page-hero-grid-tex{position:absolute;inset:0;pointer-events:none;opacity:.03;background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);background-size:52px 52px}
.page-hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:80px 32px 90px;display:grid;grid-template-columns:1fr 380px;gap:64px;align-items:center}
.page-hero-label{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px}
.page-hero-label::before{content:'';width:28px;height:2px;background:var(--orange);display:block;flex-shrink:0}
.page-hero-label span{font-size:11px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--orange)}
.page-hero h1{font-family:var(--disp);font-size:clamp(52px,6.5vw,88px);line-height:.92;color:#fff;letter-spacing:2px;margin-bottom:20px}
.page-hero h1 span{color:var(--orange)}
.page-hero-sub{font-size:clamp(15px,1.7vw,18px);color:#fff;line-height:1.72;max-width:480px;margin-bottom:36px}
.page-hero-btns{display:flex;gap:13px;flex-wrap:wrap}
.quick-nav{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:28px}
.quick-nav-title{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#fff;margin-bottom:18px}
.quick-nav-items{display:flex;flex-direction:column;gap:4px}
.quick-nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;color:#fff;font-size:14px;font-weight:500;transition:all .18s;cursor:pointer;border:1px solid transparent}
.quick-nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.quick-nav-item.active{background:rgba(240,78,31,.12);color:var(--orange);border-color:rgba(240,78,31,.2)}
.qn-num{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.active .qn-num{background:var(--orange);color:#fff}

.hiw-section{padding:var(--section-pad-lg) 0}
.hiw-alt{background:var(--off)}
.hiw-dark{background:var(--sage-light);border-top:1px solid var(--sage-mid);border-bottom:1px solid var(--sage-mid)}
.sec-label{display:block;margin-bottom:14px}
.sec-h2{font-family:var(--disp);font-size:clamp(38px,5vw,62px);letter-spacing:2px;line-height:.95;margin-bottom:16px}
.sec-h2-dark{color:#fff}
.sec-h2-light{color:var(--navy)}
.sec-sub{font-size:16px;line-height:1.7;max-width:520px}
.sec-sub-dark{color:#fff}
.sec-sub-light{color:var(--gray)}

.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.concept-visual{background:var(--navy);border-radius:20px;padding:44px;position:relative;overflow:hidden}
.concept-visual::before{content:'';position:absolute;top:-80px;right:-80px;width:300px;height:300px;background:radial-gradient(circle,rgba(240,78,31,.18) 0%,transparent 65%);pointer-events:none}
.concept-big{font-family:var(--disp);font-size:clamp(52px,6vw,80px);color:#fff;line-height:.9;letter-spacing:2px;margin-bottom:6px;position:relative;z-index:1}
.concept-big span{color:var(--orange)}
.concept-big-sub{font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:36px;position:relative;z-index:1}
.concept-divider{height:1px;background:rgba(255,255,255,.08);margin:0 0 28px;position:relative;z-index:1}
.concept-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative;z-index:1}
.cstat-n{font-family:var(--disp);font-size:38px;color:var(--gold);line-height:1;margin-bottom:4px}
.cstat-l{font-size:12px;color:#fff;font-weight:500;line-height:1.4}
.concept-points{display:flex;flex-direction:column;gap:0}
.concept-point{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--border)}
.concept-point:last-child{border-bottom:none}
.cp-icon{width:48px;height:48px;border-radius:12px;background:rgba(240,78,31,.08);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.cp-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:5px}
.cp-desc{font-size:14px;color:var(--gray);line-height:1.65}

/* SWIM ANALOGY */
.swim-section{position:relative;overflow:hidden}
.swim-section::before{content:'';position:absolute;top:-150px;right:-150px;width:600px;height:600px;background:radial-gradient(circle,rgba(240,78,31,.1) 0%,transparent 65%);pointer-events:none}
.swim-section::after{content:'';position:absolute;bottom:-100px;left:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(194,232,255,.04) 0%,transparent 65%);pointer-events:none}
.swim-inner-b{position:relative;z-index:1}
.swim-head{text-align:center;margin-bottom:56px}
.swim-h2{font-family:var(--disp);font-size:clamp(40px,5.5vw,68px);color:var(--navy);letter-spacing:2px;line-height:.92;margin-bottom:14px}
.swim-h2 span{color:var(--orange)}
.swim-sub-text{font-size:17px;color:var(--text);line-height:1.7;max-width:580px;margin:0 auto}
.compare-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;margin-bottom:44px}
.compare-card{border-radius:18px;padding:36px 32px}
.compare-bad{background:#3d444d;border:1.5px solid rgba(100,100,110,.3);border-radius:16px;overflow:hidden}
.compare-good{background:var(--white);border:2px solid var(--sage);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(106,158,133,.12)}
.compare-vs{display:flex;align-items:center;justify-content:center;padding:0 24px;flex-shrink:0}
.vs-badge{width:48px;height:48px;border-radius:50%;background:var(--white);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--navy);letter-spacing:1px}
.cc-label{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:14px}
.bad-label{color:#fff}
.good-label{color:var(--sage)}
.cc-title{font-family:var(--disp);font-size:28px;letter-spacing:1px;margin-bottom:20px}
.bad-title{color:#fff}
.good-title{color:var(--navy)}
.cc-items{list-style:none;display:flex;flex-direction:column;gap:11px}
.cc-items li{font-size:14px;line-height:1.55;padding-left:24px;position:relative}
.cc-items li::before{position:absolute;left:0;font-weight:700;font-size:13px}
.bad-items li{color:#fff}
.bad-items li::before{content:'✗';color:#e05040}
.good-items li{color:var(--text)}
.good-items li::before{content:'✓';color:var(--sage)}
.swim-punchline{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:32px 36px;display:flex;align-items:flex-start;gap:22px;margin-bottom:44px}
.punchline-icon{font-size:34px;flex-shrink:0;margin-top:2px;line-height:1}
.punchline-text{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--text);line-height:1.75}
.punchline-text strong{font-family:var(--body);font-style:normal;font-weight:800;color:var(--navy)}
.swim-cta-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

/* PROGRESSION */
.prog-steps-hiw{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--border);border-radius:18px;overflow:hidden;margin-bottom:56px}
.prog-step{background:var(--white);padding:36px 28px;position:relative;transition:background .2s}
.prog-step:hover{background:var(--off)}
.prog-step-num{font-family:var(--disp);font-size:72px;color:rgba(240,78,31,.08);line-height:1;position:absolute;top:16px;right:20px;letter-spacing:-2px}
.prog-step-week{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange);margin-bottom:14px;display:block}
.prog-step-icon{font-size:32px;margin-bottom:14px;display:block;line-height:1}
.prog-step-title{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:10px}
.prog-step-desc{font-size:13.5px;color:var(--gray);line-height:1.65}
.prog-step-outcome{margin-top:16px;display:inline-flex;align-items:center;gap:7px;background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.2);color:#15803d;font-size:11.5px;font-weight:700;padding:6px 12px;border-radius:20px}
.mountain-milestone{display:flex;gap:32px;align-items:center;background:var(--navy);border-radius:18px;padding:40px 44px}
.mm-icon{font-size:52px;flex-shrink:0;line-height:1}
.mm-title{font-family:var(--disp);font-size:36px;color:#fff;letter-spacing:1.5px;margin-bottom:8px}
.mm-desc{font-size:15px;color:#fff;line-height:1.7;max-width:520px}
.mm-cta{margin-top:20px}

/* INDOOR WINS */
.indoor-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;margin-top:56px}
.indoor-points{display:flex;flex-direction:column;gap:0}
.indoor-point{display:flex;gap:20px;padding:26px 0;border-bottom:1px solid var(--border);transition:all .2s}
.indoor-point:last-child{border-bottom:none}
.indoor-point:hover .ip-icon{background:var(--orange);color:#fff}
.ip-icon{width:50px;height:50px;border-radius:13px;background:rgba(240,78,31,.08);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;transition:all .2s}
.ip-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:5px}
.ip-desc{font-size:14px;color:var(--gray);line-height:1.65}
.indoor-card{background:var(--navy);border-radius:20px;padding:44px;position:sticky;top:88px;overflow:hidden}
.indoor-card::before{content:'';position:absolute;top:-60px;right:-60px;width:280px;height:280px;background:radial-gradient(circle,rgba(240,78,31,.16) 0%,transparent 65%);pointer-events:none}
.ic-headline{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:1.5px;margin-bottom:28px;position:relative;z-index:1}
.ic-rows{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
.ic-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}
.ic-row-label{font-size:13px;color:#fff;font-weight:500}
.ic-row-val{font-family:var(--disp);font-size:22px;color:var(--orange);letter-spacing:.5px}
.ic-divider{height:1px;background:rgba(255,255,255,.07);margin:8px 0}
.ic-guarantee{margin-top:24px;background:rgba(240,78,31,.1);border:1px solid rgba(240,78,31,.22);border-radius:12px;padding:18px 20px;position:relative;z-index:1}
.ic-guar-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.ic-guar-text{font-size:13.5px;color:#fff;line-height:1.55}

/* INSTRUCTORS */
.inst-head{text-align:center;margin-bottom:56px}
.inst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.inst-card{background:var(--off);border:1px solid var(--border);border-radius:16px;padding:32px;transition:all .25s}
.inst-card:hover{background:#fff;box-shadow:0 12px 40px rgba(7,23,43,.1);transform:translateY(-4px)}
.inst-icon{width:52px;height:52px;border-radius:14px;background:rgba(240,78,31,.08);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:18px;transition:background .2s}
.inst-card:hover .inst-icon{background:var(--orange)}
.inst-title{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:8px}
.inst-desc{font-size:14px;color:var(--gray);line-height:1.68}

/* HIW FINAL CTA */
.hiw-final{background:var(--navy);padding:var(--section-pad-lg) 0;text-align:center;position:relative;overflow:hidden}
/* Keep hiw-final dark — it's the final push before footer */
.hiw-final::before{content:'';position:absolute;top:-300px;left:50%;transform:translateX(-50%);width:900px;height:900px;background:radial-gradient(circle,rgba(240,78,31,.1) 0%,transparent 60%);pointer-events:none}
.hiw-final-h2{font-family:var(--disp);font-size:clamp(52px,7.5vw,96px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:16px;position:relative;z-index:1}
.hiw-final-h2 span{color:var(--orange)}
.hiw-final-sub{font-size:18px;color:#fff;max-width:480px;margin:0 auto 48px;line-height:1.65;position:relative;z-index:1}
.hiw-final-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;z-index:1}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}

/* ════════════════════════════════════
   PROGRAMS PAGE STYLES
════════════════════════════════════ */
.prog-page-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden}
.prog-page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 100% 60%,rgba(240,78,31,.16) 0%,transparent 58%),linear-gradient(158deg,#050e1a 0%,#0d2240 50%,#07172b 100%);pointer-events:none}
.prog-page-hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:80px 32px 90px;text-align:center}
.prog-page-hero h1{font-family:var(--disp);font-size:clamp(56px,7vw,96px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:18px}
.prog-page-hero h1 span{color:var(--orange)}
.prog-page-hero p{font-size:18px;color:#fff;line-height:1.7;max-width:560px;margin:0 auto 40px}
.prog-page-hero-btns{display:flex;justify-content:center;gap:13px;flex-wrap:wrap}

/* Age filter tabs */
.age-filter{background:var(--off);border-bottom:1px solid var(--border);z-index:90;transition:box-shadow .2s}.age-filter.is-stuck{position:fixed;top:64px;left:0;right:0;box-shadow:0 2px 16px rgba(7,23,43,.12)}
.age-filter-scroll-hint{position:absolute;right:0;top:0;bottom:0;width:44px;background:linear-gradient(to right,transparent,var(--off));pointer-events:none;z-index:95;transition:opacity .25s}
.age-filter-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:0;overflow-x:auto;scrollbar-width:none;position:relative}
.age-filter-inner::-webkit-scrollbar{display:none}
.age-tab{padding:16px 20px;font-size:13px;font-weight:700;color:var(--gray);white-space:nowrap;cursor:pointer;transition:color .22s;background:none;border:none;font-family:inherit;position:relative;z-index:1}
.age-tab:hover{color:var(--navy)}
.age-tab.active{color:var(--orange)}
.age-indicator{position:absolute;bottom:0;height:2px;background:var(--orange);border-radius:2px 2px 0 0;transition:left .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:2}

/* Stage badges (programs page — replaces emoji) */
.stage-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-family:var(--font-mono);font-weight:600;font-size:14px;letter-spacing:1px;color:#fff;flex-shrink:0;line-height:1}
.stage-badge-sm{width:22px;height:22px;font-size:11px}
.stage-1{background:linear-gradient(135deg,#0b2540,#1a4470)}
.stage-2{background:linear-gradient(135deg,var(--odk),var(--orange))}
.stage-3{background:linear-gradient(135deg,#152e52,#1f4475)}
.stage-flex{background:linear-gradient(135deg,#2a1f3a,#4a3570)}
.stage-label{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);margin-left:6px}

/* Program filter bar + cards */
.prog-filter-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--white);border:1.5px solid var(--border);border-radius:14px;padding:16px 24px;box-shadow:0 4px 20px rgba(7,23,43,.06);max-width:680px;margin:0 auto 40px;justify-content:center}
.prog-filter-label{font-size:15px;font-weight:600;color:var(--navy)}
.prog-filter-select{font-family:var(--body);font-size:14px;font-weight:600;color:var(--navy);background:var(--off);border:1.5px solid var(--border);border-radius:8px;padding:10px 36px 10px 14px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234A6580' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .2s}
.prog-filter-select:focus{outline:none;border-color:var(--orange)}
.prog-filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}
.pf-card{border-radius:16px;background:var(--white);border:1.5px solid var(--border);overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;cursor:pointer}
.pf-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(7,23,43,.12);border-color:rgba(194,232,255,.3)}
.pf-card.pf-recommended{border-color:var(--orange);box-shadow:0 8px 36px rgba(240,78,31,.18);transform:scale(1.03);z-index:2}
.pf-card.pf-recommended::before{content:'RECOMMENDED';position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:9px;font-weight:700;letter-spacing:2px;padding:5px 14px;border-radius:0 0 10px 10px;z-index:5}
.pf-card.pf-dimmed{opacity:.5;transform:scale(.97)}
.pf-card.pf-dimmed:hover{opacity:.7;transform:scale(.99)}

/* Location-page training cards — JS-hook overrides for switchProgram/selection-badge/featured.
   Mirrors the .loc-page .prog-card hooks but applied to the pf-card chassis. */
.loc-page .pf-card.featured{border-color:var(--orange);box-shadow:0 8px 32px rgba(240,78,31,.15)}
.loc-page .pf-card.active-selection{border:3px solid var(--green);box-shadow:0 8px 32px rgba(34,197,94,.25);transform:translateY(-4px)}
.loc-page .pf-card .selection-badge{display:none;background:var(--green);color:#fff;font-size:10px;font-weight:800;letter-spacing:1px;padding:6px 0;text-align:center;width:100%;z-index:3;position:absolute;top:0;left:0}
.loc-page .pf-card.active-selection .selection-badge{display:block}
.loc-page .pf-card .prog-pop-badge{position:absolute;top:12px;right:12px;background:var(--orange);color:#fff;font-size:9px;font-weight:800;padding:4px 10px;border-radius:10px;letter-spacing:.5px;z-index:3}
.loc-page .pf-card.active-selection .prog-pop-badge{display:none}
.pf-head{padding:18px 18px 14px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px;background-repeat:no-repeat;background-position:center 6px;background-size:auto 80%;overflow:hidden}
/* Top scrim — keeps the STAGE label readable on white-background portrait images */
.pf-head::before{content:'';position:absolute;top:0;left:0;right:0;height:90px;background:linear-gradient(to bottom,rgba(7,23,43,.55) 0%,rgba(7,23,43,.2) 60%,transparent 100%);pointer-events:none;z-index:1}
.pf-h-yeti{background-color:#0b2540;background-image:url('img/card-yeti-ski-portrait.jpg');background-size:cover;background-position:center;background-repeat:no-repeat}
.pf-h-little{background-color:#d44018;background-image:url('img/card-little-ski-portrait.jpg');background-size:cover;background-position:center;background-repeat:no-repeat}
.pf-h-skiboard{background-color:#152e52;background-image:url('img/card-skiboard-ski-portrait.jpg');background-size:cover;background-position:center;background-repeat:no-repeat}
.pf-h-private{background-color:#2a1f3a;background-image:url('img/card-private-board-portrait.jpg');background-size:cover;background-position:center;background-repeat:no-repeat}
.pf-stage{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;color:#fff;margin-bottom:auto;font-weight:600;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 8px rgba(0,0,0,.4);position:relative;z-index:2}
.pf-meta{position:relative;z-index:2;padding:12px 14px;background:rgba(7,23,43,.45);backdrop-filter:blur(10px) saturate(135%);-webkit-backdrop-filter:blur(10px) saturate(135%);border:1px solid rgba(255,255,255,.16);border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.22)}
.pf-age{font-size:11px;color:var(--ice);font-weight:600;letter-spacing:.5px;margin-bottom:4px}
.pf-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:1.5px;line-height:1;margin-bottom:0}
.pf-tag{font-size:12px;color:#fff;margin-top:4px}
.pf-body{padding:16px 18px 18px}
.pf-body p{font-size:12.5px;color:var(--gray);line-height:1.6;margin-bottom:12px}
.pf-feats{list-style:none;display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.pf-feats li{font-size:11.5px;color:var(--gray);padding-left:16px;position:relative}
.pf-feats li::before{content:'\2713';position:absolute;left:0;color:var(--orange);font-weight:700;font-size:11px}
.pf-btn{display:block;text-align:center;padding:11px;border-radius:8px;font-size:12px;font-weight:700;background:var(--navy);color:#fff;transition:all .25s;letter-spacing:.3px}
.pf-card:hover .pf-btn{background:var(--orange-cta)}
/* Seasonal program card "opening soon" state — applied by gateSeasonalPrograms()
   in the location template when no seasonal session is open for enrollment.
   Muted look + notify CTA; auto-clears when a session is set to open. */
.pf-card--soon{opacity:.74;filter:grayscale(.3)}
.pf-card--soon:hover{transform:none;box-shadow:none}
.pf-card--soon .pf-btn,.pf-card--soon:hover .pf-btn{background:#e7ebf1;color:#5b6878}
.pf-soon-note{text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#8893a6;margin:0 0 10px;text-transform:uppercase}
@media(max-width:900px){.prog-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .prog-filter-bar{flex-direction:column;align-items:stretch;gap:10px;padding:16px 20px}
  .prog-filter-label{font-size:13px;text-align:center}
  .prog-filter-select{width:100%}
  .prog-filter-grid{grid-template-columns:1fr}
}

/* Program detail cards */
.prog-detail-section{padding:var(--section-pad) 0}
.prog-detail-section:nth-child(even){background:var(--off)}
.pd-inner{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.pd-inner.reverse{direction:rtl}
.pd-inner.reverse>*{direction:ltr}
.pd-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(240,78,31,.08);border:1px solid rgba(240,78,31,.2);color:var(--orange-text);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:20px;margin-bottom:18px}
.pd-h2{font-family:var(--disp);font-size:clamp(40px,5vw,64px);color:var(--navy);letter-spacing:2px;line-height:.92;margin-bottom:14px}
.pd-tagline{font-size:17px;color:var(--orange);font-weight:700;margin-bottom:14px}
.pd-desc{font-size:15px;color:var(--gray);line-height:1.75;margin-bottom:24px}
.pd-feats{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:28px}
.pd-feats li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text);font-weight:500}
.pd-feats li::before{content:'✓';color:var(--orange);font-weight:800;flex-shrink:0;margin-top:1px}
.pd-actions{display:flex;gap:12px;flex-wrap:wrap}
.pd-visual{border-radius:22px;overflow:hidden;position:relative}
.pd-visual-inner{padding:44px;position:relative;min-height:380px;display:flex;flex-direction:column;justify-content:flex-end}
.p-vis-1{background:linear-gradient(145deg,#0b2540,#163a5f)}
.p-vis-2{background:linear-gradient(145deg,#c03c12,#f04e1f)}
.p-vis-3{background:linear-gradient(145deg,#152e52,#1f4475)}
.p-vis-4{background:linear-gradient(145deg,#0f2b1f,#1a4d35)}
.pd-visual-em{font-size:80px;line-height:1;margin-bottom:16px;display:block}
.pd-visual-stat{font-family:var(--disp);font-size:52px;color:#fff;line-height:1;margin-bottom:4px}
.pd-visual-stat span{color:var(--orange)}
.pd-visual-label{font-size:12px;color:#fff;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.pd-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pd-pill{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:11px;font-weight:700;padding:6px 13px;border-radius:20px;letter-spacing:.5px}

/* ════════════════════════════════════
   STAY & PLAY PAGE STYLES
════════════════════════════════════ */
.sp-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden;display:flex;align-items:flex-start}
.sp-hero .hero-photo{position:absolute;inset:0;pointer-events:none;z-index:0}
.sp-hero .hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.sp-hero .hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,14,26,.82) 0%,rgba(13,34,64,.68) 45%,rgba(7,23,43,.62) 100%)}
.sp-hero-bg{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(240,78,31,.1) 0%,transparent 55%);pointer-events:none}
.sp-hero-inner{position:relative;z-index:2;max-width:720px;margin:0 auto;padding:80px 32px}
.sp-tag{display:inline-flex;align-items:center;gap:10px;background:rgba(240,78,31,.12);border:1px solid rgba(240,78,31,.25);color:var(--orange-text);font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:8px 16px;border-radius:20px;margin-bottom:22px}
.sp-h1{font-family:var(--disp);font-size:clamp(56px,7vw,96px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:18px}
.sp-h1 span{color:var(--orange)}
.sp-h1 em{font-family:var(--serif);font-style:italic;color:#fff}
.sp-sub{font-size:17px;color:#fff;line-height:1.72;max-width:480px;margin-bottom:36px}
.sp-hero-btns{display:flex;gap:13px;flex-wrap:wrap}
.sp-hero-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:32px;backdrop-filter:blur(10px)}
.sp-card-hed{font-family:var(--disp);font-size:20px;color:#fff;letter-spacing:1.5px;margin-bottom:20px}
.sp-incl{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.sp-incl-item{display:flex;align-items:center;gap:14px;padding:12px 16px;background:rgba(255,255,255,.04);border-radius:10px;border:1px solid rgba(255,255,255,.06)}
.sp-incl-icon{font-size:20px;flex-shrink:0;line-height:1}
.sp-incl-text{font-size:13.5px;color:#fff;font-weight:500;line-height:1.4}
.sp-incl-text strong{color:#fff;display:block;font-size:14px}
.sp-price-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-top:1px solid rgba(255,255,255,.08)}
.sp-price-from{font-size:11px;color:#fff;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.sp-price-num{font-family:var(--disp);font-size:40px;color:var(--orange);line-height:1}
.sp-price-per{font-size:11px;color:#fff}

/* SP sections */
.sp-section{padding:var(--section-pad) 0}
.sp-section-alt{background:var(--off)}
.sp-section-dark{background:var(--navy)}
.sp-packages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.sp-pkg{background:var(--white);border:1.5px solid var(--border);border-radius:20px;overflow:hidden;transition:all .25s}
.sp-pkg:hover{transform:translateY(-6px);box-shadow:0 24px 64px rgba(7,23,43,.18)}
.sp-pkg-top{padding:32px 28px 24px;position:relative}
.sp-pkg-pop{position:absolute;top:14px;right:14px;background:var(--orange);color:#fff;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 12px;border-radius:20px}
.sp-pkg-icon{font-size:44px;margin-bottom:14px;display:block;line-height:1}
.sp-pkg-name{font-family:var(--disp);font-size:28px;color:var(--navy);letter-spacing:1.5px;margin-bottom:6px}
.sp-pkg-tagline{font-size:13px;color:var(--gray);line-height:1.5}
.sp-pkg-body{padding:20px 28px 28px;border-top:1px solid var(--border)}
.sp-pkg-feats{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:24px}
.sp-pkg-feats li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--text)}
.sp-pkg-feats li::before{content:'✓';color:var(--orange);font-weight:800;flex-shrink:0;margin-top:1px}
.sp-pkg-price{display:flex;align-items:baseline;gap:6px;margin-bottom:20px}
.sp-pkg-from{font-size:11px;color:var(--gray);font-weight:600}
.sp-pkg-num{font-family:var(--disp);font-size:38px;color:var(--navy);line-height:1}
.sp-pkg-per{font-size:12px;color:var(--gray)}

/* SP partner strip */
.sp-partners{padding:var(--section-pad-sm) 0;background:var(--off);border-top:1px solid var(--border)}
.sp-partners-inner{max-width:1160px;margin:0 auto;padding:0 32px}
.sp-partners-label{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--gray);text-align:center;margin-bottom:32px}
.sp-partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sp-partner{background:var(--white);border:1.5px solid var(--border);border-radius:14px;padding:24px 20px;text-align:center;transition:all .2s}
.sp-partner:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(240,78,31,.1)}
.sp-partner-icon{font-size:36px;margin-bottom:10px;display:block;line-height:1}
.sp-partner-name{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:4px}
.sp-partner-type{font-size:12px;color:var(--gray)}

/* ════════════════════════════════════
   LOCATIONS PAGE STYLES
════════════════════════════════════ */
.loc-page-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden;display:flex;align-items:flex-start}
.loc-page-hero .hero-photo{position:absolute;inset:0;pointer-events:none;z-index:0}
.loc-page-hero .hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.loc-page-hero .hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,14,26,.82) 0%,rgba(13,34,64,.68) 45%,rgba(7,23,43,.62) 100%)}
.loc-page-hero-bg{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 60% 55% at 90% 55%,rgba(240,78,31,.1) 0%,transparent 55%);pointer-events:none}
.loc-hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:80px 32px;width:100%;display:grid;grid-template-columns:1fr 420px;gap:64px;align-items:center}
.loc-hero-stat-row{display:flex;gap:28px;margin-top:36px;flex-wrap:wrap}
.loc-hero-stat{text-align:left}
.loc-hero-stat-n{font-family:var(--disp);font-size:36px;color:var(--orange);line-height:1;margin-bottom:3px}
.loc-hero-stat-l{font-size:12px;color:#fff;font-weight:500}

/* Geo detect card */
.geo-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);border-radius:20px;padding:32px;backdrop-filter:blur(10px)}
.geo-card-title{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:16px}
.geo-detect-btn{width:100%;padding:15px 20px;border-radius:11px;background:rgba(240,78,31,.15);border:1.5px solid rgba(240,78,31,.35);color:#fff;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s;margin-bottom:14px}
.geo-detect-btn:hover{background:var(--orange-cta);border-color:var(--orange)}
.geo-or{text-align:center;font-size:12px;color:#fff;margin-bottom:14px;font-weight:500;letter-spacing:1px;text-transform:uppercase}
.geo-search{width:100%;padding:13px 16px;border-radius:10px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#fff;font-size:14px;font-family:inherit;outline:none;transition:all .2s;box-sizing:border-box}
.geo-search::placeholder{color:#fff}
.geo-search:focus{border-color:rgba(240,78,31,.5);background:rgba(255,255,255,.1)}
.geo-results{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.geo-result-item{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:9px;cursor:pointer;transition:all .18s}
.geo-result-item:hover{background:rgba(240,78,31,.12);border-color:rgba(240,78,31,.25)}
.geo-result-city{font-size:13.5px;font-weight:700;color:#fff}
.geo-result-state{font-size:11px;color:#fff;margin-top:1px}
.geo-result-dist{font-size:12px;color:var(--orange);font-weight:700}

/* State filter bar */
.state-filter{background:var(--white);border-bottom:1.5px solid var(--border);position:sticky;top:64px;z-index:90}
.state-filter-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:0;overflow-x:auto;scrollbar-width:none;position:relative}
.state-filter-inner::-webkit-scrollbar{display:none}
.state-tab{padding:15px 18px;font-size:13px;font-weight:700;color:var(--gray);white-space:nowrap;cursor:pointer;transition:color .2s;background:none;border:none;font-family:inherit;position:relative;z-index:1;display:flex;align-items:center;gap:6px}
.state-tab:hover{color:var(--navy)}
.state-tab.active{color:var(--orange)}
.state-tab .st-count{font-size:10px;background:var(--border);color:var(--gray);border-radius:10px;padding:2px 7px;font-weight:700;transition:all .2s}
.state-tab.active .st-count{background:rgba(240,78,31,.12);color:var(--orange)}
.state-indicator{position:absolute;bottom:0;height:2px;background:var(--orange);border-radius:2px 2px 0 0;transition:left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:2}

/* Location cards grid */
.loc-page-section{padding:var(--section-pad) 0;background:var(--off)}
.loc-state-group{margin-bottom:56px}
.gateway-active .loc-state-label{display:none}
.gateway-active .loc-state-group{margin-bottom:24px}
.gateway-active .loc-page-section .container{max-width:1160px}
.gateway-active .loc-cards-grid{grid-template-columns:repeat(3,1fr)}
.loc-state-group:last-child{margin-bottom:0}
.loc-state-label{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.loc-state-flag{font-size:28px;line-height:1}
.loc-state-name{font-family:var(--disp);font-size:28px;color:var(--navy);letter-spacing:1.5px}
.loc-state-count{font-size:12px;color:var(--gray);font-weight:600;margin-top:2px}
.loc-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.loc-full-card{background:var(--white);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;transition:all .25s;cursor:pointer}
.loc-full-card:hover{border-color:var(--orange);box-shadow:0 12px 40px rgba(240,78,31,.12);transform:translateY(-4px)}
.lfc-top{padding:22px 24px 16px;border-bottom:1px solid var(--border)}
.lfc-badge-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.lfc-state-badge{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:rgba(7,23,43,.07);color:var(--navy);padding:3px 9px;border-radius:10px}
.lfc-open-badge{font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;background:rgba(34,197,94,.1);color:#15803d;padding:3px 9px;border-radius:10px}
.lfc-city{font-family:var(--disp);font-size:24px;color:var(--navy);letter-spacing:1px;margin-bottom:4px}
.lfc-addr{font-size:12.5px;color:var(--gray);line-height:1.5}
.lfc-body{padding:16px 24px 20px}
.lfc-phone{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--navy);font-weight:600;margin-bottom:12px}
.lfc-phone-icon{font-size:14px}
.lfc-actions{display:flex;gap:8px}
.lfc-btn-primary{flex:1;text-align:center;padding:10px 12px;border-radius:8px;font-size:12.5px;font-weight:700;background:var(--orange-cta);color:#fff;transition:background .18s;cursor:pointer;border:none;font-family:inherit}
.lfc-btn-primary:hover{background:var(--olt)}
.lfc-btn-ghost{padding:10px 12px;border-radius:8px;font-size:12.5px;font-weight:700;background:transparent;color:var(--navy);border:1.5px solid var(--border);transition:all .18s;cursor:pointer;font-family:inherit;white-space:nowrap}
.lfc-btn-ghost:hover{border-color:var(--navy);background:var(--off)}

/* Coming soon cards */
.loc-soon-card{background:var(--white);border:1.5px dashed var(--border);border-radius:16px;padding:28px 24px;display:flex;align-items:center;gap:18px;opacity:.75;transition:opacity .2s}
.loc-soon-card:hover{opacity:1}
.lsc-icon{width:48px;height:48px;border-radius:12px;background:var(--off);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.lsc-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:4px}
.lsc-city{font-size:16px;font-weight:800;color:var(--navy)}
.lsc-notify{font-size:12px;color:var(--orange);font-weight:600;margin-top:4px;cursor:pointer}

/* Why train strip */
.loc-why{padding:var(--section-pad) 0;background:var(--white);transition:all .2s}
.gateway-active .loc-why{display:none}
.loc-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.loc-why-card{padding:28px 24px;background:var(--off);border-radius:14px;border:1px solid var(--border);transition:all .2s}
.loc-why-card:hover{background:var(--white);box-shadow:0 8px 30px rgba(7,23,43,.08);transform:translateY(-3px)}
.loc-why-icon{font-size:32px;margin-bottom:14px;line-height:1;display:block}
.loc-why-title{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:7px}
.loc-why-desc{font-size:13px;color:var(--gray);line-height:1.65}

/* Franchise CTA */
.loc-franchise-cta{background:var(--navy);padding:var(--section-pad) 0;position:relative;overflow:hidden}
.loc-franchise-cta::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(240,78,31,.1) 0%,transparent 65%);pointer-events:none}
.lfc-inner{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center;position:relative;z-index:1}

/* ════════════════════════════════════
   FRANCHISE PAGE STYLES
════════════════════════════════════ */
.fr-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden;display:flex;align-items:flex-start}
.fr-hero .hero-photo{position:absolute;inset:0;pointer-events:none;z-index:0}
.fr-hero .hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.fr-hero .hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(5,14,26,.82) 0%,rgba(13,34,64,.68) 45%,rgba(7,23,43,.62) 100%)}
.fr-hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:80px 32px;width:100%;display:grid;grid-template-columns:1fr 420px;gap:56px;align-items:start}

/* lead form card */
.fr-form-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:36px;position:sticky;top:84px}
.fr-form-title{font-family:var(--disp);font-size:26px;color:#fff;letter-spacing:1px;margin-bottom:6px}
.fr-form-sub{font-size:13px;color:#fff;margin-bottom:24px;line-height:1.6}
.fr-input{width:100%;padding:13px 16px;border-radius:10px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#fff;font-size:14px;font-family:inherit;outline:none;transition:border-color .2s;margin-bottom:10px;box-sizing:border-box}
.fr-input::placeholder{color:#fff}
.fr-input:focus{border-color:rgba(240,78,31,.55);background:rgba(255,255,255,.1)}
.fr-select{width:100%;padding:13px 16px;border-radius:10px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#fff;font-size:14px;font-family:inherit;outline:none;transition:border-color .2s;margin-bottom:10px;box-sizing:border-box;appearance:none;cursor:pointer}
.fr-select:focus{border-color:rgba(240,78,31,.55)}
.fr-select option{background:#0c1f3c;color:#fff}
.fr-disclaimer{font-size:11px;color:#fff;text-align:center;margin-top:12px;line-height:1.6}

/* stats band */
.fr-stats{background:var(--off);padding:var(--section-pad-sm) 0;border-bottom:1px solid var(--border)}
.fr-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1160px;margin:0 auto;padding:0 32px}
.fr-stat{text-align:center;padding:0 24px;border-right:1px solid var(--border)}
.fr-stat:last-child{border-right:none}
.fr-stat-n{font-family:var(--disp);font-size:52px;color:var(--orange);line-height:1;margin-bottom:4px}
.fr-stat-l{font-size:13px;color:var(--text);font-weight:600}

/* why it works */
.fr-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.fr-why-card{background:var(--white);border:1.5px solid var(--border);border-radius:18px;padding:32px 28px;transition:all .22s}
.fr-why-card:hover{border-color:var(--orange);transform:translateY(-4px);box-shadow:0 12px 40px rgba(240,78,31,.1)}
.fr-why-icon{font-size:36px;margin-bottom:16px;line-height:1;display:block}
.fr-why-title{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:8px}
.fr-why-desc{font-size:13.5px;color:var(--text);line-height:1.68}
.fr-why-metric{display:inline-flex;align-items:center;gap:6px;margin-top:14px;background:rgba(240,78,31,.07);border:1px solid rgba(240,78,31,.18);color:var(--orange-text);font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px;letter-spacing:.5px}

/* territory grid */
.fr-territory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}
.fr-territory-card{border-radius:14px;padding:20px 18px;border:1.5px solid;transition:all .2s}
.fr-territory-open{background:rgba(34,197,94,.05);border-color:rgba(34,197,94,.25)}
.fr-territory-taken{background:rgba(7,23,43,.04);border-color:var(--border);opacity:.6}
.fr-territory-soon{background:rgba(240,78,31,.04);border-color:rgba(240,78,31,.2)}
.fr-territory-city{font-size:14px;font-weight:800;color:var(--navy);margin-bottom:3px}
.fr-territory-state{font-size:11px;color:var(--text);font-weight:600;margin-bottom:8px}
.fr-territory-badge{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 8px;border-radius:10px;display:inline-block}
.fr-badge-open{background:rgba(34,197,94,.12);color:#15803d}
.fr-badge-taken{background:rgba(7,23,43,.08);color:var(--gray)}
.fr-badge-soon{background:rgba(240,78,31,.1);color:var(--orange)}

/* ideal partner */
.fr-partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:40px}
.fr-partner-item{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--white);border:1px solid var(--border);border-radius:12px;transition:all .18s;box-shadow:0 2px 8px rgba(7,23,43,.06)}
.fr-partner-item:hover{background:var(--white);border-color:var(--orange);transform:translateY(-1px);box-shadow:0 4px 16px rgba(240,78,31,.12)}
.fr-partner-check{width:28px;height:28px;border-radius:50%;background:rgba(240,78,31,.12);border:1px solid rgba(240,78,31,.35);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;color:var(--orange)}
.fr-partner-text{font-size:14px;font-weight:700;color:var(--navy)}
.fr-partner-sub{font-size:12px;color:var(--text);margin-top:2px}

/* discovery steps */
.fr-steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:48px}
.fr-steps-grid::before{content:'';position:absolute;top:32px;left:calc(12.5%);right:calc(12.5%);height:2px;background:linear-gradient(90deg,var(--orange),rgba(240,78,31,.2));z-index:0}
.fr-step-item{text-align:center;position:relative;z-index:1;padding:0 12px}
.fr-step-num{width:64px;height:64px;border-radius:50%;background:var(--navy);border:2px solid var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:28px;color:var(--orange);margin:0 auto 16px;position:relative;z-index:1}
.fr-step-title{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:6px}
.fr-step-desc{font-size:12.5px;color:var(--text);line-height:1.6}
.fr-step-time{font-size:11px;color:var(--orange);font-weight:700;margin-top:6px;letter-spacing:.5px}

/* franchisee proof */
.fr-proof-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:48px}
.fr-proof-card{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:28px}
.fr-proof-quote{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--text);line-height:1.72;margin-bottom:18px}
.fr-proof-person{display:flex;align-items:center;gap:12px}
.fr-proof-avatar{width:40px;height:40px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:14px;flex-shrink:0}
.fr-proof-name{font-size:13px;font-weight:700;color:var(--navy)}
.fr-proof-loc{font-size:11px;color:var(--text);margin-top:1px}

/* investment breakdown */
.fr-invest-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;margin-top:48px}
.fr-invest-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border)}
.fr-invest-row:last-child{border-bottom:none}
.fr-invest-label{font-size:14px;color:var(--text);font-weight:500}
.fr-invest-val{font-size:14px;font-weight:800;color:var(--navy)}
.fr-invest-total{background:var(--navy);border-radius:14px;padding:24px;text-align:center}
.fr-invest-total-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:8px}
.fr-invest-total-num{font-family:var(--disp);font-size:52px;color:var(--orange);line-height:1}
.fr-invest-total-range{font-size:13px;color:#fff;margin-top:6px}

/* ── FAQ ACCORDION ── */
.faq-item{background:var(--white);border:1.5px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s}
.faq-item.open{border-color:var(--orange)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;cursor:pointer;user-select:none}
.faq-q span{font-size:15px;font-weight:800;color:var(--navy);line-height:1.4}
.faq-icon{width:28px;height:28px;border-radius:50%;background:var(--off);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:300;color:var(--navy);flex-shrink:0;transition:all .2s;line-height:1}
.faq-item.open .faq-icon{background:var(--orange);border-color:var(--orange);color:#fff;transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}
.faq-a p{padding:0 24px 22px;font-size:14px;color:var(--gray);line-height:1.75;margin:0}
.faq-item.open .faq-a{max-height:600px}


/* ── PROGRAM MATCHER QUIZ ── */
.quiz-section{padding:32px 0 80px;background:var(--white);position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.quiz-inner{max-width:780px;margin:0 auto;text-align:center;position:relative;z-index:1;padding:28px 32px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:20px}
.quiz-step{display:none}.quiz-step.active{display:block}
.quiz-q{font-family:var(--disp);font-size:clamp(28px,4vw,48px);color:var(--navy);letter-spacing:1px;margin-bottom:8px}
.quiz-sub{font-size:15px;color:var(--text);margin-bottom:36px}
.quiz-opts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:0}
.quiz-opt{padding:18px 28px;border-radius:14px;background:rgba(255,255,255,.25);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:2px solid rgba(255,255,255,.25);color:var(--navy);font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;font-family:var(--body);min-width:140px;text-align:center;box-shadow:0 2px 6px rgba(7,23,43,.04)}
.quiz-opt:hover,.quiz-opt.selected{background:var(--sage-light);border-color:var(--sage);color:var(--navy);transform:translateY(-2px);box-shadow:0 6px 16px rgba(106,158,133,.12)}
.quiz-opt .qo-em{font-size:28px;display:block;margin-bottom:8px}
.quiz-opt .qo-label{font-size:14px;font-weight:800}
.quiz-opt .qo-sub{font-size:11px;color:var(--gray);font-weight:500;margin-top:3px}
.quiz-section .quiz-opt{background:rgba(255,255,255,.92);border:2px solid var(--border);color:var(--navy);backdrop-filter:none;-webkit-backdrop-filter:none}
.quiz-section .quiz-opt:hover,.quiz-section .quiz-opt.selected{background:#fff;border-color:var(--orange);box-shadow:0 6px 20px rgba(240,78,31,.15)}
.quiz-section .quiz-opt .qo-sub{color:var(--gray)}
.quiz-result{display:none;animation:fadeIn .3s ease}
.quiz-result.show{display:block}
.quiz-result-card{background:var(--white);border:2px solid var(--orange);border-radius:20px;padding:40px 44px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;box-shadow:0 8px 32px rgba(240,78,31,.1)}
.quiz-prog-name{font-family:var(--disp);font-size:clamp(32px,4vw,52px);color:var(--navy);letter-spacing:2px;margin-bottom:6px}
.quiz-prog-age{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.quiz-prog-desc{font-size:15px;color:var(--text);line-height:1.7;margin-bottom:24px}
.quiz-prog-feats{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.quiz-prog-feats li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text)}
.quiz-prog-feats li::before{content:'✓';color:var(--orange);font-weight:700;flex-shrink:0}
.quiz-match-badge{background:var(--orange);color:#fff;border-radius:16px;padding:20px 24px;text-align:center;flex-shrink:0;min-width:130px}
.quiz-match-pct{font-family:var(--disp);font-size:52px;color:#fff;line-height:1}
.quiz-match-label{font-size:11px;font-weight:700;color:#fff;letter-spacing:1px;text-transform:uppercase}
.quiz-progress{display:flex;gap:6px;justify-content:center;margin-bottom:28px}
.quiz-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .3s}
.quiz-dot.active{background:var(--sage)}
.quiz-dot.done{background:var(--sage-mid)}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}


@media(max-width:600px){
  .quiz-opts{flex-direction:column;align-items:stretch;max-width:320px;margin:0 auto}
  .quiz-result-card{grid-template-columns:1fr}
  .quiz-match-badge{display:flex;align-items:center;gap:12px;justify-content:center}
}


/* ── QUIZ SHORTCUT CARDS ── */
.quiz-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:40px}
.quiz-shortcut{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:22px 20px;cursor:pointer;transition:all .2s;text-align:left;box-shadow:0 2px 6px rgba(7,23,43,.04)}
.quiz-shortcut:hover{background:var(--sage-light);border-color:var(--sage);transform:translateY(-2px);box-shadow:0 6px 16px rgba(106,158,133,.12)}
.qs-icon{font-size:26px;margin-bottom:10px;display:block}
.qs-title{font-size:15px;font-weight:800;color:#fff;margin-bottom:5px;line-height:1.3}
.qs-desc{font-size:12px;color:#fff;line-height:1.5}
.quiz-divider{display:flex;align-items:center;gap:14px;margin-bottom:32px}
.quiz-divider-line{flex:1;height:1px;background:var(--border)}
/* Quiz embedded on dark backgrounds (e.g., programs hero) */
.quiz-on-dark .quiz-q{color:#fff}
.quiz-on-dark .quiz-sub{color:#fff}
.quiz-on-dark .quiz-opt{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff;box-shadow:none}
.quiz-on-dark .quiz-opt:hover,.quiz-on-dark .quiz-opt.selected{background:rgba(240,78,31,.2);border-color:var(--orange);color:#fff}
.quiz-on-dark .quiz-opt .qo-sub{color:#fff}
.quiz-on-dark .quiz-dot{background:rgba(255,255,255,.2)}
.quiz-on-dark .quiz-dot.active{background:var(--orange)}
.quiz-on-dark .quiz-dot.done{background:rgba(255,255,255,.5)}
.quiz-on-dark .quiz-divider-text{color:#fff}
.quiz-on-dark .quiz-divider-line{background:rgba(255,255,255,.1)}
.quiz-on-dark .quiz-shortcut{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}
.quiz-on-dark .quiz-shortcut:hover{background:rgba(240,78,31,.18);border-color:var(--orange)}
.quiz-divider-text{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
@media(max-width:640px){
  .quiz-shortcuts{grid-template-columns:1fr}
}

/* ── PROGRESSION BADGES ── */
.badge-section{padding:var(--section-pad) 0;background:var(--navy)}
.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.badge-card{background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);border-radius:18px;padding:24px 20px;text-align:center;transition:all .22s;position:relative;overflow:hidden}
.badge-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3)}
.badge-card::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .22s;border-radius:18px}
.badge-card.b1:hover{border-color:rgba(240,78,31,.5)}.badge-card.b1::before{background:rgba(240,78,31,.06)}
.badge-card.b2:hover{border-color:rgba(34,197,94,.5)}.badge-card.b2::before{background:rgba(34,197,94,.05)}
.badge-card.b3:hover{border-color:rgba(59,130,246,.5)}.badge-card.b3::before{background:rgba(59,130,246,.05)}
.badge-card.b4:hover{border-color:#fff}.badge-card.b4::before{background:rgba(255,255,255,.04)}
.badge-card:hover::before{opacity:1}
.badge-icon{font-size:36px;margin-bottom:12px;display:block;position:relative;z-index:1}
.badge-num{position:absolute;top:14px;left:16px;font-family:var(--disp);font-size:32px;color:#fff;line-height:1}
.badge-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:1.5px;margin-bottom:6px;position:relative;z-index:1}
.badge-sessions{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:10px;position:relative;z-index:1}
.badge-skills{font-size:12.5px;color:#fff;line-height:1.6;position:relative;z-index:1;margin-bottom:14px}
.badge-milestone{font-size:11px;font-weight:700;color:#fff;background:rgba(255,255,255,.05);border-radius:20px;padding:5px 12px;display:inline-block;position:relative;z-index:1}
.badge-arrow{display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;padding-top:8px;align-self:center}
.badge-grid-wrap{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:0;margin-top:48px}
.badge-reenroll{margin-top:40px;background:rgba(240,78,31,.1);border:1px solid rgba(240,78,31,.25);border-radius:16px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.badge-reenroll-text{font-size:15px;color:#fff;line-height:1.6;max-width:580px}
.badge-reenroll-text strong{color:#fff}
@media(max-width:960px){
  .badge-grid-wrap{grid-template-columns:1fr 1fr}
  .badge-arrow{display:none}
}
@media(max-width:600px){
  .badge-grid-wrap{grid-template-columns:1fr}
}

/* ── BEFORE / AFTER COMPARE CARDS ── */
.compare-cards{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:32px}
.compare-card{border-radius:18px;padding:28px 26px;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}
.compare-card.bad{background:linear-gradient(145deg,#f1f3f6,#e6e9ee);border:1.5px solid #d1d5db}
.compare-card.bad::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(0,0,0,.02) 0%,transparent 65%);pointer-events:none}
.compare-card.bad:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,.08)}
.compare-card.good{background:linear-gradient(145deg,#fff,#fefaf6);border:2px solid var(--orange);box-shadow:0 8px 32px rgba(240,78,31,.1)}
.compare-card.good::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(240,78,31,.06) 0%,transparent 65%);pointer-events:none}
.compare-card.good:hover{transform:translateY(-5px);box-shadow:0 16px 48px rgba(240,78,31,.18)}
.compare-card-label{font-size:10px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:18px;padding-bottom:12px}
.compare-card.bad .compare-card-label{color:#8896a4;border-bottom:1px solid #d1d5db}
.compare-card.good .compare-card-label{color:var(--orange);border-bottom:1px solid rgba(240,78,31,.15)}
.compare-item{display:flex;align-items:flex-start;gap:10px;font-size:14px;padding:7px 0;line-height:1.5}
.compare-card.bad .compare-item{color:#5a6675}
.compare-card.good .compare-item{color:var(--text);font-weight:500}
.compare-item-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:7px}
.compare-card.bad .compare-item-dot{background:#b0b8c4}
.compare-card.good .compare-item-dot{background:var(--orange);box-shadow:0 0 8px rgba(240,78,31,.35)}
@media(max-width:640px){.compare-cards{grid-template-columns:1fr}}


/* ── HOMEPAGE RESORT STRIP ── */
.resort-strip{padding:var(--section-pad) 0;background:var(--navy)}
.resort-chips{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:40px}
.resort-chip{background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);border-radius:16px;padding:18px 12px;text-align:center;transition:all .2s;cursor:pointer}
.resort-chip:hover{background:rgba(240,78,31,.12);border-color:var(--orange);transform:translateY(-2px);box-shadow:0 8px 24px rgba(240,78,31,.15)}
.resort-chip-icon{font-size:24px;margin-bottom:8px;display:block}
.resort-chip-name{font-family:var(--disp);font-size:16px;color:#fff;letter-spacing:1px;margin-bottom:3px}
.resort-chip-state{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff}
.resort-strip-cta{text-align:center;margin-top:32px}
@media(max-width:760px){.resort-chips{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.resort-chips{grid-template-columns:1fr 1fr}}


/* ── OPEN GYM HOMEPAGE SECTION ── */
.og-section{padding:var(--section-pad) 0;background:var(--navy)}
.og-inner{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.og-text{padding:48px 44px;background:rgba(255,255,255,.03)}
.og-card{padding:40px 36px;background:rgba(255,255,255,.05);border-left:1px solid rgba(255,255,255,.08)}
.og-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange-text);margin-bottom:12px}
.og-h2{font-family:var(--disp);font-size:clamp(32px,4vw,48px);color:#fff;letter-spacing:2px;line-height:.95;margin-bottom:16px}
.og-body{font-size:14px;color:#fff;line-height:1.72;margin-bottom:28px}
.og-tag{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:11px;font-weight:700;color:var(--orange);background:rgba(240,78,31,.1);border:1px solid rgba(240,78,31,.2);padding:5px 12px;border-radius:20px}
.og-card-label{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:#fff;margin-bottom:20px}
.og-feat{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#fff;line-height:1.55;margin-bottom:14px}
.og-feat-dot{color:var(--orange);font-weight:900;flex-shrink:0;margin-top:1px}
.og-feat.highlight .og-feat-dot{color:#22c55e}
.og-feat.highlight{color:#fff}
@media(max-width:760px){
  .og-inner{grid-template-columns:1fr}
  .og-card{border-left:none;border-top:1px solid rgba(255,255,255,.08)}
  .og-text{padding:36px 28px}
  .og-card{padding:32px 28px}
}


/* ── PARENT OUTCOME CARDS ── */
.outcomes-section{padding:var(--section-pad) 0;background:var(--white)}
.outcomes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.outcome-card{border-radius:18px;padding:24px 22px;border:1px solid;transition:all .2s}
.outcome-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.08)}
.oc-1{background:#fff7ed;border-color:#fed7aa}.oc-1:hover{box-shadow:0 12px 32px rgba(249,115,22,.12)}
.oc-2{background:#f0fdf4;border-color:#bbf7d0}.oc-2:hover{box-shadow:0 12px 32px rgba(34,197,94,.1)}
.oc-3{background:#eff6ff;border-color:#bfdbfe}.oc-3:hover{box-shadow:0 12px 32px rgba(59,130,246,.1)}
.oc-4{background:#fdf4ff;border-color:#e9d5ff}.oc-4:hover{box-shadow:0 12px 32px rgba(168,85,247,.1)}
.oc-who{display:inline-block;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:3px 9px;border-radius:10px;margin-bottom:12px}
.oc-who-parent{background:#fef3c7;color:#92400e}
.oc-who-child{background:#dbeafe;color:#1e40af}
.oc-who-family{background:#dcfce7;color:#166534}
.oc-icon{font-size:30px;margin-bottom:12px;display:block}
.oc-title{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:8px;line-height:1.25}
.oc-body{font-size:13px;color:var(--gray);line-height:1.65}
@media(max-width:900px){.outcomes-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.outcomes-grid{grid-template-columns:1fr}}

/* ── NOTIFY MODAL ── */
.notify-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .22s}
.notify-modal.open{opacity:1;pointer-events:all}
.notify-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
.notify-box{position:relative;z-index:1;background:var(--navy);border-radius:20px;padding:40px;max-width:440px;width:100%;border:1px solid rgba(255,255,255,.12)}
.notify-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:#fff;border:none;font-family:inherit}

/* ── HAMBURGER + MOBILE DRAWER ── */
.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;cursor:pointer;padding:6px;border-radius:8px;transition:background .2s;background:none;border:none}
.nav-hamburger:hover{background:rgba(255,255,255,.08)}
.nav-hamburger span{display:block;height:2px;background:#fff;border-radius:2px;transition:all .28s cubic-bezier(.4,0,.2,1);transform-origin:center}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-drawer{position:fixed;top:64px;left:0;right:0;background:rgba(7,23,43,.99);backdrop-filter:blur(20px);z-index:998;border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .22s ease;padding:16px 0 24px}
.nav-drawer.open{transform:translateY(0);opacity:1;pointer-events:all}
.nav-drawer-links{list-style:none;padding:0 20px;margin:0 0 16px}
.nav-drawer-links li a{display:block;padding:13px 16px;font-size:16px;font-weight:600;color:#fff;border-radius:10px;cursor:pointer;transition:all .15s}
.nav-drawer-links li a:hover,.nav-drawer-links li a.active{color:#fff;background:rgba(255,255,255,.07)}
.nav-drawer-cta{margin:0 20px}
.nav-drawer-cta a{display:block;text-align:center;padding:15px;background:var(--orange-cta);color:#fff;font-weight:700;font-size:15px;border-radius:10px;cursor:pointer;box-shadow:0 4px 20px rgba(240,78,31,.4)}
.nav-overlay{position:fixed;inset:0;top:64px;background:rgba(0,0,0,.45);z-index:997;opacity:0;pointer-events:none;transition:opacity .22s}
.nav-overlay.open{opacity:1;pointer-events:all}
/* Geo location bar */
.geo-bar{position:fixed;top:64px;left:0;right:0;z-index:998;background:var(--sage-light,#EEF5F1);border-bottom:1px solid var(--sage-mid,#D4E5DC);padding:0 32px;animation:geoBarIn .3s ease}
@keyframes geoBarIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.geo-bar-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 0;flex-wrap:wrap}
.geo-bar-text{font-size:12px;color:var(--text,#162840);font-weight:500}
.geo-bar-text strong{color:var(--navy,#07172B);font-weight:800}
.geo-bar-cta{font-size:11px;font-weight:800;color:#fff;background:var(--orange,#F04E1F);padding:4px 14px;border-radius:6px;text-decoration:none;transition:background .18s}
.geo-bar-cta:hover{background:var(--olt,#FF6840)}
.geo-bar-change{font-size:11px;font-weight:600;color:var(--sage,#6A9E85);text-decoration:underline;text-underline-offset:2px;margin-left:4px}
.guar-whisper{font-size:11.5px;color:var(--text);margin-top:8px;text-align:center;letter-spacing:.3px}
.guar-whisper-dark{font-size:11.5px;color:var(--gray);margin-top:8px;text-align:center;letter-spacing:.3px}

/* ── RESPONSIVE ── */
@media(max-width:1060px){
  .hero-inner{grid-template-columns:1fr;gap:0}
  .stats-card{display:none}
  .page-hero-inner{grid-template-columns:1fr;gap:40px}
  .quick-nav{display:none}
}
@media(max-width:960px){
  .post-book-grid{grid-template-columns:1fr 1fr !important}
  /* nav */
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .nav-city{margin-left:10px;padding:5px 9px;font-size:10.5px;letter-spacing:1.2px}
  .nav-city .nav-city-chev{font-size:8px}
  /* trust bar */
  .trust-bar-inner{grid-template-columns:repeat(3,1fr)}
  .tb-item:nth-child(3){border-right:none}
  .tb-item:nth-child(4){border-right:1px solid var(--border)}
  .tb-item:nth-child(5){border-right:none}
  /* core page grids */
  .problem-grid,.swim-grid,.concept-grid,.indoor-grid,.pd-inner,.sp-hero-inner,.loc-hero-inner{grid-template-columns:1fr;gap:48px}
  .pd-inner.reverse{direction:ltr}
  .steps,.inst-grid{grid-template-columns:1fr}
  .steps::before{display:none}
  .prog-grid,.sp-packages{grid-template-columns:1fr 1fr}
  .prog-steps-hiw{grid-template-columns:1fr 1fr}
  .stats-band{grid-template-columns:1fr 1fr}
  .testi-grid{grid-template-columns:1fr}
  .guar-inner{grid-template-columns:1fr;text-align:center}
  .guar-ring{margin:0 auto}
  .guar-text p{max-width:100%}
  .loc-grid,.loc-cards-grid{grid-template-columns:1fr 1fr}
  .capture-grid{grid-template-columns:1fr;gap:40px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .compare-grid{grid-template-columns:1fr;gap:16px}
  .compare-vs{justify-content:flex-start;padding:0}
  .mountain-milestone{flex-direction:column;gap:20px;padding:32px}
  .indoor-card{position:static}
  .pd-feats{grid-template-columns:1fr}
  .sp-partner-grid{grid-template-columns:1fr 1fr}
  .loc-why-grid{grid-template-columns:1fr 1fr}
  .lfc-inner{grid-template-columns:1fr;gap:28px}
  .container{padding:0 20px}
  .post-book-grid{grid-template-columns:1fr 1fr !important}
  /* Stay & Play */
  .sp-why-grid{grid-template-columns:1fr 1fr}
  .sp-resort-grid{grid-template-columns:1fr 1fr}
  .sp-checklist-inner{grid-template-columns:1fr !important}
  .sp-articles-grid{grid-template-columns:1fr 1fr}
  .sp-haus-grid{grid-template-columns:1fr !important}
  .sp-proof-grid{grid-template-columns:1fr 1fr}
  /* Franchise */
  .fr-hero-inner{grid-template-columns:1fr !important}
  .fr-stats-grid{grid-template-columns:1fr 1fr}
  .fr-why-grid{grid-template-columns:1fr 1fr}
  .fr-territory-grid{grid-template-columns:1fr 1fr}
  .fr-partner-grid{grid-template-columns:1fr !important}
  .fr-steps-grid{grid-template-columns:1fr 1fr}
  .fr-proof-grid{grid-template-columns:1fr !important}
  .fr-invest-grid{grid-template-columns:1fr !important}
  /* Pricing */
  .pd-pricing-cards{grid-template-columns:1fr 1fr}
  .pd-pricing-meta{grid-template-columns:1fr !important}
  .pricing-tiles{grid-template-columns:1fr !important}
  /* Recommendation strip */
  .reco-grid{grid-template-columns:1fr 1fr !important}
  /* About */
  .about-origin-grid{grid-template-columns:1fr !important;gap:48px !important}
  .about-diff-grid{grid-template-columns:1fr 1fr !important}
  .about-team-grid{grid-template-columns:1fr 1fr !important}
  .about-cta-grid{grid-template-columns:1fr !important}
  /* Mission strip */
  .about-mission-strip{flex-direction:column}
}
@media(max-width:600px){
  .trust-bar-inner{grid-template-columns:1fr 1fr}
  .tb-item:nth-child(2n){border-right:none}
  .tb-item:nth-child(2n+1){border-right:1px solid var(--border)}
  .tb-item:nth-child(5){border-right:none}
  .prog-grid,.prog-steps-hiw,.sp-packages,.sp-partner-grid,.loc-cards-grid{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .stats-band{grid-template-columns:1fr}
  .hero-btns,.final-btns,.page-hero-btns,.hiw-final-btns,.swim-cta-row,.prog-page-hero-btns,.sp-hero-btns,.pd-actions,.fr-hero-btns{flex-direction:column;align-items:center}
  .loc-checks{grid-template-columns:1fr}
  .email-row{flex-direction:column}
  .hero-statband{flex-wrap:wrap;gap:0}
  .hero-statband .hsb-item{flex:1 1 calc(50% - 1px);min-width:0}
  .hero-statband .hsb-div{display:none}
  .hsb-n{font-size:24px}
  .loc-why-grid{grid-template-columns:1fr}
  .post-book-grid{grid-template-columns:1fr 1fr !important}
  .post-book-grid{grid-template-columns:1fr !important}
  /* Stay & Play */
  .sp-why-grid,.sp-resort-grid,.sp-articles-grid,.sp-proof-grid{grid-template-columns:1fr}
  /* Franchise */
  .fr-stats-grid,.fr-why-grid,.fr-territory-grid,.fr-steps-grid{grid-template-columns:1fr}
  /* Pricing */
  .pd-pricing-cards{grid-template-columns:1fr}
  /* Recommendation strip — single column on phones */
  .reco-grid{grid-template-columns:1fr !important;gap:12px !important}
  /* About */
  .about-diff-grid{grid-template-columns:1fr !important}
  .about-team-grid{grid-template-columns:1fr !important}
}
@media(max-width:480px){
  /* Typography scaling */
  .hero-h1{font-size:clamp(40px,10vw,72px)}
  .hero-sub{font-size:15px}
  .eyebrow{font-size:var(--eyebrow-size);letter-spacing:2.5px}
  .sec-h2{font-size:clamp(28px,6vw,60px)}
  .quiz-q{font-size:clamp(24px,6vw,48px)}
  .swim-h2{font-size:clamp(28px,7vw,68px)}
  /* Nav */
  .nav-inner{padding:0 12px}
  .logo-img{height:38px}
  /* Container */
  .container{padding:0 16px}
  /* Section padding reduction */
  .problem,.how,.programs,.proof{padding:var(--section-pad-sm) 0}
  .quiz-section{padding:var(--section-pad-sm) 0}
  .guarantee{padding:var(--section-pad-sm) 0}
  .locs{padding:var(--section-pad-sm) 0}
  .final{padding:64px 0}
  /* Hero padding */
  .hero{min-height:auto}
  .hero-inner{padding:48px 16px 40px;gap:32px}
  .hero-statband .hsb-item{flex:1 1 calc(50% - 1px)}
  .hsb-n{font-size:22px}
  .hsb-l{font-size:10px}
  /* Trust bar single column */
  .trust-bar-inner{grid-template-columns:1fr}
  .tb-item{border-right:none!important;border-bottom:1px solid var(--border);padding:12px 0}
  .tb-item:last-child{border-bottom:none}
  /* Cards */
  .stats-card{padding:20px}
  .pain-card{padding:14px 16px}
  /* Guarantee */
  .guar-ring{width:96px;height:96px}
  .guar-text h2{font-size:clamp(28px,6vw,52px)}
  .guar-text p{font-size:14px}
  /* Footer */
  .footer-grid{grid-template-columns:1fr!important;gap:24px}
  .footer-bot{flex-direction:column;align-items:flex-start;gap:8px}
  .f-certs{gap:6px}
  /* Loc grid */
  .loc-grid{grid-template-columns:1fr!important}
  /* Quiz */
  .quiz-inner{padding:20px 16px}
  .quiz-result-card{padding:24px 20px;grid-template-columns:1fr}
  .quiz-match-badge{margin:0 auto}
  /* Programs */
  .prog-grid{grid-template-columns:1fr!important}
  /* Geo bar */
  .geo-bar-inner{gap:8px;flex-direction:column;text-align:center}
  /* Program detail feature grids */
  .pd-feats-grid{grid-template-columns:1fr!important}
  /* Program visual cards */
  .pd-visual-card{padding:28px!important}
  .pd-visual-emoji{font-size:48px!important;margin-bottom:12px!important}
  .pd-visual-stat{font-size:40px!important}
}

/* More Ways to Shred — photo-led 2x2 grid (2026-04-27) */
.mws-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1000px;margin:0 auto}
.mws-card{position:relative;border-radius:20px;overflow:hidden;cursor:pointer;display:block;text-decoration:none;height:380px;box-shadow:0 8px 32px rgba(7,23,43,.2);transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s}
.mws-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(7,23,43,.3)}
.mws-card-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s}
.mws-card:hover .mws-card-img{transform:scale(1.06)}
.mws-card-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,23,43,0) 30%,rgba(7,23,43,.45) 55%,rgba(7,23,43,.95) 100%)}
.mws-card-content{position:absolute;bottom:0;left:0;right:0;padding:30px 28px 26px;color:#fff;z-index:1}
.mws-card-eyebrow{font-size:var(--eyebrow-size);font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:#fff;margin-bottom:8px;display:inline-flex;align-items:center;gap:8px}
.mws-card-eyebrow::before{content:'';width:14px;height:2px;background:var(--orange)}
.mws-card-title{font-family:var(--disp);font-size:30px;letter-spacing:1.2px;line-height:.95;margin-bottom:10px;color:#fff}
.mws-card-tag{font-size:13px;line-height:1.55;opacity:.92;max-width:340px;margin:0 0 16px;color:#fff}
.mws-card-cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.5px;border-bottom:2px solid var(--orange);padding-bottom:2px}
.mws-card-cta::after{content:'→';transition:transform .2s}
.mws-card:hover .mws-card-cta::after{transform:translateX(4px)}
@media(max-width:760px){
  .mws-grid{grid-template-columns:1fr;gap:16px}
  .mws-card{height:320px}
  .mws-card-content{padding:24px 22px 22px}
  .mws-card-title{font-size:26px}
}
@media(max-width:360px){
  .hero-h1{font-size:36px}
  .quiz-q{font-size:22px}
  .swim-h2{font-size:26px}
}

/* ── LOCATION PICKER MODAL ── */
.lpm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9990;opacity:0;pointer-events:none;transition:opacity .25s}
.lpm-overlay.open{opacity:1;pointer-events:all}
.lpm{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);z-index:9991;background:var(--white);border-radius:20px;max-width:680px;width:calc(100% - 32px);max-height:calc(100vh - 64px);overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1)}
.lpm.open{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
.lpm-inner{padding:36px 32px 28px}
.lpm-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--gray);cursor:pointer;transition:all .18s;line-height:1}
.lpm-close:hover{background:var(--border);color:var(--navy)}
.lpm-header{text-align:center;margin-bottom:28px}
.lpm-title{font-family:var(--disp);font-size:clamp(28px,4vw,40px);color:var(--navy);letter-spacing:2px;margin-bottom:6px}
.lpm-sub{font-size:14px;color:var(--gray)}
.lpm-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.lpm-card{padding:16px 18px;border:1.5px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;background:var(--white)}
.lpm-card:hover{border-color:var(--orange);background:rgba(240,78,31,.03);transform:translateY(-2px);box-shadow:0 6px 20px rgba(240,78,31,.1)}
.lpm-card-city{font-family:var(--disp);font-size:18px;color:var(--navy);letter-spacing:1px;line-height:1;margin-bottom:4px}
.lpm-card-state{font-size:11px;font-weight:700;color:var(--sage);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}
.lpm-card-addr{font-size:11px;color:var(--gray);line-height:1.4}
@media(max-width:600px){.lpm-grid{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.lpm-grid{grid-template-columns:1fr}.lpm-inner{padding:28px 20px 20px}}

/* ── FRANCHISE NAV PILL ── */
.nav-franchise-pill{color:var(--orange) !important;border:1.5px solid rgba(240,78,31,.45);border-radius:20px;padding:5px 16px !important;margin-left:6px;transition:all .2s !important}
.nav-franchise-pill:hover{background:var(--orange-cta) !important;color:#fff !important;border-color:var(--orange) !important}


/* ════════════════════════════════════
   LOCATION DETAIL PAGE
════════════════════════════════════ */
.ld-page{background:var(--off);min-height:100vh}
.ld-hero{background:var(--navy);padding:100px 0 48px;position:relative;overflow:hidden}
.ld-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(240,78,31,.12) 0%,transparent 60%);pointer-events:none}
.ld-hero-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:flex-start;justify-content:space-between;gap:40px;flex-wrap:wrap}
.ld-back{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;cursor:pointer;margin-bottom:24px;transition:color .2s}
.ld-back:hover{color:var(--orange)}
.ld-state-badge{display:inline-block;background:rgba(240,78,31,.15);color:var(--orange-text);font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:5px 14px;border-radius:20px;border:1px solid rgba(240,78,31,.3);margin-bottom:14px}
.ld-hero h1{font-family:var(--disp);font-size:clamp(48px,6vw,80px);color:#fff;letter-spacing:2px;line-height:.95;margin-bottom:16px}
.ld-hero-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:20px}
.ld-meta-item{display:flex;align-items:center;gap:8px;font-size:14px;color:#fff}
.ld-meta-item a{color:#fff;transition:color .2s}
.ld-meta-item a:hover{color:var(--orange)}
.ld-enroll-badge{background:var(--green);color:#fff;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:20px;white-space:nowrap;align-self:flex-start;margin-top:4px}
.ld-hero-cta{display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.ld-hero-cta .btn{white-space:nowrap}
.ld-match{background:#fff;border-bottom:1px solid var(--border);padding:28px 0;position:sticky;top:64px;z-index:90}
.ld-match-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ld-match-label{font-size:13px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap}
.ld-age-btns{display:flex;gap:8px;flex-wrap:wrap}
.ld-age-btn{background:var(--off);border:1.5px solid var(--border);border-radius:8px;padding:7px 16px;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;transition:all .18s;font-family:var(--body)}
.ld-age-btn:hover,.ld-age-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.ld-match-result{margin-left:auto;display:flex;align-items:center;gap:12px}
.ld-match-pill{background:rgba(240,78,31,.08);border:1.5px solid rgba(240,78,31,.25);border-radius:10px;padding:8px 18px;font-size:14px;font-weight:700;color:var(--orange);display:none}
.ld-match-pill.visible{display:block}
.ld-match-cta{display:none}
.ld-match-cta.visible{display:inline-flex}
.ld-subnav{background:var(--navy);overflow-x:auto;scrollbar-width:none}
.ld-subnav::-webkit-scrollbar{display:none}
.ld-subnav-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex}
.ld-tab{padding:16px 22px;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .18s}
.ld-tab:hover{color:#fff}
.ld-tab.active{color:#fff;border-bottom-color:var(--orange)}
.ld-body{max-width:1160px;margin:0 auto;padding:48px 32px 80px;display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start}
@media(max-width:900px){.ld-body{grid-template-columns:1fr}}
.ld-section{margin-bottom:48px}
.ld-section-title{font-family:var(--disp);font-size:32px;letter-spacing:1.5px;color:var(--navy);margin-bottom:24px;display:flex;align-items:center;gap:12px}
.ld-section-title::after{content:'';flex:1;height:1px;background:var(--border)}
.ld-sessions{display:flex;flex-direction:column;gap:12px}
.ld-session-card{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:20px 24px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;transition:border-color .2s,box-shadow .2s}
.ld-session-card:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(240,78,31,.08)}
.ld-session-card.featured{border-color:var(--orange);background:rgba(240,78,31,.02)}
.ld-session-card.featured::before{content:'NOW ENROLLING';font-size:10px;font-weight:700;letter-spacing:2px;color:var(--orange);display:block;margin-bottom:6px}
.ld-sess-name{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:4px}
.ld-sess-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.ld-sess-tag{background:var(--off);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--gray)}
.ld-sess-tag.highlight{background:rgba(240,78,31,.08);color:var(--orange)}
.ld-sess-price{text-align:right}
.ld-sess-amount{font-family:var(--disp);font-size:36px;color:var(--navy);letter-spacing:1px;line-height:1}
.ld-sess-per{font-size:11px;color:var(--gray);font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-top:2px}
.ld-sess-cta{margin-top:12px}
.ld-open-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:700px){.ld-open-grid{grid-template-columns:1fr}}
.ld-open-card{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:24px;transition:all .2s}
.ld-open-card:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.ld-open-icon{font-size:28px;margin-bottom:12px}
.ld-open-name{font-size:16px;font-weight:800;color:var(--navy);margin-bottom:4px}
.ld-open-desc{font-size:13px;color:var(--gray);line-height:1.6;margin-bottom:14px}
.ld-open-price{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:14px}
.ld-camps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
@media(max-width:700px){.ld-camps-grid{grid-template-columns:1fr}}
.ld-camp-card{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:24px;text-align:center}
.ld-camp-type{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:8px}
.ld-camp-price{font-family:var(--disp);font-size:48px;color:var(--navy);letter-spacing:1px;line-height:1;margin-bottom:4px}
.ld-camp-sub{font-size:12px;color:var(--gray)}
.ld-packs-row{display:flex;gap:12px;flex-wrap:wrap}
.ld-pack{background:var(--navy);color:#fff;border-radius:12px;padding:16px 24px;display:flex;align-items:center;gap:16px;flex:1;min-width:200px}
.ld-pack-name{font-weight:800;font-size:15px}
.ld-pack-price{font-family:var(--disp);font-size:28px;letter-spacing:1px;margin-top:2px}
.ld-pack-save{font-size:11px;color:var(--orange);font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-top:2px}
.ld-early-bird{background:rgba(245,158,11,.08);border:1.5px solid rgba(245,158,11,.25);border-radius:12px;padding:16px 20px;margin-bottom:20px}
.ld-eb-title{font-size:13px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}
.ld-eb-rows{display:flex;flex-direction:column;gap:4px}
.ld-eb-row{font-size:13px;color:var(--text)}
.ld-accordion{border:1.5px solid var(--border);border-radius:14px;overflow:hidden}
.ld-acc-item{border-bottom:1px solid var(--border)}
.ld-acc-item:last-child{border-bottom:none}
.ld-acc-q{background:#fff;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:15px;font-weight:700;color:var(--navy);transition:background .15s}
.ld-acc-q:hover{background:var(--off)}
.ld-acc-q .acc-arrow{transition:transform .25s;font-size:12px;color:var(--gray)}
.ld-acc-q.open .acc-arrow{transform:rotate(180deg)}
.ld-acc-a{display:none;padding:0 22px 18px;font-size:14px;color:var(--gray);line-height:1.7;background:#fff}
.ld-acc-a.open{display:block}
.ld-acc-a ul{padding-left:18px;margin-top:8px}
.ld-acc-a li{margin-bottom:4px}
.ld-sidebar{position:sticky;top:120px;display:flex;flex-direction:column;gap:16px}
.ld-sidebar-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:24px}
.ld-sidebar-card.featured{background:var(--navy);border-color:var(--navy);color:#fff}
.ld-sb-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--gray);margin-bottom:14px}
.ld-sidebar-card.featured .ld-sb-title{color:#fff}
.ld-sb-info{display:flex;flex-direction:column;gap:10px}
.ld-sb-row{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.ld-sb-icon{font-size:15px;flex-shrink:0;margin-top:1px}
.ld-sb-text{color:var(--gray);line-height:1.5}
.ld-sb-text a{color:var(--orange)}
.ld-sidebar-card.featured .ld-sb-text{color:#fff}
.ld-gift-link{display:block;text-align:center;padding:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;font-size:13px;font-weight:700;margin-top:14px;transition:background .2s}
.ld-gift-link:hover{background:rgba(255,255,255,.15)}
.ld-parties{background:var(--navy);border-radius:16px;padding:32px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.ld-parties h3{font-family:var(--disp);font-size:32px;letter-spacing:1.5px;margin-bottom:6px}
.ld-parties p{color:#fff;font-size:15px}
@media(max-width:600px){.ld-hero-inner{flex-direction:column;gap:20px}.ld-hero-cta{align-items:flex-start}.ld-match-inner{gap:10px}.ld-body{padding:24px 16px 60px}.ld-pack{min-width:100%}}


/* ── HIW Timeline Progression ── */
.hiw-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:56px}
.hiw-timeline::before{content:'';position:absolute;top:36px;left:calc(12.5%);right:calc(12.5%);height:2px;background:linear-gradient(90deg,var(--orange),var(--ice));z-index:0}
.hiw-node{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 16px;position:relative;z-index:1}
.hiw-circle{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px;flex-shrink:0;border:3px solid transparent;transition:transform .2s}
.hiw-circle:hover{transform:scale(1.08)}
.hiw-week{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.hiw-node-title{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:8px}
.hiw-node-desc{font-size:13px;color:#3d5265;line-height:1.65}
.hiw-node-final .hiw-circle{background:rgba(240,78,31,.1);border-color:rgba(240,78,31,.3)}
.hiw-node-final .hiw-week{color:var(--orange-text);font-size:11px}
.hiw-node-final .hiw-node-title{color:var(--navy)}
@media(max-width:700px){.hiw-timeline{grid-template-columns:1fr 1fr;gap:32px}.hiw-timeline::before{display:none}}

/* STAY & PLAY V2 */

:root {
  --navy:   #07172B;
  --navy2:  #0D2340;
  --navy3:  #153055;
  --orange: #F04E1F;
  --olt:    #FF6840;
  --odk:    #C03C12;
  /* CTA fill behind WHITE text — darker than --orange so white passes WCAG AA
     (4.87:1 vs 3.61:1 for --orange). Used for interactive buttons/links only;
     keep --orange for accents, badges, glows + orange-text-on-navy. */
  --orange-cta: #CC4018;
  --ice:    #C2E8FF;
  --white:  #FFFFFF;
  --off:    #F4F7FB;
  --border: #DDE8F2;
  --gray:   #4A6580;
  --text:   #162840;
  --green:  #16833E;
  --orange-text: #CC4018;
  --gold:   #F59E0B;
  --disp:   'Barlow Condensed', sans-serif;
  --body:   'Inter', sans-serif;
  --serif:  'Playfair Display', serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased}

/* ── CONTAINER ── */
.container{max-width:1160px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.container{padding:0 32px}}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:10px;font-family:var(--body);font-size:14px;font-weight:700;text-decoration:none;border:none;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-primary{background:var(--orange-cta);color:#fff}
.btn-primary:hover{background:var(--odk);transform:translateY(-1px)}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}
.btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy3)}
.btn-sm{padding:10px 18px;font-size:13px}
.btn-lg{padding:16px 32px;font-size:15px}

/* ── EYEBROW ── */
.eyebrow{font-family:var(--font-mono);font-size:var(--eyebrow-size);font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange-text)}
.eyebrow-light{color:#fff}

/* ── REVEAL ANIMATION ── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ════════════════════════════════════
   HERO
════════════════════════════════════ */
.sp-hero{background:var(--navy);padding:80px 0 64px;position:relative;overflow:hidden;min-height:480px;display:flex;align-items:center}
.sp-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 100% 0%,rgba(240,78,31,.18) 0%,transparent 60%);pointer-events:none}
.sp-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 50% 80% at 0% 100%,rgba(194,232,255,.06) 0%,transparent 60%);pointer-events:none}
.sp-hero-inner{position:relative;z-index:1;max-width:720px}
.sp-hero h1{font-family:var(--disp);font-size:clamp(52px,8vw,96px);color:#fff;letter-spacing:2px;line-height:.92;margin:16px 0 20px}
.sp-hero h1 span{color:var(--orange)}
.sp-hero-sub{font-size:clamp(16px,2vw,19px);color:#fff;line-height:1.7;max-width:580px;margin-bottom:32px}
.sp-hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}
.sp-hero-pills{display:flex;flex-wrap:wrap;gap:10px}
.sp-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:600;color:#fff}

/* ════════════════════════════════════
   THREE LANES NAV
════════════════════════════════════ */
.lanes-nav{background:var(--off);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
.lanes-nav-inner{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.lanes-nav-inner::-webkit-scrollbar{display:none}
.lane-tab{flex:0 0 auto;padding:18px 24px;font-size:13px;font-weight:700;color:var(--gray);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--body)}
.lane-tab:hover{color:var(--navy)}
.lane-tab.active{color:var(--orange);border-bottom-color:var(--orange)}
@media(min-width:768px){.lane-tab{flex:1;text-align:center;font-size:14px;padding:20px 32px}}

/* ════════════════════════════════════
   SECTION SHARED
════════════════════════════════════ */
.sp-section{padding:var(--section-pad) 0}
.sp-section-dark{background:var(--navy)}
.sp-section-off{background:var(--off)}
.sp-section-orange{background:var(--orange)}
.sec-label{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);display:block;margin-bottom:12px}
.sec-label-light{color:#fff}
.sec-h2{font-family:var(--disp);font-size:clamp(36px,5vw,60px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:16px}
.sec-h2-light{color:#fff}
.hiw-alt .sec-h2-light{color:var(--navy)}
.hiw-section .sec-h2-light{color:var(--navy)}
.hiw-section .sec-sub-light{color:var(--text)}
.sec-sub{font-size:16px;color:var(--gray);line-height:1.7;max-width:560px}
.sec-sub-light{color:#fff}
.hiw-alt .sec-sub-light{color:var(--text)}

/* ════════════════════════════════════
   LANE 1 — LODGING
════════════════════════════════════ */
#lodging{}

/* Featured property card */
.prop-featured{background:var(--navy2);border-radius:20px;overflow:hidden;margin-bottom:24px}
.prop-featured-header{background:linear-gradient(135deg,var(--navy3),var(--navy));padding:32px;position:relative;overflow:hidden}
.prop-featured-header::before{content:'';position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,rgba(240,78,31,.2) 0%,transparent 70%);pointer-events:none}
.prop-badge{display:inline-flex;align-items:center;gap:6px;background:var(--orange);color:#fff;padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}
.prop-name{font-family:var(--disp);font-size:clamp(32px,4vw,48px);color:#fff;letter-spacing:2px;margin-bottom:6px}
.prop-location{font-size:14px;color:#fff;margin-bottom:20px}
.prop-feats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:480px){.prop-feats{grid-template-columns:repeat(3,1fr)}}
.prop-feat{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff}
.prop-feat-icon{font-size:16px;flex-shrink:0}
.prop-body{padding:28px 32px}
.prop-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
@media(min-width:480px){.prop-stats{grid-template-columns:repeat(4,1fr)}}
.prop-stat{text-align:center;padding:16px;background:rgba(255,255,255,.05);border-radius:12px;border:1px solid rgba(255,255,255,.08)}
.prop-stat-n{font-family:var(--disp);font-size:28px;color:#fff;letter-spacing:1px}
.prop-stat-l{font-size:11px;color:#fff;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-top:4px}
.prop-desc{font-size:15px;color:#fff;line-height:1.7;margin-bottom:24px}
.prop-btns{display:flex;flex-wrap:wrap;gap:12px}

/* Property grid */
.prop-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-top:32px}
@media(min-width:640px){.prop-grid{grid-template-columns:1fr 1fr}}
.prop-card{background:var(--white);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:all .2s}
.prop-card:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 8px 32px rgba(7,23,43,.1)}
.prop-card-head{padding:20px 20px 16px;background:var(--off)}
.prop-card-badge{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.prop-card-name{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1px;margin-bottom:4px}
.prop-card-loc{font-size:13px;color:var(--gray)}
.prop-card-body{padding:16px 20px 20px}
.prop-card-desc{font-size:14px;color:var(--text);line-height:1.65;margin-bottom:16px}

/* Exclusive rate strip */
.rate-strip{background:rgba(240,78,31,.06);border:2.5px solid var(--orange);border-radius:16px;padding:24px 28px;margin:32px 0;display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}
.rate-strip-text{font-size:15px;color:var(--text);font-weight:600}
.rate-strip-text span{color:var(--orange);font-weight:800}
.rate-badge{display:flex;align-items:center;gap:8px;background:var(--orange);border-radius:8px;padding:10px 16px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.5px}

/* ════════════════════════════════════
   LANE 2 — RESORTS & DISCOUNTS
════════════════════════════════════ */
#resorts{}
.resort-card{background:var(--white);border:1px solid var(--border);border-radius:20px;overflow:hidden;margin-bottom:24px}
.resort-card-head{padding:32px;background:linear-gradient(135deg,var(--navy),var(--navy3));position:relative;overflow:hidden}
.resort-card-head::after{content:'';position:absolute;bottom:-30px;right:-30px;width:160px;height:160px;background:radial-gradient(circle,rgba(240,78,31,.15) 0%,transparent 70%)}
.resort-partner-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(240,78,31,.2);border:1px solid rgba(240,78,31,.4);color:var(--orange);padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
.resort-name{font-family:var(--disp);font-size:clamp(28px,4vw,44px);color:#fff;letter-spacing:2px;margin-bottom:6px}
.resort-sub{font-size:14px;color:#fff;margin-bottom:20px}
.resort-stats{display:flex;flex-wrap:wrap;gap:16px}
.resort-stat{text-align:center}
.resort-stat-n{font-family:var(--disp);font-size:28px;color:#fff;letter-spacing:1px}
.resort-stat-l{font-size:11px;color:#fff;font-weight:600;text-transform:uppercase}
.resort-body{padding:28px 32px}
.resort-desc{font-size:15px;color:var(--text);line-height:1.7;margin-bottom:20px}
.resort-bullets{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.resort-bullets li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text)}
.resort-bullets li::before{content:'✓';color:var(--orange);font-weight:700;flex-shrink:0;margin-top:1px}
.discount-codes{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
@media(min-width:480px){.discount-codes{grid-template-columns:1fr 1fr}}
.discount-code{background:var(--off);border:1.5px dashed var(--border);border-radius:12px;padding:16px 20px}
.code-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:6px}
.code-value{font-family:var(--disp);font-size:24px;color:var(--navy);letter-spacing:2px;margin-bottom:4px}
.code-desc{font-size:13px;color:var(--gray)}

/* ════════════════════════════════════
   LANE 3 — GEAR & RENTALS
════════════════════════════════════ */
#gear{}
.gear-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
@media(min-width:640px){.gear-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.gear-grid{grid-template-columns:1fr 1fr 1fr}}
.gear-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:24px;transition:all .2s}
.gear-card:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(7,23,43,.08)}
.gear-icon{font-size:32px;margin-bottom:12px}
.gear-title{font-family:var(--disp);font-size:20px;color:var(--navy);letter-spacing:1px;margin-bottom:6px}
.gear-desc{font-size:14px;color:var(--gray);line-height:1.65}
.gear-tip{font-size:13px;color:var(--text);background:var(--off);border-left:3px solid var(--orange);padding:10px 14px;border-radius:0 8px 8px 0;margin-top:12px;line-height:1.6}

/* Gear guide strip */
.gear-guide{background:linear-gradient(135deg,var(--navy),var(--navy3));border-radius:20px;padding:40px;margin:40px 0;position:relative;overflow:hidden}
.gear-guide::before{content:'';position:absolute;top:-60px;right:-60px;width:240px;height:240px;background:radial-gradient(circle,rgba(240,78,31,.15) 0%,transparent 70%)}
.gear-guide-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:768px){.gear-guide-inner{grid-template-columns:1fr 1fr;align-items:center}}
.gear-guide h3{font-family:var(--disp);font-size:clamp(28px,4vw,40px);color:#fff;letter-spacing:2px;margin-bottom:12px}
.gear-guide p{font-size:15px;color:#fff;line-height:1.7;margin-bottom:20px}

/* ════════════════════════════════════
   LANE 4 — VACATION PACKAGES
════════════════════════════════════ */
#packages{}
.pkg-coming{background:var(--navy);border-radius:20px;padding:48px 40px;text-align:center;position:relative;overflow:hidden;margin-bottom:32px}
.pkg-coming::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(240,78,31,.15) 0%,transparent 65%)}
.pkg-coming-inner{position:relative;z-index:1}
.pkg-coming h2{font-family:var(--disp);font-size:clamp(36px,5vw,64px);color:#fff;letter-spacing:2px;margin:16px 0 20px}
.pkg-coming h2 span{color:var(--orange)}
.pkg-coming p{font-size:16px;color:#fff;line-height:1.7;max-width:520px;margin:0 auto 32px}
.pkg-coming-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:600px;margin:0 auto 36px;text-align:left}
@media(min-width:480px){.pkg-coming-features{grid-template-columns:repeat(3,1fr)}}
.pkg-feature{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 14px}

/* Email capture */
.email-capture{background:var(--off);border-radius:16px;padding:32px;max-width:520px;margin:0 auto}
.email-row{display:flex;flex-direction:column;gap:10px}
@media(min-width:480px){.email-row{flex-direction:row}}
.email-input{flex:1;padding:14px 16px;border-radius:10px;border:1.5px solid var(--border);font-size:14px;font-family:var(--body);color:var(--text);background:var(--white);outline:none;transition:border-color .2s}
.email-input:focus{border-color:var(--orange)}
.email-disclaimer{font-size:12px;color:var(--gray);margin-top:10px;text-align:center}

/* Package teasers */
.pkg-teaser-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
@media(min-width:640px){.pkg-teaser-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.pkg-teaser-grid{grid-template-columns:1fr 1fr 1fr}}
.pkg-teaser{border:1.5px solid var(--border);border-radius:16px;padding:24px;background:var(--white);transition:all .2s}
.pkg-teaser:hover{border-color:var(--orange);transform:translateY(-2px)}
.pkg-teaser-icon{font-size:36px;margin-bottom:12px}
.pkg-teaser-title{font-family:var(--disp);font-size:20px;color:var(--navy);letter-spacing:1px;margin-bottom:8px}
.pkg-teaser-desc{font-size:14px;color:var(--gray);line-height:1.65;margin-bottom:16px}
.pkg-coming-soon{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);background:rgba(240,78,31,.1);padding:4px 10px;border-radius:20px}

/* ════════════════════════════════════
   TRIP CHECKLIST
════════════════════════════════════ */
.checklist-section{background:var(--navy);padding:var(--section-pad) 0}
.checklist-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media(min-width:768px){.checklist-grid{grid-template-columns:1fr 1fr}}
.checklist-tips{list-style:none;display:flex;flex-direction:column;gap:0}
.checklist-tip{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.checklist-tip:last-child{border-bottom:none}
.tip-num{font-family:var(--disp);font-size:32px;color:var(--orange);line-height:1;flex-shrink:0;width:40px}
.tip-content h4{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px}
.tip-content p{font-size:13px;color:#fff;line-height:1.6}
.checklist-download{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:36px;text-align:center}
.checklist-download h3{font-family:var(--disp);font-size:clamp(28px,3vw,40px);color:#fff;letter-spacing:2px;margin:12px 0 12px}
.checklist-download h3 span{color:var(--orange)}
.checklist-download p{font-size:15px;color:#fff;line-height:1.7;margin-bottom:28px}

/* ════════════════════════════════════
   TESTIMONIALS
════════════════════════════════════ */
.sp-testi-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
@media(min-width:640px){.sp-testi-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.sp-testi-grid{grid-template-columns:1fr 1fr 1fr}}
.sp-testi{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:24px}
.sp-testi-stars{color:var(--gold-deep);font-size:14px;margin-bottom:10px;letter-spacing:2px}
.sp-testi-q{font-size:14px;color:var(--text);line-height:1.7;margin-bottom:16px;font-style:italic}
.sp-testi-auth{display:flex;align-items:center;gap:10px}
.sp-testi-av{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0}
.sp-testi-name{font-size:13px;font-weight:700;color:var(--navy)}
.sp-testi-detail{font-size:11px;color:var(--gray)}

/* ════════════════════════════════════
   PARTNERSHIP CTA
════════════════════════════════════ */
.partner-cta{background:var(--off);border-top:1px solid var(--border);padding:var(--section-pad-sm) 0}
.partner-cta-inner{display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
@media(min-width:768px){.partner-cta-inner{grid-template-columns:1fr auto}}

/* ════════════════════════════════════
   FINAL CTA
════════════════════════════════════ */
.sp-final{background:var(--navy);padding:var(--section-pad) 0;text-align:center;position:relative;overflow:hidden}
.sp-final::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(240,78,31,.12) 0%,transparent 65%)}
.sp-final-inner{position:relative;z-index:1}
.sp-final h2{font-family:var(--disp);font-size:clamp(36px,5vw,64px);color:#fff;letter-spacing:2px;margin-bottom:16px}
.sp-final h2 span{color:var(--orange)}
.sp-final p{font-size:16px;color:#fff;line-height:1.7;max-width:480px;margin:0 auto 32px}
.sp-final-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ════════════════════════════════════
   FOOTER (matches main site)
════════════════════════════════════ */
.footer{background:var(--navy);padding:56px 0 32px;border-top:1px solid rgba(255,255,255,.08)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:40px}
@media(min-width:640px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer-brand p{font-size:13px;color:#fff;line-height:1.7;margin-top:10px;max-width:280px}
.footer-col h4{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:14px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.footer-col ul li a{font-size:14px;color:#fff;text-decoration:none;cursor:pointer;transition:color .2s}
.footer-col ul li a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-size:12px;color:#fff}
.footer-certs{display:flex;flex-wrap:wrap;gap:10px}
.footer-cert{padding:4px 10px;border:1px solid rgba(255,255,255,.12);border-radius:6px;font-size:11px;font-weight:600;color:#fff}
.footer-logo{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:2px}
.footer-logo span{color:var(--orange)}

/* ════════════════════════════════════
   MOBILE OVERRIDES
════════════════════════════════════ */
@media(max-width:639px){
  .sp-hero{padding:60px 0 48px;min-height:auto}
  .sp-section{padding:var(--section-pad-sm) 0}
  .prop-featured-header{padding:24px}
  .prop-body{padding:20px 24px}
  .resort-card-head{padding:24px}
  .resort-body{padding:20px 24px}
  .gear-guide{padding:28px 24px}
  .pkg-coming{padding:36px 24px}
  .checklist-section{padding:var(--section-pad-sm) 0}
  .checklist-download{padding:28px 20px}
  .sp-final{padding:var(--section-pad-sm) 0}
  .rate-strip{flex-direction:column;align-items:flex-start}
  .prop-stats{grid-template-columns:1fr 1fr}
}
@media(max-width:479px){
  .pkg-coming-features{grid-template-columns:1fr 1fr}
  .discount-codes{grid-template-columns:1fr}
  .sp-final-btns{flex-direction:column;align-items:center}
}




/* ══ SP2 CRITICAL OVERRIDES ══ */
.sp-hero-inner{display:block !important;max-width:720px !important;position:relative;z-index:1}
.sp-hero{display:flex;align-items:center;padding:80px 0 64px;min-height:480px}

/* ══ SP2 BASE STYLES ══ */
.lanes-nav{background:var(--off);border-bottom:1px solid var(--border);position:sticky;top:64px;z-index:200}
.lanes-nav-inner{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.lanes-nav-inner::-webkit-scrollbar{display:none}
.lane-tab{flex:0 0 auto;padding:18px 24px;font-size:13px;font-weight:700;color:var(--gray);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--body)}
.lane-tab:hover{color:var(--navy)}
.lane-tab.active{color:var(--orange);border-bottom-color:var(--orange)}
.sp-section{padding:var(--section-pad) 0}
.sp-section-dark{background:var(--navy)}
.sp-section-off{background:var(--off)}
.sp-section-orange{background:var(--orange)}
.sec-label{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);display:block;margin-bottom:12px}
.sec-label-light{color:#fff}
.sec-h2{font-family:var(--disp);font-size:clamp(36px,5vw,60px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:16px}
.sec-h2-light{color:#fff}
.sec-sub{font-size:16px;color:var(--gray);line-height:1.7;max-width:560px}
.sec-sub-light{color:#fff}
.eyebrow{font-family:var(--font-mono);font-size:var(--eyebrow-size);font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange-text)}
.eyebrow-light{color:#fff}
.sp-hero{background:var(--navy);padding:80px 0 64px;position:relative;overflow:hidden;min-height:480px;display:flex;align-items:center}
.sp-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 100% 0%,rgba(240,78,31,.18) 0%,transparent 60%);pointer-events:none}
.sp-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 50% 80% at 0% 100%,rgba(194,232,255,.06) 0%,transparent 60%);pointer-events:none}
.sp-hero-sub{font-size:clamp(16px,2vw,19px);color:#fff;line-height:1.7;max-width:580px;margin-bottom:32px}
.sp-hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}
.sp-hero-pills{display:flex;flex-wrap:wrap;gap:10px}
.sp-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:600;color:#fff}
.sp-hero h1{font-family:var(--disp);font-size:clamp(52px,8vw,96px);color:#fff;letter-spacing:2px;line-height:.92;margin:16px 0 20px}
.sp-hero h1 span{color:var(--orange)}
.prop-featured{background:var(--navy2);border-radius:20px;overflow:hidden;margin-bottom:24px}
.prop-featured-header{background:linear-gradient(135deg,var(--navy3),var(--navy));padding:32px;position:relative;overflow:hidden}
.prop-badge{display:inline-flex;align-items:center;gap:6px;background:var(--orange);color:#fff;padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}
.prop-name{font-family:var(--disp);font-size:clamp(32px,4vw,48px);color:#fff;letter-spacing:2px;margin-bottom:6px}
.prop-location{font-size:14px;color:#fff;margin-bottom:20px}
.prop-feats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.prop-feat{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff}
.prop-feat-icon{font-size:16px;flex-shrink:0}
.prop-body{padding:28px 32px}
.prop-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.prop-stat{text-align:center;padding:16px;background:rgba(255,255,255,.05);border-radius:12px;border:1px solid rgba(255,255,255,.08)}
.prop-stat-n{font-family:var(--disp);font-size:28px;color:#fff;letter-spacing:1px}
.prop-stat-l{font-size:11px;color:#fff;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-top:4px}
.prop-desc{font-size:15px;color:#fff;line-height:1.7;margin-bottom:24px}
.prop-btns{display:flex;flex-wrap:wrap;gap:12px}
.prop-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-top:32px}
.prop-card{background:var(--white);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:all .2s}
.prop-card:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 8px 32px rgba(7,23,43,.1)}
.prop-card-head{padding:20px 20px 16px;background:var(--off)}
.prop-card-badge{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.prop-card-name{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1px;margin-bottom:4px}
.prop-card-loc{font-size:13px;color:var(--gray)}
.prop-card-body{padding:16px 20px 20px}
.prop-card-desc{font-size:14px;color:var(--text);line-height:1.65;margin-bottom:16px}
.rate-strip{background:rgba(240,78,31,.06);border:2.5px solid var(--orange);border-radius:16px;padding:24px 28px;margin:32px 0;display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}
.rate-strip-text{font-size:15px;color:var(--text);font-weight:600}
.rate-strip-text span{color:var(--orange);font-weight:800}
.rate-badge{display:flex;align-items:center;gap:8px;background:var(--orange);border-radius:8px;padding:10px 16px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.5px}
.resort-card{background:var(--white);border:1px solid var(--border);border-radius:20px;overflow:hidden;margin-bottom:24px}
.resort-card-head{padding:32px;background:linear-gradient(135deg,var(--navy),var(--navy3));position:relative;overflow:hidden}
.resort-partner-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(240,78,31,.2);border:1px solid rgba(240,78,31,.4);color:var(--orange);padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
.resort-name{font-family:var(--disp);font-size:clamp(28px,4vw,44px);color:#fff;letter-spacing:2px;margin-bottom:6px}
.resort-sub{font-size:14px;color:#fff;margin-bottom:20px}
.resort-stats{display:flex;flex-wrap:wrap;gap:16px}
.resort-stat-n{font-family:var(--disp);font-size:28px;color:#fff;letter-spacing:1px}
.resort-stat-l{font-size:11px;color:#fff;font-weight:600;text-transform:uppercase}
.resort-body{padding:28px 32px}
.resort-desc{font-size:15px;color:var(--text);line-height:1.7;margin-bottom:20px}
.resort-bullets{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.resort-bullets li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text)}
.resort-bullets li::before{content:'✓';color:var(--orange);font-weight:700;flex-shrink:0;margin-top:1px}
.discount-codes{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
.discount-code{background:var(--off);border:1.5px dashed var(--border);border-radius:12px;padding:16px 20px}
.code-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:6px}
.code-value{font-family:var(--disp);font-size:24px;color:var(--navy);letter-spacing:2px;margin-bottom:4px}
.code-desc{font-size:13px;color:var(--gray)}
.gear-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
.gear-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:24px;transition:all .2s}
.gear-card:hover{border-color:var(--orange);box-shadow:0 4px 20px rgba(7,23,43,.08)}
.gear-icon{font-size:32px;margin-bottom:12px}
.gear-title{font-family:var(--disp);font-size:20px;color:var(--navy);letter-spacing:1px;margin-bottom:6px}
.gear-desc{font-size:14px;color:var(--gray);line-height:1.65}
.gear-tip{font-size:13px;color:var(--text);background:var(--off);border-left:3px solid var(--orange);padding:10px 14px;border-radius:0 8px 8px 0;margin-top:12px;line-height:1.6}
.gear-guide{background:linear-gradient(135deg,var(--navy),var(--navy3));border-radius:20px;padding:40px;margin:40px 0;position:relative;overflow:hidden}
.gear-guide-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:28px}
.gear-guide h3{font-family:var(--disp);font-size:clamp(28px,4vw,40px);color:#fff;letter-spacing:2px;margin-bottom:12px}
.gear-guide p{font-size:15px;color:#fff;line-height:1.7;margin-bottom:20px}
.pkg-coming{background:var(--navy);border-radius:20px;padding:48px 40px;text-align:center;position:relative;overflow:hidden;margin-bottom:32px}
.pkg-coming::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(240,78,31,.15) 0%,transparent 65%)}
.pkg-coming-inner{position:relative;z-index:1}
.pkg-coming h2{font-family:var(--disp);font-size:clamp(36px,5vw,64px);color:#fff;letter-spacing:2px;margin:16px 0 20px}
.pkg-coming h2 span{color:var(--orange)}
.pkg-coming p{font-size:16px;color:#fff;line-height:1.7;max-width:520px;margin:0 auto 32px}
.pkg-coming-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:600px;margin:0 auto 36px;text-align:left}
.pkg-feature{display:flex;align-items:center;gap:8px;font-size:13px;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 14px}
.email-capture{background:var(--off);border-radius:16px;padding:32px;max-width:520px;margin:0 auto}
.email-row{display:flex;flex-direction:column;gap:10px}
.email-input{flex:1;padding:14px 16px;border-radius:10px;border:1.5px solid var(--border);font-size:14px;font-family:var(--body);color:var(--text);background:var(--white);outline:none;transition:border-color .2s}
.email-input:focus{border-color:var(--orange)}
.email-disclaimer{font-size:12px;color:var(--gray);margin-top:10px;text-align:center}
.pkg-teaser-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
.pkg-teaser{border:1.5px solid var(--border);border-radius:16px;padding:24px;background:var(--white);transition:all .2s}
.pkg-teaser:hover{border-color:var(--orange);transform:translateY(-2px)}
.pkg-teaser-icon{font-size:36px;margin-bottom:12px}
.pkg-teaser-title{font-family:var(--disp);font-size:20px;color:var(--navy);letter-spacing:1px;margin-bottom:8px}
.pkg-teaser-desc{font-size:14px;color:var(--gray);line-height:1.65;margin-bottom:16px}
.pkg-coming-soon{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);background:rgba(240,78,31,.1);padding:4px 10px;border-radius:20px}
.checklist-section{background:var(--navy);padding:var(--section-pad) 0}
.checklist-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
.checklist-tips{list-style:none;display:flex;flex-direction:column;gap:0}
.checklist-tip{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.checklist-tip:last-child{border-bottom:none}
.tip-num{font-family:var(--disp);font-size:32px;color:var(--orange);line-height:1;flex-shrink:0;width:40px}
.tip-content h4{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px}
.tip-content p{font-size:13px;color:#fff;line-height:1.6}
.checklist-download{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:36px;text-align:center}
.sp-testi-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:32px}
.sp-testi{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:24px}
.sp-testi-stars{color:var(--gold-deep);font-size:14px;margin-bottom:10px;letter-spacing:2px}
.sp-testi-q{font-size:14px;color:var(--text);line-height:1.7;margin-bottom:16px;font-style:italic}
.sp-testi-auth{display:flex;align-items:center;gap:10px}
.sp-testi-av{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0}
.sp-testi-name{font-size:13px;font-weight:700;color:var(--navy)}
.sp-testi-detail{font-size:11px;color:var(--gray)}
.partner-cta{background:var(--off);border-top:1px solid var(--border);padding:var(--section-pad-sm) 0}
.partner-cta-inner{display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
.sp-final{background:var(--navy);padding:var(--section-pad) 0;text-align:center;position:relative;overflow:hidden}
.sp-final::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(240,78,31,.12) 0%,transparent 65%)}
.sp-final-inner{position:relative;z-index:1}
.sp-final h2{font-family:var(--disp);font-size:clamp(36px,5vw,64px);color:#fff;letter-spacing:2px;margin-bottom:16px}
.sp-final h2 span{color:var(--orange)}
.sp-final p{font-size:16px;color:#fff;line-height:1.7;max-width:480px;margin:0 auto 32px}
.sp-final-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:10px;font-family:var(--body);font-size:14px;font-weight:700;text-decoration:none;border:none;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-primary{background:var(--orange-cta);color:#fff}
.btn-primary:hover{background:var(--odk);transform:translateY(-1px)}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}
.btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy3)}
.btn-sm{padding:10px 18px;font-size:13px}
.btn-lg{padding:16px 32px;font-size:15px}

/* ══ SP2 RESPONSIVE ══ */
@media(min-width:480px){
  .prop-feats{grid-template-columns:repeat(3,1fr)}
  .prop-stats{grid-template-columns:repeat(4,1fr)}
  .pkg-coming-features{grid-template-columns:repeat(3,1fr)}
  .discount-codes{grid-template-columns:1fr 1fr}
  .email-row{flex-direction:row}
}
@media(min-width:640px){
  .prop-grid{grid-template-columns:1fr 1fr}
  .gear-grid{grid-template-columns:1fr 1fr}
  .sp-testi-grid{grid-template-columns:1fr 1fr}
  .pkg-teaser-grid{grid-template-columns:1fr 1fr}
  .lane-tab{flex:1;text-align:center;font-size:14px;padding:20px 32px}
}
@media(min-width:768px){
  .checklist-grid{grid-template-columns:1fr 1fr}
  .gear-guide-inner{grid-template-columns:1fr 1fr;align-items:center}
  .partner-cta-inner{grid-template-columns:1fr auto}
}
@media(min-width:960px){
  .gear-grid{grid-template-columns:1fr 1fr 1fr}
  .sp-testi-grid{grid-template-columns:1fr 1fr 1fr}
  .pkg-teaser-grid{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:639px){
  .sp-hero{padding:60px 0 48px;min-height:auto}
  .sp-section{padding:var(--section-pad-sm) 0}
  .prop-featured-header{padding:24px}
  .prop-body{padding:20px 24px}
  .resort-card-head{padding:24px}
  .resort-body{padding:20px 24px}
  .gear-guide{padding:28px 24px}
  .pkg-coming{padding:36px 24px}
  .checklist-section{padding:var(--section-pad-sm) 0}
  .checklist-download{padding:28px 20px}
  .sp-final{padding:var(--section-pad-sm) 0}
  .rate-strip{flex-direction:column;align-items:flex-start}
  .prop-stats{grid-template-columns:1fr 1fr}
  .sp-final-btns{flex-direction:column;align-items:center}
}


/* ── QUIZ RESULT PAGES ── */

:root {
  --navy:   #07172B;
  --navy2:  #0D2340;
  --navy3:  #153055;
  --orange: #F04E1F;
  --olt:    #FF6840;
  --ice:    #C2E8FF;
  --white:  #FFFFFF;
  --off:    #F4F7FB;
  --border: #DDE8F2;
  --gray:   #4A6580;
  --text:   #162840;
  --green:  #16833E;
  --orange-text: #CC4018;
  --gold:   #F59E0B;
  --disp:   'Barlow Condensed', sans-serif;
  --body:   'Inter', sans-serif;
  --serif:  'Playfair Display', serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--off);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:999;height:64px;background:rgba(7,23,43,.97);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{height:64px;max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none}
.logo-mark{width:36px;height:36px;border-radius:8px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:20px;color:#fff;box-shadow:0 2px 12px rgba(240,78,31,.45);flex-shrink:0}
.logo-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:3px}
.logo-name span{color:var(--orange)}
.logo-img{height:54px;width:auto}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{color:#fff;font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:7px;transition:all .18s;cursor:pointer;text-decoration:none}
.nav-links a:hover{background:rgba(255,255,255,.08)}
.nav-cta{background:var(--orange-cta)!important;color:#fff!important;font-weight:700!important;padding:9px 20px!important;border-radius:8px!important;box-shadow:0 2px 14px rgba(240,78,31,.35)}
.nav-cta:hover{background:var(--olt)!important}
.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:8px;background:none;border:none;cursor:pointer}
.nav-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px}

/* ── HERO / HEADER ── */
.result-hero{padding-top:64px;background:var(--navy);position:relative;overflow:hidden}
.result-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 50% 100%,rgba(240,78,31,.12) 0%,transparent 60%),radial-gradient(ellipse 50% 50% at 100% 0%,rgba(194,232,255,.06) 0%,transparent 55%),linear-gradient(158deg,#040d1a 0%,#0c1f3c 55%,#07172b 100%);pointer-events:none}
.result-hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.025;background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);background-size:52px 52px}
.result-hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:36px 32px 32px;text-align:center}
.result-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.result-eyebrow::before,.result-eyebrow::after{content:'';width:28px;height:2px;background:var(--orange);display:block;flex-shrink:0}
.result-eyebrow span{font-size:var(--eyebrow-chip-size);font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--orange)}
.result-hero h1{font-family:var(--disp);font-size:clamp(48px,6vw,80px);color:#fff;letter-spacing:2px;line-height:.95;margin-bottom:14px}
.result-hero h1 span{color:var(--orange)}
.result-hero-sub{font-size:clamp(15px,1.8vw,19px);color:#fff;line-height:1.65;max-width:600px;margin:0 auto}
.result-hero-sub strong{color:var(--ice)}
.btn-primary-lg{display:inline-flex;align-items:center;gap:10px;background:var(--orange-cta);color:#fff;font-family:var(--body);font-weight:700;font-size:17px;padding:18px 40px;border-radius:12px;border:none;cursor:pointer;box-shadow:0 4px 24px rgba(240,78,31,.42);transition:all .2s;text-decoration:none}
.btn-primary-lg:hover{background:var(--olt);transform:translateY(-2px);box-shadow:0 8px 36px rgba(240,78,31,.55)}
.btn-primary-lg .arr{transition:transform .2s}
.btn-primary-lg:hover .arr{transform:translateX(4px)}
.geo-cta-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:8px}
.geo-location-hint{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--gray);font-weight:500}
.geo-location-hint a{color:var(--orange);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:color .18s}
.geo-location-hint a:hover{color:var(--olt)}
.hero-trust{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:20px;flex-wrap:wrap}
.trust-item{font-size:12px;color:#fff;display:flex;align-items:center;gap:6px}
.trust-dot{width:5px;height:5px;border-radius:50%;background:var(--orange);flex-shrink:0}

/* ── CARD GRID ── */
.cards-section{background:var(--off);padding:52px 32px 64px}
.cards-inner{max-width:1100px;margin:0 auto}
.cards-label{text-align:center;margin-bottom:32px}
.cards-label p{font-size:14px;color:var(--gray);font-weight:500}
.cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;align-items:stretch;max-width:860px;margin:0 auto}

/* ── BASE CARD ── */
.prog-card{border-radius:18px;background:#fff;border:1.5px solid var(--border);overflow:hidden;transition:all .25s;cursor:default;position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.prog-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(7,23,43,.1)}

/* Card image header */
.card-img{height:180px;position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;background-color:#fff}
.card-img-bg{position:absolute;inset:0}
.card-img-content{position:relative;z-index:2;text-align:right;padding:0 16px 14px;width:100%}
.card-program-name{font-family:var(--disp);font-size:28px;color:var(--orange);letter-spacing:2px;line-height:1;text-shadow:0 0 4px #fff,0 0 4px #fff,0 0 8px #fff,0 0 8px #fff,0 0 12px #fff,0 0 12px #fff,0 0 20px #fff,0 0 20px #fff,0 0 30px #fff,0 0 30px #fff,0 0 45px #fff,0 0 45px #fff,0 0 60px #fff,0 0 60px #fff}
.card-age-pill{display:inline-block;background:var(--orange);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;margin-top:6px;letter-spacing:.5px}

/* Card body */
.card-body{padding:18px 18px 0;flex:1}
.card-bestfor{font-size:12px;color:var(--gray);line-height:1.55;margin-bottom:14px;padding:10px 12px;background:var(--off);border-radius:8px;border-left:3px solid var(--border)}
.card-bestfor strong{color:var(--text);font-weight:700}
.card-outcomes{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:0;padding:0}
.card-outcomes li{font-size:13px;color:var(--text);display:flex;align-items:flex-start;gap:8px;line-height:1.4}
.card-outcomes li::before{content:'✓';color:var(--green);font-weight:800;flex-shrink:0;font-size:13px}

/* Card footer bar — recommended (green) */
.card-footer-bar{margin-top:16px;padding:12px 18px;background:var(--orange);text-align:center}
.card-footer-bar span{font-size:12px;font-weight:700;color:#fff;letter-spacing:.5px}

/* ── RECOMMENDED CARD float shadow ── */
.prog-card.recommended{border:5px solid var(--orange);box-shadow:0 20px 60px rgba(194,232,255,.6),0 4px 16px rgba(194,232,255,.5),0 0 0 6px rgba(194,232,255,.7);z-index:2;cursor:pointer}
.prog-card.recommended:hover{transform:translateY(-5px);box-shadow:0 28px 72px rgba(194,232,255,.7),0 8px 24px rgba(194,232,255,.55),0 0 0 6px rgba(194,232,255,.8)}
.prog-card.recommended .card-bestfor,
.prog-card.recommended .card-outcomes li,
.prog-card.recommended .card-age-pill,
.prog-card.recommended .card-program-name{font-weight:800}

/* All card text 100% black */
.card-bestfor{font-size:13px;color:#000;line-height:1.55;margin-bottom:14px;padding:10px 12px;background:var(--off);border-radius:8px;border-left:3px solid var(--border)}
.card-bestfor strong{color:#000;font-weight:700}
.card-outcomes li{font-size:13px;color:#000;display:flex;align-items:flex-start;gap:8px;line-height:1.4}

/* card header text right-aligned over white bg */

/* ── CLICKABLE other cards ── */
.prog-card.other{cursor:pointer;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.prog-card.other:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(7,23,43,.14);border-color:var(--gray)}

/* ── STAGGER ANIMATION ── */
@keyframes cardIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.prog-card{animation:cardIn .45s ease both}
.prog-card.recommended{animation-delay:.05s}
.prog-card:nth-child(2){animation-delay:.18s}
.prog-card:nth-child(3){animation-delay:.28s}
.prog-card:nth-child(4){animation-delay:.38s}
.rec-badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:10px;font-weight:800;letter-spacing:1px;padding:5px 16px;border-radius:0 0 12px 12px;white-space:nowrap;box-shadow:0 4px 12px rgba(240,78,31,.4);z-index:3}
.recommended .card-bestfor{border-left-color:var(--orange);background:rgba(240,78,31,.05)}
.recommended .card-bestfor strong{color:var(--orange)}
.recommended .card-outcomes li::before{color:var(--orange)}
.perfect-bar{margin-top:16px;padding:13px 18px;background:linear-gradient(90deg,#16a34a,#22c55e);text-align:center;cursor:pointer;transition:filter .2s,transform .15s}
.perfect-bar:hover{filter:brightness(1.1);transform:translateY(-1px)}
.perfect-bar span{font-size:13px;font-weight:900;color:#fff;letter-spacing:.5px;font-style:italic}
.perfect-bar .perfect-bar-cta{display:block;font-size:15px;font-weight:900;color:#fff;letter-spacing:.5px;margin-top:4px;font-style:normal}

/* ── DIMMED CARDS (non-recommended cards fade back, hover restores) ── */
.prog-card.other{opacity:.35;filter:saturate(.4) brightness(.95);transition:all .3s ease}
.prog-card.other:hover{opacity:1;filter:none}

/* ── SKIING ILLUSTRATIONS (CSS) ── */
/* Yeti card — snowy blue */
.img-yeti{background:url("img/card-yeti.jpg") calc(50% - 90px) calc(100% + 65px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-yeti::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

/* Little Shredders — warm golden hour */
.img-little{background:url("img/card-little.jpg") calc(50% - 80px) calc(100% + 60px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-little::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

/* Ski & Board — deep alpine */
.img-skiboard{background:url("img/card-skiboard.jpg") calc(50% - 75px) calc(100% + 75px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-skiboard::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

/* Private — premium purple-navy */
.img-private{background:url("img/card-private.jpg") calc(50% - 80px) center/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-private::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

/* ── SNOWBOARD ILLUSTRATIONS (CSS) ── */
.img-sb-yeti{background:url("img/card-sb-yeti.jpg") calc(50% - 90px) calc(100% + 65px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-sb-yeti::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

.img-sb-little{background:url("img/card-sb-little.jpg") calc(50% - 80px) calc(100% + 60px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-sb-little::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

.img-sb-skiboard{background:url("img/card-sb-skiboard.jpg") calc(50% - 75px) calc(100% + 75px)/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-sb-skiboard::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

.img-sb-private{background:url("img/card-sb-private.jpg") calc(50% - 80px) center/70% auto no-repeat;background-color:#fff;position:relative;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.img-sb-private::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;pointer-events:none}

/* Skier figure — CSS art */
.skier-fig{position:absolute;z-index:3;bottom:14px}
.skier-fig.hero-skier{right:18px;bottom:10px}
.skier-fig.sub-skier{right:12px;bottom:8px;transform:scale(.75);opacity:.9}
/* Body */
.sk-body{width:18px;height:22px;background:#fff;border-radius:9px 9px 4px 4px;position:relative;margin:0 auto}
.sk-head{width:14px;height:14px;background:#ffe0b2;border-radius:50%;margin:0 auto;position:relative;top:-6px}
.sk-helmet{position:absolute;top:-2px;left:1px;width:12px;height:8px;border-radius:6px 6px 0 0;background:var(--orange)}
.sk-poles{position:absolute;bottom:2px;left:-14px;width:28px;height:2px;background:rgba(255,255,255,.8);transform:rotate(-10deg);border-radius:1px}
.sk-skis{position:absolute;bottom:-6px;left:-8px;width:34px;height:3px;background:var(--navy);border-radius:2px;transform:rotate(5deg)}
/* Hero skier is bigger */
.hero-skier .sk-body{width:24px;height:28px}
.hero-skier .sk-head{width:18px;height:18px;top:-8px}
.hero-skier .sk-helmet{width:16px;height:10px}
.hero-skier .sk-poles{left:-18px;width:36px}
.hero-skier .sk-skis{left:-12px;width:48px;height:4px}

/* Speed lines behind hero skier */
.speed-lines{position:absolute;left:8px;bottom:20px;z-index:2;display:flex;flex-direction:column;gap:4px;opacity:.5}
.speed-line{height:1.5px;background:rgba(255,255,255,.7);border-radius:2px}

/* Snow dots */
.snow-dot{position:absolute;background:rgba(255,255,255,.8);border-radius:50%}

/* ── BOTTOM CTA ── */
.bottom-cta{background:var(--navy);padding:48px 32px;text-align:center;position:relative;overflow:hidden}
.bottom-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 100%,rgba(240,78,31,.12) 0%,transparent 60%);pointer-events:none}
.bottom-cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
.bottom-cta h2{font-family:var(--disp);font-size:clamp(32px,4vw,52px);color:#fff;letter-spacing:2px;margin-bottom:10px;line-height:.95}
.bottom-cta h2 span{color:var(--orange)}
.bottom-cta p{font-size:15px;color:#fff;line-height:1.65;margin-bottom:28px}
.guar-note{font-size:12px;color:#fff;margin-top:14px}

/* ── FOOTER ── */
.footer{background:#030c17;padding:48px 0 24px}
.footer-inner{max-width:1160px;margin:0 auto;padding:0 32px}
.footer-grid{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:48px;margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.05)}
.fb p{font-size:13px;color:#fff;line-height:1.78;max-width:260px;margin-top:14px}
.f-social{display:flex;gap:10px;margin-top:16px}
.f-sico{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;transition:all .2s;cursor:pointer}
.f-sico:hover{background:var(--orange)}
.fc h2{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin:0 0 14px}
.fc ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.fc a{font-size:13px;color:#fff;transition:color .18s;cursor:pointer;text-decoration:none}
.fc a:hover{color:var(--orange)}
.footer-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:12px;color:#fff}
.f-certs{display:flex;gap:8px;flex-wrap:wrap}
.f-cert{background:rgba(106,158,133,.1);border:1px solid rgba(106,158,133,.18);border-radius:8px;padding:6px 14px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--sage);transition:all .2s}
.f-cert:hover{background:rgba(106,158,133,.18);border-color:var(--sage)}
.faq-card{background:var(--off);border:1.5px solid rgba(255,255,255,.08);border-radius:16px;padding:24px 28px}
.faq-card-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange);margin-bottom:10px}
.faq-card p{font-size:14px;color:var(--gray);line-height:1.65;margin-bottom:18px}
.faq-card a{display:inline-block;background:var(--orange-cta);color:#fff;font-size:13px;font-weight:700;padding:10px 20px;border-radius:8px;transition:background .18s}
.faq-card a:hover{background:var(--olt)}

/* ── RESPONSIVE ── */
@media(max-width:760px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:600px){
  .cards-grid{grid-template-columns:1fr}
  .prog-card.recommended{order:-1}
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .cards-section{padding:40px 16px 48px}
  .result-hero-inner{padding:40px 20px 36px}
  .footer-grid{grid-template-columns:1fr}
  .hero-trust{gap:14px}
}
@media(max-width:400px){
  .btn-primary-lg{font-size:15px;padding:16px 28px}
}


/* ── BOOKING GATEWAY MODE ── */
#loc-gateway-banner{display:none;background:var(--orange);position:sticky;top:64px;z-index:89;padding:0}
#loc-gateway-banner.active{display:block}
/* When state filter is stuck (fixed at top:64px, height ~48px), banner sits below it */
.state-filter.is-stuck ~ * #loc-gateway-banner.active,
#loc-gateway-banner.active{top:64px}
.gateway-banner-inner{max-width:1160px;margin:0 auto;padding:12px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.gateway-program-confirm{display:flex;align-items:center;gap:12px}
.gateway-program-emoji{font-size:20px}
.gateway-program-label{font-size:13px;font-weight:700;color:#fff;letter-spacing:.3px}
.gateway-program-label span{opacity:.8;font-weight:500}
.gateway-change-link{font-size:12px;color:#fff;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.5);padding:0;cursor:pointer;font-family:inherit;transition:all .18s;display:inline-block;margin-top:4px;line-height:1.4}
.gateway-change-link:hover{color:#fff;border-bottom-color:#fff}

.gateway-tagline{font-size:13px;color:#fff;font-weight:500}

/* Gateway card mode — overlays on existing cards */
.loc-full-card.gateway-mode{border-color:var(--border)}
/* Gateway mode — hide description, old book btn, keep phone */
.gateway-mode .lfc-desc{display:none}
.gateway-mode .lfc-btn-primary{display:none}
.gateway-mode .lfc-btn-ghost{display:none}
/* Gateway book button — full width, prominent */
.gateway-book-btn{width:100%;text-align:center;padding:13px;border-radius:8px;font-size:14px;font-weight:800;background:var(--orange-cta);color:#fff;border:none;cursor:pointer;font-family:inherit;transition:all .2s;margin-top:0;display:none}
.gateway-book-btn:hover{background:var(--olt)}
.gateway-mode .gateway-book-btn{display:block}
/* Gateway directions link — subtle, under book btn */
.gateway-dir-link{display:none;width:100%;text-align:center;padding:8px;border-radius:8px;font-size:12px;font-weight:600;color:var(--gray);background:none;border:1.5px solid var(--border);cursor:pointer;font-family:inherit;transition:all .18s;margin-top:6px}
.gateway-dir-link:hover{border-color:var(--navy);color:var(--navy)}
.gateway-mode .gateway-dir-link{display:block}
/* Rating — show in gateway mode, moves up */
.gateway-rating{display:none;font-size:12px;color:var(--gray);margin-top:5px}
.gateway-mode .gateway-rating{display:block}
/* Urgency tag */
.gateway-urgency{display:none;font-size:11px;font-weight:700;color:#854F0B;background:#FAEEDA;border-radius:6px;padding:4px 10px;margin-bottom:10px}
.gateway-mode .gateway-urgency{display:inline-block}
/* Program tag hidden — banner handles this now */
.gateway-program-tag{display:none}


/* ══════════════════════════════════
   LOCATION PAGE STYLES
══════════════════════════════════ */

/* Location page variable override */
.loc-page { --gray: #7A90AA; }

/* ── NAV ── */
.loc-page .nav{position:fixed;top:0;left:0;right:0;z-index:999;height:64px;background:rgba(7,23,43,.97);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.loc-page .nav-inner{height:64px;max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.loc-page .logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none}
.loc-page .logo-mark{width:36px;height:36px;border-radius:8px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:20px;color:#fff;box-shadow:0 2px 12px rgba(240,78,31,.45);flex-shrink:0}
.loc-page .logo-name{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:3px}
.loc-page .logo-name span{color:var(--orange)}
.loc-page .logo-img{height:54px;width:auto}
.loc-page .nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.loc-page .nav-links a{color:#fff;font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:7px;transition:all .18s;cursor:pointer;text-decoration:none}
.loc-page .nav-links a:hover{color:#fff;background:rgba(255,255,255,.08)}
.loc-page .nav-cta{background:var(--orange-cta)!important;color:#fff!important;font-weight:700!important;font-size:13px;padding:9px 20px!important;border-radius:8px!important;text-decoration:none;box-shadow:0 2px 14px rgba(240,78,31,.35);transition:background .18s}
.loc-page .nav-cta:hover{background:var(--olt)!important}
.loc-page .nav-franchise-pill{color:var(--orange)!important;border:1.5px solid rgba(240,78,31,.45);border-radius:20px;padding:5px 16px!important;margin-left:6px;transition:all .2s!important}
.loc-page .nav-franchise-pill:hover{background:var(--orange-cta)!important;color:#fff!important;border-color:var(--orange)!important}
.loc-page .nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;cursor:pointer;padding:6px;border-radius:8px;transition:background .2s;background:none;border:none}
.loc-page .nav-hamburger:hover{background:rgba(255,255,255,.08)}
.loc-page .nav-hamburger span{display:block;height:2px;background:#fff;border-radius:2px;transition:all .28s cubic-bezier(.4,0,.2,1);transform-origin:center}
.loc-page .nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.loc-page .nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.loc-page .nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.loc-page .nav-drawer{position:fixed;top:64px;left:0;right:0;background:rgba(7,23,43,.99);backdrop-filter:blur(20px);z-index:998;border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .22s ease;padding:16px 0 24px}
.loc-page .nav-drawer.open{transform:translateY(0);opacity:1;pointer-events:all}
.loc-page .nav-drawer-links{list-style:none;padding:0 20px;margin:0 0 16px}
.loc-page .nav-drawer-links li a{display:block;padding:13px 16px;font-size:16px;font-weight:600;color:#fff;border-radius:10px;cursor:pointer;transition:all .15s;text-decoration:none}
.loc-page .nav-drawer-links li a:hover{color:#fff;background:rgba(255,255,255,.07)}
.loc-page .nav-drawer-cta{margin:0 20px}
.loc-page .nav-drawer-cta a{display:block;text-align:center;padding:15px;background:var(--orange-cta);color:#fff;font-weight:700;font-size:15px;border-radius:10px;cursor:pointer;box-shadow:0 4px 20px rgba(240,78,31,.4);text-decoration:none}
.loc-page .nav-overlay{position:fixed;inset:0;top:64px;background:rgba(0,0,0,.45);z-index:997;opacity:0;pointer-events:none;transition:opacity .22s}
.loc-page .nav-overlay.open{opacity:1;pointer-events:all}
/* ── HERO ── */
.loc-page .hero{background:var(--navy);position:relative;overflow:hidden;min-height:520px;display:flex;align-items:center}
.loc-page .hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 30% 100%,rgba(240,78,31,.14) 0%,transparent 60%),linear-gradient(158deg,#040d1a 0%,#0c1f3c 55%,#07172b 100%);pointer-events:none}
.loc-page .hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.025;background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);background-size:52px 52px}
.loc-page .hero-inner{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:100px 32px 60px;display:grid;grid-template-columns:1fr;gap:64px;align-items:center}
.loc-page .hero-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.loc-page .hero-eyebrow span{font-size:var(--hero-eyebrow-size);font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--orange)}
.loc-page .hero-eyebrow::before, .loc-page .hero-eyebrow::after{content:'';width:24px;height:2px;background:var(--orange);display:block}
.loc-page .hero h1{font-family:var(--disp);font-size:clamp(52px,6vw,88px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:16px}
.loc-page .hero h1 span{color:var(--orange)}
.loc-page .hero h1 em.cursive{font-family:'Caveat',cursive;font-style:normal;font-weight:600;color:#fff;font-size:1.04em;letter-spacing:0;display:block;line-height:1.0;margin-top:8px}
.loc-page .hero-tag{font-size:14px;color:var(--ice);font-weight:600;font-style:italic;margin:8px 0 22px}
.loc-page .hero-sub{font-size:17px;color:#fff;line-height:1.65;max-width:480px;margin-bottom:0}
.loc-page .hero-local-hook{font-size:14px;color:var(--ice);font-family:var(--body);margin-bottom:32px}
.loc-page .hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}
.loc-page .btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--orange-cta);color:#fff;font-weight:700;font-size:15px;padding:14px 28px;border-radius:10px;border:none;cursor:pointer;transition:all .2s;text-decoration:none;box-shadow:0 4px 20px rgba(240,78,31,.4)}
.loc-page .btn-primary:hover{background:var(--olt);transform:translateY(-2px)}
.loc-page .btn-ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#fff;font-weight:600;font-size:15px;padding:14px 28px;border-radius:10px;border:1.5px solid rgba(255,255,255,.35);cursor:pointer;transition:all .2s;text-decoration:none}
.loc-page .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.loc-page .hero-proof{display:flex;align-items:center;gap:8px;margin-top:20px;flex-wrap:wrap}
.loc-page .hero-proof-stars{color:var(--gold);font-size:14px;letter-spacing:1px}
.loc-page .hero-proof-text{font-size:13px;color:#fff;font-weight:500}
.loc-page .hero-proof-text strong{color:#fff}
.loc-page .hero-trust{display:flex;gap:20px;flex-wrap:wrap}
.loc-page .trust-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#fff;font-weight:500}
.loc-page .trust-dot{width:4px;height:4px;border-radius:50%;background:var(--orange);flex-shrink:0}
/* Hero info card (legacy) */
.loc-page .hero-info-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:28px;backdrop-filter:blur(8px)}
.loc-page .hic-row{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.loc-page .hic-row:last-child{border-bottom:none;padding-bottom:0}
.loc-page .hic-row:first-child{padding-top:0}
.loc-page .hic-icon{font-size:18px;flex-shrink:0;margin-top:2px}
.loc-page .hic-label{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px}
.loc-page .hic-value{font-size:14px;color:#fff;line-height:1.5;font-weight:500}
.loc-page .hic-sub{font-size:12px;color:#fff;font-weight:500;margin-top:2px}
.loc-page .hic-map-link{font-size:12px;color:var(--ice);font-weight:600;display:inline-flex;align-items:center;gap:4px;margin-top:4px;transition:color .18s}
.loc-page .hic-map-link:hover{color:#fff}
/* Location info strip (top of hero) */
.loc-page .loc-info-strip{position:absolute;top:64px;left:0;right:0;background:var(--info-strip-bg);backdrop-filter:blur(6px);padding:10px 24px;display:flex;align-items:center;gap:18px;font-size:11px;color:#fff;z-index:3;border-bottom:1px solid rgba(255,255,255,.08)}
.loc-page .lis-hours{white-space:nowrap;flex-shrink:0}
.loc-page .lis-toggle{margin-left:auto;color:#fff;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .18s;flex-shrink:0}
.loc-page .lis-toggle:hover{color:#fff}
.loc-page .lis-arrow{font-size:9px;margin-left:3px}
/* Option B — location chip: the obvious "change location" control in the hero strip */
.loc-page .lis-locchip{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;background:rgba(255,255,255,.08);border:1.5px solid rgba(194,232,255,.45);border-radius:999px;padding:5px 11px 5px 9px;color:#fff;font-family:inherit;line-height:1;cursor:pointer;transition:background .18s,border-color .18s}
.loc-page .lis-locchip:hover{background:rgba(240,78,31,.18);border-color:var(--orange)}
.loc-page .lis-locchip:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.loc-page .llc-pin{width:15px;height:15px;flex-shrink:0}
.loc-page .llc-city{font-size:11px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.loc-page .llc-sep{opacity:.35;font-size:11px}
.loc-page .llc-change{font-size:10px;text-transform:uppercase;letter-spacing:.7px;font-weight:700;color:var(--ice);transition:color .18s}
.loc-page .lis-locchip:hover .llc-change{color:#fff}
.loc-page .llc-car{font-size:9px;opacity:.8}
/* Option C — location-switch banner above the session picker */
.loc-page .loc-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--off);border:1px solid var(--border);border-radius:14px;padding:13px 20px;margin:0 0 26px}
.loc-page .loc-switch-txt{font-size:14px;color:#3a5570}
.loc-page .loc-switch-txt strong{color:var(--navy);font-weight:700}
.loc-page .loc-switch-btn{background:none;border:0;font-family:inherit;font-size:14px;font-weight:700;color:var(--orange-cta);cursor:pointer;white-space:nowrap;padding:4px 6px;border-radius:8px;transition:color .15s}
.loc-page .loc-switch-btn:hover{color:var(--orange);text-decoration:underline;text-underline-offset:3px}
.loc-page .loc-switch-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
/* Location trust band (bottom of hero) */
.loc-page .loc-trust-band{position:absolute;left:32px;right:32px;bottom:18px;display:flex;gap:14px;align-items:center;font-size:11px;color:#fff;z-index:1}
.loc-page .ltb-item{white-space:nowrap}
.loc-page .ltb-gold{color:var(--trust-gold);font-weight:700}
.loc-page .ltb-phone a{color:var(--orange);text-decoration:none;font-weight:600;transition:color .18s}
.loc-page .ltb-phone a:hover{color:var(--olt)}
.loc-page .ltb-reviews{font-weight:600}
/* Visit details modal */
.visit-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9998;opacity:0;pointer-events:none;transition:opacity .25s}
.visit-modal-overlay.open{opacity:1;pointer-events:auto}
.visit-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:420px;max-width:92vw;max-height:85vh;overflow-y:auto;background:var(--navy);border:1px solid rgba(255,255,255,.12);border-radius:18px;z-index:9999;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 24px 72px rgba(0,0,0,.5)}
.visit-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.visit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.08)}
.visit-modal-title{font-family:var(--disp);font-size:20px;color:#fff;letter-spacing:2px}
.visit-modal-close{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;font-family:inherit}
.visit-modal-close:hover{background:rgba(240,78,31,.15);border-color:var(--orange);color:var(--orange)}
.visit-modal-body{padding:8px 0}
.vm-row{display:flex;align-items:flex-start;gap:12px;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.06)}
.vm-row:last-child{border-bottom:none}
.vm-icon{font-size:16px;flex-shrink:0;margin-top:2px}
.vm-label{font-size:10px;font-weight:700;color:var(--orange);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px}
.vm-value{font-size:14px;color:#fff;line-height:1.5;font-weight:500}
.vm-value a{color:#fff;text-decoration:none;transition:color .18s}
.vm-value a:hover{color:var(--orange)}
.vm-note{font-size:11px;color:#fff;margin-top:3px}
.vm-link{font-size:12px;color:var(--ice);font-weight:600;display:inline-flex;align-items:center;gap:4px;margin-top:5px;transition:color .18s}
.vm-link:hover{color:#fff}
@media(max-width:768px){
  .loc-page .loc-info-strip{padding:8px 16px;gap:10px;font-size:10px}
  .loc-page .lis-hours{display:none}
  .loc-page .llc-change,.loc-page .llc-sep{display:none}
  .loc-page .loc-trust-band{left:16px;right:16px;bottom:12px;flex-wrap:wrap;gap:8px 14px;font-size:10px}
  .loc-page .loc-switch{padding:12px 16px}
}
/* ── LOCATION BAR (merged neighborhood + details) ── */
.loc-page .loc-bar{background:var(--orange);padding:0 32px}
.loc-page .loc-bar-inner{max-width:1160px;margin:0 auto}
.loc-page .loc-bar-top{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap;padding:14px 0}
.loc-page .loc-bar-serving{font-size:11px;font-weight:800;color:#fff;letter-spacing:2px;text-transform:uppercase;margin-right:4px}
.loc-page .n-city{font-size:13px;font-weight:700;color:#fff}
.loc-page .n-dot{color:#fff;font-size:10px}
.loc-page .loc-bar-details{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.2);white-space:nowrap}
.loc-page .loc-bar-detail{display:inline-flex;align-items:center;gap:5px}
.loc-page .loc-bar-detail-icon{font-size:13px}
.loc-page .loc-bar-detail-text{font-size:12px;color:#fff;font-weight:600}
.loc-page .loc-bar-dot{color:#fff;font-size:10px}
.loc-page .loc-bar-dir{font-size:11px;font-weight:800;color:#fff;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);border-radius:6px;padding:4px 12px;text-decoration:none;transition:all .18s;margin-left:4px}
.loc-page .loc-bar-dir:hover{background:rgba(255,255,255,.3)}
@media(max-width:768px){
  .loc-page .loc-bar-details{flex-wrap:wrap;white-space:normal;justify-content:flex-start;gap:6px 12px}
  .loc-page .loc-bar-dot{display:none}
}
/* ── TRUST BAR ── */
.loc-page .trust-bar{background:var(--white);border-bottom:1px solid var(--border);padding:0 32px}
.loc-page .trust-bar-inner{max-width:1160px;margin:0 auto;display:flex;align-items:stretch;justify-content:space-between}
.loc-page .tb-item{display:flex;align-items:center;gap:12px;padding:20px 0;flex:1;justify-content:center}
.loc-page .tb-icon{font-size:22px;flex-shrink:0}
.loc-page .tb-text{display:flex;flex-direction:column;gap:2px}
.loc-page .tb-title{font-size:13px;font-weight:800;color:var(--navy);line-height:1.2}
.loc-page .tb-sub{font-size:11px;color:var(--gray);font-weight:500;line-height:1.4}
.loc-page .tb-divider{width:1px;background:var(--border);margin:16px 0;flex-shrink:0}
/* ── PROBLEM / SOLUTION ── */
.loc-page .problem{padding:var(--section-pad) 0;background:var(--off)}
.loc-page .problem-copy{margin-bottom:40px}
.loc-page .problem-headline{font-family:var(--disp);font-size:clamp(28px,3.2vw,42px);color:var(--navy);letter-spacing:1.5px;line-height:1.05;margin-bottom:28px;margin-top:12px;max-width:760px}
.loc-page .problem-em{font-family:var(--serif);font-style:italic;color:var(--orange);font-size:1.05em;letter-spacing:0}
.loc-page .problem-body-grid{display:grid;grid-template-columns:1fr;max-width:680px;gap:0}
.loc-page .problem-body{font-size:15px;color:var(--text);line-height:1.75;margin-bottom:16px}
.loc-page .problem-body:last-child{margin-bottom:0}
.loc-page .problem-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.loc-page .compare-card{border-radius:16px;overflow:hidden;border:1.5px solid var(--border)}
.loc-page .compare-card-header{display:flex;align-items:center;gap:14px;padding:18px 22px}
.loc-page .compare-icon{font-size:24px;flex-shrink:0}
.loc-page .compare-card-title{font-family:var(--disp);font-size:18px;letter-spacing:1px;line-height:1.1}
.loc-page .compare-card-sub{font-size:11px;font-weight:600;margin-top:3px;opacity:.7}
.loc-page .compare-list{list-style:none;padding:0 22px 20px;display:flex;flex-direction:column;gap:10px}
.loc-page .compare-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;font-weight:500}
.loc-page .compare-bullet{font-size:14px;font-weight:800;flex-shrink:0;margin-top:1px}
/* Bad card — cold, unwelcoming */
.loc-page .compare-bad{background:#3d444d;border-color:rgba(255,100,60,.18)}
.loc-page .compare-bad .compare-card-header{background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08)}
.loc-page .compare-bad .compare-card-title{color:#fff}
.loc-page .compare-bad .compare-card-sub{color:#fff}
.loc-page .compare-item-bad{color:#fff}
.loc-page .compare-item-bad .compare-bullet{color:#e05040}
/* Good card — warm, inviting */
.loc-page .compare-good{background:var(--white);border:2px solid var(--sage);box-shadow:0 4px 20px rgba(106,158,133,.12)}
.loc-page .compare-good .compare-card-header{background:var(--sage-light);border-bottom:1px solid var(--sage-mid)}
.loc-page .compare-good .compare-card-title{color:var(--navy)}
.loc-page .compare-good .compare-card-sub{color:var(--sage)}
.loc-page .compare-item-good{color:var(--text)}
.loc-page .compare-item-good .compare-bullet{color:var(--sage)}
@media(max-width:640px){
  .loc-page .problem-body-grid{grid-template-columns:1fr}
  .loc-page .problem-cards{grid-template-columns:1fr}
}
/* ── GOOGLE RATING BAR ── */
.loc-page .grating{background:var(--off);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 32px}
.loc-page .grating-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
.loc-page .grating-logo{height:20px;width:auto;flex-shrink:0}
.loc-page .grating-stars{color:var(--gold-deep);font-size:16px;letter-spacing:2px;line-height:1}
.loc-page .grating-text{font-size:13px;color:var(--text);font-weight:500}
.loc-page .grating-text strong{color:var(--navy);font-weight:800}
.loc-page .grating-divider{width:1px;height:16px;background:var(--border);flex-shrink:0}
.loc-page .grating-locations{font-size:13px;color:var(--text);font-weight:500}
.loc-page .grating-locations strong{color:var(--navy);font-weight:800}
/* ── QUIZ ── */
.loc-page .quiz{padding:var(--section-pad) 0;background:var(--white);position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.loc-page .quiz-inner{position:relative;z-index:1;max-width:720px;margin:0 auto}
.loc-page .quiz-header{text-align:center;margin-bottom:36px}
.loc-page .quiz-title{font-family:var(--disp);font-size:clamp(32px,4vw,52px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:12px;margin-top:10px}
.loc-page .quiz-sub{font-size:15px;color:var(--text);font-weight:400}
/* Progress dots */
.loc-page .quiz-progress{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:40px}
.loc-page .quiz-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:all .3s}
.loc-page .quiz-dot.active{background:var(--sage);transform:scale(1.2)}
/* Steps */
.loc-page .quiz-steps{position:relative}
.loc-page .quiz-step{display:none}
.loc-page .quiz-step.active{display:block;animation:quizFadeIn .25s ease}
@keyframes quizFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.loc-page .quiz-question{font-size:18px;font-weight:700;color:var(--navy);text-align:center;margin-bottom:24px;line-height:1.4}
/* Option grids */
.loc-page .quiz-options{display:grid;gap:12px}
.loc-page .quiz-options-4{grid-template-columns:repeat(4,1fr)}
.loc-page .quiz-options-3{grid-template-columns:repeat(3,1fr)}
.loc-page .quiz-opt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;background:var(--white);border:3px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;font-family:var(--body);box-shadow:0 2px 6px rgba(7,23,43,.04)}
.loc-page .quiz-opt:hover{border-color:var(--sage);background:var(--sage-light);transform:translateY(-2px);box-shadow:0 6px 16px rgba(106,158,133,.1)}
.loc-page .quiz-opt.selected{background:rgba(106,158,133,.08);border-color:var(--sage)}
.loc-page .quiz-opt-emoji{font-size:28px;line-height:1}
.loc-page .quiz-opt-label{font-size:13px;font-weight:700;color:var(--navy);text-align:center;line-height:1.3}
/* Result card */
.loc-page .quiz-result-card{background:#fff;border:5px solid var(--orange);border-radius:20px;padding:32px;text-align:left;box-shadow:0 8px 40px rgba(240,78,31,.2);overflow:hidden}
.loc-page .qr-match-label{font-size:11px;font-weight:800;color:var(--sage);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
.loc-page .qr-program-name{font-family:var(--disp);font-size:42px;color:var(--navy);letter-spacing:2px;line-height:1;margin-bottom:6px}
.loc-page .qr-age{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:16px}
.loc-page .qr-desc{font-size:15px;color:var(--navy);line-height:1.7;margin-bottom:20px;font-weight:600;background:rgba(255,255,255,.1);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:12px 14px;border-radius:10px}
.loc-page .qr-features{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:28px;background:rgba(255,255,255,.1);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:12px 14px;border-radius:10px}
.loc-page .qr-feature-item{font-size:13px;color:var(--navy);font-weight:700;display:flex;align-items:flex-start;gap:8px}
.loc-page .qr-cta{display:inline-flex;margin-bottom:16px}
.loc-page .qr-restart{display:block;font-size:13px;font-weight:700;color:var(--gray);background:none;border:none;cursor:pointer;font-family:var(--body);padding:0;transition:color .18s}
.loc-page .qr-restart:hover{color:var(--navy)}
/* Global restart */
.loc-page .quiz-restart-global{display:block;margin:20px auto 0;font-size:13px;font-weight:700;color:var(--gray);background:none;border:none;cursor:pointer;font-family:var(--body);transition:color .18s}
.loc-page .quiz-restart-global:hover{color:var(--navy)}
/* Mobile */
@media(max-width:640px){
  .loc-page .quiz-options-4{grid-template-columns:repeat(2,1fr)}
  .loc-page .quiz-options-3{grid-template-columns:repeat(1,1fr)}
  .loc-page .quiz-opt{padding:16px 10px}
}
/* ── GUARANTEE ── */
.loc-page .guarantee{padding:var(--section-pad-lg) 0;background:var(--sage-light);position:relative;overflow:hidden;text-align:center;border-top:1px solid var(--sage-mid);border-bottom:1px solid var(--sage-mid)}
.loc-page .guarantee-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(106,158,133,.08) 0%,transparent 70%);pointer-events:none}
.loc-page .guarantee-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
/* Shield with rings */
.loc-page .guarantee-shield-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:32px}
.loc-page .guarantee-shield{font-size:52px;line-height:1;position:relative;z-index:3;width:88px;height:88px;background:rgba(106,158,133,.1);border:2px solid rgba(106,158,133,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 24px rgba(106,158,133,.15)}
.loc-page .guarantee-ring{position:absolute;border-radius:50%;border:1px solid rgba(106,158,133,.15);top:50%;left:50%;transform:translate(-50%,-50%)}
.loc-page .guarantee-ring-1{width:120px;height:120px;border-color:rgba(106,158,133,.15)}
.loc-page .guarantee-ring-2{width:156px;height:156px;border-color:rgba(106,158,133,.1)}
.loc-page .guarantee-ring-3{width:192px;height:192px;border-color:rgba(106,158,133,.06)}
/* Text */
.loc-page .guarantee-headline{font-family:var(--disp);font-size:clamp(42px,6vw,72px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:24px}
.loc-page .guarantee-orange{color:var(--orange)}
.loc-page .guarantee-body{font-size:16px;color:var(--text);line-height:1.75;max-width:480px;margin:0 auto 36px}
.loc-page .guarantee-cta{margin:0 auto 36px;display:inline-flex}
/* Checks */
.loc-page .guarantee-checks{display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap}
.loc-page .guarantee-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);font-weight:600}
.loc-page .guarantee-check-icon{color:var(--sage);font-size:15px;font-weight:800;flex-shrink:0}
@media(max-width:640px){
  .loc-page .guarantee-checks{flex-direction:column;gap:12px;align-items:flex-start;display:inline-flex}
}
/* ── PROGRAMS ── */
.loc-page .programs{padding:var(--section-pad) 0;background:var(--white)}
.loc-page .container{max-width:1160px;margin:0 auto;padding:0 32px}
.loc-page .section-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);display:block;margin-bottom:12px}
.loc-page .section-title{font-family:var(--disp);font-size:clamp(36px,5vw,56px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:16px}
.loc-page .section-sub{font-size:16px;color:var(--text);font-weight:400;line-height:1.65;max-width:560px}
.loc-page .programs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.loc-page .prog-card{border-radius:16px;overflow:hidden;border:1.5px solid var(--border);background:#fff;transition:all .22s;display:flex;flex-direction:column}
.loc-page .prog-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(7,23,43,.12);border-color:var(--orange)}
.loc-page .prog-card-header{padding:22px 20px 16px;background:var(--navy);position:relative;overflow:hidden}
.loc-page .prog-card-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 100% 100%,rgba(240,78,31,.2) 0%,transparent 60%)}
.loc-page .prog-card-emoji{font-size:28px;display:block;margin-bottom:8px;position:relative;z-index:1}
.loc-page .prog-card-stage{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;color:#fff;margin-bottom:auto;font-weight:500;text-transform:uppercase;position:relative;z-index:1}
.loc-page .prog-card-age{font-size:11px;color:var(--ice);font-weight:600;letter-spacing:.5px;margin-bottom:4px;position:relative;z-index:1}
.loc-page .prog-card-name{font-family:var(--disp);font-size:20px;color:#fff;letter-spacing:1.5px;line-height:1;position:relative;z-index:1}
.loc-page .prog-card-body{padding:16px 20px;flex:1;display:flex;flex-direction:column}
.loc-page .prog-card-desc{font-size:13px;color:var(--text);font-weight:400;line-height:1.6;flex:1;margin-bottom:16px}
.loc-page .prog-card-btn{display:block;text-align:center;padding:10px;border-radius:8px;font-size:13px;font-weight:700;background:var(--orange-cta);color:#fff;transition:background .18s;cursor:pointer;border:none;font-family:inherit}
.loc-page .prog-card-btn:hover{background:var(--olt)}
.loc-page .prog-price{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.loc-page .prog-price-main{font-family:var(--disp);font-size:26px;color:var(--navy);letter-spacing:1px;line-height:1;font-weight:700}
.loc-page .prog-price-main span{font-size:14px;font-weight:700;color:var(--navy);font-family:var(--body);letter-spacing:0}
.loc-page .prog-price-sub{font-size:12px;color:var(--text);font-weight:600;margin-top:3px;line-height:1.4}
.loc-page .prog-card.featured{border-color:var(--orange);box-shadow:0 8px 32px rgba(240,78,31,.15)}
.loc-page .prog-card.featured .prog-card-header{background:linear-gradient(135deg,var(--navy) 0%,#1a0a3e 100%)}
.loc-page .prog-pop-badge{position:absolute;top:12px;right:12px;background:var(--orange);color:#fff;font-size:9px;font-weight:800;padding:3px 8px;border-radius:10px;letter-spacing:.5px;z-index:2}
.loc-page .prog-card.active-selection{border:3px solid var(--green);box-shadow:0 8px 32px rgba(34,197,94,.25);transform:translateY(-4px)}
.loc-page .prog-card .selection-badge{display:none;background:var(--green);color:#fff;font-size:10px;font-weight:800;letter-spacing:1px;padding:6px 0;text-align:center;width:100%;z-index:3}
.loc-page .prog-card.active-selection .selection-badge{display:block}
.loc-page .prog-card.active-selection .prog-pop-badge{display:none}
/* ── SUMMER CAMPS ── */
.loc-page .camps{padding:var(--section-pad) 0;background:var(--off)}
.loc-page .camps-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px;align-items:start}
.loc-page .camp-card{background:#fff;border-radius:16px;border:1.5px solid var(--border);overflow:hidden}
.loc-page .camp-card-header{background:var(--navy);padding:20px 24px;display:flex;align-items:center;gap:12px}
.loc-page .camp-card-icon{font-size:24px}
.loc-page .camp-card-title{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:1.5px}
.loc-page .camp-card-sub{font-size:12px;color:#fff;margin-top:2px}
.loc-page .camp-card-body{padding:20px 24px}
.loc-page .camp-schedule{display:grid;gap:10px;margin-bottom:20px}
.loc-page .camp-time-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--off);border-radius:10px;border:1px solid var(--border)}
.loc-page .camp-time-label{font-size:13px;font-weight:700;color:var(--navy)}
.loc-page .camp-time-hours{font-size:13px;color:var(--text);font-weight:700}
.loc-page .camp-details{font-size:13px;color:var(--text);font-weight:400;line-height:1.6;margin-bottom:16px}
.loc-page .camp-activities{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.loc-page .camp-activity-tag{font-size:11px;font-weight:600;color:var(--navy);background:var(--off);border:1px solid var(--border);border-radius:20px;padding:3px 10px}
.loc-page .camp-pack-note{font-size:12px;color:var(--gray);font-style:italic;margin-bottom:16px;padding:10px 14px;background:rgba(240,78,31,.04);border-left:3px solid var(--orange);border-radius:0 8px 8px 0}
/* ── FACILITY ── */
.loc-page .facility{padding:var(--section-pad) 0;background:var(--white)}
.loc-page .facility-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:48px}
.loc-page .facility-details{display:grid;gap:20px}
.loc-page .fac-row{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;background:var(--off);border-radius:12px;border:1px solid var(--border)}
.loc-page .fac-icon{font-size:20px;flex-shrink:0;margin-top:2px}
.loc-page .fac-label{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.loc-page .fac-value{font-size:14px;color:var(--text);font-weight:700;line-height:1.5}
.loc-page .fac-note{font-size:12px;color:var(--text);font-weight:400;margin-top:3px}
.loc-page .map-embed{border-radius:16px;overflow:hidden;border:1.5px solid var(--border);height:320px;background:var(--off);display:flex;align-items:center;justify-content:center}
.loc-page .map-placeholder{text-align:center;color:var(--gray)}
.loc-page .map-placeholder-icon{font-size:40px;margin-bottom:12px}
.loc-page .map-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--orange);margin-top:16px;transition:color .18s}
.loc-page .map-link:hover{color:var(--olt)}
/* ── OWNER STORY ── */
.loc-page .owner{padding:var(--section-pad) 0;background:var(--navy);position:relative;overflow:hidden}
.loc-page .owner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 100% 50%,rgba(240,78,31,.1) 0%,transparent 60%);pointer-events:none}
.loc-page .owner-grid{display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:center;position:relative;z-index:1}
.loc-page .owner-photo{width:280px;height:320px;border-radius:20px;background:var(--navy3);border:2px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.loc-page .owner-photo-placeholder{text-align:center;color:rgba(255,255,255,.3)}
.loc-page .owner-photo-placeholder-icon{font-size:48px;margin-bottom:8px}
.loc-page .owner-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin-bottom:14px;display:block}
.loc-page .owner-name{font-family:var(--disp);font-size:clamp(32px,4vw,52px);color:#fff;letter-spacing:2px;margin-bottom:6px}
.loc-page .owner-title{font-size:14px;color:#fff;font-weight:600;margin-bottom:20px}
.loc-page .owner-quote{font-family:var(--serif);font-size:clamp(17px,2vw,21px);color:var(--ice);line-height:1.7;font-style:italic;margin-bottom:24px;padding-left:20px;border-left:3px solid var(--orange)}
.loc-page .owner-bio{font-size:15px;color:#fff;font-weight:400;line-height:1.75;margin-bottom:24px}
.loc-page .owner-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--orange);transition:color .18s}
.loc-page .owner-link:hover{color:var(--olt)}
/* ── TESTIMONIALS ── */
.loc-page .testimonials{padding:var(--section-pad) 0;background:var(--off)}
.loc-page .testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.loc-page .testimonials-grid.testi-2up{grid-template-columns:repeat(2,minmax(0,440px));justify-content:center}
.loc-page .testi-card{background:#fff;border-radius:16px;padding:24px;border:1.5px solid var(--border);display:flex;flex-direction:column;gap:16px}
.loc-page .testi-stars{color:var(--gold-deep);font-size:14px;letter-spacing:2px}
.loc-page .testi-text{font-size:14px;color:var(--text);line-height:1.7;flex:1;font-style:italic}
.loc-page .testi-author{display:flex;align-items:center;gap:10px}
.loc-page .testi-avatar{width:36px;height:36px;border-radius:50%;background:var(--orange);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.loc-page .testi-name{font-size:13px;font-weight:700;color:var(--navy)}
.loc-page .testi-loc{font-size:11px;color:var(--text);font-weight:600}
.loc-page .testi-placeholder{border:1.5px dashed var(--border);background:var(--off)}
.loc-page .testi-placeholder .testi-text{color:var(--gray);font-style:normal}
/* Featured pull quote */
.loc-page .testi-featured{background:var(--navy);border-radius:20px;padding:48px;position:relative;overflow:hidden;margin-bottom:32px}
.loc-page .testi-featured-quote{position:absolute;top:-10px;left:24px;font-family:var(--serif);font-size:160px;color:var(--orange);opacity:.15;line-height:1;pointer-events:none;font-style:italic}
.loc-page .testi-featured-text{font-family:var(--serif);font-size:clamp(17px,2.2vw,22px);color:var(--ice);line-height:1.75;font-style:italic;margin-bottom:28px;position:relative;z-index:1;border-left:3px solid var(--orange);padding-left:24px}
.loc-page .testi-featured-author{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
/* Inline rating bar */
.loc-page .testi-grating{margin-top:32px;padding:16px 24px;background:#fff;border:1px solid var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
/* ── FAQ ── */
.loc-page .faq{padding:var(--section-pad) 0;background:var(--white)}
.loc-page .faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}
.loc-page .faq-item{background:var(--off);border-radius:12px;border:1px solid var(--border);overflow:hidden}
.loc-page .faq-q{font-size:14px;font-weight:700;color:var(--navy);padding:18px 20px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;line-height:1.4}
.loc-page .faq-q:hover{background:#edf1f7}
.loc-page .faq-arrow{font-size:16px;color:var(--orange);flex-shrink:0;transition:transform .2s}
.loc-page .faq-a{font-size:13px;color:var(--text);font-weight:400;line-height:1.7;padding:0 20px 18px;display:none}
.loc-page .faq-item.open .faq-arrow{transform:rotate(180deg)}
.loc-page .faq-item.open .faq-a{display:block}
/* ── SOCIAL ── */
.loc-page .social{padding:60px 0;background:var(--navy2)}
.loc-page .social-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.loc-page .social-text h3{font-family:var(--disp);font-size:32px;color:#fff;letter-spacing:2px;margin-bottom:6px}
.loc-page .social-text p{font-size:14px;color:#fff}
.loc-page .social-btns{display:flex;gap:12px}
.loc-page .social-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:700;transition:all .18s;text-decoration:none}
.loc-page .social-btn-fb{background:#1877F2;color:#fff}
.loc-page .social-btn-fb:hover{background:#1464d3}
.loc-page .social-btn-ig{background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff}
.loc-page .social-btn-ig:hover{opacity:.9}
.loc-page .social-btn-email{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}
.loc-page .social-btn-email:hover{background:rgba(255,255,255,.18)}
/* ── GIFTS ── */
.loc-page .gifts{padding:60px 0;background:var(--off)}
.loc-page .gifts-inner{max-width:860px;margin:0 auto;padding:0 32px;text-align:center}
.loc-page .gifts-card{background:var(--white);border-radius:20px;padding:40px;border:1.5px solid var(--border);display:flex;align-items:center;gap:32px}
.loc-page .gifts-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}
.loc-page .gifts-text{text-align:left}
.loc-page .gifts-text h3{font-family:var(--disp);font-size:28px;color:var(--navy);letter-spacing:1.5px;margin-bottom:8px}
.loc-page .gifts-text p{font-size:14px;color:var(--text);font-weight:400;line-height:1.65;margin-bottom:20px}
/* ── FOOTER ── */
.loc-page .footer{background:var(--navy);padding:60px 0 32px}
.loc-page .footer-inner{max-width:1160px;margin:0 auto;padding:0 32px}
.loc-page .footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.loc-page .footer-logo-text{font-family:var(--disp);letter-spacing:3px;line-height:1.1}
.loc-page .flt-shredder{font-size:26px;color:var(--orange);display:block}
.loc-page .flt-sub{font-size:14px;color:#fff;letter-spacing:2px}
.loc-page .fb p{font-size:13px;color:#fff;line-height:1.7;margin-top:14px;max-width:240px}
.loc-page .fc h2{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin:0 0 16px}
.loc-page .fc ul{list-style:none}
.loc-page .fc ul li{margin-bottom:10px}
.loc-page .fc ul a{font-size:13px;color:#fff;transition:color .18s;cursor:pointer}
.loc-page .fc ul a:hover{color:#fff}
.loc-page .footer-bot{border-top:1px solid rgba(255,255,255,.07);padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.loc-page .footer-bot div{font-size:12px;color:#fff}
.loc-page .f-certs{display:flex;gap:12px;flex-wrap:wrap}
.loc-page .f-cert{font-size:11px;color:#fff;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:6px;padding:3px 8px}
.loc-page .footer-loc-note{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:16px 20px;margin-bottom:32px;display:flex;align-items:center;gap:12px}
.loc-page .footer-loc-note span{font-size:13px;color:#fff;line-height:1.5}
.loc-page .footer-loc-note strong{color:#fff}
.loc-page .f-social{display:flex;gap:10px;margin-top:16px}
.loc-page .f-sico{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;transition:all .18s;text-decoration:none;cursor:pointer}
.loc-page .f-sico:hover{background:rgba(255,255,255,.15);color:#fff}
.loc-page .footer-faq-card{background:rgba(255,255,255,.04);border:1.5px solid rgba(255,255,255,.08);border-radius:16px;padding:24px 28px}
/* ── RESPONSIVE ── */
@media(max-width:960px){
  .loc-page .nav-links{display:none}
  .loc-page .nav-hamburger{display:flex}
}
@media(max-width:1024px){
  .loc-page .hero-inner, .loc-page .owner-grid, .loc-page .facility-grid{grid-template-columns:1fr}
  .loc-page .programs-grid{grid-template-columns:repeat(2,1fr)!important}
  .loc-page .hero-info-card{display:grid;grid-template-columns:1fr 1fr;gap:0}
  .loc-page .camps-grid{grid-template-columns:1fr}
  .loc-page .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .loc-page .gifts-card{flex-direction:column;text-align:center}
  .loc-page .gifts-text{text-align:center}
}
@media(max-width:768px){
  .loc-page .hero-inner{padding:40px 20px}
  .loc-page .programs-grid{grid-template-columns:1fr 1fr!important}
  .loc-page .testimonials-grid{grid-template-columns:1fr}
  .loc-page .testimonials-grid.testi-2up{grid-template-columns:1fr}
  .loc-page .faq-grid{grid-template-columns:1fr}
  .loc-page .social-inner{flex-direction:column;text-align:center}
  .loc-page .footer-grid{grid-template-columns:1fr}
  .loc-page .loc-bar-top{gap:6px}
  .loc-page .owner-grid{gap:32px}
  .loc-page .hero-info-card{grid-template-columns:1fr}
  .loc-page .trust-bar-inner{flex-wrap:wrap;gap:0}
  .loc-page .tb-item{flex:1 1 45%;padding:14px 10px;justify-content:flex-start}
  .loc-page .tb-divider{display:none}
  .loc-page .problem-body-grid{grid-template-columns:1fr}
  .loc-page .problem-cards{grid-template-columns:1fr}
  .loc-page #loc-pricing-cards{grid-template-columns:1fr!important}
  .loc-page .guarantee-inner{padding:0 20px}
  .loc-page .testi-featured{padding:32px 24px}
  .loc-page .facility-grid{gap:32px}
  .loc-page .loc-families-grid{grid-template-columns:1fr 1fr;grid-template-rows:180px 180px}
  .loc-page .section-title{font-size:clamp(28px,5vw,56px)}
  .loc-page .hot-trust-stats{gap:14px;padding:14px 16px}
  .loc-page .hot-trust-stat-n{font-size:18px}
  .loc-page .sp-title{font-size:clamp(26px,4vw,48px)}
  .loc-page .container{padding:0 20px}
}
@media(max-width:480px){
  .loc-page .programs-grid{grid-template-columns:1fr!important}
  .loc-page .hero h1{font-size:42px}
  .loc-page .hero-btns{flex-direction:column}
  .loc-page .hero-inner{padding:32px 16px}
  .loc-page .hero-sub{font-size:15px}
  .loc-page .hero-local-hook{font-size:13px}
  .loc-page .nav-inner{padding:0 12px}
  .loc-page .container{padding:0 16px}
  .loc-page .section-eyebrow{font-size:var(--eyebrow-size);letter-spacing:2.5px}
  .loc-page .guarantee-headline{font-size:clamp(32px,8vw,72px)}
  .loc-page .guarantee-body{font-size:14px}
  .loc-page .compare-card-title{font-size:16px}
  .loc-page .problem-headline{font-size:clamp(24px,5vw,42px)}
  .loc-page .quiz-title{font-size:clamp(26px,6vw,52px)}
  .loc-page .quiz-options-4{grid-template-columns:repeat(2,1fr)}
  .loc-page .quiz-options-3{grid-template-columns:1fr}
  .loc-page .quiz-opt{padding:16px 10px}
  .loc-page .quiz-result-card{padding:24px}
  .loc-page .quiz-result-card>div:nth-child(2){max-width:75% !important;padding:24px !important}
  .loc-page .qr-program-name{font-size:32px}
  .loc-page .camps-grid{gap:16px}
  .loc-page .camp-card-body{padding:16px}
  .loc-page .fac-row{padding:14px 16px}
  .loc-page .owner-photo{width:200px;height:240px}
  .loc-page .owner-name{font-size:clamp(28px,6vw,52px)}
  .loc-page .owner-quote{font-size:clamp(15px,2vw,21px)}
  .loc-page .footer-inner{padding:0 16px}
  .loc-page .footer-faq-card{padding:20px}
  .loc-page .gifts-card{padding:24px}
  .loc-page .social-btns{flex-direction:column;width:100%}
  .loc-page .social-btn{width:100%;justify-content:center}
  .loc-page .loc-bar-top{flex-wrap:wrap;justify-content:flex-start;gap:4px}
  .loc-page .loc-bar-serving{width:100%;margin-bottom:4px}
  .loc-page .sp-grid{grid-template-columns:1fr 1fr}
  .loc-page .sp-card.sp-current{transform:scale(1.03)}
  .loc-page .sp-card.sp-current:hover{transform:scale(1.05)}
  .loc-page .sp-emoji{font-size:24px;margin-bottom:8px}
  .loc-page .sp-name{font-size:18px}
  .loc-page .sp-benefit{font-size:11px}
  .loc-page .sp-cta{font-size:11px;padding:8px}
  .loc-page .prog-card-desc{font-size:12px}
  .loc-page .prog-price-main{font-size:22px}
  .loc-page .testi-featured{padding:24px 20px}
  .loc-page .testi-featured-text{font-size:clamp(15px,2vw,22px);padding-left:16px}
  .loc-page .hot-explore-all{font-size:12px}
}
@media(max-width:360px){
  .loc-page .sp-grid{grid-template-columns:1fr}
  .loc-page .hot-h1{font-size:32px}
  .loc-page .hero h1{font-size:36px}
  .loc-page .quiz-options-4{grid-template-columns:1fr}
}
/* ── REAL FAMILIES PHOTO GRID ── */
.loc-page .loc-families-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:240px;gap:12px}
.loc-page .loc-fam-img{border-radius:12px;overflow:hidden;position:relative}
.loc-page .loc-fam-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.loc-page .loc-fam-img:hover img{transform:scale(1.05)}
/* ── PROGRESSION TIMELINE ── */
.loc-page .progression-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:56px}
.loc-page .progression-timeline::before{content:'';position:absolute;top:36px;left:calc(12.5%);right:calc(12.5%);height:2px;background:linear-gradient(90deg,var(--orange),var(--sage));z-index:0}
.loc-page .prog-node{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 16px;position:relative;z-index:1}
.loc-page .prog-circle{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px;flex-shrink:0;border:3px solid transparent;transition:transform .2s}
.loc-page .prog-circle:hover{transform:scale(1.08)}
.loc-page .prog-week{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.loc-page .prog-node-title{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:8px}
.loc-page .prog-node-desc{font-size:13px;color:var(--text);line-height:1.65}
.loc-page .prog-node-final .prog-week{color:var(--orange);font-size:11px}
@media(max-width:700px){
  .loc-page .progression-timeline{grid-template-columns:1fr 1fr;gap:32px}
  .loc-page .progression-timeline::before{display:none}
}
@media(max-width:400px){
  .loc-page .progression-timeline{grid-template-columns:1fr}
}
/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.loc-page .reveal{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.loc-page .reveal.visible{opacity:1;transform:translateY(0)}
/* ── SESSION PICKER ── */
.loc-page .session-picker{padding:40px 0 64px;background:var(--sage-light);border-top:1px solid var(--sage-mid);border-bottom:1px solid var(--sage-mid)}
.loc-page .sp-header{text-align:center;margin-bottom:40px}
.loc-page .sp-title{font-family:var(--disp);font-size:clamp(32px,4vw,48px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:12px;margin-top:10px}
.loc-page .sp-sub{font-size:15px;color:var(--text);font-weight:600}
.loc-page .sp-sub span{color:var(--sage);font-weight:700}
.loc-page .sp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
/* Session card */
.loc-page .sp-card{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:24px 20px;display:flex;flex-direction:column;transition:all .22s;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(7,23,43,.04)}
.loc-page .sp-card:hover{border-color:var(--sage);transform:translateY(-3px);box-shadow:0 8px 24px rgba(106,158,133,.1)}
.loc-page .sp-card.sp-active{border-color:var(--sage);box-shadow:0 4px 16px rgba(106,158,133,.1)}
.loc-page .sp-card.sp-active:hover{border-color:var(--orange);box-shadow:0 8px 24px rgba(240,78,31,.12)}
.loc-page .sp-card.sp-current{transform:scale(1.08);border:3px solid var(--orange);box-shadow:0 12px 36px rgba(240,78,31,.18);z-index:2}
.loc-page .sp-card.sp-current:hover{transform:scale(1.1);box-shadow:0 16px 44px rgba(240,78,31,.22)}
.loc-page .sp-card.sp-closed{opacity:.45;pointer-events:none}
.loc-page .sp-card.sp-closed:hover{transform:none}
/* Badge */
.loc-page .sp-badge{position:absolute;top:0;right:0;font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:5px 12px;border-radius:0 14px 0 10px}
.loc-page .sp-badge-live{background:var(--sage);color:#fff}
.loc-page .sp-badge-soon{background:var(--off);color:var(--gray);border:1px solid var(--border);border-top:none;border-right:none}
.loc-page .sp-badge-filling{background:var(--orange);color:#fff}
/* Card content */
.loc-page .sp-emoji{font-size:28px;margin-bottom:12px;display:block}
.loc-page .sp-name{font-family:var(--disp);font-size:20px;color:var(--navy);letter-spacing:1.5px;line-height:1;margin-bottom:6px}
.loc-page .sp-dates{font-size:12px;color:var(--sage);font-weight:700;margin-bottom:6px}
.loc-page .sp-cadence{font-size:11px;color:var(--gray);font-weight:600;margin-bottom:12px}
.loc-page .sp-benefit{font-size:12px;color:var(--text);line-height:1.55;flex:1;margin-bottom:16px}
.loc-page .sp-urgency{font-size:11px;color:var(--orange);font-weight:700;margin-bottom:14px}
.loc-page .sp-cta{display:block;text-align:center;padding:10px;border-radius:8px;font-size:12px;font-weight:700;border:none;cursor:pointer;font-family:inherit;transition:all .18s;text-decoration:none}
.loc-page .sp-cta-live{background:var(--orange-cta);color:#fff}
.loc-page .sp-cta-live:hover{background:var(--olt)}
.loc-page .sp-cta-closed{background:var(--off);color:var(--gray);border:1px solid var(--border);cursor:default}

/* Session picker: category tabs */
.loc-page .sp-tabs{display:flex;gap:10px;margin-bottom:20px}
.loc-page .sp-tab{flex:1;padding:16px 12px;border-radius:14px;border:2px solid var(--border);background:var(--white);cursor:pointer;font-family:var(--disp);font-size:18px;color:var(--navy);letter-spacing:1.5px;text-align:center;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:4px}
.loc-page .sp-tab:hover{border-color:var(--orange);background:rgba(240,78,31,.03)}
.loc-page .sp-tab-active{border-color:var(--orange);background:rgba(240,78,31,.06);box-shadow:0 4px 16px rgba(240,78,31,.1)}
.loc-page .sp-tab-sub{font-family:var(--body);font-size:11px;color:var(--gray);letter-spacing:0;font-weight:500}
.loc-page .sp-tab-panel{display:none}
.loc-page .sp-tab-visible{display:block}
.loc-page .sp-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}

/* Always-on bar */
.loc-page .sp-ao-bar{margin-top:20px;padding:16px 20px;background:var(--off);border-radius:12px;font-size:13px;color:var(--gray);text-align:center;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.loc-page .sp-ao-link{color:var(--navy);font-weight:700;text-decoration:none;padding:6px 14px;border-radius:8px;border:1.5px solid var(--border);background:var(--white);transition:all .18s;display:inline-flex;align-items:center;gap:6px;font-size:13px}
.loc-page .sp-ao-link:hover{border-color:var(--orange);background:rgba(240,78,31,.04);color:var(--orange)}

/* Dedicated always-on card (private, open gym, PNO) */
.loc-page .sp-dedicated{display:flex;justify-content:center;padding:12px 0}
.loc-page .sp-dedicated-card{max-width:400px;width:100%;background:var(--white);border:2px solid var(--orange);border-radius:18px;padding:36px 32px;text-align:center;box-shadow:0 8px 32px rgba(240,78,31,.1)}
.loc-page .sp-dedicated-name{font-family:var(--disp);font-size:28px;color:var(--navy);letter-spacing:1.5px;margin:12px 0 6px}
.loc-page .sp-dedicated-price{font-size:20px;color:var(--navy);margin:12px 0}
.loc-page .sp-dedicated-price span{font-size:14px;color:var(--gray);font-weight:400}
.loc-page .sp-dedicated-desc{font-size:14px;color:var(--text);line-height:1.65;margin-bottom:16px}
.loc-page .sp-dedicated-bullets{list-style:none;padding:0;margin:0 0 20px;text-align:left}
.loc-page .sp-dedicated-bullets li{font-size:13px;color:var(--text);padding:5px 0;padding-left:20px;position:relative}
.loc-page .sp-dedicated-bullets li::before{content:'✓';color:var(--sage);font-weight:700;position:absolute;left:0}

@media(max-width:640px){
  .loc-page .sp-grid{grid-template-columns:1fr 1fr}
  .loc-page .sp-card-grid{grid-template-columns:1fr 1fr}
  .loc-page .sp-tabs{gap:8px}
  .loc-page .sp-tab{font-size:16px;padding:12px 8px}
}
@media(max-width:400px){
  .loc-page .sp-grid{grid-template-columns:1fr}
  .loc-page .sp-card-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════
   STICKY CTA BAR
═══════════════════════════ */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--navy);border-top:2px solid rgba(240,78,31,.3);padding:14px 32px;display:none;align-items:center;justify-content:center;gap:20px;transform:translateY(100%);opacity:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s;pointer-events:none;box-shadow:0 -8px 32px rgba(7,23,43,.4)}
@media(max-width:768px){.sticky-cta{display:flex}}
/* Reserve space so the fixed bottom bar never overlaps footer/last content on mobile.
   :has() is progressive — browsers without it just keep the prior (minor-overlap) behavior. */
@media(max-width:768px){body:has(.sticky-cta){padding-bottom:96px}}
.sticky-cta.visible{transform:translateY(0);opacity:1;pointer-events:auto}
.sticky-cta-text{font-size:13px;color:#fff;font-weight:600;letter-spacing:.2px}
.sticky-cta-text strong{color:#fff}
.sticky-cta-btns{display:flex;gap:10px}
.sticky-cta-btn{display:inline-flex;align-items:center;padding:10px 22px;border-radius:9px;font-family:var(--body);font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:all .2s;border:none}
.sticky-cta-btn.sticky-primary{background:var(--orange-cta);color:#fff;box-shadow:0 2px 12px rgba(240,78,31,.35)}
.sticky-cta-btn.sticky-primary:hover{background:var(--olt);transform:translateY(-1px);box-shadow:0 4px 16px rgba(240,78,31,.45)}
@media(max-width:640px){
  .sticky-cta{flex-direction:column;gap:8px;padding:12px 16px}
  .sticky-cta-text{font-size:11px;text-align:center}
  .sticky-cta-btn{width:100%;justify-content:center;padding:12px}
}

/* ═══════════════════════════
   BOOKING MODAL — PREMIUM
═══════════════════════════ */
.bk-overlay{position:fixed;inset:0;background:rgba(7,23,43,.78);z-index:9998;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bk-overlay.open{opacity:1;pointer-events:auto}
.bk-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);z-index:9999;background:linear-gradient(180deg,#0e2544 0%,#07172B 100%);border:2px solid rgba(194,232,255,.15);border-radius:24px;width:94%;max-width:720px;max-height:90vh;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;padding:30px 32px 28px;box-shadow:0 40px 100px rgba(0,0,0,.6),0 0 0 1px rgba(194,232,255,.08),0 0 80px rgba(194,232,255,.06)}
.bk-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.bk-close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:4px 8px;line-height:1;z-index:2;transition:color .2s}
.bk-close:hover{color:#fff}
.bk-back{background:none;border:none;color:#fff;font-size:13px;font-weight:600;cursor:pointer;padding:0;margin-bottom:20px;font-family:var(--body);transition:color .2s;display:flex;align-items:center;gap:6px;letter-spacing:.3px}
.bk-back:hover{color:#fff}
.bk-step{display:none}
.bk-step.active{display:block;animation:bkFadeIn .35s ease}
@keyframes bkFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.bk-title{font-family:var(--disp);font-size:clamp(22px,3vw,28px);color:#fff;letter-spacing:1.5px;margin-bottom:0;text-align:center}
.bk-sub{text-align:center;color:#fff;font-size:14px;margin-bottom:24px}

/* ── PROGRAM PICKER — Hero cards: image fills, text overlays on dark scrim ── */
.bk-program-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 12px}
.bk-prog-card{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/0.8;cursor:pointer;border:2px solid rgba(255,255,255,.08);background:#fff;transition:transform .2s,border-color .2s,box-shadow .2s}
.bk-prog-card:hover{transform:translateY(-3px);border-color:var(--orange);box-shadow:0 14px 40px rgba(240,78,31,.22)}
.bk-prog-card:active{transform:translateY(-1px);box-shadow:0 6px 20px rgba(240,78,31,.2);border-color:var(--orange)}
/* Staggered entrance */
.bk-prog-card{animation:bkCardIn .45s ease both}
.bk-prog-card:nth-child(1){animation-delay:.05s}
.bk-prog-card:nth-child(2){animation-delay:.15s}
.bk-prog-card:nth-child(3){animation-delay:.25s}
.bk-prog-card:nth-child(4){animation-delay:.35s}
@keyframes bkCardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
/* Image fills entire card */
.bk-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;z-index:0}
/* Per-program classes — set the background image for the YOUR MATCH visual.
   Uses the same banner illustrations as the program-picker cards for continuity. */
.bk-img-yeti{background-image:url('img/card-yeti-ski-banner.jpg')}
.bk-img-little{background-image:url('img/card-little-ski-banner.jpg')}
.bk-img-little-sb{background-image:url('img/card-little-board-banner.jpg')}
.bk-img-skiboard{background-image:url('img/card-skiboard-ski-banner.jpg')}
.bk-img-skiboard-sb{background-image:url('img/card-skiboard-board-banner.jpg')}
.bk-img-private{background-image:url('img/card-private-board-banner.jpg')}
/* Dark gradient scrim at bottom for text readability */
.bk-card-scrim{position:absolute;left:0;right:0;bottom:0;height:70%;background:linear-gradient(to top,rgba(7,23,43,.95) 0%,rgba(7,23,43,.7) 40%,transparent 100%);pointer-events:none;z-index:1}
/* Hover-revealed select bar at top */
.bk-card-select-bar{position:absolute;top:0;left:0;right:0;background:rgba(7,23,43,0);color:rgba(255,255,255,0);text-align:center;padding:10px 0;font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;z-index:2;transition:all .25s}
.bk-prog-card:hover .bk-card-select-bar{background:rgba(240,78,31,.95);color:#fff}
/* Content (pill + name + outcome) overlaid on bottom scrim */
.bk-card-content{position:absolute;left:0;right:0;bottom:0;padding:14px 16px 18px;z-index:2}
.bk-card-age-pill{display:inline-block;background:var(--orange);color:#fff;font-size:15px;font-weight:800;padding:6px 14px;border-radius:16px;letter-spacing:.4px;margin-bottom:10px}
.bk-card-name{font-family:var(--disp);font-size:22px;font-weight:800;color:#fff;letter-spacing:1px;line-height:1;margin-bottom:6px;text-shadow:none}
.bk-card-outcome{font-size:13.5px;color:#fff;line-height:1.5;font-weight:500}

/* ── HELPER LINK ── */
.bk-helper-link{text-align:center;margin:4px 0 0;font-size:13px;color:#fff}
.bk-helper-link a{color:var(--orange);cursor:pointer;text-decoration:none;font-weight:600}
.bk-helper-link a:hover{text-decoration:underline}

/* ── GEO HINT ── */
.bk-geo-hint{text-align:center;margin-top:16px;padding:12px 16px;background:rgba(255,255,255,.06);border-radius:12px;font-size:13px;color:#fff}
.bk-geo-hint .bk-change{color:var(--orange);cursor:pointer;margin-left:8px;font-weight:600;text-decoration:none}
.bk-geo-hint .bk-change:hover{text-decoration:underline}

/* ── SPORT PICKER ── */
.bk-sport-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px auto;max-width:380px}
.bk-sport-card{background:#fff;border:1.5px solid var(--border);border-radius:18px;padding:36px 20px;cursor:pointer;text-align:center;transition:all .25s;overflow:hidden}
.bk-sport-card:hover{border-color:var(--orange);transform:translateY(-3px);box-shadow:0 12px 40px rgba(7,23,43,.12)}
.bk-sport-card .bk-card-emoji{font-size:52px;display:block;margin-bottom:14px}
.bk-sport-card .bk-sport-yeti{display:block;width:120px;height:120px;object-fit:contain;margin:0 auto 14px;filter:drop-shadow(0 6px 16px rgba(7,23,43,.18))}
.bk-sport-card .bk-card-name{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1px}

/* ── LOCATION PICKER ── */
.bk-location-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:28px 0}
.bk-loc-card{background:var(--navy2);border:1.5px solid var(--navy3);border-radius:14px;padding:18px 14px;cursor:pointer;text-align:center;transition:all .22s;position:relative}
.bk-loc-card:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 8px 24px rgba(240,78,31,.12)}
.bk-loc-card.bk-loc-nearest{border-color:var(--orange);box-shadow:0 0 0 3px rgba(240,78,31,.15)}
.bk-loc-card.bk-loc-nearest::after{content:'📍 Nearest';position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:800;color:var(--orange);background:var(--navy);padding:1px 10px;letter-spacing:.8px;border-radius:8px}
.bk-loc-city{font-family:var(--disp);font-size:15px;color:#fff;letter-spacing:.8px;margin-bottom:3px}
.bk-loc-state{font-size:11px;color:#fff;font-weight:600;letter-spacing:.3px}

/* ── CONFIRM — YOUR MATCH card treatment ── */
.bk-match-card{border-radius:18px;background:#fff;border:5px solid var(--orange);overflow:hidden;position:relative;margin:20px 0;box-shadow:0 20px 60px rgba(194,232,255,.3),0 4px 16px rgba(194,232,255,.25),0 0 0 6px rgba(194,232,255,.35)}
.bk-match-badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:10px;font-weight:800;letter-spacing:1.2px;padding:5px 18px;border-radius:0 0 12px 12px;white-space:nowrap;box-shadow:0 4px 12px rgba(240,78,31,.4);z-index:3;text-transform:uppercase}
/* Visual fills with banner image — mirrors program-picker cards for continuity */
.bk-match-visual{height:220px;position:relative;overflow:hidden;display:flex;align-items:flex-end;background-color:var(--navy);background-size:cover;background-repeat:no-repeat;background-position:center top}
.bk-match-visual::after{content:'';position:absolute;left:0;right:0;bottom:0;height:65%;background:linear-gradient(to top,rgba(7,23,43,.92) 0%,rgba(7,23,43,.55) 50%,transparent 100%);pointer-events:none;z-index:1}
.bk-match-visual .bk-card-label{position:relative;z-index:2;padding:18px 22px}
.bk-match-body{padding:20px 22px 16px}
/* Title sits on the dark scrim — white text, no white shadow */
.bk-match-name{font-family:var(--disp);font-size:34px;color:#fff;letter-spacing:1.5px;line-height:1;margin-bottom:8px;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.bk-match-age{display:inline-block;background:var(--orange);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.5px}
.bk-match-bestfor{font-size:13px;color:#000;line-height:1.55;padding:10px 14px;background:rgba(240,78,31,.04);border-radius:8px;border-left:3px solid var(--orange);margin-bottom:14px}
.bk-match-bestfor strong{color:var(--orange);font-weight:800}
.bk-match-outcomes{list-style:none;padding:0;display:flex;flex-direction:column;gap:7px;margin:0}
.bk-match-outcomes li{font-size:13px;color:#000;display:flex;align-items:flex-start;gap:8px;line-height:1.45}
.bk-match-outcomes li::before{content:'✓';color:var(--orange);font-weight:800;flex-shrink:0}
/* Confirm location + CTA below card */
.bk-match-location{text-align:center;margin:20px 0 8px;font-size:14px;color:#fff}
.bk-match-location .bk-match-pin{font-size:16px}
.bk-match-rating{font-size:13px;color:var(--gold);margin-top:6px;letter-spacing:.3px}
.bk-match-cta{display:block;background:var(--orange-cta);color:#fff;font-family:var(--disp);font-size:17px;letter-spacing:1.2px;padding:17px 32px;border-radius:12px;text-decoration:none;font-weight:700;text-align:center;transition:all .2s;cursor:pointer;border:none;margin:16px 0 0;box-shadow:0 4px 16px rgba(240,78,31,.3)}
.bk-match-cta:hover{background:var(--olt);transform:translateY(-2px);box-shadow:0 8px 24px rgba(240,78,31,.4)}
.bk-confirm-secondary{margin-top:14px;display:flex;flex-direction:column;gap:7px;align-items:center}
.bk-confirm-secondary a{font-size:13px;color:#fff;cursor:pointer;text-decoration:none;transition:color .2s}
.bk-confirm-secondary a:hover{color:var(--orange)}

/* ── HELPER — White cards with Yeti thumbnails ── */
.bk-helper-list{display:flex;flex-direction:column;gap:10px;margin:24px 0}
.bk-helper-row{display:flex;align-items:center;gap:16px;background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:14px 18px;cursor:pointer;transition:all .22s}
.bk-helper-row:hover{border-color:var(--orange);transform:translateX(4px);box-shadow:0 8px 24px rgba(7,23,43,.08)}
.bk-helper-thumb{width:44px;height:44px;border-radius:10px;object-fit:contain;flex-shrink:0;background:#fff}
.bk-helper-text{flex:1}
.bk-helper-row strong{color:var(--navy);font-size:14px;display:block}
.bk-helper-desc{font-size:12px;color:var(--gray);margin-top:2px}
.bk-helper-arrow{color:var(--orange);font-size:16px;font-weight:800;margin-left:auto;flex-shrink:0;opacity:.4;transition:all .2s}
.bk-helper-row:hover .bk-helper-arrow{opacity:1;transform:translateX(3px)}
.bk-helper-tip{text-align:center;font-size:12px;color:#fff;font-style:italic;margin-top:10px}

/* ── RESUME ── */
.bk-resume-actions{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:32px}
.bk-link{font-size:13px;color:#fff;cursor:pointer;text-decoration:none}
.bk-link:hover{color:var(--orange)}

/* ── SESSION ACCORDION (location pages) ── */
/* Permanent sessions bar — always-visible toggle above the (collapsible) accordion */
.session-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1080px;margin:24px auto 0;background:#fff;border:2px solid var(--sage-mid);border-radius:14px;padding:15px 22px;cursor:pointer;font-family:inherit;text-align:left;transition:border-color .2s,box-shadow .2s}
.session-bar:hover{border-color:var(--orange);box-shadow:0 6px 20px rgba(240,78,31,.1)}
.session-bar-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.session-bar-eye{font-size:11px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--orange)}
.session-bar-label{font-family:var(--disp);font-size:18px;letter-spacing:.5px;color:var(--navy);line-height:1.15}
.session-bar-caret{font-size:16px;color:var(--gray);transition:transform .25s;flex-shrink:0}
.session-bar[aria-expanded="true"] .session-bar-caret{transform:rotate(180deg)}
.session-bar[aria-expanded="true"]{border-color:var(--orange)}
/* When the panel is open right under the bar, tighten the gap + square the seam */
.session-bar[aria-expanded="true"]{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}
.session-bar[aria-expanded="true"] + .session-accordion.sa-open{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}
.session-accordion{display:none;margin-top:24px;background:var(--sage-light);border:2px solid var(--sage-mid);border-radius:18px;padding:28px 28px 24px;box-shadow:0 8px 32px rgba(106,158,133,.1)}
.session-accordion.sa-open{display:block;animation:saOpen .4s ease}
@keyframes saOpen{from{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:800px;transform:translateY(0)}}
.sa-header{text-align:center;margin-bottom:20px}
.sa-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--gray);display:block;margin-bottom:6px}
.sa-title{font-family:var(--disp);font-size:clamp(20px,2.8vw,26px);color:var(--navy);letter-spacing:1.5px;line-height:1.15}
.sa-title .sa-hl{color:var(--orange)}
.sa-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--gray);font-size:22px;cursor:pointer;padding:4px 8px;transition:color .2s}
.sa-close:hover{color:var(--orange)}
.session-accordion{position:relative}
@media(max-width:900px){.session-accordion{padding:20px 16px 16px;margin-top:16px;border-radius:14px}}

/* ── STACKED PRIORITY SESSION SELECTOR ── */
#sp-grid{display:block !important}
.ss-section-label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--orange);margin-bottom:10px}
.ss-section-label-muted{color:var(--gray)}
.ss-hero{display:flex;align-items:center;gap:14px;background:var(--white);border-radius:12px;padding:16px 20px;margin-bottom:8px;border-left:4px solid var(--orange);box-shadow:0 1px 6px rgba(7,23,43,.04)}
.ss-hero-top{display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin-bottom:0}
.ss-hero-emoji{font-size:22px;flex-shrink:0;line-height:1}
.ss-hero-info{flex:1;min-width:0}
.ss-hero-name{font-family:var(--disp);font-size:18px;color:var(--navy);letter-spacing:1.5px;line-height:1}
.ss-hero-meta{font-size:11px;color:var(--gray);margin-top:2px;font-weight:500}
.ss-hero-meta strong{color:var(--sage);font-weight:700}
.ss-hero-label{display:inline-block;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff;background:var(--orange);padding:3px 8px;border-radius:4px;margin-left:8px;animation:pulse-label 2s ease-in-out infinite}
@keyframes pulse-label{0%,100%{opacity:1}50%{opacity:.7}}
.ss-hero-cta{display:inline-flex;align-items:center;gap:6px;width:auto;padding:10px 20px;border-radius:8px;background:var(--orange-cta);color:#fff;font-size:12.5px;font-weight:700;text-decoration:none;font-family:var(--body);text-align:center;transition:all .2s;border:none;cursor:pointer;flex-shrink:0;box-shadow:0 2px 8px rgba(240,78,31,.2)}
.ss-hero-cta::after{content:'';display:inline-block;width:5px;height:5px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);margin-left:2px}
.ss-hero-cta:hover{background:var(--olt);transform:translateY(-1px);box-shadow:0 4px 16px rgba(240,78,31,.25)}
.ss-hero-sawyer{font-size:10px;color:var(--gray);text-align:right;margin-top:-2px;margin-bottom:8px;padding-right:4px}
@media(max-width:600px){.ss-hero{flex-wrap:wrap}.ss-hero-cta{width:100%;text-align:center;justify-content:center}}
.ss-hero.ss-hero-muted{border-left-color:var(--sage);box-shadow:none;background:var(--off)}
.ss-hero-notify{display:block;width:100%;padding:12px;border-radius:9px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;text-decoration:none;font-family:var(--body);text-align:center;transition:all .2s;border:none;cursor:pointer}
.ss-hero-notify:hover{background:var(--navy2);transform:translateY(-1px)}
.ss-row{display:flex;align-items:center;gap:12px;background:var(--white);border-radius:10px;padding:14px 18px;margin-bottom:6px;transition:all .2s;border:1px solid var(--border)}
.ss-row:hover{border-color:var(--sage);box-shadow:0 2px 10px rgba(106,158,133,.06)}
.ss-row-emoji{font-size:20px;flex-shrink:0}
.ss-row-info{flex:1;min-width:0}
.ss-row-name{font-family:var(--disp);font-size:15px;color:var(--navy);letter-spacing:1px;line-height:1}
.ss-row-meta{font-size:11px;color:var(--gray);margin-top:2px}
.ss-row-meta strong{color:var(--sage);font-weight:700}
.ss-row-cta{display:inline-block;padding:9px 16px;border-radius:7px;font-size:12px;font-weight:700;text-decoration:none;font-family:var(--body);transition:all .18s;white-space:nowrap;flex-shrink:0;background:var(--sage);color:#fff}
.ss-row-cta:hover{background:var(--orange-cta)}
.ss-helper{font-size:12px;color:var(--text);margin:14px 0 10px;line-height:1.5}
.ss-expand{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:12px;background:none;border:1.5px solid var(--border);border-radius:10px;font-family:var(--body);font-size:12px;font-weight:600;color:var(--gray);cursor:pointer;transition:all .2s}
.ss-expand:hover{border-color:var(--sage);color:var(--navy);background:var(--sage-light)}
.ss-expand .ch{transition:transform .25s;font-size:13px}
.ss-expand.open .ch{transform:rotate(180deg)}
.ss-drawer{display:none;margin-top:8px}
.ss-drawer.open{display:block;animation:ssFade .25s ease}
@keyframes ssFade{from{opacity:0}to{opacity:1}}
.ss-muted{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:var(--off);margin-bottom:4px;opacity:1}
.ss-muted-emoji{font-size:16px;flex-shrink:0;width:22px;text-align:center}
.ss-muted-name{font-family:var(--disp);font-size:13px;color:var(--navy);letter-spacing:1px;flex:1;line-height:1}
.ss-muted-dates{font-size:10px;color:var(--gray);white-space:nowrap}
.ss-muted-tag{font-size:9px;color:var(--gray);font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.ss-drawer-live{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;background:var(--white);border:1px solid var(--border);margin-bottom:4px}
.ss-dl-cta{font-size:10px;font-weight:700;text-decoration:none;padding:5px 10px;border-radius:5px;background:var(--sage);color:#fff;font-family:var(--body);white-space:nowrap;transition:all .18s;flex-shrink:0}
.ss-dl-cta:hover{background:var(--orange-cta)}
@media(max-width:640px){
  .ss-row{flex-wrap:wrap}
  .ss-row-cta{width:100%;text-align:center;margin-top:4px}
}

/* ══════════════════════════════════════════════════════════════
   SESSION CARD v2 — tiered, sport-aware, conversion-first
   Used as the HERO card inside the session panel on location pages.
   Replaces .ss-hero when programSchedule/session data is rich enough.
   ══════════════════════════════════════════════════════════════ */
.ss-card{position:relative;background:#fff;border:5px solid var(--navy);border-radius:18px;overflow:hidden;margin-bottom:10px;box-shadow:0 6px 24px rgba(7,23,43,.12)}
.ss-card-body{position:relative;z-index:1;padding:22px 24px}
.ss-card-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.ss-card-emoji{font-size:32px;flex-shrink:0;margin-top:-2px;line-height:1}
.ss-card-title{flex:1;min-width:0}
.ss-card-name{font-family:var(--disp);font-size:20px;letter-spacing:1px;color:var(--navy);line-height:1.15;margin-bottom:3px}
.ss-card-sub{font-size:12.5px;color:var(--gray);line-height:1.5}
.ss-card-sub strong{color:var(--navy);font-weight:700}
.ss-card-sub .ss-date{color:var(--navy);font-weight:800;font-size:13.5px;letter-spacing:.2px}
.ss-card-cadence{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:3px 10px;background:var(--sage-light);border:1px solid var(--sage-mid);border-radius:999px;font-size:11.5px;font-weight:600;color:var(--navy);letter-spacing:.2px;line-height:1.3}
.ss-card-cadence::before{content:"📅";font-size:11px;line-height:1}

/* Character art (atmospheric) — uses data-prog + body.sport-board for swap */
.ss-char{position:absolute;right:-40px;top:-10px;bottom:-10px;width:250px;pointer-events:none;z-index:0;opacity:.15;background-repeat:no-repeat;background-position:center right;background-size:contain;transition:opacity .25s}
.ss-card:hover .ss-char{opacity:.22}
.ss-char[data-prog="yeti"]     {background-image:url('img/card-yeti.jpg')}
.ss-char[data-prog="little"]   {background-image:url('img/card-little.jpg')}
.ss-char[data-prog="skiboard"] {background-image:url('img/card-skiboard.jpg')}
.ss-char[data-prog="private"]  {background-image:url('img/card-private.jpg')}
body.sport-board .ss-char[data-prog="yeti"]     {background-image:url('img/card-sb-yeti.jpg')}
body.sport-board .ss-char[data-prog="little"]   {background-image:url('img/card-sb-little.jpg')}
body.sport-board .ss-char[data-prog="skiboard"] {background-image:url('img/card-sb-skiboard.jpg')}
body.sport-board .ss-char[data-prog="private"]  {background-image:url('img/card-sb-private.jpg')}

/* Tier 1 — momentum/urgency fallback line (shows when days[] is empty) */
.ss-card-momentum{display:flex;align-items:center;gap:12px;padding:13px 15px;background:#fff4ee;border:1px solid rgba(240,78,31,.22);border-radius:10px;max-width:82%}
.ss-card-momentum-dot{display:inline-block;width:9px;height:9px;background:var(--orange);border-radius:50%;flex-shrink:0}
.ss-card-momentum-text{flex:1;font-size:13px;color:var(--navy);line-height:1.45}
.ss-card-momentum-text strong{color:var(--orange);font-weight:800}

/* Tier 2 — weekly-pattern grid (shows when days[] has entries) */
.ss-days-label{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:9px}
.ss-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:82%}
.day-cell{text-align:center;padding:11px 0;border-radius:8px}
.day-cell--off{background:var(--off)}
.day-cell--off .dlbl{font-size:10px;font-weight:700;color:#bbb;letter-spacing:1px}
.day-cell--on{background:#fff4ee;border:1.5px solid var(--orange)}
.day-cell--on .dlbl{font-size:10px;font-weight:800;color:var(--orange);letter-spacing:1px}
.day-cell--on .dchk{font-size:11px;color:var(--orange);margin-top:2px;font-weight:700;line-height:1}
.ss-days-note{font-size:12px;color:var(--gray);margin-top:12px;line-height:1.5;max-width:82%}

/* Tier 3 — outcome headline (sold beside or instead of grid) */
.ss-card-outcome{margin-top:14px;padding:16px 18px;background:linear-gradient(135deg,#fff8f4 0%,#fff 100%);border:1px solid rgba(240,78,31,.2);border-radius:10px;max-width:82%}
.ss-card-outcome-label{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:5px}
.ss-card-outcome-text{font-family:var(--disp);font-size:17px;color:var(--navy);letter-spacing:.5px;line-height:1.25}
.ss-card-outcome-text .emph{color:var(--orange)}

/* Tier 3 — social-proof line */
.ss-card-social{display:flex;align-items:center;gap:9px;padding:10px 13px;background:var(--off);border:1px solid var(--border);border-radius:10px;margin-top:12px;max-width:82%}
.ss-card-social-icon{font-size:14px;flex-shrink:0}
.ss-card-social-text{flex:1;font-size:12.5px;color:var(--navy);line-height:1.4}
.ss-card-social-text strong{color:var(--orange);font-weight:800}

/* Blackout window + free-form session note (dashboard-authored) */
.ss-card-note{display:flex;align-items:flex-start;gap:9px;padding:8px 13px;background:#fff8ef;border:1px solid rgba(240,78,31,.18);border-radius:10px;margin-top:10px;max-width:82%}
.ss-card-note-ic{font-size:13px;flex-shrink:0;line-height:1.45}
.ss-card-note-text{flex:1;font-size:12px;color:var(--navy);line-height:1.4}
.ss-card-note--info{background:var(--off);border-color:var(--border)}

/* Dark footer — pillbox + CTA */
.ss-card-footer{position:relative;z-index:1;background:var(--navy);padding:15px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ss-card-footer .ss-card-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 22px;background:var(--orange-cta);color:#fff;border:3px solid #fff;border-radius:11px;font-size:13.5px;font-weight:800;text-decoration:none;font-family:var(--body);letter-spacing:.4px;transition:all .2s;white-space:nowrap;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 4px 14px rgba(240,78,31,.25)}
.ss-card-footer .ss-card-cta:hover{background:var(--olt);transform:translateY(-2px);box-shadow:0 0 0 1px rgba(0,0,0,.2),0 8px 22px rgba(240,78,31,.4)}

/* Waitlist email capture in closed session cards */
.ss-waitlist-form{display:flex;gap:0;flex:1;min-width:0}
.ss-waitlist-email{flex:1;min-width:0;padding:10px 14px;border:1.5px solid rgba(255,255,255,.2);border-right:none;border-radius:9px 0 0 9px;background:rgba(255,255,255,.08);color:#fff;font-size:13px;font-family:var(--body);outline:none;transition:border-color .2s}
.ss-waitlist-email::placeholder{color:#fff}
.ss-waitlist-email:focus{border-color:rgba(240,78,31,.6)}
.ss-waitlist-btn{padding:10px 18px;background:var(--orange-cta);color:#fff;border:none;border-radius:0 9px 9px 0;font-weight:700;font-size:12px;cursor:pointer;font-family:var(--body);white-space:nowrap;transition:background .2s}
.ss-waitlist-btn:hover{background:var(--olt)}
.ss-card-footer--waitlist{flex-direction:column;gap:12px}

/* Urgency pillbox states */
.ss-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap}
.ss-pill .dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}
.ss-pill--open{background:rgba(10,148,67,.18);color:#4ade80;border:1px solid rgba(74,222,128,.4)}
.ss-pill--open .dot{background:#4ade80}
.ss-pill--filling{background:rgba(240,78,31,.22);color:#ff8a5c;border:1px solid rgba(240,78,31,.55)}
.ss-pill--filling .dot{background:var(--orange);animation:ss-pulse 1.5s infinite}
.ss-pill--nearly{background:rgba(201,74,15,.28);color:#ffa87c;border:1px solid rgba(201,74,15,.6)}
.ss-pill--nearly .dot{background:#c94a0f;animation:ss-pulse 1.2s infinite}
.ss-pill--waitlist{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.22)}
.ss-pill--waitlist .dot{background:rgba(255,255,255,.55)}
@keyframes ss-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}

/* Responsive */
@media(max-width:640px){
  .ss-card{border-width:3px;border-radius:14px}
  .ss-card-body{padding:18px 18px}
  .ss-char{width:180px;opacity:.11;right:-30px}
  .ss-card:hover .ss-char{opacity:.14}
  .ss-card-momentum,.ss-days-grid,.ss-days-note,.ss-card-outcome,.ss-card-social,.ss-card-note{max-width:100%}
  .day-cell{padding:10px 0}
  .ss-card-footer{padding:14px 16px;flex-direction:column;align-items:stretch;gap:10px}
  .ss-card-footer .ss-pill{align-self:flex-start}
  .ss-card-footer .ss-card-cta{width:100%;justify-content:center;white-space:normal;line-height:1.25;padding:12px 18px}
  .ss-card-name{font-size:18px}
}

/* ── INLINE BOOKING CTA ── */
.inline-booking{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}
.inline-booking-loc{font-size:12px;color:#fff;font-weight:600}
.inline-booking-cta{display:inline-block;background:var(--orange-cta);color:#fff;font-family:var(--disp);font-size:14px;letter-spacing:.5px;padding:12px 24px;border-radius:10px;text-decoration:none;font-weight:700;text-align:center;transition:all .2s;cursor:pointer;border:none;width:100%;max-width:280px;box-shadow:0 2px 8px rgba(240,78,31,.2)}
.inline-booking-cta:hover{background:var(--olt);transform:translateY(-1px);box-shadow:0 4px 16px rgba(240,78,31,.3)}
.inline-booking-change{font-size:11px;color:#fff;cursor:pointer;text-decoration:none}
.inline-booking-change:hover{color:var(--orange)}

/* ── MOBILE ── */
@media(max-width:640px){
  .bk-modal{width:100%;height:100%;max-height:100vh;border-radius:0;top:0;left:0;transform:translate(0,8px);padding:28px 18px 24px;max-width:100%}
  .bk-modal.open{transform:translate(0,0)}
  .bk-program-grid{gap:12px}
  .bk-prog-card{border-radius:12px;aspect-ratio:1/0.9}
  .bk-card-name{font-size:19px}
  .bk-card-age-pill{font-size:14px;padding:5px 12px}
  .bk-card-content{padding:12px 12px 14px}
  .bk-card-outcome{font-size:12.5px;line-height:1.45}
  /* Always show select bar on mobile (no hover) */
  .bk-card-select-bar{background:rgba(240,78,31,.92);color:#fff;font-size:10px;padding:8px 0}
  .bk-location-grid{grid-template-columns:1fr 1fr;gap:10px}
  .bk-match-visual{height:150px}
  .bk-match-name{font-size:26px}
  .bk-match-card{border-width:4px;margin:16px 0}
  .bk-match-cta{font-size:15px;padding:15px 24px}
  .bk-helper-row{padding:12px 14px;gap:12px}
  .bk-helper-thumb{width:36px;height:36px}
}
@media(max-width:380px){
  .bk-program-grid{gap:8px}
  .bk-prog-card{aspect-ratio:1/0.85}
  .bk-card-name{font-size:17px;letter-spacing:.8px}
  .bk-card-age-pill{font-size:13px;padding:4px 11px}
  .bk-card-content{padding:10px 10px 12px}
  .bk-card-outcome{font-size:11.5px;line-height:1.4}
}
/* ═══════════════════════════════════════════════════════════════════
   MOBILE ROUND 1 FIXES — 2026-04-14
   Hero grids collapse, touch targets ≥44×44, form inputs 16px,
   typography floors lowered, drawer close behavior.
═══════════════════════════════════════════════════════════════════ */

/* Hero grids — collapse to single column on phones */
@media(max-width:640px){
  .hero-inner,
  .page-hero-inner,
  .loc-hero-inner,
  .fr-hero-inner{
    grid-template-columns:1fr;
    gap:32px;
    padding-top:48px;
    padding-bottom:56px;
  }
  /* Typography floors — prevent huge headlines from eating the viewport */
  .hero-h1{font-size:clamp(40px,9vw,118px)}
  .sec-h2{font-size:clamp(30px,7vw,62px)}
  .page-hero h1{font-size:clamp(38px,8.5vw,100px)}
  .final h2{font-size:clamp(30px,7vw,96px)}
}

/* Close buttons — 44×44 minimum touch targets (WCAG / Apple HIG) */
.nav-hamburger{width:44px;height:44px}
.lpm-close{width:44px;height:44px}
.bk-close{padding:10px 14px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* Form inputs — 16px minimum to prevent iOS zoom-on-focus */
.fr-input,
.geo-search,
input[type="email"],
input[type="text"],
input[type="tel"],
textarea{
  font-size:16px;
}

/* Location card CTA tap targets + legible description text on mobile */
@media(max-width:640px){
  .lfc-btn-primary{min-height:44px;font-size:14px;padding:12px 14px}
  .lfc-btn-ghost{min-height:44px;font-size:13px;padding:12px 14px}
  .lfc-desc{font-size:14px}
  /* Location cards: single-column sooner (was kicking in at 600px) */
  .loc-cards-grid,
  .gateway-active .loc-cards-grid{grid-template-columns:1fr}
}

/* Quiz result card — badge overflow fix at narrow widths */
@media(max-width:600px){
  .quiz-match-badge{min-width:0;width:100%;padding:14px 18px}
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE ROUND 2 FIXES — 2026-04-14
   Session-accordion tighter padding on phones. (Programs compare-table
   block was replaced by .qc-strip on 2026-04-27.)
═══════════════════════════════════════════════════════════════════ */

/* Programs quick-compare strip — re-purposed #pd-compare (2026-04-27) */
.qc-strip{background:#fff;border:1.5px solid var(--border);border-radius:12px;overflow:hidden;max-width:1080px;margin:0 auto;box-shadow:0 2px 8px rgba(7,23,43,.04)}
.qc-row{display:grid;grid-template-columns:1.5fr .7fr 1fr 1.2fr .8fr;align-items:center;padding:0 14px;border-bottom:1px solid var(--border);min-height:19px;font-size:12px;color:var(--text);line-height:1.4}
.qc-row:last-child{border-bottom:none}
.qc-row.qc-featured{background:linear-gradient(90deg,rgba(240,78,31,.04),transparent 60%)}
.qc-cell{padding:2px 8px 2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qc-cell.qc-name{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--navy);font-size:13px;letter-spacing:.2px}
.qc-prog{font-family:var(--disp);font-size:14px;letter-spacing:1px}
.qc-pop{font-size:8px;font-weight:800;letter-spacing:1.2px;color:#fff;background:var(--orange);padding:2px 6px;border-radius:8px;margin-left:4px}
.qc-label{display:none;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);margin-right:6px}
@media(max-width:768px){
  .qc-strip{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;background:transparent;border:none;border-radius:0;box-shadow:none;padding:4px 16px 16px;gap:12px;max-width:none;scrollbar-width:none}
  .qc-strip::-webkit-scrollbar{display:none}
  .qc-row{flex:0 0 78%;scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;padding:16px 18px;gap:8px;background:#fff;border:1.5px solid var(--border);border-radius:12px;min-height:auto;box-shadow:0 2px 10px rgba(7,23,43,.05)}
  .qc-row.qc-featured{border-color:var(--orange);background:#fff;box-shadow:0 4px 16px rgba(240,78,31,.12)}
  .qc-cell{width:100%;padding:0;white-space:normal;font-size:13px}
  .qc-cell.qc-name{font-size:16px;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:2px}
  .qc-prog{font-size:18px}
  .qc-label{display:inline}
}

/* Session accordion — tighter padding on phones */
@media(max-width:640px){
  .session-accordion{padding:16px 14px 14px;margin-top:14px;border-radius:12px}
}

/* ═══════════════════════════════════════════════════════════════════
   LOCATION PASSPORT MODAL (.lpx-*) — opened by clicking the nav pill.
   Concept B from /pill-modal-preview.html. Re-iterates the parent's
   chosen location, links to its home page, supports a change-location
   mini-picker — never pushes toward sessions/booking.
═══════════════════════════════════════════════════════════════════ */
.lpx-overlay{position:fixed;inset:0;background:rgba(7,23,43,.55);backdrop-filter:blur(3px);z-index:9000;opacity:0;pointer-events:none;transition:opacity .2s}
.lpx-overlay.open{opacity:1;pointer-events:auto}
.lpx-wrap{position:fixed;inset:0;z-index:9001;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}
.lpx-wrap.open{opacity:1;pointer-events:auto}
.lpx{background:#fff;border-radius:18px;width:100%;max-width:440px;overflow:hidden;box-shadow:0 24px 60px rgba(7,23,43,.32);position:relative;transform:translateY(8px);animation:lpxIn .25s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes lpxIn{to{transform:translateY(0)}}
.lpx-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--navy);cursor:pointer;border:none;z-index:2;font-weight:700;line-height:1;transition:transform .15s,background .15s}
.lpx-close:hover{background:#fff;transform:scale(1.06)}
.lpx-back{position:absolute;top:14px;left:14px;background:none;border:none;color:var(--sage);font-size:12px;font-weight:600;cursor:pointer;padding:6px 10px;border-radius:6px;letter-spacing:.3px;z-index:2}
.lpx-back:hover{color:var(--navy);background:var(--off)}
.lpx-body{padding:32px 28px 26px;text-align:center}
.lpx-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:var(--eyebrow-chip-size);font-weight:800;letter-spacing:2.4px;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.lpx-pin{font-size:14px}
.lpx-headline{font-family:var(--disp);font-size:30px;color:var(--navy);letter-spacing:1.2px;line-height:1.05;margin-bottom:6px}
.lpx-headline .city{color:var(--orange)}
.lpx-sub{font-size:13.5px;color:var(--gray);line-height:1.55;margin-bottom:22px}
.lpx-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 22px;padding:14px 6px;background:var(--off);border:1px solid var(--border);border-radius:12px}
.lpx-meta-cell{text-align:center;padding:0 4px}
.lpx-meta-icon{font-size:16px;line-height:1;margin-bottom:4px}
.lpx-meta-val{font-family:var(--disp);font-size:16px;color:var(--navy);letter-spacing:.6px;line-height:1.1;margin-bottom:2px}
.lpx-meta-lbl{font-size:9.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray)}
.lpx-cta-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 22px;background:var(--orange-cta);color:#fff;border:none;border-radius:11px;font-size:14.5px;font-weight:800;letter-spacing:.5px;cursor:pointer;text-decoration:none;transition:all .18s;box-shadow:0 6px 18px rgba(240,78,31,.28);margin-bottom:12px;min-height:44px}
.lpx-cta-primary:hover{background:var(--olt);transform:translateY(-1px);box-shadow:0 10px 24px rgba(240,78,31,.36)}
.lpx-cta-secondary{display:block;text-align:center;padding:10px 0;font-size:12.5px;font-weight:600;color:var(--sage);text-decoration:underline;text-underline-offset:3px;cursor:pointer;background:none;border:none;width:100%;min-height:44px}
.lpx-cta-secondary:hover{color:var(--navy)}
.lpx-alt-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:#fff;border:1.5px solid var(--border);border-radius:999px;font-size:12px;font-weight:600;color:var(--navy);cursor:pointer;transition:all .15s;text-decoration:none;min-height:38px}
.lpx-alt-chip:hover{border-color:var(--orange);color:var(--orange);background:rgba(240,78,31,.04);transform:translateY(-1px)}
.lpx-alt-chip .dist{color:var(--gray);font-weight:500;font-size:11px}
@media(max-width:640px){
  .lpx-wrap{padding:16px;align-items:flex-end}
  .lpx{max-width:100%;border-radius:18px 18px 12px 12px}
  .lpx-body{padding:28px 22px 22px}
  .lpx-headline{font-size:26px}
  .lpx-meta-val{font-size:14px}
  .lpx-meta{padding:12px 4px;gap:6px}
}

/* ═══════════════════════════════════════════════════════════════════
   NAV — prevent multi-word links wrapping when the city pill is wide
   (e.g., "Wheat Ridge", "Richardson"). Compact the pill at narrower
   desktop widths so "How It Works" / "Mountain Ready" stay one line.
═══════════════════════════════════════════════════════════════════ */
.nav-links a{white-space:nowrap}
@media(min-width:901px) and (max-width:1180px){
  .nav-city{margin-left:12px;padding:5px 10px;font-size:10.5px;letter-spacing:1.2px}
  .nav-links{gap:2px}
  .nav-links a{padding:7px 9px;font-size:13px}
}

/* ══════════════════════════════════════════════════════
   NOW BOOKING STRIP (Option 4) — seasonal campaign strip below hero
   ══════════════════════════════════════════════════════ */
#now-booking-strip{display:none}
#now-booking-strip.nbs-active{display:block;background:linear-gradient(90deg,rgba(240,78,31,.08) 0%,rgba(240,78,31,.04) 100%);border-top:1px solid rgba(240,78,31,.18);border-bottom:1px solid rgba(240,78,31,.18)}
.nbs-inner{max-width:1160px;margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.nbs-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.nbs-badge{background:var(--orange);color:#fff;padding:4px 10px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}
.nbs-copy{font-size:14.5px;color:var(--text);font-weight:600;line-height:1.4}
.nbs-copy strong{color:var(--orange)}
.nbs-meta{color:var(--gray);font-size:12px;margin-top:3px}
.nbs-cta{display:inline-flex;align-items:center;background:var(--orange-cta);color:#fff;padding:9px 18px;border-radius:8px;font-weight:700;font-size:13px;letter-spacing:.02em;text-decoration:none;transition:background .2s,transform .2s;flex-shrink:0}
.nbs-cta:hover{background:#ff6840;transform:translateY(-1px)}
@media(max-width:680px){.nbs-inner{flex-direction:column;align-items:flex-start;padding:16px 20px}.nbs-cta{align-self:stretch;justify-content:center}}

/* SEASONAL STICKY CTA OVERRIDE — applied when SHREDDER_BANNER.stickyOverride is active */
.sticky-cta-seasonal{background:var(--orange-cta) !important;border-top:2px solid rgba(255,255,255,.25) !important}
.sticky-cta-seasonal .sticky-cta-text{color:#fff}
.sticky-cta-seasonal .sticky-cta-text strong{color:#fff}
.sticky-cta-seasonal .sticky-cta-btn.sticky-primary{background:#fff !important;color:var(--orange) !important;box-shadow:0 2px 12px rgba(0,0,0,.18) !important}
.sticky-cta-seasonal .sticky-cta-btn.sticky-primary:hover{background:#fff7f3 !important;color:var(--orange) !important}

/* ══════════════════════════════════════════════════════
   NOW ENROLLING BLOCK — site-wide seasonal block below hero
   Two contexts auto-detected by now-enrolling.js:
     .ne-block      → home/programs/etc (generic seasonal headline)
     .ne-loc        → location detail pages (real sessionCards data)
   Both have a ".camp" variant for warm-tinted Camp Mode treatment.
   ══════════════════════════════════════════════════════ */
@keyframes ne-pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ── HOME context · single seasonal headline ── */
#now-enrolling-block:empty{display:none}
.ne-block{background:#fff;border-bottom:1px solid #e3e8f0;display:block}
.ne-block--camp{background:linear-gradient(135deg,#fff7ee 0%,#ffeed5 100%);border-bottom-color:rgba(240,78,31,.18)}
.ne-block-inner{max-width:1160px;margin:0 auto;padding:22px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ne-block-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:1;min-width:0}
.ne-block-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--orange);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.ne-block-eye i{width:7px;height:7px;background:var(--orange);border-radius:50%;animation:ne-pulse 1.6s infinite}
.ne-block-title{font-family:var(--disp);font-size:clamp(20px,2.4vw,26px);letter-spacing:.04em;color:var(--navy);line-height:1.1}
.ne-block-title em{color:var(--orange);font-style:normal}
.ne-block-meta{font-size:12.5px;color:var(--gray)}
.ne-block-cta{background:var(--orange-cta);color:#fff;padding:10px 20px;border-radius:8px;font-weight:700;font-size:13.5px;text-decoration:none;letter-spacing:.04em;transition:background .18s,transform .18s;flex-shrink:0;display:inline-flex;align-items:center}
.ne-block-cta:hover{background:#FF6840;transform:translateY(-1px);color:#fff;text-decoration:none}
@media(max-width:680px){
  /* stack the seasonal Now-Enrolling block so the CTA drops below the copy
     instead of stretching to the full height of the wrapped headline */
  .ne-block-inner{flex-direction:column;align-items:stretch;padding:18px 20px;gap:14px}
  .ne-block-left{flex-direction:column;align-items:flex-start;gap:6px}
  .ne-block-cta{align-self:stretch;justify-content:center}
}

/* ── LOCATION context · session card list ── */
.ne-loc{background:linear-gradient(180deg,#fff 0%,#F4F6FA 100%);border-bottom:1px solid #e3e8f0;display:block}
.ne-loc--camp{background:linear-gradient(135deg,#fff7ee 0%,#ffeed5 100%);border-bottom-color:rgba(240,78,31,.18)}
.ne-loc-inner{max-width:1160px;margin:0 auto;padding:28px 24px 32px}
.ne-loc-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.ne-loc-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--orange);display:inline-flex;align-items:center;gap:8px}
.ne-loc-eye i{width:7px;height:7px;background:var(--orange);border-radius:50%;animation:ne-pulse 1.6s infinite}
.ne-loc-title{font-family:var(--disp);font-size:24px;letter-spacing:.04em;color:var(--navy)}
.ne-loc-loc{margin-left:auto;font-size:12px;color:var(--gray)}
.ne-loc-loc a{color:var(--orange);font-weight:700;text-decoration:none}

.ne-loc-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:16px;padding:14px 4px;border-top:1px dashed #e3e8f0;text-decoration:none;color:inherit;transition:background .15s}
.ne-loc-row:first-of-type{border-top:0}
.ne-loc-row:hover{background:rgba(240,78,31,.025)}
.ne-loc-rowmain{display:flex;align-items:center;gap:14px;min-width:0}
.ne-loc-emoji{font-size:22px;line-height:1;align-self:center}
.ne-loc-name{min-width:0}
.ne-loc-name b{display:block;font-weight:700;color:#07172B;font-size:14.5px;letter-spacing:.02em}
.ne-loc-name span{display:block;font-size:12.5px;color:var(--gray);margin-top:2px}
.ne-loc-name .ne-loc-proof{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-size:11.5px;color:#b87b00;font-weight:600;font-style:italic}
.ne-loc-weeks{font-size:11px;font-weight:700;color:var(--gray);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;background:#f4f6fa;border-radius:6px;flex-shrink:0;align-self:center;border:1px solid #e3e8f0}
.ne-loc-cta{color:var(--orange);font-weight:800;font-size:13px;letter-spacing:.04em;text-decoration:none;flex-shrink:0;align-self:center;white-space:nowrap}
.ne-loc-cta:hover{color:#FF6840}

/* Light-bg overrides for ss-pill— site default targets dark navy backgrounds */
.ne-loc .ss-pill,.ne-block .ss-pill{font-size:10.5px;font-weight:800;padding:4px 11px;letter-spacing:.08em}
.ne-loc .ss-pill--open{background:#e8f5ec;color:#16833E;border:0}
.ne-loc .ss-pill--open .dot{background:#16833E;animation:ne-pulse 1.6s infinite}
.ne-loc .ss-pill--filling{background:#fef0d8;color:#b87b00;border:0}
.ne-loc .ss-pill--filling .dot{background:#b87b00;animation:ne-pulse 1.6s infinite}
.ne-loc .ss-pill--nearly{background:#fde2d4;color:#c04518;border:0}
.ne-loc .ss-pill--nearly .dot{background:#c04518;animation:ne-pulse 1.6s infinite}
.ne-loc .ss-pill--waitlist{background:#ececec;color:#6b6b6b;border:0}
.ne-loc .ss-pill--waitlist .dot{background:#6b6b6b;animation:none}

@media(max-width:760px){
  .ne-loc-row{grid-template-columns:auto 1fr;row-gap:8px}
  .ne-loc-row .ne-loc-weeks,.ne-loc-row .ss-pill,.ne-loc-row .ne-loc-cta{grid-column:2;justify-self:start}
  .ne-loc-row .ne-loc-cta{justify-self:end}
}

/* Soft "Opening soon" awareness line */
.ne-loc-soft{margin-top:14px;padding:12px 14px;background:rgba(78,195,255,.06);border:1px dashed rgba(78,195,255,.3);border-radius:8px;font-size:12.5px;color:#4a5870;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ne-loc-soft b{color:#07172B;font-weight:700}
.ne-loc-soft a{color:var(--orange);font-weight:700;text-decoration:none;margin-left:auto}
.ne-loc-soft-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;background:#fff;border:1px solid #d4dde8;border-radius:999px;font-size:11.5px;color:#4a5870}

/* Camp v2 schema · week-by-week strip (renders inside .ne-loc) */
.ne-loc-camprow{padding:14px 4px;border-top:1px dashed #e3e8f0}
.ne-loc-camprow:first-of-type{border-top:0}
.ne-loc-camprow-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.ne-camp-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 4px 12px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.ne-camp-strip::-webkit-scrollbar{height:6px}
.ne-camp-strip::-webkit-scrollbar-thumb{background:rgba(240,78,31,.3);border-radius:4px}
.ne-camp-week{flex:0 0 138px;background:#fff;border:1.5px solid #e3e8f0;border-radius:10px;padding:12px 13px;cursor:pointer;transition:all .2s;scroll-snap-align:start;text-decoration:none;color:inherit;display:block}
.ne-camp-week:hover{transform:translateY(-3px);border-color:var(--orange);box-shadow:0 6px 18px rgba(240,78,31,.18)}
.ne-camp-week.full{opacity:.55;cursor:not-allowed}
.ne-camp-week.full:hover{transform:none;border-color:#e3e8f0;box-shadow:none}
.ne-camp-wkdate{font-family:var(--disp);font-size:17px;color:var(--navy);letter-spacing:.04em;line-height:1}
.ne-camp-wktype{font-size:11.5px;color:var(--gray);margin-top:4px;line-height:1.4;min-height:28px}
.ne-camp-wkpill{display:inline-block;margin-top:9px}
/* Multi-day pack chips — warm "value tier" tint + per-day savings tag */
.ne-camp-week--pack{background:linear-gradient(180deg,#fff7ee 0%,#fff 72%);border-color:#f0c9a8}
.ne-camp-week--pack:hover{border-color:var(--orange)}
.ne-camp-pack-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#c04518;background:#fde8da;border-radius:999px;padding:3px 9px}

/* ══════════════════════════════════════════════════════
   LAYER 3 — Camp Mode visual reorder (body[data-season="camp"])
   Same DOM, different visual prominence. SEO-safe.
   ══════════════════════════════════════════════════════ */
/* Elevated Camp Feature section — exists in DOM always; only visible in camp/pre-camp mode */
.cm-feature{display:none;position:relative;min-height:560px;overflow:hidden;color:#fff;padding:80px 0 90px;align-items:center}
body[data-season="camp"] .cm-feature{display:flex}
body[data-season="pre-camp"] .cm-feature{display:flex}
.cm-feature-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;transform:scale(1.04)}
.cm-feature-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(7,23,43,.92) 0%,rgba(7,23,43,.55) 50%,rgba(210,65,10,.55) 100%);z-index:1}
.cm-feature-inner{position:relative;z-index:2;max-width:1160px;width:100%;margin:0 auto;padding:0 24px}
.cm-feature-content{max-width:680px}
.cm-feature-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:#ffc83d;margin-bottom:14px;display:inline-flex;align-items:center;gap:8px}
.cm-feature-eye i{width:7px;height:7px;background:#ffc83d;border-radius:50%;animation:ne-pulse 1.6s infinite}
.cm-feature-h{font-family:var(--disp);font-size:clamp(40px,5.4vw,64px);letter-spacing:.02em;line-height:1;margin-bottom:18px;color:#fff}
.cm-feature-h em{font-family:'Caveat',cursive;color:#ffc83d;font-style:normal;font-weight:600;font-size:1.04em}
.cm-feature-sub{font-size:16px;color:#fff;line-height:1.6;margin-bottom:22px;max-width:580px}
.cm-feature-stack{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
@media(max-width:700px){.cm-feature-stack{grid-template-columns:1fr}}
.cm-feature-stack li{font-size:14px;color:#fff;padding:4px 0 4px 24px;position:relative}
.cm-feature-stack li::before{content:'\2713';position:absolute;left:0;color:#ffc83d;font-weight:800}
.cm-feature-ctas{display:flex;gap:12px;flex-wrap:wrap}
.cm-feature-cta{background:var(--orange-cta);color:#fff;padding:14px 28px;border-radius:10px;font-weight:700;font-size:15px;text-decoration:none;letter-spacing:.04em;transition:all .18s}
.cm-feature-cta:hover{background:#FF6840;transform:translateY(-1px);color:#fff;text-decoration:none}
.cm-feature-cta-ghost{background:transparent;border:1.5px solid rgba(255,255,255,.45);color:#fff;padding:14px 26px;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none;letter-spacing:.04em}
.cm-feature-cta-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff;text-decoration:none}

/* Compress Programs section in Camp Mode — keep cards visible (SEO),
   hide deep-path content (feature lists, body paragraphs) */
body[data-season="camp"] .programs{padding:var(--section-pad-sm) 0}
body[data-season="camp"] .programs .prog-head h2{font-size:clamp(28px,3.4vw,38px)}
body[data-season="camp"] .programs .prog-head p{display:none}
body[data-season="camp"] .programs .prog-feats{display:none}
body[data-season="camp"] .programs .prog-body p{font-size:13px;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px}
body[data-season="camp"] .programs .prog-card .ph{aspect-ratio:16/9;min-height:140px}

/* Compressed Programs deep-path link (rendered conditionally in home.html) */
.cm-progs-all{display:none;text-align:center;margin-top:18px}
.cm-progs-all a{color:var(--orange);font-weight:800;font-size:14px;letter-spacing:.04em;text-decoration:none}
body[data-season="camp"] .cm-progs-all{display:block}

/* ══════════════════════════════════════════════════════
   PRE-CAMP TRANSITION (Mar 1 – Apr 30)
   - Spring rail above camp section
   - Early-bird badge + deadline countdown inside .cm-feature
   ══════════════════════════════════════════════════════ */
.pre-camp-spring-rail{display:none;background:linear-gradient(90deg,rgba(78,195,255,.12) 0%,rgba(78,195,255,.04) 100%);border-bottom:1px solid rgba(78,195,255,.2);padding:12px 24px}
body[data-season="pre-camp"] .pre-camp-spring-rail{display:block}
.pre-camp-spring-rail-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.pre-camp-spring-rail-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pre-camp-spring-rail-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:#2a8bd9;display:inline-flex;align-items:center;gap:7px}
.pre-camp-spring-rail-eye i{width:6px;height:6px;background:#2a8bd9;border-radius:50%;animation:ne-pulse 1.6s infinite}
.pre-camp-spring-rail-text{font-size:13.5px;color:#1a3a5c;font-weight:600}
.pre-camp-spring-rail-text b{color:#07172B;font-weight:800}
.pre-camp-spring-rail-cta{color:#2a8bd9;font-weight:800;font-size:12.5px;letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.pre-camp-spring-rail-cta:hover{color:var(--orange)}

/* Early-bird elements inside .cm-feature — hidden by default, shown only Pre-Camp */
.cm-feature-precamp-badge{display:none;align-items:center;gap:8px;background:rgba(255,200,61,.18);border:1px solid rgba(255,200,61,.5);color:#ffc83d;padding:6px 14px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;align-self:flex-start;width:fit-content}
.cm-feature-precamp-badge .pulse{width:7px;height:7px;background:#ffc83d;border-radius:50%;animation:ne-pulse 1.6s infinite}
body[data-season="pre-camp"] .cm-feature-precamp-badge{display:inline-flex}

.cm-feature-deadline{display:none;background:rgba(0,0,0,.3);border:1px solid rgba(255,200,61,.35);border-radius:10px;padding:12px 18px;margin-bottom:22px;max-width:480px;align-items:center;gap:14px}
body[data-season="pre-camp"] .cm-feature-deadline{display:flex}
.cm-feature-deadline-label{font-size:11px;color:#ffc83d;font-weight:800;letter-spacing:.15em;text-transform:uppercase;line-height:1.2;flex-shrink:0}
.cm-feature-deadline-value{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:.04em;line-height:1}
.cm-feature-deadline-meta{font-size:12px;color:#fff;margin-top:3px}

/* ══════════════════════════════════════════════════════
   PRE-LESSON TRANSITION (Aug 1 – Aug 31)
   - NEW elevated Fall Feature, parallel to .cm-feature, cool-blue palette
   ══════════════════════════════════════════════════════ */
.cm-fall-feature{display:none;position:relative;min-height:520px;overflow:hidden;color:#fff;padding:80px 0 90px;align-items:center}
body[data-season="pre-lesson"] .cm-fall-feature{display:flex}
.cm-fall-feature-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;transform:scale(1.04)}
.cm-fall-feature-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(7,23,43,.95) 0%,rgba(13,34,64,.7) 50%,rgba(78,195,255,.35) 100%);z-index:1}
.cm-fall-feature-inner{position:relative;z-index:2;max-width:1160px;width:100%;margin:0 auto;padding:0 24px}
.cm-fall-feature-content{max-width:680px}
.cm-fall-eye{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:#4ec3ff;margin-bottom:14px;display:inline-flex;align-items:center;gap:8px}
.cm-fall-eye i{width:7px;height:7px;background:#4ec3ff;border-radius:50%;animation:ne-pulse 1.6s infinite}
.cm-fall-h{font-family:var(--disp);font-size:clamp(40px,5.4vw,64px);letter-spacing:.02em;line-height:1;margin-bottom:18px;color:#fff}
.cm-fall-h em{font-family:'Caveat',cursive;color:#4ec3ff;font-style:normal;font-weight:600;font-size:1.04em}
.cm-fall-sub{font-size:16px;color:#fff;line-height:1.6;margin-bottom:22px;max-width:580px}
.cm-fall-deadline{background:rgba(0,0,0,.3);border:1px solid rgba(78,195,255,.35);border-radius:10px;padding:12px 18px;margin-bottom:22px;max-width:460px;display:flex;align-items:center;gap:14px}
.cm-fall-deadline-label{font-size:11px;color:#4ec3ff;font-weight:800;letter-spacing:.15em;text-transform:uppercase;flex-shrink:0;line-height:1.2}
.cm-fall-deadline-value{font-family:var(--disp);font-size:22px;color:#fff;letter-spacing:.04em;line-height:1}
.cm-fall-deadline-meta{font-size:12px;color:#fff;margin-top:3px}
.cm-fall-stack{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
@media(max-width:700px){.cm-fall-stack{grid-template-columns:1fr}}
.cm-fall-stack li{font-size:14px;color:#fff;padding:4px 0 4px 24px;position:relative}
.cm-fall-stack li::before{content:'\2713';position:absolute;left:0;color:#4ec3ff;font-weight:800}
.cm-fall-ctas{display:flex;gap:12px;flex-wrap:wrap}
.cm-fall-cta{background:var(--orange-cta);color:#fff;padding:14px 28px;border-radius:10px;font-weight:700;font-size:15px;text-decoration:none;letter-spacing:.04em;transition:all .18s}
.cm-fall-cta:hover{background:#FF6840;transform:translateY(-1px);color:#fff;text-decoration:none}
.cm-fall-cta-ghost{background:transparent;border:1.5px solid rgba(255,255,255,.45);color:#fff;padding:14px 26px;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none;letter-spacing:.04em}
.cm-fall-cta-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff;text-decoration:none}

/* ══════════════════════════════════════════════════════
   CONCEPT D — Location page hero compression
   - Thin "Serving" band above hero (replaces orange .loc-bar)
   - 5-cell stats strip pinned to hero bottom (replaces white .trust-bar)
   - Below-hero zone reserved exclusively for the Now Enrolling card
   ══════════════════════════════════════════════════════ */
.cd-hero-serving{background:var(--navy);color:#fff;padding:9px 24px;font-size:11px;text-align:center;border-bottom:1px solid rgba(255,255,255,.06);font-weight:600;margin-top:64px}
.cd-hero-serving .cd-serving-label{color:var(--orange);font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-right:10px;font-size:10.5px}
.cd-hero-serving .n-city{color:#fff;font-weight:600;margin:0 4px;font-size:12.5px;letter-spacing:.02em}
@media(max-width:600px){.cd-hero-serving{padding:8px 16px;font-size:10.5px}.cd-hero-serving .n-city{font-size:11.5px;margin:0 3px}}
/* Hero no longer needs to reserve nav-clearance space — serving band now does it via margin-top */
body.loc-page .cd-hero-serving + .hero .hero-inner{padding-top:40px}
body.loc-page .cd-hero-serving + .hero .loc-info-strip{top:0}

/* Stats strip — pinned absolute to hero bottom edge */
.loc-page .hero{padding-bottom:0}
.loc-page .hero-inner{padding-bottom:140px}
@media(max-width:760px){.loc-page .hero-inner{padding-bottom:160px}}
.cd-hero-stats{position:absolute;left:0;right:0;bottom:0;padding:18px 24px;background:linear-gradient(0deg,rgba(5,14,26,.92) 0%,rgba(5,14,26,.55) 60%,transparent 100%);display:flex;justify-content:center;align-items:center;gap:0;z-index:3;flex-wrap:wrap}
.cd-stat{display:flex;align-items:center;gap:10px;padding:4px 22px;border-right:1px solid rgba(255,255,255,.14);min-width:0}
.cd-stat:last-child{border-right:0}
.cd-stat-ico{font-size:20px;line-height:1;opacity:.92;flex-shrink:0}
.cd-stat-text{min-width:0}
.cd-stat-text b{display:block;font-size:13px;font-weight:700;line-height:1.2;color:#fff;white-space:nowrap}
.cd-stat-text span{display:block;font-size:11px;color:#fff;margin-top:2px;line-height:1.3;white-space:nowrap}
.cd-stat-text a{color:#fff;text-decoration:none;transition:color .15s}
.cd-stat-text a:hover{color:var(--orange)}
.cd-stat-rating .ltb-gold{color:#ffc83d;font-weight:800}
@media(max-width:880px){.cd-hero-stats{padding:14px 12px;flex-wrap:wrap;gap:6px 0;justify-content:flex-start}.cd-stat{flex:0 0 50%;padding:4px 10px;border-right:0}.cd-stat-text b{font-size:12px}.cd-stat-text span{font-size:10.5px}}
@media(max-width:520px){.cd-stat{flex:1 0 100%}.cd-stat-rating{order:-1}}

/* LOCATION BRAND PROOF BRIDGE — sits between hero and seasonal/Problem section.
   Carries national footprint (30K+, 9, 6 states, 10+ years) for cold-entry Google
   traffic that lands here directly. Hero strip handles LOCAL proof; this handles
   BRAND proof. Continues hero navy with subtle grid texture + warm radial glow. */
.loc-brand-bridge{padding:36px 0 40px;background:var(--navy);position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.05)}
.loc-brand-bridge::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.loc-brand-bridge::after{content:'';position:absolute;top:-100px;right:-150px;width:480px;height:480px;background:radial-gradient(circle,rgba(240,78,31,.05) 0%,transparent 65%);pointer-events:none}
.loc-brand-bridge .container{position:relative;z-index:1;text-align:center;max-width:920px}
.lbb-eyebrow{font-size:11px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:#fff;display:block;margin-bottom:16px}
.lbb-stats{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;margin:0 auto;max-width:760px}
.lbb-stat{padding:0 32px;text-align:center;flex:0 0 auto}
.lbb-num{display:block;font-family:var(--disp);font-size:clamp(34px,4.2vw,46px);color:var(--orange);letter-spacing:1.5px;line-height:.95;margin-bottom:6px}
.lbb-num i{font-style:normal;font-size:.7em;color:rgb(240,78,31);font-weight:700;vertical-align:.18em;margin-left:1px}
.lbb-label{display:block;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#fff}
.lbb-divider{width:1px;height:36px;background:rgba(255,255,255,.13);flex:0 0 1px;align-self:center}
@media(max-width:760px){
  .loc-brand-bridge{padding:30px 0 34px}
  .lbb-stats{gap:8px 0;max-width:340px}
  .lbb-stat{flex:0 0 50%;padding:8px 12px}
  .lbb-divider{display:none}
}

/* LOCATION GO-DEEPER RAIL — exploration off-ramp for cold-entry parents who
   finished the page but aren't ready to book. Sits between FAQ and Social.
   Cards link to the four supporting pages: HIW, Programs, About, Mountain Ready. */
.loc-deeper{padding:72px 0 80px;background:var(--off);border-top:1px solid var(--border)}
.loc-deeper .container .reveal{margin-bottom:40px}
.ld-h2{font-family:var(--disp);font-size:clamp(34px,4.6vw,52px);color:var(--navy);letter-spacing:2px;line-height:.95}
.ld-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1080px;margin:0 auto}
.ld-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:28px 24px;text-decoration:none;color:inherit;display:flex;flex-direction:column;position:relative;transition:all .25s;min-height:184px}
.ld-card:hover{border-color:rgba(240,78,31,.4);transform:translateY(-3px);box-shadow:0 12px 32px rgba(7,23,43,.08)}
.ld-num{font-family:var(--disp);font-size:14px;font-weight:700;letter-spacing:2.5px;color:var(--orange);margin-bottom:18px}
.ld-name{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1.5px;text-transform:uppercase;line-height:1.05;margin-bottom:10px}
.ld-tag{font-size:13.5px;color:var(--text);line-height:1.6;flex:1}
.ld-arrow{display:inline-block;font-size:18px;color:var(--orange);margin-top:14px;align-self:flex-start;transition:transform .2s;font-weight:700}
.ld-card:hover .ld-arrow{transform:translateX(4px)}
@media(max-width:880px){
  .ld-grid{grid-template-columns:1fr 1fr;gap:14px}
  .ld-card{min-height:160px;padding:22px 20px}
}
@media(max-width:540px){
  .loc-deeper{padding:56px 0 64px}
  .ld-grid{grid-template-columns:1fr;gap:12px}
  .ld-card{min-height:auto;padding:20px 18px}
}

/* LOCATION SESSION FLOW — "what an hour at Shredder looks like"
   Sits between Programs and Progression. Answers cold-parent's micro question
   ("what does the actual hour look like?") that the macro Progression timeline
   doesn't cover. Vertical timeline w/ time stamps + dots + connecting line. */
.loc-session-flow{padding:80px 0;background:var(--off);border-top:1px solid var(--border)}
.lsf-header{text-align:center;max-width:560px;margin:0 auto 48px}
.lsf-h2{font-family:var(--disp);font-size:clamp(34px,4.6vw,52px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:14px}
.lsf-sub{font-size:15px;color:var(--gray);line-height:1.65;margin-top:14px}
.lsf-timeline{max-width:680px;margin:0 auto;padding:0}
.lsf-step{display:grid;grid-template-columns:64px 28px 1fr;gap:18px;align-items:start;position:relative}
.lsf-time{font-family:var(--disp);font-size:24px;color:var(--orange);letter-spacing:1.5px;line-height:1;padding-top:6px;text-align:right}
.lsf-axis{position:relative;height:100%;display:flex;justify-content:center;padding-top:8px}
.lsf-dot{width:14px;height:14px;border-radius:50%;background:#fff;border:2.5px solid var(--orange);box-shadow:0 0 0 4px rgba(240,78,31,.1);z-index:1;flex-shrink:0}
.lsf-step:not(:last-child) .lsf-axis::after{content:'';position:absolute;left:50%;top:24px;bottom:-12px;width:2px;background:linear-gradient(180deg,rgba(240,78,31,.4) 0%,rgba(240,78,31,.15) 100%);transform:translateX(-50%)}
.lsf-body{padding-top:2px;padding-bottom:32px}
.lsf-step:last-child .lsf-body{padding-bottom:0}
.lsf-label{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1.5px;text-transform:uppercase;line-height:1;margin-bottom:10px}
.lsf-text{font-size:15px;color:var(--text);line-height:1.7;max-width:460px}
@media(max-width:640px){
  .loc-session-flow{padding:60px 0}
  .lsf-step{grid-template-columns:48px 22px 1fr;gap:14px}
  .lsf-time{font-size:18px;padding-top:5px}
  .lsf-dot{width:12px;height:12px;border-width:2px}
  .lsf-step:not(:last-child) .lsf-axis::after{top:22px}
  .lsf-label{font-size:18px}
  .lsf-text{font-size:14px}
  .lsf-body{padding-bottom:24px}
}

/* Below-hero zone: lift the Now Enrolling block as a clean card on tinted bg.
   Orange-tinted shadow gives the card more presence — feels branded, not generic. */
body.loc-page #now-enrolling-block{display:block;background:#f4f6fa;padding:36px 16px 8px}
body.loc-page .ne-loc{max-width:1080px;margin:0 auto;background:#fff;border:1px solid #f1d3c3;border-radius:14px;box-shadow:0 18px 40px rgba(240,78,31,.18),0 6px 16px rgba(7,23,43,.06);overflow:hidden;background-image:none}
body.loc-page .ne-loc-inner{padding:18px 24px 22px}
body.loc-page .ne-loc-head{padding-bottom:14px;border-bottom:1px solid #eef2f6;margin-bottom:6px}

/* Tighten the row grid — left text stays left, CTA pushed to right edge of card.
   margin-right:auto on rowmain expands and pushes everything after it to the right. */
body.loc-page .ne-loc-row{display:flex;align-items:center;gap:14px;padding:14px 4px;border-top:1px dashed #c8d3e0;grid-template-columns:none}
body.loc-page .ne-loc-row:first-of-type{border-top:0}
body.loc-page .ne-loc-rowmain{display:flex;align-items:center;gap:14px;flex:0 1 auto;min-width:0;max-width:540px;margin-right:auto}
body.loc-page .ne-loc-row .ne-loc-weeks,
body.loc-page .ne-loc-row .ss-pill,
body.loc-page .ne-loc-row .ne-loc-cta{flex-shrink:0}

/* Mobile stacking — keep the row's header line tight */
@media(max-width:760px){
  body.loc-page .ne-loc-row{flex-wrap:wrap}
  body.loc-page .ne-loc-rowmain{flex:1 0 100%;max-width:none;margin-right:0}
  body.loc-page .ne-loc-row .ne-loc-weeks,
  body.loc-page .ne-loc-row .ss-pill,
  body.loc-page .ne-loc-row .ne-loc-cta{margin:0}
  body.loc-page .ne-loc-row .ne-loc-cta{margin-left:auto}
}

/* ══════════════════════════════════════════════════════
   LOCATION-PAGE seasonal cues — Concept D card variants
   Concept D's body.loc-page .ne-loc rule (above) wipes background-image,
   so per-season tints need to re-apply at equal-or-higher specificity.
   ══════════════════════════════════════════════════════ */

/* Camp + Pre-Camp — warm tint inside the Concept D card */
body.loc-page .ne-loc--camp{background:linear-gradient(180deg,#fff7ee 0%,#fff 70%);background-image:linear-gradient(180deg,#fff7ee 0%,#fff 70%);border-color:#f0c9a8;box-shadow:0 18px 40px rgba(240,78,31,.22),0 6px 16px rgba(7,23,43,.06)}
body.loc-page .ne-loc--camp .ne-loc-head{border-bottom-color:#f5e3d5}

/* Pre-Lesson — cool-blue tint */
body.loc-page[data-season="pre-lesson"] .ne-loc{background:linear-gradient(180deg,#f0f8ff 0%,#fff 70%);background-image:linear-gradient(180deg,#f0f8ff 0%,#fff 70%);border-color:#bcd9ee;box-shadow:0 18px 40px rgba(78,195,255,.18),0 6px 16px rgba(7,23,43,.06)}
body.loc-page[data-season="pre-lesson"] .ne-loc-head{border-bottom-color:#dceaf5}

/* Eyebrow strip — text comes from banner-config.js seasonal[season].strip (dashboard-editable),
   rendered as a real DOM element by now-enrolling.js. Per-season palette below. */
.ne-loc-strip{display:block;padding:11px 24px;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-align:center;background:linear-gradient(90deg,rgba(240,78,31,.15) 0%,rgba(240,78,31,.05) 100%);color:#c04518;border-bottom:1px solid rgba(240,78,31,.22)}
@media(max-width:600px){.ne-loc-strip{font-size:10px;letter-spacing:.1em;padding:10px 14px}}
body.loc-page[data-season="pre-camp"] .ne-loc-strip{background:linear-gradient(90deg,rgba(240,78,31,.14) 0%,rgba(240,78,31,.04) 100%);border-bottom-color:rgba(240,78,31,.22);color:#c04518}
body.loc-page[data-season="pre-lesson"] .ne-loc-strip{background:linear-gradient(90deg,rgba(78,195,255,.14) 0%,rgba(78,195,255,.04) 100%);border-bottom-color:rgba(78,195,255,.22);color:#2a8bd9}

/* ══════════════════════════════════════════════════════════════════
   SECONDARY CONTENT PAGES — SHARED UTILITIES
   ──────────────────────────────────────────────────────────────────
   Shared by: birthday-parties, gift-certificates, holiday-camps,
   open-gym, parents-night-out, summer-camps. Promoted out of each
   page's PAGE_STYLES block on Apr 29 to dedupe ~250 lines × 6 files.
   These class names do NOT collide with home/index styles —
   home uses .hero, .hero-inner, .hero-sub, .hero-btns directly,
   while .hero-eyebrow / .hero-stat-band / .hero-fact / .hero-grid
   / .hero-social-proof / .section-* / .proof-strip / .testimonial-* /
   .locations / .loc-card-* / .faq-grid / .faq-arrow / .final-cta /
   .book-* are exclusive to secondary pages.
   ══════════════════════════════════════════════════════════════════ */

/* Hero overlays (texture grid + eyebrow + facts row) */
.hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.025;background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);background-size:52px 52px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.hero-eyebrow span{font-size:var(--hero-eyebrow-size);font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--orange)}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';width:24px;height:2px;background:var(--orange);display:block}
.hero-facts{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.hero-fact{font-size:13px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px}
.hero-fact::after{content:'';width:4px;height:4px;border-radius:50%;background:var(--orange)}
.hero-fact:last-child::after{display:none}

/* Hero stat band (4-stat strip below hero copy) */
.hero-stat-band{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:0;padding:28px 32px;border-top:1px solid rgba(255,255,255,.07)}
.hero-stat{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;max-width:200px}
.hero-stat-num{font-family:var(--disp);font-size:26px;color:#fff;letter-spacing:1.5px;line-height:1}
.hero-stat-label{font-size:11px;font-weight:500;color:#fff;letter-spacing:.5px}
.hero-stat-div{width:1px;height:36px;background:rgba(255,255,255,.1);flex-shrink:0}
.hero-social-proof{position:relative;z-index:2;text-align:center;padding:0 32px 32px;font-size:13px;color:#fff;font-weight:500}
.hero-social-proof .stars{color:var(--gold);letter-spacing:1px}

/* Section utilities */
.section-eyebrow{font-size:var(--eyebrow-size);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);display:block;margin-bottom:12px}
.section-title{font-family:var(--disp);font-size:clamp(36px,5vw,56px);color:var(--navy);letter-spacing:2px;line-height:.95;margin-bottom:16px}
.section-sub{font-size:16px;color:var(--text);font-weight:400;line-height:1.65;max-width:560px}

/* Proof strip + testimonial card */
.proof-strip{background:var(--orange);padding:18px 32px;text-align:center}
.proof-strip-text{font-size:15px;font-weight:700;color:#fff;letter-spacing:.3px}
.testimonial-section{background:var(--white);padding:64px 0}
.testimonial-card{max-width:720px;margin:0 auto;background:var(--navy);border-radius:20px;padding:48px 48px 40px;text-align:center;position:relative;overflow:hidden}
.testimonial-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 100% at 50% 120%,rgba(240,78,31,.1) 0%,transparent 60%);pointer-events:none}
.testimonial-stars{color:var(--gold-deep);font-size:20px;letter-spacing:3px;margin-bottom:24px;position:relative;z-index:1}
.testimonial-quote{font-family:var(--serif);font-size:clamp(18px,2.2vw,24px);color:#fff;font-style:italic;line-height:1.7;margin-bottom:28px;position:relative;z-index:1}
.testimonial-author{display:flex;align-items:center;justify-content:center;gap:14px;position:relative;z-index:1}
.testimonial-avatar{width:44px;height:44px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:700;flex-shrink:0}
.testimonial-name{font-size:14px;color:#fff;font-weight:500}

/* Locations section header + helper text + location-card details (loc-card base lives in each page's PAGE_STYLES because it collides with home .loc-card) */
.locations{padding:var(--section-pad) 0;background:var(--off)}
.locations-header{text-align:center;margin-bottom:12px}
.locations-helper{text-align:center;font-size:14px;color:var(--gray);font-weight:500;margin-bottom:40px}

/* Locations section — warm-state hero card (shown when geo known, replaces the 9-card grid) */
.loc-warm-state[hidden],.loc-cold-state[hidden]{display:none}
.loc-warm-state{max-width:680px;margin:0 auto;padding:0 32px}
.loc-warm-eyebrow{display:block;text-align:center;font-family:var(--font-mono);font-size:var(--eyebrow-size);font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange);margin-bottom:18px}
.loc-warm-card{background:var(--white);border:1.5px solid var(--orange);border-radius:18px;padding:36px 36px 28px;box-shadow:0 12px 40px rgba(240,78,31,.12);text-align:center;position:relative}
.loc-warm-pin{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(240,78,31,.1);margin-bottom:14px;font-size:22px}
.loc-warm-city{font-family:var(--disp);font-size:34px;letter-spacing:1.5px;color:var(--navy);line-height:1;margin-bottom:4px}
.loc-warm-state-name{font-size:11px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:2px;margin-bottom:14px}
.loc-warm-meta{font-size:13.5px;color:var(--text);line-height:1.6;margin-bottom:24px}
.loc-warm-meta a{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(74,101,128,.4)}
.loc-warm-meta a:hover{color:var(--orange);border-bottom-color:var(--orange)}
.loc-warm-cta{margin-bottom:14px}
.loc-warm-change{display:inline-block;font-size:13px;color:var(--gray);text-decoration:underline;cursor:pointer;font-weight:500;text-underline-offset:3px}
.loc-warm-change:hover{color:var(--orange)}
@media(max-width:480px){
  .loc-warm-card{padding:28px 22px 22px}
  .loc-warm-city{font-size:28px}
  .loc-warm-cta{width:100%;justify-content:center}
}
.loc-card-city{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1.5px;line-height:1;margin-bottom:4px}
.loc-card-state{font-size:12px;color:var(--gray);font-weight:600;margin-bottom:12px}
.loc-card-address{font-size:13px;color:var(--text);line-height:1.5;margin-bottom:16px;flex:1}
.loc-card-btn{display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;padding:12px;border-radius:10px;font-size:13px;font-weight:700;background:var(--orange-cta);color:#fff;transition:all .18s;cursor:pointer;border:none;font-family:inherit;text-decoration:none}
.loc-card-btn:hover{background:var(--olt)}
.loc-card--popular{border-color:var(--orange);box-shadow:0 4px 20px rgba(240,78,31,.1)}
.loc-card--popular:hover{box-shadow:0 10px 32px rgba(240,78,31,.15)}
.loc-popular-badge{position:absolute;top:14px;right:14px;font-size:11px;font-weight:700;color:var(--orange);background:rgba(240,78,31,.08);border:1px solid rgba(240,78,31,.2);border-radius:20px;padding:3px 10px;letter-spacing:.3px}

/* FAQ grid + arrow (faq-item / faq-q / faq-a base lives in each page's PAGE_STYLES because it differs from home .faq-q) */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.faq-arrow{font-size:16px;color:var(--orange);flex-shrink:0;transition:transform .2s}

/* Final CTA section (navy footer-edge band with orange glow + grid texture) */
.final-cta{background:var(--navy);padding:var(--section-pad-lg) 0;text-align:center;position:relative;overflow:hidden}
.final-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 100%,rgba(240,78,31,.12) 0%,transparent 60%);pointer-events:none}
.final-cta-grid{position:absolute;inset:0;pointer-events:none;opacity:.025;background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);background-size:52px 52px}
.final-cta-inner{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:0 32px}
.final-cta-inner h2{font-family:var(--disp);font-size:clamp(36px,6vw,64px);color:#fff;letter-spacing:2px;line-height:.92;margin-bottom:16px}
.final-cta-inner p{font-size:16px;color:#fff;line-height:1.65;margin-bottom:32px}
.final-trust{margin-top:24px;font-size:13px;color:#fff;font-weight:500;letter-spacing:.3px}

/* Booking bottom-sheet (camps only — summer-camps + holiday-camps) */
.book-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(3px)}
.book-overlay.open{opacity:1;pointer-events:all}
.book-sheet{position:fixed;z-index:1001;background:var(--white);border-radius:20px 20px 0 0;bottom:0;left:0;right:0;max-height:85vh;overflow-y:auto;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .32s;box-shadow:0 -8px 40px rgba(0,0,0,.18);pointer-events:none}
.book-sheet.open{transform:translateY(0);pointer-events:all}
@media(min-width:640px){
  .book-sheet{bottom:auto;top:50%;left:50%;right:auto;transform:translate(-50%,-50%) scale(.95);opacity:0;border-radius:20px;max-width:540px;width:92%;max-height:80vh;pointer-events:none}
  .book-sheet.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:all}
}
.book-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:10px auto 0}
@media(min-width:640px){.book-sheet-handle{display:none}}
.book-sheet-header{padding:20px 24px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--white);border-radius:20px 20px 0 0;z-index:2}
.book-sheet-title{font-family:var(--disp);font-size:22px;color:var(--navy);letter-spacing:1.5px;line-height:1}
.book-sheet-product{font-size:13px;color:var(--orange);font-weight:700;margin-top:5px}
.book-sheet-close{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:50%;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--navy);cursor:pointer;transition:all .18s}
.book-sheet-close:hover{background:var(--border)}
.book-sheet-body{padding:16px 24px 28px}
.book-sheet-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:12px}
.book-loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:400px){.book-loc-grid{grid-template-columns:1fr}}
.book-loc{display:block;background:var(--off);border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;text-align:center;text-decoration:none;transition:all .18s}
.book-loc:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 4px 16px rgba(7,23,43,.08)}
.book-loc-city{font-family:var(--disp);font-size:16px;color:var(--navy);letter-spacing:1px;line-height:1;margin-bottom:2px}
.book-loc-state{font-size:11px;color:var(--gray);font-weight:600}
.book-geo{margin-bottom:16px}
.book-geo-inner{background:var(--sage-light);border:1.5px solid var(--sage);border-radius:14px;padding:22px 20px;text-align:center}
.book-geo-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--sage-dark);margin-bottom:8px}
.book-geo-city{font-family:var(--disp);font-size:24px;color:var(--navy);letter-spacing:1.5px;line-height:1;margin-bottom:4px}
.book-geo-dist{font-size:12px;color:var(--gray);margin-bottom:14px}
.book-geo-btn{display:block;width:100%;text-align:center;padding:14px;border-radius:10px;font-size:14px;font-weight:700;background:var(--orange-cta);color:#fff;transition:all .18s;cursor:pointer;text-decoration:none}
.book-geo-btn:hover{background:var(--olt)}
.book-sheet-divider{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:12px}

/* ═══════════════════════════
   BRAND SYSTEM A · TYPE WEIGHT RULES
═══════════════════════════ */

/* Display headings — Barlow Condensed default weights/spacing */
h1, .hero h1, .display{font-family:var(--font-display);font-weight:800;letter-spacing:1.5px}
h2, .display-md{font-family:var(--font-display);font-weight:700;letter-spacing:1px}

/* ─── CAVEAT USAGE RULES (System A) ─── */
.cursive,
.curs,
em.cursive,
em.curs {
  font-family: var(--font-accent);
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--orange);
}
/* Caveat sized relative to its parent display element */
h1 .cursive, h1 em.cursive,
h1 .curs, h1 em.curs { font-size: 0.62em; line-height: 1.05; display: block; margin-top: 6px; }
h2 .cursive, h2 em.cursive,
h2 .curs, h2 em.curs { font-size: 0.7em; line-height: 1.05; display: block; margin-top: 4px; }
.tagline .cursive, .hero-tag .cursive { font-size: 0.95em; }

/* ── Mobile overflow fixes (2026-05-22 audit) ──────────────────────────────
   Several pages used inline `grid-template-columns:1fr 1fr` 2-col rows with no
   class, so the responsive stylesheet couldn't reach them and they overflowed
   the viewport on phones. `.m-stack` is the !important mobile override (matches
   the existing `.pd-feats-grid` convention) and `.m-actions` stacks button rows. */
@media(max-width:960px){
  .m-stack{grid-template-columns:1fr!important;gap:48px!important}
}
@media(max-width:600px){
  .m-actions{flex-direction:column!important;width:100%}
  .m-actions .btn{width:100%;justify-content:center}
}
/* Mobile visual-polish pass (2026-05-22): 3-col offering compare → 1 col on
   phones; cap stacked hero photos so they don't dominate; single-column the
   booking-modal program cards so the overlaid pill/name/outcome stop colliding. */
@media(max-width:760px){
  .cmp-3col{grid-template-columns:1fr!important;gap:20px!important}
}
@media(max-width:960px){
  .m-hero-img{height:300px!important}
}
@media(max-width:480px){
  /* keep the 2x2 grid but drop the fixed aspect-ratio and give the cards a
     taller floor so the overlaid pill + name + outcome stop colliding */
  .bk-prog-card{aspect-ratio:auto!important;min-height:220px}
}

