@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
/* =====================================================================
   PERFORMANCE JIU-JITSU ACADEMY — v6 "Brand Board" (Slate + Athletic Green)
   Heading: Bebas Neue / Oswald · Body: Inter
   Palette: Carbon #101012 · Off-White #F6F5F2 · Ember #FF5A1F · Graphite #3A3A40
   Premium · aggressive · sleek · editorial. Alternating light/dark sections.
   Components read context variables and adapt to their section automatically.
   ===================================================================== */

:root{
  --carbon:#101012; --carbon-2:#17171b; --carbon-3:#202027;
  --paper:#f6f5f2; --paper-2:#ffffff;
  --ember:#57609b; --ember-2:#6aa06e; --ember-soft:rgba(87,96,155,.14);
  --graphite:#3a3a40;
  --slate:#57609b; --green:#6aa06e; /* brand board */

  /* LIGHT context (off-white sections) */
  --fg:#141417;
  --fg-dim:rgba(20,20,23,.64);
  --fg-faint:rgba(20,20,23,.45);
  --label:#57609b;
  --hair:rgba(16,16,18,.12);
  --hair-2:rgba(16,16,18,.22);
  --line-dark:rgba(16,16,18,.12);
  --panel:#ffffff;
  --panel-border:rgba(16,16,18,.10);
  --card-shadow:0 18px 44px rgba(16,16,18,.12);
  --input-bg:rgba(16,16,18,.035);
  --num-stroke:rgba(16,16,18,.16);

  --font-display:'Archivo Black','Arial Black','Helvetica Neue',sans-serif;
  --font-cond:'Oswald','Arial Narrow',sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --wrap:1280px;
  --gutter:clamp(20px,4.5vw,64px);
  --section-y:clamp(72px,8.5vw,136px);
  --nav-h:88px; --nav-h-shrink:62px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --radius:2px;
}

/* DARK contexts (carbon) flip the variables */
.section--dark,.hero,.page-hero,.reviews,.locate,.tagline,.site-footer,.mobile-menu,.megacta{
  --fg:#f6f5f2;
  --fg-dim:rgba(246,245,242,.72);
  --fg-faint:rgba(246,245,242,.42);
  --label:#57609b;
  --hair:rgba(246,245,242,.14);
  --hair-2:rgba(246,245,242,.24);
  --line-dark:rgba(246,245,242,.14);
  --panel:rgba(255,255,255,.045);
  --panel-border:rgba(255,255,255,.14);
  --card-shadow:none;
  --input-bg:rgba(255,255,255,.06);
  --num-stroke:rgba(87,96,155,.6);
  color:#f6f5f2;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--carbon);overflow-x:hidden}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font-body);color:var(--fg);background:var(--paper);line-height:1.72;font-size:17px;position:relative;max-width:100%;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;overflow-wrap:break-word}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px}
::selection{background:var(--ember);color:#fff}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:840px}
.section{position:relative;padding-block:var(--section-y);color:var(--fg);
  background-color:var(--paper);
  background-image:
    radial-gradient(60% 55% at 100% 0,var(--ember-soft),transparent 60%),
    linear-gradient(var(--hair) 1px,transparent 1px),
    linear-gradient(90deg,var(--hair) 1px,transparent 1px);
  background-size:100% 100%,84px 84px,84px 84px}
.section--dark{color:#f6f5f2;
  background-color:var(--carbon);
  background-image:
    radial-gradient(55% 60% at 0 0,rgba(87,96,155,.18),transparent 58%),
    radial-gradient(60% 60% at 100% 100%,rgba(58,58,64,.6),transparent 60%),
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,84px 84px,84px 84px}
.section--tight{padding-block:clamp(40px,5vw,76px)}
.center{text-align:center}
.stack>*+*{margin-top:1.1em}

/* ---------- type ---------- */
.display{font-family:var(--font-display);font-weight:400;line-height:.94;letter-spacing:-.015em;text-transform:uppercase}
h1,h2,h3,h4{font-family:var(--font-cond);font-weight:600;line-height:1.02;text-transform:uppercase;letter-spacing:.01em;color:var(--fg)}
.h1{font-size:clamp(2.7rem,7.5vw,6.4rem)}
.h2{font-size:clamp(2.1rem,4.8vw,3.9rem)}
.h3{font-size:clamp(1.35rem,2.4vw,2rem)}
p{max-width:64ch}
.lead{font-size:clamp(1.06rem,1.55vw,1.34rem);color:var(--fg-dim);font-weight:400;line-height:1.6}
.muted{color:var(--fg-dim)}
strong{font-weight:700;color:var(--fg)}
.eyebrow{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.24em;font-size:.76rem;color:var(--label)}

.kicker{display:inline-flex;align-items:center;gap:.7em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.26em;font-size:.78rem;color:var(--label);margin-bottom:1.1rem}
.kicker::before{content:"";width:30px;height:3px;background:var(--ember)}

.sec-num{display:block;font-family:var(--font-display);font-size:clamp(2.6rem,5.5vw,4.8rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--num-stroke);letter-spacing:.01em;margin-bottom:.5rem}

.section-head{max-width:62ch;margin-bottom:clamp(1.9rem,3.6vw,3.1rem)}
.section-head.center{margin-inline:auto}
.divider{height:3px;width:70px;background:var(--ember);margin:1.3rem 0}

/* ---------- buttons ---------- */
.btn{--bg:var(--ember);--btn-fg:#f6f5f2;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.92rem;line-height:1;
  padding:1.05em 1.95em;min-height:52px;background:var(--bg);color:var(--btn-fg);border:2px solid var(--bg);border-radius:var(--radius);
  transition:transform .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease);overflow:hidden;isolation:isolate;will-change:transform}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--carbon);transform:translateY(101%);transition:transform .4s var(--ease)}
.btn:hover{transform:translateY(-3px);color:#f6f5f2;border-color:var(--carbon);box-shadow:0 16px 38px rgba(87,96,155,.28)}
.btn:hover::after{transform:translateY(0)}
.btn--ghost{--bg:transparent;--btn-fg:var(--fg);border-color:var(--fg)}
.btn--ghost::after{background:var(--slate)}
.btn--ghost:hover{color:#fff;border-color:var(--slate)}
.btn--ink{--bg:var(--carbon);--btn-fg:#f6f5f2;border-color:var(--carbon)}
.btn--ink::after{background:var(--ember)}
.btn--ink:hover{color:#f6f5f2}
.btn--accent{--bg:transparent;--btn-fg:var(--green);border-color:var(--green)}
.btn--accent::after{background:var(--green)}
.btn--accent:hover{color:#fff;border-color:var(--green)}
.btn--lg{font-size:1.02rem;padding:1.2em 2.4em;min-height:60px}
.btn--block{display:flex;width:100%}

.link-sweep{position:relative;display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;color:var(--fg);padding-bottom:3px}
.link-sweep::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.link-sweep:hover::after{transform:scaleX(1)}
.link-sweep .arw{display:inline-block;color:var(--ember);transition:transform .35s var(--ease)}
.link-sweep:hover .arw{transform:translateX(6px)}
.pill{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--ember);border:1px solid var(--ember);padding:.5em .9em;border-radius:40px;background:var(--ember-soft)}

/* ---------- header / nav ---------- */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:125;height:var(--nav-h);display:flex;align-items:center;
  background:linear-gradient(180deg,rgba(16,16,18,.78),rgba(16,16,18,0));transition:height .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)}
.site-header.is-stuck{height:var(--nav-h-shrink);background:rgba(16,16,18,.9);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 1px 0 rgba(255,255,255,.1)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.brand{display:inline-flex;align-items:center;justify-content:center;background:#fff;padding:9px 16px;border-radius:6px;flex-shrink:0;line-height:0;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:padding .35s var(--ease)}
.brand__logo{height:46px;width:auto;display:block}
.is-stuck .brand{padding:6px 12px}
.is-stuck .brand__logo{height:38px}
.nav__menu{display:flex;align-items:center;gap:.2rem}
.nav__link{position:relative;display:inline-flex;align-items:center;gap:.35em;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:#f6f5f2;padding:.7em .8em;transition:color .25s var(--ease)}
.nav__link::after{content:"";position:absolute;left:.8em;right:.8em;bottom:.35em;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--slate),var(--green));transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__link:hover{color:#fff}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__item--has{position:relative}
.nav__caret{width:.55em;height:.55em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease)}
.nav__item--has:hover .nav__caret,.nav__item--has:focus-within .nav__caret{transform:rotate(-135deg) translateY(-2px)}
.nav__drop{position:absolute;top:100%;left:0;min-width:264px;background:var(--carbon-2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);border-top:0;border-radius:0 0 10px 10px;padding:.6rem .5rem .5rem;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.nav__drop::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--slate),var(--green))}
.nav__item--has:hover .nav__drop,.nav__item--has:focus-within .nav__drop{opacity:1;visibility:visible;transform:translateY(0)}
.nav__drop a{display:block;padding:.85em 1em;color:rgba(246,245,242,.72);font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;border-left:2px solid transparent;transition:.25s var(--ease)}
.nav__drop a:hover{color:#fff;background:rgba(255,255,255,.05);border-left-color:var(--ember)}
.nav__actions{display:flex;align-items:center;gap:1rem}
.nav__cta{background:linear-gradient(135deg,var(--slate),var(--green));border:0}
.nav__burger{display:none;width:46px;height:46px;flex-direction:column;justify-content:center;gap:6px;align-items:center;z-index:130}
.nav__burger span{display:block;width:26px;height:2px;background:#f6f5f2;transition:transform .35s var(--ease),opacity .25s var(--ease)}
.nav__burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav__burger.is-open span:nth-child(2){opacity:0}
.nav__burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:120;background:radial-gradient(85% 55% at 92% 0,rgba(87,96,155,.30),transparent 55%),radial-gradient(75% 45% at 0 100%,rgba(106,160,110,.18),transparent 55%),var(--carbon);padding:calc(var(--nav-h) + 6px) var(--gutter) 1.8rem;display:flex;flex-direction:column;clip-path:circle(0% at 100% 0);transition:clip-path .6s var(--ease);overflow-y:auto}
.mobile-menu.is-open{clip-path:circle(150% at 100% 0)}
.mobile-menu a:not(.btn){position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--font-display);text-transform:uppercase;color:#f6f5f2;font-size:clamp(1.25rem,4.8vw,1.8rem);line-height:1.05;letter-spacing:-.01em;padding:.58rem 0;border-bottom:1px solid rgba(255,255,255,.1);opacity:0;transform:translateY(24px);transition:padding-left .3s var(--ease),color .3s var(--ease)}
.mobile-menu a:not(.btn)::after{content:"→";flex:0 0 auto;font-family:var(--font-cond);font-weight:600;font-size:.82rem;color:var(--slate);transition:transform .3s var(--ease),color .3s var(--ease)}
.mobile-menu a:not(.btn):active{color:var(--green);padding-left:.45rem}
.mobile-menu a:not(.btn):active::after{transform:translateX(6px);color:var(--green)}
@media(hover:hover){.mobile-menu a:not(.btn):hover{color:#fff;padding-left:.45rem}.mobile-menu a:not(.btn):hover::after{transform:translateX(6px);color:var(--green)}}
.mobile-menu.is-open a:not(.btn){animation:mm .55s var(--ease) both}
.mobile-menu.is-open>a:not(.btn):nth-child(1){animation-delay:.05s}
.mobile-menu.is-open>a:not(.btn):nth-child(2){animation-delay:.10s}
.mobile-menu.is-open>a:not(.btn):nth-child(3){animation-delay:.15s}
.mobile-menu.is-open>a:not(.btn):nth-child(4){animation-delay:.20s}
.mobile-menu.is-open>a:not(.btn):nth-child(6){animation-delay:.32s}
.mobile-menu.is-open>a:not(.btn):nth-child(7){animation-delay:.37s}
.mobile-menu.is-open>a:not(.btn):nth-child(8){animation-delay:.42s}
.mobile-menu.is-open>a:not(.btn):nth-child(9){animation-delay:.47s}
.mobile-menu .sub{margin:.4rem 0 .55rem;padding-left:1rem;border-left:2px solid transparent;border-image:linear-gradient(180deg,var(--slate),var(--green)) 1}
.mobile-menu.is-open .sub a:nth-child(1){animation-delay:.24s}
.mobile-menu.is-open .sub a:nth-child(2){animation-delay:.27s}
.mobile-menu.is-open .sub a:nth-child(3){animation-delay:.30s}
.mobile-menu .sub a{font-family:var(--font-cond);font-weight:600;font-size:1rem;letter-spacing:.08em;color:rgba(246,245,242,.68);padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
.mobile-menu .sub a::after{content:none}
.mobile-menu .sub a::before{content:none}
.mobile-menu .sub a:last-child{border-bottom:0}
.mobile-menu__cta{margin-top:auto;padding-top:1.6rem;opacity:0;transform:translateY(24px)}
.mobile-menu.is-open .mobile-menu__cta{animation:mm .55s var(--ease) .52s both}
.mobile-menu__cta .btn{display:flex;align-items:center;justify-content:center;text-align:center}
@keyframes mm{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.mobile-menu{transition:none}.mobile-menu.is-open a:not(.btn),.mobile-menu.is-open .mobile-menu__cta{animation:none;opacity:1;transform:none}}

.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:var(--ember);pointer-events:none;transition:width .12s linear}
@media (prefers-reduced-motion:reduce){.scroll-progress{transition:none}}

/* ---------- kinetic ticker ---------- */
.ticker{overflow:hidden;border-block:1px solid var(--carbon);background:var(--ember);padding-block:.8rem}
.ticker__track{display:inline-flex;white-space:nowrap;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1rem,1.8vw,1.5rem);letter-spacing:.03em;color:#f6f5f2;animation:tick 40s linear infinite}
.ticker__track b{color:rgba(255,255,255,.5);padding-inline:.5em;font-weight:400}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none}}

/* ---------- hero ---------- */
.hero{position:relative;display:flex;flex-direction:column;min-height:100svh;color:#f6f5f2;overflow:hidden;isolation:isolate;background:var(--carbon);padding-top:calc(var(--nav-h) + clamp(1.5rem,5vh,3.5rem))}
.hero__bg{position:absolute;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(58% 60% at 86% 8%,rgba(87,96,155,.32),transparent 60%),radial-gradient(52% 55% at 2% 98%,rgba(106,160,110,.20),transparent 60%)}
.tech-grid{position:absolute;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:80px 80px;-webkit-mask:radial-gradient(130% 95% at 50% 0,#000 22%,transparent 80%);mask:radial-gradient(130% 95% at 50% 0,#000 22%,transparent 80%)}
.watermark{position:absolute;font-family:var(--font-display);text-transform:uppercase;color:transparent;-webkit-text-stroke:1px rgba(87,96,155,.16);font-size:clamp(4.5rem,14vw,12rem);line-height:.8;letter-spacing:-.03em;pointer-events:none;z-index:-2;white-space:nowrap;user-select:none}
.watermark--br{right:-1.5vw;bottom:-2.5vw}
.hero__inner{flex:1;width:100%;max-width:var(--wrap);margin-inline:auto;padding:0 var(--gutter);display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(1.8rem,4vw,4rem);align-items:center;padding-block:clamp(1rem,3vh,2.4rem) clamp(3rem,8vh,6.5rem)}
.hero__copy{max-width:none}
.hero__title{font-size:clamp(2.1rem,5.2vw,4.3rem);letter-spacing:-.02em;line-height:.96;text-shadow:0 8px 46px rgba(0,0,0,.5)}
.hero__accent{position:relative;display:inline-block;background:linear-gradient(92deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.hero__accent::after{content:"";position:absolute;left:0;right:0;bottom:.01em;height:.08em;border-radius:2px;background:linear-gradient(90deg,var(--slate),var(--green));transform:scaleX(0);transform-origin:left;animation:hero-underline .9s var(--ease) .55s forwards}
@keyframes hero-underline{to{transform:scaleX(1)}}
.hero__sub{margin-top:1.3rem;max-width:46ch;color:rgba(246,245,242,.78);font-size:clamp(1.04rem,1.4vw,1.28rem)}
.hero__cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.hero__stats{display:flex;flex-wrap:wrap;gap:clamp(1.3rem,3vw,2.6rem);margin-top:clamp(1.8rem,3.4vw,2.6rem);padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14)}
.hstat{display:flex;flex-direction:column;gap:.2rem}
.hstat__n{font-family:var(--font-display);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:.85;background:linear-gradient(92deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.hstat__l{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:rgba(246,245,242,.62)}
.hero__media{position:relative}
.hero__media::before{content:"";position:absolute;left:-15px;top:28px;bottom:28px;width:10px;z-index:1;background:linear-gradient(180deg,var(--slate),var(--green));border-radius:6px}
.hero__frame{position:relative;overflow:hidden;aspect-ratio:4/5;clip-path:polygon(0 0,100% 0,100% 90%,90% 100%,0 100%);box-shadow:0 30px 80px rgba(0,0,0,.55)}
.hero__frame img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;will-change:transform}
.hero__frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(16,16,18,.05),rgba(16,16,18,.5)),radial-gradient(70% 55% at 82% 8%,rgba(87,96,155,.28),transparent 60%)}
.hero__stamp{position:absolute;z-index:2;left:1rem;bottom:1.1rem;display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;color:#fff;padding:.5em 1em;border-radius:40px;background:linear-gradient(135deg,var(--slate),var(--green));box-shadow:0 8px 24px rgba(0,0,0,.4)}
.hero__stamp .stars{color:#fff;font-size:.9em}
.hero__strip{position:relative;z-index:2;overflow:hidden;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.06);background:rgba(16,16,18,.4)}
.hero__strip__track{display:inline-flex;width:max-content;white-space:nowrap;padding:.7rem 0;animation:hero-marquee 32s linear infinite;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;color:rgba(246,245,242,.52)}
.hero__strip__track b{color:var(--green);font-weight:600;margin:0 1.4rem}
@keyframes hero-marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.hero__strip__track{animation:none}.hero__accent::after{animation:none;transform:scaleX(1)}.hero__media img{transform:none!important}}

/* ---------- interior page hero ---------- */
.page-hero{position:relative;min-height:clamp(300px,44vh,440px);display:flex;align-items:flex-end;color:#f6f5f2;overflow:hidden;isolation:isolate;padding-top:calc(var(--nav-h) + clamp(1.4rem,4vw,3rem));background:var(--carbon)}
.page-hero__media{position:absolute;inset:0;z-index:-2}
.page-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.page-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,16,18,.94) 0%,rgba(16,16,18,.6) 52%,rgba(16,16,18,.32) 100%),linear-gradient(180deg,rgba(16,16,18,.45),rgba(16,16,18,.4) 40%,rgba(16,16,18,.92)),radial-gradient(55% 60% at 90% 10%,rgba(87,96,155,.26),transparent 60%)}
.page-hero--plain{background-color:var(--carbon);
  background-image:radial-gradient(60% 80% at 0 0,rgba(87,96,155,.2),transparent 55%),radial-gradient(60% 80% at 100% 100%,rgba(58,58,64,.55),transparent 60%),linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,80px 80px,80px 80px}
.page-hero__inner{width:100%;max-width:var(--wrap);margin-inline:auto;padding:0 var(--gutter) clamp(2.1rem,4.5vw,3.6rem)}
.page-hero__title{font-size:clamp(2rem,4.4vw,3.5rem);letter-spacing:-.01em;max-width:20ch;text-shadow:0 6px 30px rgba(0,0,0,.55)}
.page-hero .lead{max-width:46ch;margin-top:1rem;color:rgba(246,245,242,.9);text-shadow:0 2px 14px rgba(0,0,0,.45)}
.page-hero .kicker{color:#f6f5f2}
.page-hero .kicker::before{background:var(--green)}
.page-hero .kicker,.page-hero .breadcrumb{text-shadow:0 2px 12px rgba(0,0,0,.55)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.5em;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:rgba(246,245,242,.75);margin-bottom:1.1rem}
.breadcrumb a:hover{color:#fff}.breadcrumb .sep{color:var(--green)}.breadcrumb [aria-current]{color:#fff}

/* ---------- grids / splits ---------- */
.grid{display:grid;gap:clamp(1rem,1.8vw,1.7rem)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,4.5vw,4.8rem);align-items:center}
.split--wide-left{grid-template-columns:1.12fr .88fr}
.split:nth-of-type(even)>*:first-child{order:2}
.split--wide-left:nth-of-type(even)>*:first-child{order:0}

/* ---------- panels: benefits ---------- */
.benefit{position:relative;padding:1.9rem 1.7rem;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--card-shadow);overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease)}
.benefit::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.benefit:hover{transform:translateY(-6px);border-color:var(--hair-2)}
.benefit:hover::before{transform:scaleX(1)}
.benefit__num{font-family:var(--font-display);font-size:1.8rem;color:transparent;-webkit-text-stroke:1.2px var(--ember);line-height:1}
.benefit__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:1.16rem;margin:.7rem 0 .5rem;color:var(--fg)}
.benefit p{font-size:.96rem;color:var(--fg-dim)}

/* ---------- Why Train Here — editorial numbered list ---------- */
.benefits{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2rem,5vw,5.5rem);align-items:start}
.benefits__intro{position:sticky;top:calc(var(--nav-h) + 24px)}
.benefits__intro>*+*{margin-top:1.1rem}
.benefits__intro .btn{margin-top:1.7rem}
.benefits__list{list-style:none;border-top:1px solid var(--hair)}
.brow{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(1rem,2vw,1.8rem);padding:clamp(1.3rem,2.4vw,1.9rem) 0 clamp(1.3rem,2.4vw,1.9rem) 1.2rem;border-bottom:1px solid var(--hair);align-items:baseline;transition:padding-left .35s var(--ease)}
.brow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.brow:hover{padding-left:1.7rem}
.brow:hover::before{transform:scaleY(1)}
.brow__n{font-family:var(--font-display);font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--slate);transition:color .35s var(--ease)}
.brow:hover .brow__n{color:var(--slate)}
.brow__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.15rem,1.7vw,1.45rem);margin-bottom:.45rem;color:var(--fg)}
.brow__body p{color:var(--fg-dim);font-size:.98rem;max-width:52ch}
@media (max-width:900px){
  .benefits{grid-template-columns:1fr;gap:2rem}
  .benefits__intro{position:static}
}

/* ---------- program cards ---------- */
.pcard{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(370px,45vw,500px);padding:2rem;color:#f6f5f2;border-radius:var(--radius);overflow:hidden;isolation:isolate;border:1px solid rgba(0,0,0,.12)}
.pcard__img{position:absolute;inset:0;z-index:-2}
.pcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.pcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,16,18,.1) 0%,rgba(16,16,18,.35) 40%,rgba(16,16,18,.94) 100%)}
.pcard::before{content:"";position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);z-index:1}
.pcard:hover .pcard__img img{transform:scale(1.07)}
.pcard:hover::before{transform:scaleX(1)}
.pcard__tag{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--ember)}
.pcard__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:.98;margin:.35rem 0 .5rem}
.pcard p{font-size:.95rem;color:rgba(246,245,242,.78);margin-bottom:1rem}
.pcard__price{position:absolute;top:1.4rem;right:1.4rem;background:var(--ember);color:#fff;font-family:var(--font-cond);font-weight:700;font-size:.78rem;letter-spacing:.04em;padding:.5em .8em;text-transform:uppercase;border-radius:2px}
.pcard__price b{font-family:var(--font-display);font-weight:400;font-size:1rem}

/* ---------- Program cards v2 (image top + readable panel) ---------- */
.progcard{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--card-shadow);border-radius:var(--radius);overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease)}
.progcard:hover{transform:translateY(-6px);border-color:var(--hair-2)}
.progcard__media{position:relative;aspect-ratio:16/11;overflow:hidden}
.progcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.progcard:hover .progcard__media img{transform:scale(1.06)}
.progcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,16,18,.35))}
.progcard__price{position:absolute;top:1rem;right:1rem;background:var(--slate);color:#fff;font-family:var(--font-cond);font-weight:700;font-size:.78rem;letter-spacing:.04em;padding:.5em .8em;text-transform:uppercase;border-radius:2px}
.progcard__price b{font-family:var(--font-display);font-weight:400;font-size:1rem}
.progcard__body{display:flex;flex-direction:column;flex:1;padding:clamp(1.5rem,2.5vw,2.1rem);border-top:4px solid var(--slate)}
.progcard:nth-child(even) .progcard__body{border-top-color:var(--green)}
.progcard__tag{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--slate)}
.progcard:nth-child(even) .progcard__tag{color:var(--green)}
.progcard__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.5rem,2.1vw,1.9rem);line-height:.98;color:var(--fg);margin-top:.45rem}
.progcard__body p{color:var(--fg-dim);font-size:.97rem;margin-top:.7rem}
.progcard__body .btn{margin-top:1.4rem;width:100%}

/* ---------- Our Programs header + logo stamp ---------- */
.proghead{display:grid;grid-template-columns:1fr auto;gap:clamp(1.5rem,4vw,3rem);align-items:center;max-width:none}
.proghead>*+*{margin-top:0}
.proghead__text{max-width:60ch}
.proghead__text>*+*{margin-top:1.1rem}
.proghead__stamp{position:relative;padding:1rem 1.25rem .95rem;border:2px solid var(--hair-2);border-radius:6px;background:#fff;box-shadow:var(--card-shadow);transform:rotate(-4deg)}
.proghead__stamp::before{content:"";position:absolute;left:-2px;right:-2px;bottom:-2px;height:5px;background:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%);border-radius:0 0 6px 6px}
.proghead__stamp img{display:block;width:clamp(130px,15vw,195px);height:auto}
@media (max-width:820px){.proghead{grid-template-columns:1fr}.proghead__stamp{display:none}}

/* ---------- Horizontal program cards ---------- */
.hcards{display:grid;gap:clamp(1rem,2vw,1.6rem)}
.hcard{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--card-shadow);border-radius:var(--radius);overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease)}
.hcard:hover{transform:translateY(-4px);border-color:var(--hair-2)}
.hcard:hover .hcard__media img{transform:scale(1.05)}
.hcard__media{position:relative;overflow:hidden;min-height:220px}
.hcard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.hcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(16,16,18,.25))}
.hcard__price{position:absolute;top:1rem;left:1rem;z-index:1;background:var(--slate);color:#fff;font-family:var(--font-cond);font-weight:700;font-size:.78rem;letter-spacing:.04em;padding:.5em .8em;text-transform:uppercase;border-radius:2px}
.hcard__price b{font-family:var(--font-display);font-weight:400;font-size:1rem}
.hcard__body{padding:clamp(1.5rem,2.8vw,2.4rem);display:flex;flex-direction:column;justify-content:center;border-left:4px solid var(--slate)}
.hcard:nth-child(even) .hcard__body{border-left-color:var(--green)}
.hcard__tag{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--slate)}
.hcard:nth-child(even) .hcard__tag{color:var(--green)}
.hcard__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.55rem,2.4vw,2.1rem);line-height:.98;color:var(--fg);margin:.35rem 0 .6rem}
.hcard__body p{color:var(--fg-dim);font-size:.98rem;max-width:56ch}
.hcard__body .btn{margin-top:1.3rem;align-self:flex-start}
@media (max-width:720px){
  .hcard{grid-template-columns:1fr}
  .hcard__media{min-height:0;aspect-ratio:16/10}
  .hcard__body{border-left:0;border-top:4px solid var(--slate)}
  .hcard:nth-child(even) .hcard__body{border-top-color:var(--green)}
}

/* ---------- Choose Your Path (expanding panels) ---------- */
.paths{display:flex;gap:.9rem}
.path{position:relative;flex:1 1 0;min-width:0;min-height:clamp(380px,54vh,560px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.3rem,2vw,1.9rem);border-radius:16px;overflow:hidden;isolation:isolate;color:#f6f5f2;text-decoration:none;box-shadow:var(--card-shadow);transition:flex-grow .55s var(--ease)}
.path__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.path__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.path::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,16,18,.32) 0%,rgba(16,16,18,.42) 36%,rgba(16,16,18,.82) 60%,rgba(16,16,18,.96) 80%,rgba(16,16,18,1) 100%)}
.path::after{content:"";position:absolute;left:0;bottom:0;z-index:1;height:5px;width:100%;background:linear-gradient(90deg,var(--slate),var(--green));transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.path__n{position:absolute;top:1.1rem;left:1.3rem;font-family:var(--font-display);font-size:clamp(1.9rem,2.8vw,2.6rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.55)}
.path__price{position:absolute;top:1.2rem;right:1.2rem;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;color:#fff;background:linear-gradient(135deg,var(--slate),var(--green));padding:.45em .8em;border-radius:40px}
.path__price b{font-family:var(--font-display);font-weight:400;font-size:.95rem}
.path__tag{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.85)}
.path__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.55rem,2vw,2.15rem);line-height:.96;letter-spacing:-.01em;margin:.3rem 0 0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.95),0 2px 10px rgba(0,0,0,.9),0 6px 30px rgba(0,0,0,.7)}
.path__desc{max-height:0;opacity:0;overflow:hidden;color:rgba(255,255,255,.92);font-size:.95rem;line-height:1.5;text-shadow:0 1px 8px rgba(0,0,0,.7);transition:max-height .55s var(--ease),opacity .45s var(--ease),margin .55s var(--ease)}
.path__more{display:inline-flex;align-items:center;gap:.5em;margin-top:.85rem;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.path__more .arw{transition:transform .3s var(--ease)}
.path:hover,.path:focus-visible{flex-grow:2.5}
.path:hover .path__img img,.path:focus-within .path__img img{transform:scale(1.06)}
.path:hover .path__desc,.path:focus-within .path__desc{max-height:220px;opacity:1;margin-top:.8rem}
.path:hover::after,.path:focus-within::after{transform:scaleX(1)}
.path:hover .path__more .arw,.path:focus-within .path__more .arw{transform:translateX(4px)}
.path:focus-visible{outline:none;box-shadow:0 0 0 3px var(--slate)}
@media (max-width:820px){
  .paths{flex-direction:column}
  .path{flex:none;min-height:clamp(300px,42vh,380px)}
  .path__desc{max-height:none;opacity:1;margin-top:.8rem}
  .path::after{transform:scaleX(1)}
}
@media (prefers-reduced-motion:reduce){.path,.path__img img,.path__desc{transition:none}}

/* ---------- Program feature rows (alternating) ---------- */
.progrows{display:grid;gap:clamp(2.6rem,5vw,4.8rem)}
.prow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,4vw,4rem);align-items:center}
.prow:nth-child(even) .prow__media{order:2}
.prow__media{position:relative;border-radius:var(--radius);overflow:hidden;isolation:isolate}
.prow__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block;transition:transform .8s var(--ease)}
.prow:hover .prow__media img{transform:scale(1.05)}
.prow__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(16,16,18,.55))}
.prow__media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(var(--slate),var(--green));z-index:1}
.prow__index{position:absolute;left:.35rem;bottom:-.14em;z-index:1;font-family:var(--font-display);font-size:clamp(3.5rem,7.5vw,6.5rem);line-height:.7;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.6);pointer-events:none}
.prow__tag{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--slate)}
.prow:nth-child(even) .prow__tag{color:var(--green)}
.prow__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.8rem,3.2vw,2.7rem);line-height:.96;color:var(--fg);margin:.45rem 0 .8rem}
.prow__body>p{color:var(--fg-dim);max-width:48ch}
.prow__points{list-style:none;display:flex;flex-wrap:wrap;gap:.55rem .6rem;margin:1.2rem 0 1.5rem}
.prow__points li{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;border:1px solid var(--hair-2);border-left:3px solid var(--slate);padding:.5em .8em;color:var(--fg)}
.prow:nth-child(even) .prow__points li{border-left-color:var(--green)}

/* ---------- Two-column section intro ---------- */
.introsplit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,4.5rem);align-items:start}
.introsplit__head .kicker{margin-bottom:1rem}
.introsplit__head .h2{margin:0}
.introsplit__body>*+*{margin-top:1.1rem}
.introsplit__body .lead{color:var(--fg)}
@media (max-width:820px){.introsplit{grid-template-columns:1fr;gap:1.2rem}}

/* ---------- Philosophy — pillar band ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(1.8rem,3.5vw,2.8rem)}
.pillar{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--card-shadow);border-radius:var(--radius);border-top:4px solid var(--slate);padding:clamp(1.5rem,2.4vw,2.1rem);transition:transform .4s var(--ease),border-color .4s var(--ease)}
.pillar:nth-child(2){border-top-color:var(--green)}
.pillar:hover{transform:translateY(-6px)}
.pillar__mark{display:block;width:42px;height:6px;border-radius:1px;background:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%);margin-bottom:1.1rem}
.pillar:nth-child(2) .pillar__mark{background:linear-gradient(90deg,var(--green) 0 50%,var(--slate) 50% 100%)}
.pillar__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.15rem,1.6vw,1.35rem);color:var(--fg);margin-bottom:.55rem}
.pillar p{color:var(--fg-dim);font-size:.96rem}
.philosophy__cta{margin-top:clamp(1.8rem,3vw,2.4rem)}
/* philosophy header: title left, description right */
.philosophy .section-head{max-width:none;display:grid;grid-template-columns:1.1fr .9fr;column-gap:clamp(2rem,5vw,4.5rem);row-gap:.6rem;align-items:end}
.philosophy .section-head .kicker{grid-column:1;grid-row:1;margin-bottom:0}
.philosophy .section-head .h2{grid-column:1;grid-row:2;margin-top:0}
.philosophy .section-head .lead{grid-column:2;grid-row:2;margin-top:0;align-self:end;max-width:48ch}
@media (max-width:768px){
  .pillars{grid-template-columns:1fr}
  .philosophy .section-head{grid-template-columns:1fr;row-gap:.8rem}
  .philosophy .section-head .lead{grid-column:1;grid-row:auto;align-self:start;margin-top:.4rem}
}

/* ---------- Our Story panel ---------- */
.story__grid{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(2rem,4.5vw,4rem);align-items:center}
.story__panel{position:relative;border-radius:var(--radius);overflow:hidden;isolation:isolate;min-height:clamp(320px,40vw,460px)}
.story__panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.story__panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,18,.2),rgba(16,16,18,.86)),radial-gradient(70% 70% at 100% 0,rgba(87,96,155,.4),transparent 60%)}
.story__panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(var(--slate),var(--green));z-index:1}
.story__stamp{position:absolute;left:clamp(1.2rem,2.4vw,1.8rem);bottom:clamp(1.1rem,2.4vw,1.6rem);right:clamp(1.2rem,2.4vw,1.8rem);z-index:1;color:#fff}
.story__year{display:block;font-family:var(--font-display);font-size:clamp(3rem,5.5vw,4.6rem);line-height:.85;letter-spacing:-.01em;color:#fff}
.story__since{display:block;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:rgba(255,255,255,.78);margin-top:.5rem;max-width:30ch}
.story__cta{margin-top:1.7rem}
@media (max-width:900px){.story__grid{grid-template-columns:1fr;gap:1.8rem}.story__panel{min-height:300px}}

/* ---------- Facility & Community ---------- */
.facility__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,4.5vw,4rem);align-items:center}
.facility__media{position:relative;border-radius:var(--radius);overflow:hidden;isolation:isolate}
.facility__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block}
.facility__media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(var(--slate),var(--green));z-index:1}
.facility__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,16,18,.5))}
.facility__cap{position:absolute;left:1rem;bottom:1rem;z-index:1;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:#fff;background:rgba(16,16,18,.55);border:1px solid rgba(255,255,255,.2);padding:.5em .8em;border-radius:2px}
.facility__points{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem;margin:1.5rem 0 1.9rem}
.facility__points li{display:flex;gap:.75rem;align-items:flex-start}
.fmark{flex:0 0 auto;width:26px;height:4px;margin-top:.55rem;border-radius:1px;background:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%)}
.facility__points b{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.96rem;color:var(--fg)}
.facility__points span{font-size:.85rem;color:var(--fg-dim)}
.facility__cta{display:flex;flex-wrap:wrap;gap:1rem}
@media (max-width:900px){.facility__grid{grid-template-columns:1fr;gap:2rem}.facility__media{order:-1;max-width:540px}}
@media (max-width:520px){.facility__points{grid-template-columns:1fr}}

/* ---------- First Visit — step timeline ---------- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.4rem,2.6vw,2.4rem);margin-top:clamp(1.6rem,3vw,2.8rem)}
.step{position:relative;background:var(--panel);border:1px solid var(--panel-border);border-top:4px solid var(--slate);box-shadow:var(--card-shadow);border-radius:var(--radius);padding:clamp(1.5rem,2.4vw,2rem);transition:transform .4s var(--ease),border-color .4s var(--ease)}
.step:nth-child(even){border-top-color:var(--green)}
.step:hover{transform:translateY(-6px)}
.step__n{display:block;font-family:var(--font-display);font-size:clamp(2.3rem,3.6vw,3.1rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--slate);margin-bottom:.8rem}
.step:nth-child(even) .step__n{-webkit-text-stroke-color:var(--green)}
.step__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.1rem,1.5vw,1.28rem);color:var(--fg);margin-bottom:.5rem}
.step p{color:var(--fg-dim);font-size:.95rem}
.first__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2.4rem;margin-top:clamp(2.2rem,4vw,3.4rem);padding-top:clamp(1.6rem,3vw,2.2rem);border-top:1px solid var(--hair)}
.first__foot p{max-width:60ch;margin:0}
.first__foot .btn{flex-shrink:0}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);gap:1.8rem}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- The Academy — aggressive feature ---------- */
.academy__top{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4.5vw,4.5rem);align-items:center}
.academy__title{font-size:clamp(2.2rem,4.6vw,4rem);line-height:.94;color:#fff;margin-top:.3rem}
.academy__hl{background:linear-gradient(90deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.academy__cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.9rem}
.academy__media{position:relative;border-radius:var(--radius);overflow:hidden;isolation:isolate}
.academy__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 28%;display:block}
.academy__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(16,16,18,.72)),radial-gradient(60% 60% at 90% 8%,rgba(87,96,155,.32),transparent 60%)}
.academy__media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(var(--slate),var(--green));z-index:1}
.academy__stamp{position:absolute;left:1.1rem;bottom:1.1rem;z-index:1;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:#fff;background:rgba(16,16,18,.62);border:1px solid var(--hair-2);padding:.5em .85em;border-radius:2px}
.academy__areas{margin-top:clamp(2.4rem,5vw,4rem);padding-top:clamp(1.8rem,3vw,2.4rem);border-top:1px solid var(--hair)}
.chipwall{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 1.4rem}
.chipwall li{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:#fff;border:1px solid var(--hair-2);padding:.5em .95em;border-radius:40px;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.chipwall li:hover{background:var(--slate);border-color:var(--slate)}
.chipwall a{color:inherit;display:block}
.chipwall li:hover{background:var(--slate);border-color:var(--slate)}
.chipwall li:nth-child(3n):hover{background:var(--green);border-color:var(--green)}
@media (max-width:900px){
  .academy__top{grid-template-columns:1fr;gap:2rem}
  .academy__media{order:-1;max-width:520px}
}
@media (max-width:820px){
  .prow{grid-template-columns:1fr;gap:1.6rem}
  .prow:nth-child(even) .prow__media{order:0}
}

/* ---------- class cards ---------- */
.classcard{position:relative;background:var(--panel);box-shadow:var(--card-shadow);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1.9rem;border-top:4px solid var(--ember);transition:transform .4s var(--ease),border-color .4s var(--ease)}
.classcard:hover{transform:translateY(-6px);border-color:var(--hair-2)}
.classcard__age{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--ember)}
.classcard__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;font-size:1.35rem;line-height:1.05;margin:.4rem 0 .7rem;color:var(--fg)}
.classcard p{font-size:.95rem;color:var(--fg-dim)}
.classcard__meta{margin-top:1rem;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:var(--ember)}

/* ---------- checks ---------- */
.checks{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(1.4rem,3vw,2.6rem);margin-top:1.4rem;border-top:1px solid var(--hair)}
.checks li{display:flex;gap:.8rem;align-items:flex-start;padding:.9rem .1rem;border-bottom:1px solid var(--hair);font-size:.96rem;line-height:1.45;color:var(--fg)}
.checks li::before{content:"";flex:0 0 auto;width:1.15rem;height:1.15rem;margin-top:.12em;background:var(--slate);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/100% no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/100% no-repeat}
.checks li:nth-child(even)::before{background:var(--green)}
@media (max-width:620px){.checks{grid-template-columns:1fr;border-top:0}}

/* ---------- Reasons grid (Why Train Here) ---------- */
.reasons{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.4vw,2rem);margin-top:clamp(.5rem,1.5vw,1rem)}
.reason{position:relative;padding:clamp(1.4rem,2vw,1.9rem);background:var(--panel);border:1px solid var(--panel-border);border-top:2px solid var(--slate);border-radius:14px;box-shadow:var(--card-shadow)}
.reason:nth-child(even){border-top-color:var(--green)}
.reason__n{display:block;font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.7rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--slate);margin-bottom:.8rem}
.reason:nth-child(even) .reason__n{-webkit-text-stroke-color:var(--green)}
.reason p{color:var(--fg-dim);font-size:.96rem;line-height:1.45}
.reasons__cta{margin-top:clamp(1.8rem,3vw,2.6rem);display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
@media (max-width:820px){.reasons{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.reasons{grid-template-columns:1fr}}

/* ---------- stats (dark bands) ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.6vw,2.6rem);background:none;border:0;border-top:1px solid var(--hair-2);border-radius:0;padding-top:clamp(1.6rem,3vw,2.6rem)}
.stat{background:none;padding:0;text-align:left;position:relative}
.stat::before{content:"";display:block;width:34px;height:4px;background:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%);margin-bottom:1.1rem}
.stat__n{font-family:var(--font-display);font-size:clamp(3rem,5.6vw,4.6rem);line-height:.82;color:#fff}
.stat__n .u{color:var(--green);font-size:.44em;vertical-align:.6em;margin-left:.05em}
.stat__l{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:rgba(246,245,242,.62);margin-top:.9rem}

/* ---------- portrait ---------- */
.portrait{position:relative}
.portrait img{width:100%;object-fit:cover;border-radius:var(--radius);aspect-ratio:4/5}
.portrait__stripe{position:absolute;left:-14px;top:24px;bottom:24px;width:8px;background:var(--ember)}
.portrait__badge{position:absolute;right:-12px;bottom:24px;background:var(--ember);color:#fff;padding:1rem 1.2rem;max-width:210px;border-radius:2px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.portrait__badge b{font-family:var(--font-display);display:block;font-size:1.6rem;line-height:1;text-transform:uppercase}
.portrait__badge span{font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:rgba(255,255,255,.85)}

/* ---------- Instructor feature ---------- */
.prof__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.prof__name{font-size:clamp(2.8rem,7vw,5.8rem);line-height:.86;color:var(--fg);margin-top:.3rem}
.prof__name-lg{color:var(--slate)}
.cred{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem 1.6rem;margin-top:1.9rem;max-width:36rem}
.cred__item{display:flex;flex-direction:column;gap:.3rem;padding-left:.95rem;border-left:3px solid var(--green)}
.cred__item:nth-child(even){border-left-color:var(--slate)}
.cred__n{font-family:var(--font-display);font-size:clamp(1.7rem,2.7vw,2.3rem);line-height:.85;color:var(--fg)}
.cred__l{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--fg-dim)}
.prof__cta{margin-top:2rem}
.prof__media{position:relative}
.prof__media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.prof__media::before{content:"";position:absolute;left:-16px;top:28px;bottom:28px;width:10px;background:linear-gradient(var(--slate),var(--green));z-index:1}
.prof__badge{position:absolute;right:-14px;bottom:28px;background:var(--slate);color:#fff;padding:1rem 1.2rem;max-width:230px;border-radius:2px;box-shadow:0 22px 50px rgba(0,0,0,.32)}
.prof__badge b{font-family:var(--font-display);display:block;font-size:1.7rem;line-height:1;text-transform:uppercase}
.prof__badge span{font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:rgba(255,255,255,.85)}
@media (max-width:900px){
  .prof__grid{grid-template-columns:1fr;gap:2.4rem}
  .prof__media{order:-1;max-width:440px}
}
@media (max-width:620px){
  .cred{gap:1rem 1.2rem}
  .prof__media::before{display:none}
  .prof__badge{position:static;max-width:none;margin-top:1rem;display:inline-block}
}

/* ---------- tagline band ---------- */
.tagline{position:relative;isolation:isolate;text-align:center;padding-block:clamp(4rem,8.5vw,7.5rem);overflow:hidden;
  border-top:4px solid;border-bottom:4px solid;border-left:0;border-right:0;
  border-image:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%) 1;
  background-color:var(--carbon);
  background-image:
    radial-gradient(58% 120% at 14% 0,rgba(87,96,155,.34),transparent 55%),
    radial-gradient(58% 120% at 90% 100%,rgba(106,160,110,.24),transparent 55%),
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,70px 70px,70px 70px}
.tagline::before,.tagline::after{position:absolute;font-family:var(--font-display);line-height:.6;pointer-events:none;z-index:-1;font-size:clamp(6rem,16vw,14rem);user-select:none}
.tagline::before{content:"\201C";top:.02em;left:2.5%;color:rgba(87,96,155,.18)}
.tagline::after{content:"\201D";bottom:-.26em;right:2.5%;color:rgba(106,160,110,.18)}
.tagline .wrap{position:relative;z-index:1}
.tagline q{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.9rem,4.6vw,3.8rem);line-height:1.02;quotes:none;display:block;max-width:20ch;margin-inline:auto;color:#f6f5f2}
.tagline q .accent{color:var(--ember)}
.tagline__by{margin-top:1.5rem;font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.3em;font-size:.76rem;color:rgba(246,245,242,.45)}

/* ---------- reviews (dark band) ---------- */
.reviews{position:relative;padding-block:var(--section-y);overflow:hidden;color:#f6f5f2;border-top:4px solid;border-image:linear-gradient(90deg,var(--ember) 0 50%,var(--green) 50% 100%) 1;
  background-color:var(--carbon);
  background-image:radial-gradient(60% 70% at 0 0,rgba(87,96,155,.16),transparent 58%),radial-gradient(60% 65% at 100% 100%,rgba(58,58,64,.6),transparent 60%),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,84px 84px,84px 84px}
.reviews__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.1rem;max-width:var(--wrap);margin:0 auto clamp(1.8rem,3.5vw,2.6rem);padding-inline:var(--gutter)}
.g-badge{display:inline-flex;align-items:center;gap:.6em;border:1px solid var(--hair-2);border-radius:40px;padding:.5em 1.1em;font-family:var(--font-cond);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.86rem;color:#f6f5f2;background:rgba(255,255,255,.03)}
.g-badge .rating,.g-badge .stars{color:var(--ember)}
.marquee{position:relative;width:100%;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee__track{display:flex;gap:1.3rem;width:max-content;will-change:transform;cursor:grab}
.marquee__track.is-drag{cursor:grabbing}
.review{flex:0 0 clamp(280px,80vw,400px);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--card-shadow);border-top:3px solid var(--ember);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:.85rem}
.review__top{display:flex;align-items:center;gap:.85rem}
.review__ava{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:var(--font-cond);font-weight:700;color:#fff;background:var(--ember);text-transform:uppercase}
.review__name{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;color:var(--fg)}
.review__when{font-size:.75rem;color:var(--fg-faint)}
.review__stars{color:var(--ember);letter-spacing:.08em;font-size:.9rem}
.review:nth-child(even){border-top-color:var(--green)}
.review:nth-child(even) .review__ava{background:var(--green)}
.review__text{font-size:.94rem;color:var(--fg-dim);line-height:1.6;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.review--full .review__text{-webkit-line-clamp:unset;overflow:visible}
.review-wall{columns:3;column-gap:1.3rem}
.review-wall .review{display:inline-flex;width:100%;margin-bottom:1.3rem;break-inside:avoid}

/* ---------- location / map ---------- */
.locate{position:relative;color:#f6f5f2;border-top:4px solid;border-image:linear-gradient(90deg,var(--ember) 0 50%,var(--green) 50% 100%) 1;
  background-color:var(--carbon);
  background-image:
    radial-gradient(75% 95% at 0 0,rgba(87,96,155,.5),transparent 58%),
    radial-gradient(75% 95% at 100% 100%,rgba(106,160,110,.34),transparent 58%),
    linear-gradient(130deg,rgba(87,96,155,.22) 0%,transparent 45%,rgba(106,160,110,.16) 100%),
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,100% 100%,84px 84px,84px 84px}
.locate__grid{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(360px,40vw,480px)}
.locate__info{padding:clamp(2.2rem,4vw,3.6rem) var(--gutter);display:flex;flex-direction:column;justify-content:center;gap:1.2rem;max-width:640px;margin-left:auto;width:100%}
.locate__map{position:relative;min-height:340px;background:rgba(255,255,255,.03)}
.locate__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05) brightness(.85)}
.addr{font-style:normal;font-size:1.05rem;line-height:1.7;color:rgba(246,245,242,.76)}
.addr a{color:#fff}
.hwy{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.hwy span{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;border:1px solid var(--hair-2);padding:.4em .7em;border-radius:2px;color:rgba(246,245,242,.76)}

/* ---------- final CTA (ember band) ---------- */
.cta-final{position:relative;overflow:hidden;color:#f6f5f2;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(120deg,var(--slate),var(--green));
  background-size:84px 84px,84px 84px,100% 100%}
.cta-final .kicker{color:#f6f5f2}
.cta-final .kicker::before{background:var(--green)}
.cta-final__inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.cta-final .display{font-size:clamp(2.1rem,5vw,3.8rem);color:#fff}
.cta-final__phone{margin-top:1.3rem;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#f6f5f2}
.cta-final__phone a{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.01em;display:inline-block;margin-top:.2rem;color:#fff}
.cta-final__phone a:hover{color:var(--green)}
.cta-final p{color:rgba(246,245,242,.85)!important}

/* ---------- Cinematic final CTA (megacta) ---------- */
.megacta{position:relative;overflow:hidden;isolation:isolate;color:#f6f5f2;padding-block:clamp(3.8rem,8vw,8rem);scroll-margin-top:90px;border-top:4px solid;border-image:linear-gradient(90deg,var(--slate) 0 50%,var(--green) 50% 100%) 1}
.megacta__bg{position:absolute;inset:0;z-index:-3}
.megacta__bg img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.megacta::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,rgba(16,16,18,.84),rgba(16,16,18,.74)),radial-gradient(75% 100% at 100% 0,rgba(87,96,155,.5),transparent 60%),radial-gradient(70% 100% at 0 100%,rgba(106,160,110,.4),transparent 60%)}
.megacta__watermark{position:absolute;z-index:-1;right:-1.5vw;top:-3vw;font-family:var(--font-display);text-transform:uppercase;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.09);font-size:clamp(6rem,16vw,13rem);line-height:.8;pointer-events:none;user-select:none}
.megacta__inner{max-width:940px;margin-inline:auto;text-align:center}
.megacta__title{font-size:clamp(2.4rem,6vw,5rem);line-height:.92;color:#fff;margin-top:.4rem}
.megacta__hl{background:linear-gradient(90deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.megacta__sub{margin:1.3rem auto 0;max-width:56ch;color:rgba(246,245,242,.82);font-size:clamp(1.08rem,1.6vw,1.35rem)}
.megacta__actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2.2rem}

/* ---------- trial form ---------- */
.trial-card{background:var(--panel);color:var(--fg);padding:clamp(1.6rem,2.4vw,2.3rem);border-radius:var(--radius);border:1px solid var(--panel-border);border-top:4px solid var(--ember);box-shadow:var(--card-shadow)}
.trial-card--dark{background:var(--carbon);color:#f6f5f2;border-color:rgba(255,255,255,.16);border-top-color:var(--ember);box-shadow:none;
  --fg:#f6f5f2;--fg-dim:rgba(246,245,242,.7);--fg-faint:rgba(246,245,242,.58);--input-bg:rgba(255,255,255,.08);--panel-border:rgba(255,255,255,.18)}
.trial-card__title{font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:1.5rem;line-height:1;margin-bottom:.35rem;color:var(--fg)}
.trial-card__note{font-size:.9rem;color:var(--fg-dim);margin-bottom:1.3rem}
.field{position:relative;margin-bottom:.9rem}
.field label{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;margin-bottom:.4rem;color:var(--ember)}
.field input{width:100%;padding:.85em 1em;border:1.5px solid var(--panel-border);border-radius:var(--radius);background:var(--input-bg);color:var(--fg);transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.field input::placeholder{color:var(--fg-faint)}
.field input:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft)}
.field.has-error input{border-color:var(--ember)}
.field .err{display:none;color:var(--ember);font-size:.78rem;margin-top:.35rem;font-weight:600}
.field.has-error .err{display:block}
.form-status{margin-top:.5rem;font-size:.9rem;font-weight:600;color:var(--ember);min-height:1.2em}

/* CTA band form sits on ember → make it a carbon panel */
.cta-final .trial-card{background:var(--carbon);color:#f6f5f2;border-color:rgba(0,0,0,.3);border-top-color:#141417;
  --fg:#f6f5f2;--fg-dim:rgba(246,245,242,.7);--fg-faint:rgba(246,245,242,.58);--input-bg:rgba(255,255,255,.08);--panel-border:rgba(255,255,255,.18)}
.cta-final .trial-card .field label{color:var(--ember)}

/* ---------- Contact page redesign ---------- */
.contact2{position:relative;overflow:hidden}
.contact2::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(58% 78% at 10% -5%, rgba(87,96,155,.12), transparent 60%),
  radial-gradient(52% 70% at 105% 108%, rgba(106,160,110,.12), transparent 55%)}
.contact2 .wrap{position:relative}
.contact2__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,4.5vw,4rem);align-items:start}
.contact2__lead{max-width:52ch}
.txt-grad{background:linear-gradient(92deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.contact-methods{display:grid;gap:.85rem;margin-top:clamp(1.6rem,3vw,2.4rem)}
.cmethod{display:flex;gap:1rem;align-items:center;padding:.95rem 1.1rem;border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);box-shadow:var(--card-shadow);transition:transform .3s var(--ease),border-color .3s var(--ease)}
.cmethod:hover{transform:translateY(-3px);border-color:var(--hair-2)}
.cmethod__ic{flex:0 0 auto;width:2.7rem;height:2.7rem;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--slate),var(--green));color:#fff}
.cmethod__ic svg{width:1.25rem;height:1.25rem}
.cmethod__l{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;color:var(--fg-dim)}
.cmethod__v{display:block;margin-top:.12rem;font-size:1.02rem;color:var(--fg);font-weight:500;word-break:break-word}
.cmethod a.cmethod__v:hover{color:var(--slate)}
.cmethod--phone .cmethod__v{font-family:var(--font-display);font-weight:400;font-size:clamp(1.3rem,2.4vw,1.7rem);letter-spacing:-.005em;line-height:1;color:var(--slate)}
.trial-card--bar{position:relative;border-top:0;overflow:hidden}
.trial-card--bar::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--slate),var(--green))}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}
.field select{width:100%;padding:.85em 3.1em .85em 1em;border:1.5px solid var(--panel-border);border-radius:var(--radius);background:var(--input-bg);color:var(--fg);font:inherit;font-weight:500;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.field select:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft)}
.field.has-error select{border-color:var(--ember)}
.field select:required:invalid{color:var(--fg-dim)}
.field select option{color:#141417;background:#fff;font-weight:500}
.field select option[value=""]{color:#8a8a90}
.select-wrap{position:relative;display:block}
.select-wrap::before{content:"";position:absolute;right:.5em;top:50%;transform:translateY(-50%);width:1.95em;height:1.95em;border-radius:9px;background:linear-gradient(135deg,var(--slate),var(--green));pointer-events:none;transition:filter .25s var(--ease)}
.select-wrap::after{content:"";position:absolute;right:1.2em;top:50%;width:.48em;height:.48em;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-72%) rotate(45deg);pointer-events:none}
.select-wrap:hover::before{filter:brightness(1.08)}
@media (max-width:900px){.contact2__grid{grid-template-columns:1fr;gap:clamp(2rem,6vw,3rem)}}
@media (max-width:430px){.field-row{grid-template-columns:1fr}}

/* ---------- "Do Your Homework" split ---------- */
.homework{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.homework__aside .lead{margin-top:1.2rem}
.homework__cta{margin-top:clamp(1.6rem,3vw,2.2rem)}
.hw-list{display:grid;gap:.85rem}
.hw-point{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.25rem;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.hw-point:hover{transform:translateX(3px);border-color:var(--hair-2)}
.hw-point__ic{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--slate),var(--green));color:#fff}
.hw-point__ic svg{width:1.2rem;height:1.2rem}
.hw-point__t{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.95rem;line-height:1.15;color:var(--fg)}
.hw-point__d{display:block;margin-top:.28rem;font-size:.92rem;line-height:1.45;color:var(--fg-dim)}
@media (max-width:860px){.homework{grid-template-columns:1fr;gap:clamp(1.8rem,6vw,2.6rem)}}

/* ---------- schedule (light board) ---------- */
.legend{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;margin-bottom:2rem}
.legend span{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--fg-dim)}
.dot{width:14px;height:14px;border-radius:3px;display:inline-block}
.dot--k58{background:var(--green)}.dot--k913{background:var(--slate)}
.dot--kn{background:transparent;border:2px solid var(--ember)}
.dot--gi{background:transparent;border:2px solid var(--graphite)}
.dot--nogi{background:transparent;border:2px dashed var(--graphite)}
.dot--fund{background:linear-gradient(90deg,var(--ember) 50%,var(--green) 50%)}
.dot--open{background:var(--graphite);opacity:.55}
.sched-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--panel-border);border-radius:var(--radius)}
.sched{width:100%;border-collapse:collapse;min-width:820px}
.sched th,.sched td{border:1px solid var(--panel-border);padding:.5rem;vertical-align:top;text-align:left}
.sched thead th{background:var(--carbon);color:#f6f5f2;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;text-align:center}
.sched tbody th{background:rgba(16,16,18,.04);font-family:var(--font-display);font-weight:400;font-size:1.05rem;text-transform:uppercase;color:var(--ember);white-space:nowrap;width:118px}
.cls{display:block;border-radius:2px;padding:.5em .6em;margin:.2rem 0;font-size:.82rem;line-height:1.25;border-left:4px solid var(--ember);color:var(--fg);background:var(--ember-soft)}
.cls b{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:.8rem}
.cls small{font-size:.72rem;color:var(--fg-dim)}
.cls--k58{background:rgba(106,160,110,.14);border-left-color:var(--green)}
.cls--k913{background:rgba(58,58,64,.1);border-left-color:var(--graphite)}
.cls--kn{background:rgba(106,160,110,.14);border-left-color:var(--green);border-left-style:dashed}
.cls--gi{background:rgba(58,58,64,.08);border-left-color:var(--graphite)}
.cls--nogi{background:rgba(58,58,64,.05);border-left-color:var(--graphite);border-left-style:dashed}
.cls--fund{background:var(--ember-soft);border-left-color:var(--ember)}
.cls--open{background:rgba(58,58,64,.06);border-left-color:var(--graphite)}

/* ---------- Weekly agenda board (schedule) ---------- */
.dot--kids{background:var(--green)}
.dot--adult{background:var(--slate)}
.dot--allopen{background:linear-gradient(180deg,var(--slate) 50%,var(--green) 50%)}
.sched-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:clamp(1.4rem,2.6vw,2rem)}
.filter-chip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--fg-dim);background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;padding:.55rem 1.05rem;cursor:pointer;transition:color .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.filter-chip:hover{border-color:var(--hair-2);color:var(--fg)}
.filter-chip.is-active{background:var(--slate);border-color:var(--slate);color:#fff}
.filter-chip.is-active .dot{box-shadow:0 0 0 2px rgba(255,255,255,.28)}
.slot--hide{display:none!important}
.daycard--hide{display:none!important}
.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:clamp(1rem,1.8vw,1.5rem)}
.daycard{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;overflow:hidden;box-shadow:var(--card-shadow)}
.daycard__head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.95rem 1.15rem;background:var(--carbon);color:#f6f5f2}
.daycard__day{font-family:var(--font-display);font-weight:400;font-size:clamp(1.2rem,1.9vw,1.55rem);letter-spacing:-.01em;line-height:1}
.daycard__n{font-family:var(--font-cond);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,245,242,.55);white-space:nowrap}
.daycard__body{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.05rem 1.15rem;flex:1}
.slot{position:relative;padding:.65rem .8rem .65rem 1.05rem;border-radius:10px;background:var(--input-bg);border:1px solid var(--hair);transition:border-color .3s var(--ease),transform .3s var(--ease)}
.slot::before{content:"";position:absolute;left:.5rem;top:.7rem;bottom:.7rem;width:4px;border-radius:4px;background:var(--slate)}
.slot--kids::before{background:var(--green)}
.slot--adult::before{background:var(--slate)}
.slot--allopen::before{background:linear-gradient(180deg,var(--slate) 50%,var(--green) 50%)}
.slot:hover{border-color:var(--hair-2);transform:translateX(2px)}
.slot__name{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;line-height:1.22;color:var(--fg)}
.slot__time{display:block;margin-top:.32rem;font-size:.78rem;color:var(--fg-dim);font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media (max-width:560px){.daycard__head{padding:.85rem 1rem}}

/* ---------- blog ---------- */
.post{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--card-shadow);border-radius:var(--radius);overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease)}
.post:hover{transform:translateY(-6px);border-color:var(--hair-2)}
.post__img{position:relative;aspect-ratio:16/10;overflow:hidden;background:rgba(16,16,18,.06)}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.post:hover .post__img img{transform:scale(1.05)}
.post__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,16,18,.4))}
.post__cat{position:absolute;left:1rem;top:1rem;z-index:1;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;background:var(--ember);color:#fff;padding:.4em .7em;border-radius:2px}
.post__body{padding:1.4rem 1.4rem 1.7rem;display:flex;flex-direction:column;flex:1}
.post__date{font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--ember)}
.post__t{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;font-size:1.18rem;line-height:1.1;margin:.5rem 0 .7rem;color:var(--fg)}
.post p{font-size:.92rem;color:var(--fg-dim);flex:1}
.post__more{margin-top:1rem}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:.9rem}
.faq__item{position:relative;border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);box-shadow:var(--card-shadow);overflow:hidden;transition:border-color .3s var(--ease),background .35s var(--ease)}
.faq__item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--slate),var(--green));transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.faq__item:hover{border-color:var(--hair-2)}
.faq__item.is-open{border-color:var(--hair-2);background:linear-gradient(180deg,rgba(87,96,155,.05),rgba(106,160,110,.05))}
.faq__item.is-open::before{transform:scaleY(1)}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;padding:1.15rem 1.35rem;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:1.05rem;color:var(--fg);cursor:pointer;transition:color .3s var(--ease)}
.faq__item.is-open .faq__q{color:var(--slate)}
.faq__q .pm{position:relative;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:linear-gradient(135deg,var(--slate),var(--green));box-shadow:0 4px 14px rgba(87,96,155,.35);transition:transform .35s var(--ease)}
.faq__q .pm::before,.faq__q .pm::after{content:"";position:absolute;background:#fff;inset:0;margin:auto;border-radius:2px}
.faq__q .pm::before{width:13px;height:2px}
.faq__q .pm::after{width:2px;height:13px;transition:transform .35s var(--ease)}
.faq__item:hover .pm{transform:scale(1.08)}
.faq__item.is-open .pm::after{transform:scaleY(0)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.faq__a p{padding:0 1.35rem 1.3rem;color:var(--fg-dim);max-width:75ch}

/* ---------- prose ---------- */
.prose p{margin-bottom:1.1rem;color:var(--fg-dim)}
.prose h2{margin:2.2rem 0 1rem}
.prose h3{margin:1.6rem 0 .7rem;font-size:1.25rem}
.prose a{color:var(--ember)}
.prose a.btn{color:var(--btn-fg)}
.prose a.btn:hover{color:#0b0b0d}
.prose a.btn--ghost{color:var(--fg)}
.prose a.btn--ghost:hover{color:#f6f5f2}

/* ---------- Blog index (custom) ---------- */
.blog-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.blog-search{position:relative;flex:1 1 220px;max-width:340px;order:2}
.blog-search input{width:100%;padding:.72em 1em .72em 2.5em;border:1.5px solid var(--panel-border);border-radius:999px;background:var(--input-bg);color:var(--fg);font-family:var(--font-cond);font-weight:500;letter-spacing:.03em}
.blog-search input::placeholder{color:var(--fg-faint)}
.blog-search input:focus{outline:none;border-color:var(--slate);box-shadow:0 0 0 3px var(--ember-soft)}
.blog-search svg{position:absolute;left:.95em;top:50%;transform:translateY(-50%);width:1.05em;height:1.05em;color:var(--fg-dim);pointer-events:none}
.blogfeat{position:relative;display:grid;grid-template-columns:1.12fr .88fr;background:var(--panel);border:1px solid var(--panel-border);border-radius:18px;overflow:hidden;box-shadow:var(--card-shadow);margin-bottom:clamp(2rem,4vw,3.4rem)}
.blogfeat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;z-index:2;background:linear-gradient(180deg,var(--slate),var(--green))}
.blogfeat__media{position:relative;min-height:clamp(240px,32vw,400px);overflow:hidden}
.blogfeat__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.blogfeat__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 52%,rgba(16,16,18,.22))}
.blogfeat__badge{position:absolute;left:1.1rem;top:1.1rem;z-index:1;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:#fff;padding:.5em 1em;border-radius:40px;background:linear-gradient(135deg,var(--slate),var(--green))}
.blogfeat__body{padding:clamp(1.6rem,3vw,2.8rem);display:flex;flex-direction:column;justify-content:center}
.blogfeat__kick{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--slate)}
.blogfeat__t{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.65rem,3vw,2.5rem);line-height:1;letter-spacing:-.01em;color:var(--fg);margin:.55rem 0 .7rem}
.blogfeat__ex{color:var(--fg-dim);font-size:1.02rem;max-width:54ch}
.blogfeat__meta{margin-top:1rem;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--fg-dim)}
.blogfeat__cta{margin-top:1.5rem}
@media (max-width:820px){.blogfeat{grid-template-columns:1fr}.blogfeat__media{min-height:0;aspect-ratio:16/9}}
.post__cat{background:linear-gradient(135deg,var(--slate),var(--green))}
.post--hide{display:none!important}
.blog-empty{margin-top:1.4rem;color:var(--fg-dim);display:none}
.blog-empty.is-on{display:block}

/* ---------- Article page ---------- */
.artmeta{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .9rem;margin-top:1.1rem;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:rgba(246,245,242,.82)}
.artmeta .dot{width:5px;height:5px;border-radius:50%;background:var(--green)}
.prose ul,.prose ol{margin:0 0 1.2rem 1.3rem;color:var(--fg-dim)}
.prose li{margin-bottom:.5rem;line-height:1.62}
.prose ul li::marker{color:var(--slate)}
.prose ol li::marker{color:var(--slate);font-weight:700}
.prose strong{color:var(--fg);font-weight:600}
.callout{background:linear-gradient(180deg,rgba(87,96,155,.07),rgba(106,160,110,.07));border:1px solid var(--panel-border);border-left:4px solid var(--slate);border-radius:12px;padding:clamp(1.1rem,2vw,1.5rem) clamp(1.2rem,2.2vw,1.7rem);margin:1.7rem 0}
.callout__t{font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--slate);margin-bottom:.6rem}
.callout ul{margin:0 0 0 1.1rem}
.callout li{margin-bottom:.4rem;color:var(--fg-dim)}
.prose blockquote{border-left:4px solid transparent;border-image:linear-gradient(180deg,var(--slate),var(--green)) 1;padding:.3rem 0 .3rem 1.3rem;margin:1.7rem 0;font-family:var(--font-cond);font-weight:500;font-size:1.18rem;line-height:1.4;color:var(--fg)}
.artcta{margin:clamp(2rem,4vw,3rem) 0 0;padding:clamp(1.6rem,3vw,2.4rem);border-radius:16px;background:linear-gradient(135deg,rgba(87,96,155,.12),rgba(106,160,110,.12));border:1px solid var(--panel-border);text-align:center}
.artcta h3{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.01em;color:var(--fg);margin-bottom:.5rem}
.artcta p{color:var(--fg-dim);max-width:48ch;margin:0 auto 1.3rem}
.artcta .btn+.btn{margin-left:.6rem}

/* ---------- footer ---------- */
.site-footer{position:relative;background:var(--carbon);border-top:1px solid rgba(255,255,255,.12)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(2rem,4vw,3rem);padding-block:clamp(2.8rem,5vw,4.4rem)}
.footer__brand .brand{margin-bottom:1.2rem}
.footer__tag{color:rgba(246,245,242,.55);max-width:34ch;font-size:.96rem}
.footer h4{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.82rem;color:var(--ember);margin-bottom:1.1rem}
.footer__links li+li{margin-top:.6rem}
.footer__links a{color:rgba(246,245,242,.55);font-size:.95rem;transition:color .25s var(--ease)}
.footer__links a:hover{color:#fff}
.footer__contact{font-style:normal;color:rgba(246,245,242,.55);font-size:.95rem;line-height:1.9}
.footer__contact a:hover{color:#fff}
.social{display:flex;gap:.7rem;margin-top:.3rem}
.social a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--hair-2);border-radius:2px;color:#f6f5f2;transition:.25s var(--ease)}
.social a:hover{background:var(--ember);border-color:var(--ember);color:#f6f5f2;transform:translateY(-3px)}
.social svg{width:20px;height:20px}
.footer__bar{border-top:1px solid rgba(255,255,255,.12);padding-block:1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;justify-content:space-between;align-items:center}
.footer__bar,.footer__bar a{font-size:.84rem;color:rgba(246,245,242,.4)}
.footer__bar a:hover{color:#fff}

/* ---------- reveals ---------- */
/* Reveal is a pure-CSS fade-in that ALWAYS ends visible — no JS/observer
   dependency, so content can never get stuck hidden on any page. */
[data-reveal]{animation:reveal-fade .8s var(--ease-out) both}
[data-reveal-group]>*{animation:reveal-fade .7s var(--ease-out) both}
[data-reveal-group]>*:nth-child(2){animation-delay:.07s}
[data-reveal-group]>*:nth-child(3){animation-delay:.14s}
[data-reveal-group]>*:nth-child(4){animation-delay:.21s}
[data-reveal-group]>*:nth-child(5){animation-delay:.28s}
[data-reveal-group]>*:nth-child(6){animation-delay:.35s}
[data-reveal].is-in,[data-reveal-group].is-in>*{opacity:1;transform:none}
@keyframes reveal-fade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){[data-reveal],[data-reveal-group]>*{animation:none}}

/* ---------- misc ---------- */
.frame{position:relative}
.frame::before{content:"";position:absolute;top:1.1rem;left:1.1rem;width:34px;height:34px;border-top:2px solid var(--ember);border-left:2px solid var(--ember);pointer-events:none;z-index:2}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--ember);color:#fff;padding:.8em 1.2em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.skip-link:focus{left:8px;top:8px}
.anchor{scroll-margin-top:100px}

/* ---------- vertical rhythm / section spacing ---------- */
.section-head>*+*{margin-top:1.1rem}
p + p{margin-top:1.05em}
.trial-card p + p{margin-top:0}
:is(.section,.page-hero__inner,.locate__info) :is(h2,.h2,h3,.h3):not(.benefit__t):not(.classcard__t):not(.post__t):not(.trial-card__title) + p,
:is(.section,.page-hero__inner) :is(h2,.h2,h3,.h3) + .lead{margin-top:1rem}
.section .checks,.section--dark .checks{margin-top:1.4rem}
.split>div>*+*{margin-top:1.1rem}
.split>div>.pill+*{margin-top:1.1rem}
.prose>*+*{margin-top:1.1rem}
.prose h2,.prose h3{margin-top:2rem}

/* program tonal hero tints */
.prog--kids .page-hero__media::after{background:linear-gradient(180deg,rgba(16,16,18,.64),rgba(16,16,18,.46) 42%,rgba(16,16,18,.95)),radial-gradient(50% 60% at 88% 10%,rgba(106,160,110,.3),transparent 60%)}
.prog--adult .page-hero__media::after{background:linear-gradient(180deg,rgba(16,16,18,.74),rgba(16,16,18,.5) 42%,rgba(16,16,18,.96))}
.prog--men .page-hero__media::after{background:linear-gradient(180deg,rgba(16,16,18,.66),rgba(16,16,18,.48) 42%,rgba(16,16,18,.95)),linear-gradient(90deg,rgba(16,16,18,.66),transparent 58%)}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .footer__grid{grid-template-columns:1fr 1fr}
  .review-wall{columns:2}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .nav__menu,.nav__cta.desktop-only{display:none}
  .nav__burger{display:flex}
  .hero{padding-top:var(--nav-h)}
  .hero__inner{grid-template-columns:1fr;gap:clamp(2rem,6vw,2.8rem);padding-block:clamp(1rem,3vh,2rem) clamp(2.4rem,6vh,4rem)}
  .hero__media{max-width:460px;width:100%;margin-inline:auto}
  .split,.split--wide-left,.cta-final__inner,.locate__grid{grid-template-columns:1fr}
  .split:nth-of-type(even)>*:first-child,.split--wide-left:nth-of-type(even)>*:first-child{order:0}
  .locate__map{min-height:320px;order:2}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .portrait__badge{right:12px}
}
@media (max-width:620px){
  body{font-size:16px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .review-wall{columns:1}
  .stats{grid-template-columns:1fr 1fr}
  .portrait__badge{position:static;max-width:none;margin-top:1rem;display:inline-block}
  .portrait__stripe{display:none}
  .footer__grid{grid-template-columns:1fr}
  .tagline q{max-width:none}
  .brand__logo{height:36px}
  .is-stuck .brand__logo{height:32px}
  .week{grid-template-columns:1fr}
}

/* =====================================================================
   PREMIUM TRIAL MODAL (.ptrial) — editorial split lead-gen modal
   Palette: Carbon · White · Slate #57609b · Green #6aa06e
   ===================================================================== */
.ptrial{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:clamp(12px,3vw,40px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s var(--ease),visibility .45s var(--ease)}
.ptrial.is-open{opacity:1;visibility:visible;pointer-events:auto}
.ptrial__scrim{position:absolute;inset:0;background:rgba(9,9,11,.72);-webkit-backdrop-filter:blur(4px) saturate(1.1);backdrop-filter:blur(4px) saturate(1.1);opacity:0;transition:opacity .45s var(--ease)}
.ptrial.is-open .ptrial__scrim{opacity:1}

.ptrial__dialog{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(940px,94vh);background:var(--paper-2);border-radius:20px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05);opacity:0;transform:translateY(16px) scale(.965);filter:blur(6px);transition:opacity .5s var(--ease-out),transform .6s var(--ease-out),filter .5s var(--ease-out)}
.ptrial.is-open .ptrial__dialog{opacity:1;transform:none;filter:none}
.ptrial__grid{display:contents}

/* compact brand bar (top of modal) */
.ptrial__bar{flex:0 0 auto;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 66px .9rem clamp(1.2rem,2.8vw,1.9rem);background:var(--carbon);color:#f6f5f2}
.ptrial__bar::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--slate),var(--green))}
.ptrial__bar::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(85% 150% at 100% 0,rgba(87,96,155,.42),transparent 60%),radial-gradient(70% 150% at 0 100%,rgba(106,160,110,.26),transparent 60%),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:100% 100%,100% 100%,54px 54px}
.ptrial__bar>*{position:relative;z-index:1}
.ptrial__brand{display:inline-flex;align-items:center;background:#fff;border-radius:8px;padding:6px 12px;line-height:0;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.ptrial__brand img{height:30px;width:auto;display:block}
.ptrial__trust{display:flex;align-items:center;gap:.7rem}
.ptrial__trust-i{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:rgba(246,245,242,.82);white-space:nowrap}
.ptrial__trust-i b{font-family:var(--font-display);font-weight:400;font-size:1.05em;color:#fff;margin-right:.18em;letter-spacing:0}
.ptrial__trust-i .st{color:var(--green)}
.ptrial__trust-dot{width:4px;height:4px;border-radius:50%;background:rgba(246,245,242,.4)}
@media (max-width:430px){
  .ptrial__brand img{height:25px}
  .ptrial__trust{gap:.5rem}
  .ptrial__trust-i{font-size:.66rem}
  .ptrial__trust-i b{font-size:1em}
}

.ptrial__close{position:absolute;top:12px;right:12px;z-index:6;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .4s var(--ease),background .3s var(--ease),color .3s var(--ease)}
.ptrial__close svg{width:18px;height:18px}
.ptrial__close:hover{background:#fff;color:var(--carbon);transform:rotate(90deg)}

/* ---- media (cinematic image) side ---- */
.ptrial__media{position:relative;flex:0 0 auto;height:clamp(200px,26vh,250px);overflow:hidden;isolation:isolate;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:.7rem;padding:clamp(1.2rem,2.4vw,1.8rem)}
.ptrial__img{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.ptrial__veil{position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
   linear-gradient(180deg,rgba(16,16,18,.32) 0%,rgba(16,16,18,.55) 45%,rgba(16,16,18,.9) 100%),
   radial-gradient(72% 60% at 88% 6%,rgba(87,96,155,.55),transparent 60%),
   radial-gradient(60% 60% at 0 100%,rgba(106,160,110,.4),transparent 60%),
   linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
   linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,100% 100%,46px 46px,46px 46px}
.ptrial__veil::after{content:"";position:absolute;inset:0;opacity:.1;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ptrial__ghost{position:absolute;z-index:-1;right:-.5vw;bottom:-.04em;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(3.6rem,8vw,7rem);line-height:.78;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.16);pointer-events:none;user-select:none}
.ptrial__wordmark{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.28em;font-size:.7rem;color:rgba(255,255,255,.82)}
.ptrial__media-bottom{display:flex;flex-direction:column;gap:.6rem}
.ptrial__stats{display:flex;flex-wrap:wrap;gap:.5rem}
.ptrial__stat{display:inline-flex;align-items:baseline;gap:.4em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:#fff;padding:.5em .85em;border:1px solid rgba(255,255,255,.28);border-radius:40px;background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ptrial__stat b{font-family:var(--font-display);font-weight:400;font-size:1.02em;letter-spacing:0}
.ptrial__stat .st{color:var(--green)}
.ptrial__firstline{position:relative;padding-left:.9rem;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;color:rgba(255,255,255,.9)}
.ptrial__firstline::before{content:"";position:absolute;left:0;top:.1em;bottom:.1em;width:3px;border-radius:2px;background:linear-gradient(180deg,var(--slate),var(--green))}
.ptrial__quote{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.05rem,2.2vw,1.4rem);line-height:1.04;letter-spacing:-.01em;color:#fff;quotes:none}
.ptrial__quote .g{color:var(--green)}

/* ---- form panel (bright) side ---- */
.ptrial__panel{position:relative;flex:1 1 auto;min-height:0;background:var(--paper-2);padding:clamp(1.6rem,2.8vw,2.4rem);overflow-y:auto;display:flex;flex-direction:column;gap:clamp(.9rem,1.5vw,1.2rem)}
.ptrial__panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
   radial-gradient(60% 48% at 100% 0,rgba(87,96,155,.09),transparent 60%),
   radial-gradient(52% 42% at 0 100%,rgba(106,160,110,.08),transparent 60%),
   linear-gradient(rgba(16,16,18,.028) 1px,transparent 1px),
   linear-gradient(90deg,rgba(16,16,18,.028) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,70px 70px,70px 70px}
.ptrial__panel>*{position:relative;z-index:1}
.ptrial__title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,3.6vw,3rem);line-height:.92;letter-spacing:-.01em;color:var(--carbon);margin-top:.35rem}
.ptrial__title .g{background:linear-gradient(92deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.ptrial__sub{color:var(--fg-dim);font-size:.98rem;max-width:44ch}

.ptrial__progress-row{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}
.ptrial__progress-row .s1{color:var(--slate)}
.ptrial__progress-row .s2{color:var(--fg-faint)}
.ptrial__bar{position:relative;margin-top:.5rem;height:6px;border-radius:99px;background:rgba(16,16,18,.09);overflow:hidden}
.ptrial__bar i{position:relative;display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--slate),var(--green));transition:width 1s var(--ease-out) .15s}
.ptrial.is-open .ptrial__bar i{width:100%}
.ptrial__bar i::after{content:"";position:absolute;top:0;bottom:0;width:38%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-120%);animation:ptSheen 2.4s var(--ease) 1.1s infinite}
@keyframes ptSheen{to{transform:translateX(360%)}}

.ptrial__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0}

.ptrial__submit{position:relative;width:100%;min-height:60px;margin-top:.2rem;border:0;border-radius:3px;cursor:pointer;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:1rem;color:#fff;background:linear-gradient(120deg,var(--slate),var(--green));overflow:hidden;isolation:isolate;box-shadow:0 12px 30px rgba(87,96,155,.3);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.ptrial__submit>span{position:relative;z-index:2}
.ptrial__submit::before{content:"";position:absolute;inset:0;z-index:1;background:var(--carbon);transform:translateY(101%);transition:transform .45s var(--ease)}
.ptrial__submit::after{content:"";position:absolute;left:1.5rem;right:1.5rem;bottom:.8rem;height:2px;z-index:2;background:rgba(255,255,255,.9);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.ptrial__submit:hover{transform:translateY(-3px);box-shadow:0 18px 46px rgba(87,96,155,.5),0 0 0 1px rgba(106,160,110,.4)}
.ptrial__submit:hover::before{transform:translateY(0)}
.ptrial__submit:hover::after{transform:scaleX(1)}
.ptrial__submit:disabled{opacity:.7;cursor:default;transform:none}
.ptrial__fine{font-size:.76rem;color:var(--fg-faint);text-align:center;margin-top:.2rem}
.ptrial__fine a{color:var(--slate)}

.ptrial__success{display:none;flex-direction:column;align-items:center;text-align:center;gap:.75rem;padding:1.4rem 0 .6rem}
.ptrial__success.is-on{display:flex;animation:ptReveal .5s var(--ease-out) both}
.ptrial__check{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--slate),var(--green));box-shadow:0 12px 30px rgba(87,96,155,.4)}
.ptrial__check svg{width:30px;height:30px}
.ptrial__success h3{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--carbon)}
.ptrial__success p{color:var(--fg-dim);max-width:38ch}
.ptrial__form.is-done{display:none}

/* staggered reveal (JS assigns per-item delay) */
.ptrial [data-rv]{opacity:0}
.ptrial.is-open [data-rv]{animation:ptReveal .55s var(--ease-out) both}
@keyframes ptReveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---- mobile: full-screen, image on top ---- */
@media (max-width:860px){
  .ptrial{padding:0}
  .ptrial__dialog{width:100%;height:100%;max-height:100%;border-radius:0}
  .ptrial__media{height:32vh;min-height:180px;max-height:38vh;justify-content:flex-end}
  .ptrial__wordmark{position:absolute;top:1.1rem;left:clamp(1.1rem,5vw,1.6rem)}
  .ptrial__close{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .ptrial__panel{padding:clamp(1.3rem,6vw,1.9rem)}
  .ptrial .field input,.ptrial .field select{min-height:52px}
  .ptrial__submit{min-height:58px}
}
@media (max-width:520px){
  .ptrial .field-row{grid-template-columns:1fr}
  .ptrial__quote{font-size:1.25rem}
}
@media (prefers-reduced-motion:reduce){
  .ptrial,.ptrial__dialog,.ptrial__scrim{transition:none}
  .ptrial__dialog{filter:none}
  .ptrial.is-open [data-rv]{animation:none;opacity:1}
  .ptrial__bar i{transition:none}
  .ptrial__bar i::after{animation:none;display:none}
  .ptrial__success.is-on{animation:none}
}

/* =====================================================================
   BOOKING PAGE — step 2 of the free-trial flow
   ===================================================================== */
.book-hero{position:relative;overflow:hidden;isolation:isolate}
.book-ghost{position:absolute;z-index:0;right:-1.5vw;top:-.06em;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(4.5rem,15vw,12rem);line-height:.78;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(16,16,18,.05);pointer-events:none;user-select:none}
.book-hero .wrap{position:relative;z-index:1}

.book-alert{position:relative;overflow:hidden;background:var(--paper-2);border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 30px 70px rgba(16,16,18,.12);padding:clamp(1.5rem,3.4vw,2.8rem) clamp(1.4rem,3vw,2.6rem) clamp(1.5rem,3.4vw,2.8rem) clamp(1.7rem,3.6vw,3.1rem)}
.book-alert::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--slate),var(--green))}
.book-alert::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(60% 60% at 100% 0,rgba(87,96,155,.09),transparent 60%),radial-gradient(55% 55% at 0 100%,rgba(106,160,110,.08),transparent 60%),linear-gradient(rgba(16,16,18,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(16,16,18,.03) 1px,transparent 1px);background-size:100% 100%,100% 100%,64px 64px,64px 64px}
.book-alert>*{position:relative;z-index:1}
.book-alert__top{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin-bottom:1.1rem}
.book-flag{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;color:var(--slate);border:1px solid var(--slate);background:var(--ember-soft);padding:.5em .9em;border-radius:40px}
.book-ok{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;color:var(--green)}
.book-ok__dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;flex:0 0 auto}
.book-ok__dot svg{width:12px;height:12px}
.book-alert__title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2.1rem,5vw,3.6rem);line-height:.94;letter-spacing:-.01em;color:var(--carbon)}
.book-alert__title .g{background:linear-gradient(92deg,var(--slate),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.book-alert p{color:var(--fg-dim);max-width:62ch;margin-top:1rem}
.book-alert strong{color:var(--fg);font-weight:700}

.book-steps{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(.6rem,1.5vw,1.1rem);margin-top:clamp(1.6rem,3vw,2.2rem)}
.book-step{position:relative;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:1rem 1.2rem;display:flex;gap:.9rem;align-items:center}
.book-step__n{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-cond);font-weight:700;font-size:.95rem;background:var(--hair);color:var(--fg-dim)}
.book-step__l{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--fg-faint)}
.book-step__t{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:.98rem;color:var(--fg);line-height:1.1;margin-top:.15rem}
.book-step--done{border-color:rgba(106,160,110,.5)}
.book-step--done .book-step__n{background:var(--green);color:#fff}
.book-step--done .book-step__n svg{width:16px;height:16px}
.book-step--current{border-color:var(--slate);box-shadow:0 0 0 2px var(--ember-soft)}
.book-step--current .book-step__n{background:var(--slate);color:#fff}
.book-step__arrow{display:grid;place-items:center;color:var(--fg-faint)}
.book-step__arrow svg{width:22px;height:22px}
@media (max-width:640px){
  .book-steps{grid-template-columns:1fr}
  .book-step__arrow{transform:rotate(90deg);justify-self:center}
}

.book-prog{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:clamp(1rem,2vw,1.5rem)}
.book-prog__label{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--fg-dim)}
.book-prog__tag{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;color:#fff;background:linear-gradient(120deg,var(--slate),var(--green));padding:.5em 1em;border-radius:40px}
.book-prog__change{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--slate);border:0;border-bottom:2px solid var(--ember-soft);cursor:pointer;background:none;padding:0 0 2px}
.book-prog__change:hover{border-bottom-color:var(--slate)}

.book-select{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,1.6vw,1.2rem);margin-bottom:clamp(1.4rem,2.6vw,2rem)}
.book-choice{text-align:left;background:var(--panel);border:1px solid var(--panel-border);border-top:4px solid var(--slate);border-radius:14px;box-shadow:var(--card-shadow);padding:1.2rem 1.3rem;cursor:pointer;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.book-choice:nth-child(3){border-top-color:var(--green)}
.book-choice:hover{transform:translateY(-4px);border-color:var(--hair-2)}
.book-choice__age{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--slate)}
.book-choice:nth-child(3) .book-choice__age{color:var(--green)}
.book-choice__t{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;font-size:1.12rem;line-height:1.05;color:var(--fg);margin:.35rem 0 .6rem}
.book-choice__go{font-family:var(--font-cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--slate);display:inline-flex;align-items:center;gap:.4em}
@media (max-width:720px){.book-select{grid-template-columns:1fr}}

.book-card{position:relative;background:var(--paper-2);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 24px 60px rgba(16,16,18,.12);padding:clamp(.55rem,1.4vw,1rem);overflow:hidden}
.book-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--slate),var(--green));z-index:1}
.book-card__frame{width:100%;border:0;display:block;border-radius:10px;min-height:720px;background:var(--paper)}
.book-empty{color:var(--fg-dim);text-align:center;padding:2.2rem 1rem}

.trust-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:clamp(1.8rem,3.4vw,2.6rem)}
.trust-badge{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--fg);background:var(--panel);border:1px solid var(--panel-border);border-radius:40px;padding:.55em 1.05em}
.trust-badge svg{width:15px;height:15px;color:var(--green);flex:0 0 auto}

.book-help{position:relative;overflow:hidden;isolation:isolate;margin-top:clamp(2rem,4vw,3rem);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1.1rem,2.6vw,2.2rem);
  padding:clamp(1.5rem,3vw,2.3rem) clamp(1.5rem,3.4vw,2.6rem);
  border-radius:18px;border:1px solid rgba(255,255,255,.12);color:#f6f5f2;
  background-color:var(--carbon);box-shadow:0 26px 60px rgba(16,16,18,.28);
  --fg:#f6f5f2;--fg-dim:rgba(246,245,242,.72);--fg-faint:rgba(246,245,242,.5)}
.book-help::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 130% at 0 0,rgba(87,96,155,.42),transparent 60%),radial-gradient(58% 130% at 100% 100%,rgba(106,160,110,.32),transparent 60%),linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,58px 58px,58px 58px}
.book-help::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--slate),var(--green))}
.book-help__icon{width:clamp(48px,6vw,58px);height:clamp(48px,6vw,58px);border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--slate),var(--green));color:#fff;box-shadow:0 12px 28px rgba(87,96,155,.42)}
.book-help__icon svg{width:24px;height:24px}
.book-help__k{font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.84rem;color:#fff}
.book-help__sub{margin-top:.35rem;color:rgba(246,245,242,.68);font-size:.95rem;max-width:46ch}
.book-help__cta{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}
.book-help__num{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.01em;line-height:1;color:#fff}
.book-help__num:hover{color:var(--green)}
.book-help__btns{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:flex-end}
@media (max-width:820px){
  .book-help{grid-template-columns:auto 1fr}
  .book-help__cta{grid-column:1 / -1;align-items:center;margin-top:.5rem}
  .book-help__btns{justify-content:center}
}
@media (max-width:520px){
  .book-help{grid-template-columns:1fr;justify-items:center;text-align:center}
  .book-help__sub{margin-inline:auto}
  .book-help__btns{width:100%}
  .book-help__btns .btn{flex:1 1 40%}
}

/* ---------- Areas served hub grid ---------- */
.areagrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(.7rem,1.4vw,1.1rem)}
.arealink{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.25rem;background:var(--panel);border:1px solid var(--panel-border);border-left:3px solid var(--slate);border-radius:12px;box-shadow:var(--card-shadow);transition:transform .3s var(--ease),border-color .3s var(--ease)}
.arealink:hover{transform:translateY(-3px);border-color:var(--hair-2)}
.arealink:nth-child(even){border-left-color:var(--green)}
.arealink__t{display:block;font-family:var(--font-cond);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:1.02rem;color:var(--fg);line-height:1.1}
.arealink__s{display:block;margin-top:.2rem;font-family:var(--font-cond);font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--fg-dim)}
.arealink .arw{flex:0 0 auto;color:var(--slate);font-family:var(--font-cond);font-weight:700;transition:transform .3s var(--ease)}
.arealink:hover .arw{transform:translateX(4px)}

/* ---------- Academy photo gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(.6rem,1.2vw,1rem)}
.gallery-item{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);isolation:isolate}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(16,16,18,.4));opacity:0;transition:opacity .4s var(--ease)}
.gallery-item:hover::after{opacity:1}
