/* ═══════════════════════════════════════════════════════════════════
   E'VILLE FITNESS · Brand True Orange
   Locked tokens + Elite Speed motion / cinematic grammar (inspired)
   ═══════════════════════════════════════════════════════════════════ */

@font-face{font-family:'Space Grotesk';src:url('assets/fonts/space-grotesk-500.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('assets/fonts/space-grotesk-600.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('assets/fonts/space-grotesk-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Epilogue';src:url('assets/fonts/epilogue-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Epilogue';src:url('assets/fonts/epilogue-500.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Epilogue';src:url('assets/fonts/epilogue-600.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk Fallback';src:local('Arial');
  size-adjust:98%;ascent-override:95%;descent-override:25%;line-gap-override:0%}
@font-face{font-family:'Epilogue Fallback';src:local('Helvetica Neue'),local('Arial');
  size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%}

:root{
  --bg:#DAD9D9; --surface:#FFFFFF; --surface-2:#F0EFEF;
  --ink:#000000; --muted:#484848;
  --accent:#FF7C1A; --accent-2:#E66A0A; --accent-on:#FFFFFF;
  --line:rgba(0,0,0,.12); --line-2:rgba(0,0,0,.22);
  --display:'Space Grotesk','Space Grotesk Fallback',system-ui,sans-serif;
  --body:'Epilogue','Epilogue Fallback',system-ui,sans-serif;
  --mono:var(--display);
  --ease-settle:cubic-bezier(.77,0,.175,1);
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-hover:cubic-bezier(.4,0,.2,1);
  --dur-micro:.15s; --dur-hover:.25s; --dur-settle:.6s; --dur-reveal:.8s;
  --s1:8px; --s2:16px; --s3:28px; --s4:48px; --s5:clamp(72px,10vw,120px);
  --nav-h:80px; --pad:clamp(20px,5vw,56px); --wrap:1280px;
  --r:0px; --fs-micro:.875rem;
  --lift:-6px;
  --shadow-rest:0 2px 10px rgba(255,124,26,.08);
  --shadow-lift:0 12px 32px rgba(255,124,26,.18);
  --shadow-cta:0 2px 12px rgba(255,124,26,.14);
  --shadow-cta-hi:0 12px 32px rgba(255,124,26,.28);
  --wash:rgba(255,124,26,.06);
  --wash-2:rgba(255,124,26,.14);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip;-webkit-text-size-adjust:100%;
  scroll-padding-top:calc(var(--nav-h) + 16px)}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--body),system-ui,sans-serif;font-weight:400;
  font-size:clamp(1rem,.965rem + .18vw,1.075rem);line-height:1.62;
  overflow-x:clip;font-synthesis:none;-webkit-font-smoothing:antialiased;
}
img,video,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a,button,summary,label,input,select,textarea{touch-action:manipulation}
/* Wave 3.4 — universal focus rings (2px accent + 4px offset; replaces default) */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--accent);outline-offset:4px;border-radius:0;
  box-shadow:0 0 0 3px rgba(0,0,0,.85);
}

h1,h2,h3,h4{
  font-family:var(--display),system-ui,sans-serif;font-weight:700;text-transform:uppercase;
  line-height:1.02;letter-spacing:-.02em;margin:0;text-wrap:balance;
}
h1{font-size:clamp(3.2rem,11vw,8.2rem)}
h2{font-size:clamp(2.1rem,5vw,3.8rem)}
h3{font-size:clamp(1.2rem,2.2vw,1.65rem)}
/* Wave 2.10 — long-form / blog prose (pretty, not balance). Also scopes article p. */
p,.prose p,article p{margin:0;text-wrap:pretty}
.lede{color:var(--muted);font-size:clamp(1.05rem,1rem + .35vw,1.25rem);max-width:52ch}
/* Wave 2.8 — prose measure cap (~75ch) */
.measure,.prose{max-width:70ch}
.hl{color:var(--accent)}
/* Wave 2.1 — Brand True lock is sans+sans (Space Grotesk display + Epilogue body).
   Editorial read comes from weight contrast + italic accent words, not a serif swap. */
h1 em,h2 em,h3 em,.hero h1 em,.phero h1 em{font-style:italic;font-synthesis:style}
.kick{
  margin:0;font-family:var(--display);font-size:var(--fs-micro);font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
}
.kick--m{color:var(--muted)}
.kick--ink{color:rgba(0,0,0,.58)}
.paths-hd .kick--ink,.why-hd .kick--ink,.steps-hd .kick--ink,.reviews-hd .kick--ink,.faq__hd .kick--ink{
  color:rgba(0,0,0,.62);
}
.wrap{width:min(100% - 2*var(--pad),var(--wrap));margin-inline:auto}
.sec{padding-block:var(--s5)}
.sec--alt{background:var(--surface)}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:var(--pad);top:12px;z-index:100;width:auto;height:auto;padding:12px 18px;
  background:var(--accent);color:var(--accent-on);font-weight:600}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ── Buttons — Elite wipe + lift ─────────────────────────────────── */
.btn{
  position:relative;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:52px;padding:14px 28px;border:1px solid var(--accent);
  background:var(--accent);color:var(--accent-on);
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;border-radius:0;
  box-shadow:var(--shadow-cta);cursor:pointer;
  transition:background var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover) var(--ease-hover),
             box-shadow var(--dur-hover) var(--ease-hover),
             translate var(--dur-hover) var(--ease-hover),
             scale var(--dur-hover) var(--ease-hover),
             color var(--dur-hover) var(--ease-hover);
}
/* Wave 3.6 + 3.7 — primary CTA gradient + deep shadow that sharpens on hover.
   Brand True: radius 0 (no pills). */
.btn--primary,.btn-primary,.btn:not(.btn--ghost){
  background:linear-gradient(175deg,#FFA04A 0%,#FF7C1A 38%,#E66A0A 100%);
  border-color:var(--accent-2);
  box-shadow:0 10px 28px rgba(255,124,26,.38),0 2px 6px rgba(0,0,0,.22);
}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--accent-2);
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-hover) var(--ease-hover)}
.btn:active{scale:.985;box-shadow:inset 0 2px 8px rgba(0,0,0,.18)}
@media (hover:hover){
  .btn:hover{border-color:var(--accent-2);translate:0 -2px;scale:1.03;
    box-shadow:var(--shadow-cta-hi)}
  .btn--primary:hover,.btn-primary:hover,.btn:not(.btn--ghost):hover{
    box-shadow:0 18px 44px rgba(255,124,26,.52),0 6px 14px rgba(0,0,0,.28);
    filter:brightness(1.04);
  }
  .btn:hover::before{transform:scaleX(1)}
}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2);box-shadow:none;filter:none}
.btn--ghost::before{background:rgba(255,124,26,.12)}
@media (hover:hover){
  .btn--ghost:hover{border-color:var(--accent);color:var(--ink);box-shadow:none;filter:none}
}
.btn__row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* ── Header: transparent over hero → solid on scroll ─────────────── */
.hdr{
  position:fixed;inset:0 0 auto 0;z-index:60;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding-inline:var(--pad);
  background:transparent;color:#fff;
  padding-top:env(safe-area-inset-top);
  box-shadow:none;
  transition:background var(--dur-hover) var(--ease-hover),
             box-shadow var(--dur-hover) var(--ease-hover),
             color var(--dur-hover) var(--ease-hover);
}
.hdr.is-open,.hdr.is-scrolled{
  background:#F4F3F3;color:var(--ink);
  box-shadow:0 1px 0 rgba(0,0,0,.1),0 8px 24px rgba(0,0,0,.06);
}
.hdr__logo{display:flex;align-items:center;gap:0;min-width:44px;min-height:44px;
  transition:opacity var(--dur-hover)}
.hdr__logo img,
.hdr__wordmark{
  height:clamp(36px,4.6vw,48px);width:auto;max-width:min(214px,46vw);
  filter:none;
  /* Optical: kettlebell base sits below letter baseline in the asset —
     nudge up so KB bottom lines up with nav link text bottoms */
  transform:translateY(-6px);
}
.hdr__logo .hdr__wordmark--on-dark{display:block}
.hdr__logo .hdr__wordmark--on-light{display:none}
.hdr.is-scrolled .hdr__logo .hdr__wordmark--on-dark,
.hdr.is-open .hdr__logo .hdr__wordmark--on-dark{display:none}
.hdr.is-scrolled .hdr__logo .hdr__wordmark--on-light,
.hdr.is-open .hdr__logo .hdr__wordmark--on-light{display:block}
.hdr__logo span{display:none} /* wordmark carries the name */
@media (hover:hover){.hdr__logo:hover{opacity:.82}}
.nav{display:flex;align-items:center;gap:20px}
.nav a{
  position:relative;display:inline-flex;align-items:center;min-height:44px;
  font-family:var(--display);font-size:var(--fs-micro);font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;padding-block:8px;color:inherit;
  text-shadow:0 1px 12px rgba(0,0,0,.55);transition:color var(--dur-hover);
}
.hdr.is-scrolled .nav a,
.hdr.is-open .nav a{text-shadow:none}
.nav a::after{content:'';position:absolute;inset:auto 0 2px 0;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform var(--dur-hover) var(--ease-hover)}
@media (hover:hover){.nav a:hover{color:var(--accent)}.nav a:hover::after{transform:scaleX(1)}}
.nav a:focus-visible::after{transform:scaleX(1)}
.hdr__cta{display:flex;align-items:center;gap:12px}
.hdr .btn{padding:12px 22px;min-height:44px;font-size:var(--fs-micro)}
.hdr .btn--ghost{border-color:rgba(255,255,255,.55);color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.45)}
@media (hover:hover){
  .hdr .btn--ghost:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
}
.hdr.is-scrolled .btn--ghost,
.hdr.is-open .btn--ghost{
  border-color:rgba(0,0,0,.35);color:var(--ink);text-shadow:none;
}
@media (hover:hover){
  .hdr.is-scrolled .btn--ghost:hover,
  .hdr.is-open .btn--ghost:hover{background:rgba(0,0,0,.06);color:var(--ink);border-color:var(--ink)}
}

.burger{display:none;width:48px;height:48px;background:none;border:0;cursor:pointer;
  align-items:center;justify-content:center;padding:0;color:inherit}
.burger span{display:block;width:24px;height:2px;background:currentColor;position:relative;
  transition:background var(--dur-micro);box-shadow:none}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;width:24px;height:2px;
  background:currentColor;transition:transform var(--dur-hover) var(--ease-hover),background var(--dur-micro);
  box-shadow:none}
.burger span::before{top:-7px}.burger span::after{top:7px}
.hdr.is-open .burger span{background:transparent}
.hdr.is-open .burger span::before{transform:translateY(7px) rotate(45deg)}
.hdr.is-open .burger span::after{transform:translateY(-7px) rotate(-45deg)}

.drawer{
  position:fixed;left:0;right:0;bottom:0;top:var(--drawer-top,var(--nav-h));
  z-index:55;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:20px var(--pad) calc(20px + env(safe-area-inset-bottom));
  transform:translateY(-12px);opacity:0;visibility:hidden;
  transition:opacity var(--dur-hover) var(--ease-hover),
             transform var(--dur-hover) var(--ease-hover),visibility 0s .25s;
}
.hdr.is-open ~ .drawer{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.drawer a:not(.btn){display:block;font-family:var(--display);font-size:1.125rem;text-transform:uppercase;
  font-weight:700;letter-spacing:.04em;line-height:1.2;padding:12px 0;border-bottom:1px solid var(--line)}
@media (hover:hover){
  .drawer a:not(.btn):hover{color:var(--accent);border-bottom-color:var(--accent);transform:translateX(4px)}
}
.drawer .btn{
  margin-top:12px;width:100%;min-height:44px;padding:12px 14px;font-size:.9375rem;
  white-space:nowrap;gap:8px;
}
.drawer .btn .phone-icon{width:16px;height:16px}
.drawer .btn + .btn{margin-top:8px}
@media (max-width:960px){
  .nav{display:none}
  .burger{display:flex}
  .hdr__cta .btn{display:none}
}

/* ── HERO fold: video + trust strip fill first viewport ──────────── */
/* svh on mobile — dvh resizes with iOS Chrome URL bar and feels like a layout jump */
.hero-fold{
  height:100svh;
  min-height:100svh;
  display:grid;grid-template-rows:1fr auto;
}
@media (min-width:768px){
  .hero-fold{height:100dvh;min-height:100dvh}
}
.hero{
  position:relative;margin-top:0;
  height:auto;min-height:0;
  display:flex;align-items:stretch;background:#0a0a0a;overflow:clip;isolation:isolate;
}
@media (min-width:900px) and (max-height:900px){
  .hero h1{font-size:clamp(2.8rem,8.5vw,6.5rem)}
}
.hero__media{position:absolute;inset:-8% 0 -4%;z-index:0;overflow:hidden}
.hero__media img,.hero__media video{
  width:100%;height:100%;object-fit:cover;
  /* Crop upward hard so dark ceiling / letterbox stays above the transparent nav */
  object-position:center 6%;
  transform:scale(1.28);transform-origin:center top;
}
.hero__media video{position:absolute;inset:0;opacity:1}
.hero__media video:not(.is-live){opacity:0}
.hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(180deg,rgba(0,0,0,.22) 0%,rgba(0,0,0,.06) 22%,rgba(0,0,0,.24) 58%,rgba(0,0,0,.78) 100%)}
.hero__scrim::before,
.hero__scrim::after{
  content:'';position:absolute;pointer-events:none;
  width:min(52vw,520px);height:min(46vh,360px);
  background-image:url('assets/brand/honeycomb.svg');
  background-size:58px 50px;background-repeat:repeat;
  opacity:.2;mix-blend-mode:screen;
  transition:opacity .85s var(--ease-out);
}
.hero__scrim::before{
  top:0;left:0;
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 0% 0%,#000 28%,transparent 74%);
  mask-image:radial-gradient(ellipse 85% 80% at 0% 0%,#000 28%,transparent 74%);
}
/* Bottom-right lattice — sits under the review card; may show through glass */
.hero__scrim::after{
  top:auto;right:0;bottom:0;left:auto;
  width:min(48vw,480px);height:min(52vh,420px);
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 100% 100%,#000 28%,transparent 74%);
  mask-image:radial-gradient(ellipse 85% 80% at 100% 100%,#000 28%,transparent 74%);
}
@media (min-width:721px){
  .hero__scrim{background:
    linear-gradient(90deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.28) 38%,rgba(0,0,0,.12) 62%,rgba(0,0,0,0) 90%),
    linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.06) 22%,rgba(0,0,0,.26) 58%,rgba(0,0,0,.78) 100%),
    radial-gradient(50% 55% at 22% 62%,rgba(255,124,26,.1) 0%,rgba(255,124,26,0) 70%)}
}
@media (max-width:720px){
  .hero__scrim{background:linear-gradient(180deg,
    rgba(0,0,0,.42) 0%,rgba(0,0,0,.28) 14%,rgba(0,0,0,.34) 36%,
    rgba(0,0,0,.42) 58%,rgba(0,0,0,.82) 100%)}
  .hero__scrim::before,.hero__scrim::after{opacity:.16;width:min(62vw,300px);height:min(32vh,220px)}
  .hero__scrim::after{width:min(70vw,320px);height:min(38vh,260px)}
}
.hero__in{position:relative;z-index:2;width:100%;height:100%;
  padding:calc(var(--nav-h) + var(--s2)) var(--pad) clamp(28px,4vh,44px);
  display:grid;grid-template-columns:1fr;gap:var(--s3);align-items:center}
.hero__in::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;
  left:0;bottom:6%;width:min(105%,1180px);height:min(78%,660px);
  background:radial-gradient(46% 52% at 24% 34%,
    rgba(255,124,26,.1) 0%,rgba(255,124,26,.04) 45%,rgba(255,124,26,0) 72%);
}
.hero .kick{color:var(--accent);text-shadow:0 1px 12px rgba(0,0,0,.85)}
.hero .kick__x{color:rgba(255,255,255,.78);letter-spacing:.12em}
.hero h1{position:relative;margin:.12em 0 0;color:#fff;text-shadow:0 3px 28px rgba(0,0,0,.55)}
/* Wave 3.3 — subtle radial-gradient halo behind hero H1 */
.hero h1::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;
  left:-8%;top:-18%;width:116%;height:130%;
  background:radial-gradient(48% 55% at 32% 48%,rgba(255,124,26,.22) 0%,rgba(255,124,26,.06) 42%,rgba(255,124,26,0) 72%);
}
.hero h1 span{display:block;font-style:normal}
.hero h1 em{display:block;font-style:italic}
.hero h1 .l1{font-weight:500;letter-spacing:-.03em}
.hero h1 .l2{font-weight:700;color:var(--accent);margin-left:var(--hero-stair);
  text-shadow:0 2px 24px rgba(0,0,0,.45)}
/* Interior hero italic accent word (Wave 1.3) */
.phero h1 em{font-style:italic;font-weight:inherit;color:var(--accent)}
.hero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6);backdrop-filter:blur(2px)}
@media (hover:hover){
  .hero .btn--ghost:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
}
.hero__left{
  --hero-stair:clamp(0px,6vw,140px);
  /* Third stair: past “every day”, same step size again */
  --hero-stair-3:calc(var(--hero-stair) + clamp(28px,5.5vw,120px));
  display:grid;gap:clamp(18px,2.8vh,28px);justify-items:start;
  align-content:center;
}
.hero__title{display:grid;gap:clamp(10px,1.6vh,16px)}
/* Earn it → every day → CTAs */
.hero__left .btn__row{
  margin-top:clamp(14px,2.4vh,32px);
  margin-left:var(--hero-stair-3);
}
.hero__phone{
  margin:0;margin-left:var(--hero-stair-3);
  font-family:var(--display);font-size:.95rem;font-weight:600;letter-spacing:.04em;
}
.hero__phone a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-shadow:0 1px 12px rgba(0,0,0,.55)}
@media (hover:hover){.hero__phone a:hover{color:var(--accent)}}
/* Mobile: sticky callbar already owns the phone CTA */
@media (max-width:960px){
  .hero__phone{display:none}
}
@media (min-width:900px){
  .hero__in{grid-template-columns:minmax(0,1fr) minmax(300px,34%);gap:clamp(20px,3vw,40px);
    align-items:center}
  .hero__proof{justify-self:end;align-self:end;max-width:380px;width:100%;
    margin-bottom:clamp(8px,2vh,20px)}
}
.hero__proof,.glass-card{
  position:relative;margin:0;max-width:min(100%,520px);display:grid;gap:9px;
  padding:16px 20px;background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.22);border-left:3px solid var(--accent);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);
  box-shadow:0 14px 36px rgba(0,0,0,.22);
  overflow:clip;
}
.hero__proof .stars{color:var(--accent);font-size:var(--fs-micro);letter-spacing:.2em;line-height:1}
.hero__proof blockquote{margin:0;font-family:var(--body);font-weight:600;
  font-size:clamp(1rem,.96rem + .22vw,1.1rem);line-height:1.42;color:#fff;text-wrap:balance}
.hero__proof figcaption{font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.1em;
  text-transform:uppercase;color:#D6D6D6}
@media (max-width:720px){
  .hero__left{--hero-stair:0px;--hero-stair-3:0px;gap:var(--s2)}
  .hero__in{align-items:end;padding-bottom:clamp(24px,5vh,40px)}
  .hero__proof{max-width:100%}
}

/* Credibility rail — charcoal + orange honeycomb */
.proofrail,.stat-row{
  position:relative;overflow:clip;
  background:#111;color:#fff;
  padding-block:clamp(28px,4vw,44px);
  border-top:3px solid var(--accent);
}
.proofrail::before,.stat-row::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.08;mix-blend-mode:screen;
}
.proofrail__in,.stat-row__in{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,32px);
  text-align:center;
}
.stat-card{display:grid;justify-items:center;align-content:start;gap:0}
.stat-bar{
  display:block;width:28px;height:3px;margin:0 auto 12px;
  background:var(--accent);border-radius:0;
  box-shadow:0 0 12px rgba(255,124,26,.45);
}
.proofrail b,.stat-card b,.stat-row b{
  display:block;font-family:var(--display);font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:700;letter-spacing:-.02em;line-height:1;color:#fff;
}
.proofrail b[data-count],
.proofrail [data-count],
.stat-card b[data-count],
.stat-card [data-count]{
  display:inline-block;
  transform:translateY(22px);opacity:.55;
  transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .85s cubic-bezier(.16,1,.3,1);
}
.proofrail b[data-count].is-counting,
.proofrail b[data-count].is-counted,
.proofrail [data-count].is-counting,
.proofrail [data-count].is-counted,
.stat-card b[data-count].is-counting,
.stat-card b[data-count].is-counted,
.stat-card [data-count].is-counting,
.stat-card [data-count].is-counted{
  transform:none;opacity:1;
}
.proofrail .hours,.stat-card .hours{display:inline-flex;align-items:baseline;gap:0;letter-spacing:-.02em;
  font-size:clamp(1.6rem,3vw,2.4rem)}
.proofrail .hours [data-count],
.proofrail .hours .slash,
.stat-card .hours [data-count],
.stat-card .hours .slash{
  font-size:inherit;font-family:inherit;font-weight:inherit;letter-spacing:inherit;
  line-height:inherit;color:inherit;display:inline;margin:0;
}
.proofrail .hours [data-count],.stat-card .hours [data-count]{min-width:1.1ch;display:inline-block}
.proofrail .hours .slash,.stat-card .hours .slash{
  color:var(--accent);opacity:1;padding:0 .04em;font-weight:700;
  text-shadow:0 0 14px rgba(255,124,26,.45);
}
.proofrail__in > div > span:not(.stat-bar),.stat-card > span:not(.stat-bar),.stat-row .stat-card > span:not(.stat-bar){
  display:block;margin-top:6px;font-family:var(--display);font-size:var(--fs-micro);
  font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.62);
}
@media (max-width:720px){
  .proofrail__in,.stat-row__in{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
}

/* ── Path cards (easyGym reveal) ─────────────────────────────────── */
.paths-hd,.why-hd,.reviews-hd,.faq__hd,.progs__hd{
  max-width:720px;margin:0 auto var(--s4);text-align:center;
}
.paths-hd .lede,.why-hd .lede,.reviews-hd .lede,.faq__hd .lede,.floor-hd .lede{
  margin:clamp(16px,2vw,24px) auto 0;
}
.paths-hd .uline,.why-hd .uline,.reviews-hd .uline,.faq__hd .uline,.floor-hd .uline,.closer .uline{
  margin-inline:auto;margin-top:14px;
}
#paths.sec{padding-bottom:clamp(36px,5vw,56px)}
#why.sec{padding-top:clamp(36px,5vw,56px)}
.paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.paths{grid-template-columns:1fr}}
.path{
  position:relative;display:grid;min-height:380px;aspect-ratio:4/5;overflow:clip;
  background:var(--ink);color:#fff;border:1px solid var(--line);
  transition:border-color var(--dur-hover) var(--ease-hover),
              translate var(--dur-hover) var(--ease-hover),
              box-shadow var(--dur-hover) var(--ease-hover);
}
.path__media{position:absolute;inset:0;opacity:1;transform:scale(1);
  transition:transform .45s var(--ease-hover)}
.path__media img{width:100%;height:100%;object-fit:cover;object-position:center center}
.path::before{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 62%,rgba(0,0,0,.5) 100%);
  pointer-events:none;transition:background .35s var(--ease-hover)}
.path__num{position:absolute;top:20px;left:22px;z-index:2;font-family:var(--display);
  font-size:var(--fs-micro);letter-spacing:.16em;color:var(--accent);font-weight:700;
  text-shadow:0 1px 8px rgba(0,0,0,.45)}
.path__content{position:relative;z-index:2;align-self:end;padding:18px 22px 20px;
  display:flex;align-items:center;justify-content:flex-end;gap:12px;
  padding-left:clamp(88px,28%,120px)}
.path__action{opacity:.95;font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#fff;
  text-shadow:0 1px 10px rgba(0,0,0,.55);
  transition:opacity .25s ease,color .25s ease,translate .25s ease}
.path__arrow{position:absolute;top:22px;right:22px;z-index:2;width:28px;height:2px;
  background:rgba(255,255,255,.55);transition:background .25s ease,width .25s ease}
.path__arrow::after{content:'';position:absolute;right:0;top:50%;width:10px;height:10px;
  border-right:2px solid currentColor;border-top:2px solid currentColor;
  transform:translateY(-50%) rotate(45deg);color:rgba(255,255,255,.55);
  transition:color .25s ease,border-color .25s ease}
@media (hover:hover){
  .path:hover,.path:focus-within{translate:0 -4px;border-color:var(--accent);
    box-shadow:var(--shadow-lift)}
  .path:hover .path__media,.path:focus-within .path__media{transform:scale(1.04)}
  .path:hover::before,.path:focus-within::before{
    background:linear-gradient(180deg,rgba(0,0,0,.22) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,.1) 58%,rgba(0,0,0,.62) 100%)}
  .path:hover .path__action,.path:focus-within .path__action{color:var(--accent)}
  .path:hover .path__arrow,.path:focus-within .path__arrow{background:var(--accent);width:36px}
  .path:hover .path__arrow::after,.path:focus-within .path__arrow::after{color:var(--accent)}
}
@media (hover:none){
  .path{min-height:320px}
}
@media (max-width:900px){
  .path{aspect-ratio:4/5;min-height:0;max-height:560px}
}

/* Photo mosaic strip — removed (no video stills / filler galleries) */
.mosaic{display:none}

/* ── Why this gym — photo-forward cards ──────────────────────────── */
.why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:900px){.why-grid{grid-template-columns:1fr}}
.why-card{
  display:grid;grid-template-rows:auto 1fr;background:var(--surface);
  border:1px solid rgba(255,124,26,.38);
  box-shadow:var(--shadow-rest),0 0 0 1px rgba(255,124,26,.08);
  overflow:clip;height:100%;
  transition:translate var(--dur-hover) var(--ease-hover),box-shadow var(--dur-hover),
             border-color var(--dur-hover);
}
.why-card__media{
  aspect-ratio:1 / 1;width:100%;overflow:clip;background:var(--ink);
}
.why-card__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:grayscale(1) contrast(1.06);
  transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover);
}
.why-card__copy{padding:var(--s3);display:grid;gap:10px}
.why-card__copy h3{font-size:clamp(1.15rem,2vw,1.45rem)}
.why-card__copy p{color:var(--muted);font-size:1rem;line-height:1.55}
@media (hover:hover){
  .why-card:hover{translate:0 var(--lift);border-color:var(--accent);
    box-shadow:var(--shadow-lift),0 0 0 1px rgba(255,124,26,.22)}
  .why-card:hover .why-card__media img{
    transform:scale(1.04);filter:grayscale(0) contrast(1);
  }
}
@media (hover:none){
  .why-card__media img{filter:grayscale(0) contrast(1)}
}

/* ── How it works — progressive path ─────────────────────────────── */
@font-face{font-family:'Caveat';src:url('assets/fonts/caveat-var.woff2') format('woff2');
  font-weight:400 700;font-style:normal;font-display:swap}

.steps-hd{max-width:720px;margin:0 auto clamp(40px,5vw,56px);text-align:center}
.steps-hd .lede{margin:clamp(16px,2vw,24px) auto 0}
.steps-wrap{
  display:grid;grid-template-columns:minmax(240px,.78fr) 1.22fr;gap:clamp(24px,4vw,40px);
  align-items:stretch;
}
@media (max-width:880px){.steps-wrap{grid-template-columns:1fr}}
.steps-photo{
  margin:0;overflow:clip;border:1px solid var(--line);box-shadow:var(--shadow-rest);
  height:100%;min-height:0;align-self:stretch;
}
.steps-photo img{width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;filter:grayscale(1) contrast(1.06);
  transition:transform .7s var(--ease-settle),filter .7s var(--ease-settle)}
/* Rail finishes at step 03 → companion photo blooms into full color */
.steps-wrap.is-colorized .steps-photo img{
  filter:grayscale(0) contrast(1);
}
@media (hover:hover){
  .steps-wrap.is-colorized .steps-photo:hover img{transform:scale(1.03)}
}
@media (max-width:880px){
  .steps-photo{max-height:420px}
  .steps-photo img{aspect-ratio:4/5;height:auto}
}
@media (prefers-reduced-motion:reduce){
  .steps-photo img{filter:none;transition:none}
  .steps-wrap.is-colorized .steps-photo img{filter:none}
}
.steps-col{position:relative;height:100%;overflow:visible}
.steps{display:grid;grid-template-columns:1fr;gap:0;height:100%;position:relative;
  overflow:visible;padding-top:88px}
.steps-wrap{overflow:visible}
.steps__rail{
  position:absolute;left:34px;width:4px;z-index:0;pointer-events:none;
  top:134px;height:0;
}
.steps__rail-track,
.steps__rail-fill{
  position:absolute;inset:0;border-radius:999px;
}
.steps__rail-track{
  background:rgba(255,124,26,.18);
  box-shadow:inset 0 0 0 1px rgba(255,124,26,.12);
}
.steps__rail-fill{
  background:linear-gradient(180deg,#FFB07A 0%,var(--accent) 45%,#E85D00 100%);
  box-shadow:0 0 10px rgba(255,124,26,.55),0 0 2px rgba(255,124,26,.9);
  transform:scaleY(1);transform-origin:top center;
}
.steps__rail-head{
  position:absolute;left:50%;top:0;width:12px;height:12px;
  margin:-6px 0 0 -6px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 2px var(--accent),0 0 14px 3px rgba(255,124,26,.75),
             0 0 28px 6px rgba(255,124,26,.35);
  opacity:1;
}
.steps-col .step{z-index:1}
.step{
  position:relative;border:1px solid var(--line);overflow:visible;
  /* Transparent left gutter so the continuous rail shows through the number column */
  background:linear-gradient(90deg,transparent 0 54px,var(--surface) 54px);
  padding:var(--s3) var(--s3) var(--s3) clamp(72px,10vw,88px);
  box-shadow:var(--shadow-rest);
}
.step + .step{margin-top:-1px}
.step__num{
  position:absolute;left:18px;top:28px;width:36px;height:36px;
  display:grid;place-items:center;background:var(--accent);color:#111;
  font-family:var(--display);font-weight:700;font-size:.95rem;letter-spacing:-.02em;
  border:2px solid var(--surface);box-shadow:0 0 0 2px var(--accent);
  z-index:2;
}
/* Start-here — outside .steps grid so tip can paint over the first card */
.step__guide{
  position:absolute;left:0;top:70px;z-index:50;
  display:block;
  transform:rotate(-8deg);transform-origin:8px 4px;
  pointer-events:none;overflow:visible;
}
.step__guide-label{
  /* Absolute so the SVG (only in-flow child) keeps its place. Label sits
     above the arrow; nudge matches arrow True Orange. */
  position:absolute;left:calc(0.5in - 3px);right:auto;bottom:calc(100% - 2px);
  margin:0;padding:0;
  font-family:'Caveat',cursive;font-weight:700;
  font-size:clamp(1.75rem,3.2vw,2.15rem);line-height:.72;
  color:var(--accent);white-space:nowrap;
  transform:none;
  text-shadow:0 1px 0 rgba(255,255,255,.85),0 0 12px rgba(255,255,255,.55);
}
.step__guide-arrow{
  display:block;width:48px;height:44px;
  margin:0;overflow:visible;
}
@media (min-width:721px){
  .step__guide-label{left:calc(0.5in + 2px)}
  .step__guide-arrow{margin-left:12px}
}
@media (max-width:720px){
  .step__guide-label{left:calc(clamp(0.35in,8vw,0.5in) + 10px);bottom:calc(100% - 4px)}
  .step__guide-arrow{margin-left:7px}
}
.step h3{margin-bottom:12px}
.step p{color:var(--muted)}

/* Progressive path — continuous rail charges top→bottom like a load bar */
html.js-motion .steps:not(.is-charged) .steps__rail-fill{
  transform:scaleY(0);
}
html.js-motion .steps:not(.is-charged) .steps__rail-head{
  top:0;opacity:0;
}
html.js-motion .steps.is-charging .steps__rail-fill{
  transform:scaleY(1);
  transition:transform 1.45s cubic-bezier(.22,.61,.36,1);
}
html.js-motion .steps.is-charging .steps__rail-head{
  top:100%;opacity:1;
  transition:top 1.45s cubic-bezier(.22,.61,.36,1),
             opacity .2s ease;
}
html.js-motion .steps.is-charged .steps__rail-fill{transform:scaleY(1)}
html.js-motion .steps.is-charged .steps__rail-head{top:100%;opacity:.55}
html.js-motion .steps:not(.is-charged) .step__num{
  filter:brightness(.72);
  box-shadow:0 0 0 2px rgba(255,124,26,.28);
}
html.js-motion .steps .step.is-lit .step__num,
html.js-motion .steps.is-charged .step__num{
  filter:none;
  box-shadow:0 0 0 2px var(--accent),0 0 14px 2px rgba(255,124,26,.45);
  animation:step-num-ignite .55s var(--ease-settle) both;
}
@keyframes step-num-ignite{
  0%{box-shadow:0 0 0 2px rgba(255,124,26,.28);filter:brightness(.72)}
  45%{box-shadow:0 0 0 2px var(--accent),0 0 22px 6px rgba(255,124,26,.7);filter:brightness(1.12)}
  100%{box-shadow:0 0 0 2px var(--accent),0 0 14px 2px rgba(255,124,26,.45);filter:none}
}
@media (prefers-reduced-motion:reduce){
  html.js-motion .steps .steps__rail-fill,
  html.js-motion .steps .steps__rail-head{transition:none!important;animation:none!important}
  html.js-motion .steps .step__num{animation:none!important;filter:none!important;
    box-shadow:0 0 0 2px var(--accent)!important}
}

/* ── Reviews — branded charcoal band ─────────────────────────────── */
.reviews-band{
  position:relative;overflow:clip;
  background:#141414;color:#fff;
}
.reviews-band::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.1;mix-blend-mode:screen;
  -webkit-mask-image:
    radial-gradient(ellipse 70% 60% at 0% 0%,#000 20%,transparent 72%),
    radial-gradient(ellipse 55% 50% at 100% 100%,#000 18%,transparent 70%);
  mask-image:
    radial-gradient(ellipse 70% 60% at 0% 0%,#000 20%,transparent 72%),
    radial-gradient(ellipse 55% 50% at 100% 100%,#000 18%,transparent 70%);
}
.reviews-band > .wrap{position:relative;z-index:1}
.reviews-band .kick--ink{color:var(--accent)}
.reviews-band h2{color:#fff}
.reviews-band .reviews-hd .lede{color:rgba(255,255,255,.78)}
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}
.rev{
  margin:0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);
  border-top:3px solid var(--accent);
  padding:26px 24px;display:grid;gap:14px;
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  transition:translate var(--dur-hover) var(--ease-hover),box-shadow var(--dur-hover),
             border-color var(--dur-hover);
}
.rev .stars{color:var(--accent);letter-spacing:.14em;font-size:var(--fs-micro)}
.rev p{font-weight:500;font-size:1.02rem;line-height:1.5;color:rgba(255,255,255,.92)}
.rev cite{font-style:normal;font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
@media (hover:hover){
  .rev:hover{translate:0 -4px;border-color:rgba(255,124,26,.45);
    box-shadow:0 16px 36px rgba(0,0,0,.35)}
}
.reviews-band .seeall{text-align:center;margin-top:var(--s4)}
.reviews-band .seeall a{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;
  padding:12px 28px;font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:#fff;
  background:transparent;border:2px solid rgba(255,255,255,.55);
  transition:color var(--dur-hover) var(--ease-hover),
             background var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover) var(--ease-hover);
}
@media (hover:hover){
  .reviews-band .seeall a:hover{color:#111;background:#fff;border-color:#fff}
}
.reviews-band .seeall a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

.seeall{text-align:center;margin-top:var(--s4)}
.seeall a{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;
  padding:12px 28px;font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink);
  background:transparent;border:2px solid var(--ink);
  transition:color var(--dur-hover) var(--ease-hover),
             background var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover) var(--ease-hover);
}
@media (hover:hover){
  .seeall a:hover{color:#fff;background:var(--ink);border-color:var(--ink)}
}
.seeall a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* ── Pull quote ──────────────────────────────────────────────────── */
.quote{text-align:center;background:var(--ink);color:#fff;padding-block:var(--s5);position:relative;overflow:clip}
.quote .wrap{position:relative;z-index:1}
.quote .kick{color:var(--accent)}
.quote blockquote{
  max-width:18ch;margin:var(--s2) auto 0;font-family:var(--display);font-weight:700;
  text-transform:uppercase;font-size:clamp(1.9rem,5.2vw,4rem);line-height:1.05;
  letter-spacing:-.03em;color:#fff;
}
.quote .attr{margin-top:var(--s3);font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.quote .stars{color:var(--accent);letter-spacing:.12em}
.quote .seeall{
  display:inline-flex;align-items:center;min-height:44px;margin-top:var(--s3);
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
  border-bottom:2px solid var(--accent);padding-bottom:4px;
  transition:color var(--dur-hover),border-color var(--dur-hover),box-shadow var(--dur-hover);
}
@media (hover:hover){
  .quote .seeall:hover{color:#FFB07A;border-bottom-color:#FFB07A;
    box-shadow:0 6px 18px -12px rgba(255,124,26,.9)}
}
.quote--cite blockquote{
  max-width:22ch;
  font-size:clamp(1.55rem,4.2vw,3.15rem);
}
.quote--cite .attr{
  max-width:42ch;margin-inline:auto;line-height:1.55;
  letter-spacing:.08em;text-transform:none;font-family:var(--body);
  font-size:clamp(.95rem,1rem + .15vw,1.1rem);color:rgba(255,255,255,.78);
}
.quote--cite .attr a{
  color:var(--accent);text-decoration:underline;text-underline-offset:3px;
}

/* Corner honeycomb — top-right + bottom-left; taller masks run along borders */
.hc-corners::before,
.hc-corners::after{
  content:'';position:absolute;z-index:0;pointer-events:none;
  width:min(380px,55vw);height:min(320px,48vw);
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.2;mix-blend-mode:screen;
}
.hc-corners::before{
  top:-12px;right:-16px;
  -webkit-mask-image:radial-gradient(ellipse 70% 130% at 100% 0%,#000 18%,transparent 72%);
  mask-image:radial-gradient(ellipse 70% 130% at 100% 0%,#000 18%,transparent 72%);
}
.hc-corners::after{
  bottom:-12px;left:-16px;
  -webkit-mask-image:radial-gradient(ellipse 70% 130% at 0% 100%,#000 18%,transparent 72%);
  mask-image:radial-gradient(ellipse 70% 130% at 0% 100%,#000 18%,transparent 72%);
}

/* ── Floor band — full-bleed cinematic, no pin-scroll ─────────────── */
.layers{
  position:relative;z-index:1;padding:0;background:var(--ink);
  min-height:min(78vh,720px);overflow:clip;
  display:grid;align-items:center;
}
.layers-bg{position:absolute;inset:0;z-index:0;overflow:clip}
.layers-bg img{width:100%;height:100%;object-fit:cover;object-position:center;
  transform:scale(1.04);transform-origin:center}
.layers-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.42) 42%,rgba(0,0,0,.88)),
             radial-gradient(50% 60% at 50% 55%,rgba(255,124,26,.14) 0%,rgba(255,124,26,0) 70%)}
.layers-flow{position:relative;z-index:2;width:100%}
.layer-panel{
  display:flex;align-items:center;justify-content:center;
  padding-block:clamp(72px,12vw,140px);padding-inline:var(--pad);
}
.layer-panel__in{max-width:640px;margin-inline:auto;text-align:center;color:#fff}
.layer-panel .kick{color:var(--accent)}
.layer-panel h2{margin-top:var(--s2);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.55)}
.layer-panel .lede{margin-top:var(--s3);color:rgba(255,255,255,.88);
  text-shadow:0 1px 14px rgba(0,0,0,.85);margin-inline:auto}
@media (max-width:700px){
  .layers{min-height:min(70vh,560px)}
  .layer-panel{padding-block:clamp(56px,14vw,96px)}
}

/* ── Framed in-flow photography (Elite treatment, Brand True glow) ─ */
/* Wave 4.6 — stamped aliases: .framed-image / .image-frame / .hero-image */
.framed-image,.image-frame,.hero-image,
.framed,.steps-photo,.split__media,.trainer__media,.team-card__media,.clean-band__media,
.why-card__media{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),
             inset 0 0 0 2px rgba(0,0,0,.4),
             0 18px 44px -28px rgba(255,124,26,.32),
             0 4px 18px rgba(0,0,0,.2);
}

/* ── FAQ ─────────────────────────────────────────────────────────── */
.faq__hd{text-align:center;max-width:780px;margin:0 auto var(--s4)}
.faq__list{max-width:820px;margin-inline:auto}
.faq details{border-top:1px solid var(--line);background:transparent;
  transition:background var(--dur-hover);padding-inline:clamp(16px,3vw,28px)}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 52px 22px 8px;position:relative;
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.05rem,1.8vw,1.3rem);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{display:inline;font-size:inherit;font-family:inherit;font-weight:inherit;
  text-transform:inherit;letter-spacing:inherit;line-height:inherit}
/* Wave 2.4 — circular +/− toggle in accent (CSS-drawn cross, not details triangle) */
.faq summary::after{
  content:'';position:absolute;right:8px;top:50%;width:30px;height:30px;
  transform:translateY(-50%);border:1.5px solid var(--accent);border-radius:50%;
  background-image:linear-gradient(var(--accent),var(--accent)),
                   linear-gradient(var(--accent),var(--accent));
  background-size:12px 2px,2px 12px;background-position:center;background-repeat:no-repeat;
  transition:border-color var(--dur-hover),background-color var(--dur-hover),
              background-size var(--dur-hover),transform var(--dur-hover);
}
.faq details[open] summary::after{background-size:12px 2px,2px 0;border-color:var(--accent);
  background-color:var(--wash)}
@media (hover:hover){
  .faq summary:hover::after{border-color:var(--accent);background-color:var(--wash)}
  .faq details:hover{background:var(--wash)}
}
.faq .a{padding:0 8px 22px 8px;max-width:62ch}
.faq .a p{color:var(--muted)}

/* ── Closer — orange gradient card on white (matches FAQ band) ─ */
.closer{
  position:relative;overflow:visible;
  background:var(--surface);color:var(--ink);text-align:center;
  padding-block:clamp(40px,6vw,72px);
}
.closer::before{display:none!important;content:none!important}
.closer > .wrap{
  position:relative;z-index:1;
  max-width:min(920px,calc(100% - 2 * var(--pad)));
  margin-inline:auto;
  padding:clamp(40px,7vw,72px) clamp(24px,5vw,56px);
  /* Hot highlight → True Orange → deep burnt — stronger light/dark pull */
  background:linear-gradient(158deg,#FFC56A 0%,#FF9A3A 22%,var(--accent) 48%,#D44E00 78%,#A83800 100%);
  color:#fff;
  box-shadow:0 22px 48px -28px rgba(255,124,26,.55),0 8px 24px rgba(0,0,0,.12);
}
.closer .kick{color:rgba(255,255,255,.92)}
.closer h2{max-width:18ch;margin-inline:auto;color:#fff}
.closer__hd{display:grid;justify-items:center;gap:0}
.closer__hd .kick{margin:0}
.closer__hd h2{margin:0}
.closer__hd .uline{margin-top:14px}
.closer .lede{margin:var(--s3) auto 0;color:rgba(255,255,255,.9)}
.closer .uline path{stroke:#fff}
.closer .btn__row{justify-content:center;margin-top:var(--s4)}
.closer .btn--primary{
  background:#fff;color:var(--accent);border-color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
@media (hover:hover){
  .closer .btn--primary:hover{background:#fff;filter:brightness(1.04);color:#E85D00}
}
.closer .btn--ghost{
  border-color:rgba(255,255,255,.85);color:#fff;background:transparent;
}
@media (hover:hover){
  .closer .btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff;border-color:#fff}
}
.closer .proof{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;
  margin-top:var(--s4);font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.closer .proof b{color:#fff}
.closer__meta{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;
  margin-top:var(--s3);font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);
}
.uline{display:block;width:min(360px,70%);height:14px;margin:14px auto 0;overflow:visible}
/* Hand-drawn accent — irregular path, marker stroke left → right (Elite §9e) */
.uline path{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:round;
  stroke-linejoin:round}
.steps-hd .uline{margin-top:14px}
/* Uline under split/left copy must track the visible heading text, not the column */
.hd-uline{display:inline-block;max-width:100%;vertical-align:top}
.hd-uline .uline,.split__copy > .hd-uline .uline{
  width:100%;max-width:none;margin-inline:0;margin-top:14px;
}
.split__copy > h2 + .uline{
  width:min(280px,92%);margin-inline:0;margin-top:14px;
}
.sec-hd .hd-uline,.team-hd .hd-uline,.trainers-hd .hd-uline,
.paths-hd .hd-uline,.faq__hd .hd-uline,.plans-hd .hd-uline{
  display:inline-block;text-align:center;
}
.sec-hd .hd-uline .uline,.team-hd .hd-uline .uline,.trainers-hd .hd-uline .uline,
.paths-hd .hd-uline .uline,.faq__hd .hd-uline .uline,.plans-hd .hd-uline .uline{
  width:100%;margin-inline:0;
}

/* ── Footer ──────────────────────────────────────────────────────── */
/* Wave 2.5 — dark near-black footer + accent section titles (.footer alias for stamped grep) */
.foot,.footer{
  position:relative;overflow:clip;
  background:#111;color:rgba(255,255,255,.78);
  /* Desktop: tight under sub-footer. Mobile keeps callbar clearance below. */
  padding:clamp(28px,4vw,40px) 0 18px;
}
@media (max-width:960px){
  .foot,.footer{
    padding-bottom:calc(14px + 72px + env(safe-area-inset-bottom));
  }
}
/* Honeycomb — top-right + bottom-left only (BR reserved for crest stamp) */
.foot::before,.footer::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.14;mix-blend-mode:screen;
  -webkit-mask-image:
    radial-gradient(ellipse 72% 58% at 100% 0%,#000 22%,transparent 72%),
    radial-gradient(ellipse 55% 55% at 0% 100%,#000 18%,transparent 70%);
  mask-image:
    radial-gradient(ellipse 72% 58% at 100% 0%,#000 22%,transparent 72%),
    radial-gradient(ellipse 55% 55% at 0% 100%,#000 18%,transparent 70%);
}
/* Crest stamp — subtle, cocked ~11:30, peeking from BR (tagline cropped off).
   bottom locked in px so peek stays stable when footer padding changes. */
.foot::after,.footer::after{
  content:'';position:absolute;z-index:0;pointer-events:none;
  right:-8%;bottom:-230px;
  width:min(78vw,640px);aspect-ratio:1 / 1;
  background:url('assets/brand/eville-crest-outline.webp') center / contain no-repeat;
  opacity:.07;
  transform:rotate(-15deg);
  transform-origin:center center;
  filter:none;
}
.foot > .wrap,.footer > .wrap{position:relative;z-index:1}
.foot__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:clamp(18px,3vw,28px);
  padding-bottom:clamp(18px,2.5vw,24px);border-bottom:1px solid rgba(255,255,255,.12)}
@media (max-width:800px){
  .foot__grid{grid-template-columns:1fr}
  .foot::after,.footer::after{
    width:min(98vw,480px);opacity:.06;right:-12%;bottom:-220px;
    transform:rotate(-12deg);
  }
  .foot::before,.footer::before{opacity:.11}
}
.foot .mark{width:40px;height:auto;display:block;margin:0 0 10px;opacity:1}
.foot__blurb{max-width:34ch;margin-bottom:12px;color:rgba(255,255,255,.7);font-size:.9rem;line-height:1.45}
.foot__nap{display:grid;gap:8px;margin:0;font-size:.9rem}
.foot__nap dt{font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.foot__nap dd{margin:0}
.foot h3,.footer h3{font-size:.88rem;margin-bottom:8px;color:var(--accent)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.foot a{display:inline-flex;align-items:center;min-height:44px;transition:color var(--dur-hover)}
@media (hover:hover){.foot a:hover{color:var(--accent)}}
.foot__bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;
  padding-top:14px;font-size:.875rem} /* 8.6: ≥14px (was .82rem) */
.foot .lc{color:var(--accent);font-weight:600}
@media (hover:hover){.foot .lc:hover{color:#FFB07A}}

/* Mobile-only: denser footer — brand full-width, link cols side-by-side,
   centered sub-footer, crest raised so ~70% peeks into the footer. */
@media (max-width:767px){
  .foot,.footer{
    padding-top:clamp(22px,5vw,28px);
    padding-bottom:calc(20px + 72px + env(safe-area-inset-bottom));
  }
  .foot__grid{
    grid-template-columns:1fr 1fr;
    gap:14px 18px;
    padding-bottom:14px;
    align-items:start;
  }
  .foot__grid > :first-child{grid-column:1 / -1}
  .foot .mark{width:36px;margin-bottom:8px}
  .foot__blurb{
    max-width:none;margin-bottom:10px;
    font-size:.84rem;line-height:1.4;
  }
  .foot__nap{
    grid-template-columns:1fr 1fr;
    gap:8px 14px;
  }
  .foot__nap > :first-child{grid-column:1 / -1}
  .foot h3,.footer h3{margin-bottom:4px;font-size:.8rem}
  .foot ul{gap:0}
  .foot a{min-height:36px;font-size:.9rem}
  /* Explore: full-width 2-col links; Evile: compact horizontal row */
  .foot__grid > :nth-child(2),
  .foot__grid > :nth-child(3){grid-column:1 / -1}
  .foot__grid > :nth-child(2) ul{
    display:grid;grid-template-columns:1fr 1fr;gap:0 16px;
  }
  .foot__grid > :nth-child(3) ul{
    display:flex;flex-wrap:wrap;gap:0 18px;
  }
  .foot__bot{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:6px;
    padding-top:12px;
    margin-bottom:6px;
    position:relative;
    z-index:1;
    width:100%;
  }
  .foot__bot p{
    margin:0;
    width:100%;
    max-width:none;
    text-align:center;
  }
  /* Crest: nudged 1.5in right + down on mobile */
  .foot::after,.footer::after{
    width:min(88vw,400px);
    right:50%;
    left:auto;
    bottom:calc(52px + env(safe-area-inset-bottom, 0px) + 0.1 * min(88vw,400px) - 1.5in);
    opacity:.13;
    transform:translateX(calc(42% + 1.5in)) rotate(-12deg);
  }
}
/* ── Mobile call dock ────────────────────────────────────────────── */
.callbar,.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;gap:10px;padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom));
  background:#111;border-top:1px solid rgba(255,255,255,.12);
  transform:translateY(110%);transition:transform var(--dur-hover) var(--ease-hover);
}
.callbar.is-visible,.sticky-cta.is-visible{transform:none}
.callbar .btn,.sticky-cta .btn{flex:1;min-height:48px;white-space:nowrap;padding-inline:12px}
/* Wave 7 carry-forward — sticky secondary ghost must read on #111 bar.
   Brand True: accent #FF7C1A, radius 0. White label + accent outline (not ink-on-dark). */
.callbar .btn--ghost,.sticky-cta .btn--ghost{
  color:#fff;border-color:var(--accent);background:transparent;box-shadow:none;filter:none;
}
.callbar .btn--ghost::before,.sticky-cta .btn--ghost::before{background:rgba(255,124,26,.18)}
@media (hover:hover){
  .callbar .btn--ghost:hover,.sticky-cta .btn--ghost:hover{
    color:#fff;border-color:#FFA04A;background:rgba(255,124,26,.16);box-shadow:none;filter:none;
  }
}
.callbar .phone-icon,.sticky-cta .phone-icon,
.btn .phone-icon,.hdr .phone-icon{
  width:18px;height:18px;flex:none;display:block;
}
@media (min-width:961px){.callbar,.sticky-cta{display:none}}
.hdr.is-open ~ .callbar{transform:translateY(110%)!important}

/* Desktop floating phone CTA removed — kept mobile callbar only */
.floating-cta,.cta-pill--floating{display:none!important}

/* ── Home boot: logo slam → honeycomb shatter ripple → hero lattice ─ */
html.boot-pending{overflow:hidden}
html.boot-pending body{overflow:hidden}
html.boot-pending .hdr__logo{opacity:0;pointer-events:none}
html.boot-pending.boot-nav-in .hdr__logo{opacity:1;pointer-events:auto}
html.boot-pending:not(.boot-latticing) .hero__scrim::before,
html.boot-pending:not(.boot-latticing) .hero__scrim::after{opacity:0;transition:none}
/* Lattice rises under the blast so corner honey reads as residue, not a hard cut */
html.boot-pending.boot-latticing .hero__scrim::before,
html.boot-pending.boot-latticing .hero__scrim::after{
  opacity:.2;
  transition:opacity 1.35s var(--ease-out) .2s;
}
@media (max-width:720px){
  html.boot-pending.boot-latticing .hero__scrim::before,
  html.boot-pending.boot-latticing .hero__scrim::after{opacity:.16}
}
/* Hold hero copy until the field is clearing — then allow resolve mid-boot */
html.boot-pending:not(.boot-revealing).js-motion .hr{animation:none!important;opacity:0}

.boot{
  position:fixed;inset:-40px;z-index:10000;
  display:grid;place-items:center;
  pointer-events:auto;
  overflow:hidden;
  background:transparent;
}
.boot.is-done{
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .4s ease,visibility 0s .4s;
}
/* Solid black until impact — then one continuously interpolated center hole opens. */
@property --boot-hole{
  syntax:'<percentage>';
  inherits:false;
  initial-value:0%;
}
.boot__field{
  --boot-hole:0%;
  position:absolute;inset:0;background:#090909;
  -webkit-mask-image:radial-gradient(circle at 50% 48%,
    transparent 0 calc(var(--boot-hole) - 10%),
    rgba(0,0,0,.35) calc(var(--boot-hole) - 4%),
    #000 var(--boot-hole),#000 100%);
  mask-image:radial-gradient(circle at 50% 48%,
    transparent 0 calc(var(--boot-hole) - 10%),
    rgba(0,0,0,.35) calc(var(--boot-hole) - 4%),
    #000 var(--boot-hole),#000 100%);
  will-change:opacity;
}
.boot.is-shatter .boot__field{
  animation:
    boot-field-tear 1.25s cubic-bezier(.2,.7,.2,1) forwards,
    boot-field-fade 1.25s linear forwards;
}
@keyframes boot-field-tear{
  from{--boot-hole:0%}
  to{--boot-hole:118%}
}
@keyframes boot-field-fade{
  0%,82%{opacity:1}
  100%{opacity:0}
}

.boot__honey{position:absolute;inset:0;pointer-events:none;overflow:hidden}
/* Soft full-field honey bloom at impact — not a circular vignette */
.boot__wash{
  position:absolute;inset:0;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:58px 50px;background-repeat:repeat;
  opacity:0;mix-blend-mode:screen;
}
.boot.is-impact .boot__wash{animation:boot-wash 1.55s var(--ease-out) forwards}
@keyframes boot-wash{
  0%{opacity:0}
  18%{opacity:.32}
  55%{opacity:.18}
  100%{opacity:0}
}
.boot__ring{
  position:absolute;left:50%;top:48%;
  width:140vmax;height:140vmax;
  margin-left:-70vmax;margin-top:-70vmax;
  border-radius:50%;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:52px 45px;background-repeat:repeat;
  opacity:0;mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(circle,transparent 40%,#000 46%,#000 54%,transparent 62%);
  mask-image:radial-gradient(circle,transparent 40%,#000 46%,#000 54%,transparent 62%);
  transform:scale(.12);
}
.boot.is-impact .boot__ring--1{animation:boot-ripple 1.55s var(--ease-out) forwards}
.boot.is-impact .boot__ring--2{animation:boot-ripple 1.65s var(--ease-out) .1s forwards}
.boot.is-impact .boot__ring--3{animation:boot-ripple 1.85s var(--ease-out) .2s forwards}
@keyframes boot-ripple{
  0%{opacity:0;transform:scale(.12)}
  14%{opacity:.62}
  70%{opacity:.28}
  100%{opacity:0;transform:scale(1.08)}
}

.boot__flash{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.5) 0%,rgba(255,124,26,.14) 26%,transparent 58%);
  opacity:0;
}
.boot.is-impact .boot__flash{animation:boot-flash .42s var(--ease-out) forwards}
@keyframes boot-flash{0%{opacity:.7}100%{opacity:0}}

.boot.is-impact{animation:boot-shake .4s var(--ease-out)}
@keyframes boot-shake{
  0%,100%{transform:translate(0,0)}
  12%{transform:translate(-10px,6px)}
  24%{transform:translate(11px,-5px)}
  36%{transform:translate(-8px,8px)}
  48%{transform:translate(9px,-4px)}
  60%{transform:translate(-6px,5px)}
  72%{transform:translate(5px,-3px)}
  84%{transform:translate(-3px,2px)}
}

.boot__mark{
  position:relative;z-index:4;
  width:min(58vw,240px);
  will-change:transform,opacity;
  opacity:0;
  transform:translateY(-28vh) scale(3.2);
}
@media (max-width:720px){
  .boot__mark{width:min(62vw,210px)}
}
.boot__mark img{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 40px rgba(0,0,0,.55))}
/* Violent crest tremor on the img only — composites with boot-crest on .boot__mark. Fired via is-tremor (490ms), before is-impact. */
.boot.is-tremor .boot__mark img{animation:boot-crest-tremor .7s linear}
@keyframes boot-crest-tremor{
  0%{transform:translate(-12px,8px) rotate(-2.2deg)}
  6%{transform:translate(14px,-9px) rotate(2.4deg)}
  12%{transform:translate(-11px,11px) rotate(-1.8deg)}
  18%{transform:translate(13px,-7px) rotate(2.1deg)}
  24%{transform:translate(-10px,9px) rotate(-2deg)}
  30%{transform:translate(11px,-10px) rotate(1.6deg)}
  36%{transform:translate(-9px,7px) rotate(-1.9deg)}
  42%{transform:translate(8px,-6px) rotate(1.4deg)}
  50%{transform:translate(-7px,5px) rotate(-1.2deg)}
  58%{transform:translate(5px,-4px) rotate(.9deg)}
  66%{transform:translate(-4px,3px) rotate(-.7deg)}
  74%{transform:translate(3px,-2px) rotate(.5deg)}
  82%{transform:translate(-2px,1px) rotate(-.3deg)}
  90%{transform:translate(1px,-1px) rotate(.15deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}
/* Crest motion: drop → land → 0.2s size hold (tremor on img) → camera rush.
   Duration 2.05s = 1.85s motion + 0.2s hold. Opacity stays 1 from early drop through mid-rush. */
.boot.is-slam .boot__mark{
  animation:boot-crest 2.05s cubic-bezier(.16,.84,.28,1) forwards;
}
@keyframes boot-crest{
  0%{opacity:0;transform:translateY(-32vh) scale(3.4)}
  34%{opacity:1;transform:translateY(4px) scale(.96)}
  38%{opacity:1;transform:translateY(0) scale(1)}
  48%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(0) scale(5)}
}
.boot.is-landed .boot__mark{opacity:0;pointer-events:none}
.boot.is-done .boot__mark{opacity:0}

@media (prefers-reduced-motion:reduce){
  .boot{display:none!important}
}

/* ── Motion: reveal ──────────────────────────────────────────────── */
html.js-motion .reveal{opacity:0;transform:translateY(32px);
  transition:opacity var(--dur-reveal) var(--ease-settle) var(--rd,0s),
             transform var(--dur-reveal) var(--ease-settle) var(--rd,0s)}
html.js-motion .reveal.is-visible{opacity:1;transform:none}
/* 380 > path length so offset 0 is solid and offset 380 is empty — no mid-draw gap */
html.js-motion .uline path{stroke-dasharray:380;stroke-dashoffset:380}
html.js-motion .uline.is-drawn path{
  animation:uline-draw .9s var(--ease-settle) forwards;
}
@keyframes uline-draw{
  from{stroke-dashoffset:380}
  to{stroke-dashoffset:0}
}
@media (prefers-reduced-motion:reduce){
  html.js-motion .uline path,
  html.js-motion .uline.is-drawn path{animation:none;stroke-dashoffset:0}
}

/* ── Hero resolve ────────────────────────────────────────────────── */
@keyframes hr-in{
  from{opacity:0;filter:blur(10px);transform:translateY(14px) scale(.985)}
  to{opacity:1;filter:blur(0);transform:none}
}
html.js-motion .hr{opacity:0;animation:hr-in .72s var(--ease-out) forwards}
html.js-motion .hr[data-d="1"]{animation-delay:60ms}
html.js-motion .hr[data-d="2"]{animation-delay:220ms}
html.js-motion .hr[data-d="3"]{animation-delay:400ms}
html.js-motion .hr[data-d="4"]{animation-delay:600ms}
html.js-motion .hr[data-d="5"]{animation-delay:780ms}
html.js-motion .hr[data-d="6"]{animation-delay:920ms}
html.js-motion .hr[data-d="7"]{animation-delay:1060ms}
.hr.hr-done,html.hero-in .hr{opacity:1;animation:none;filter:none;transform:none}

/* Mobile: poster-only hero — never paint/decode the mp4 on small viewports.
   Also hide the cinematic boot overlay so the poster is LCP without waiting for JS. */
@media (max-width: 767px){
  .hero__media video{display:none!important}
  .boot{display:none!important}
  /* Art-directed 9:16 — drop subject so head/KB sit just above eyebrow */
  .hero__media img{
    transform:none;
    object-position:center 62%;
  }
}

/* ── Mobile honeycomb spider-web entrance (no crest, poster stays LCP) ─ */
.honey-enter{display:none}
@media (max-width: 767px){
  .honey-enter{
    display:block;position:absolute;inset:0;z-index:2;
    pointer-events:none;overflow:hidden;
    opacity:0;visibility:hidden;
  }
  .honey-enter.is-active{opacity:1;visibility:visible}
  .honey-enter.is-done{
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .35s ease,visibility 0s .35s;
  }
  .honey-enter__wash{
    position:absolute;inset:0;
    background-image:url('assets/brand/honeycomb.svg');
    background-size:52px 45px;background-repeat:repeat;
    opacity:0;mix-blend-mode:screen;
  }
  .honey-enter.is-active .honey-enter__wash{animation:honey-enter-wash 1.2s var(--ease-out) forwards}
  @keyframes honey-enter-wash{
    0%{opacity:0}
    16%{opacity:.28}
    55%{opacity:.14}
    100%{opacity:0}
  }
  .honey-enter__ring{
    position:absolute;left:50%;top:46%;
    width:140vmax;height:140vmax;
    margin-left:-70vmax;margin-top:-70vmax;
    border-radius:50%;
    background-image:url('assets/brand/honeycomb.svg');
    background-size:48px 42px;background-repeat:repeat;
    opacity:0;mix-blend-mode:screen;
    -webkit-mask-image:radial-gradient(circle,transparent 40%,#000 46%,#000 54%,transparent 62%);
    mask-image:radial-gradient(circle,transparent 40%,#000 46%,#000 54%,transparent 62%);
    transform:scale(.1);
  }
  .honey-enter.is-active .honey-enter__ring--1{animation:honey-enter-ripple 1.15s var(--ease-out) forwards}
  .honey-enter.is-active .honey-enter__ring--2{animation:honey-enter-ripple 1.25s var(--ease-out) .08s forwards}
  .honey-enter.is-active .honey-enter__ring--3{animation:honey-enter-ripple 1.35s var(--ease-out) .16s forwards}
  @keyframes honey-enter-ripple{
    0%{opacity:0;transform:scale(.1)}
    12%{opacity:.58}
    65%{opacity:.22}
    100%{opacity:0;transform:scale(1.05)}
  }
  .pg--home .hero__in{z-index:3}
  /* Hold copy + corner lattice until the web clears */
  html.honey-entering.js-motion .hr{animation:none!important;opacity:0}
  html.honey-entering:not(.honey-latticing) .hero__scrim::before,
  html.honey-entering:not(.honey-latticing) .hero__scrim::after{opacity:0;transition:none}
  html.honey-entering.honey-latticing .hero__scrim::before,
  html.honey-entering.honey-latticing .hero__scrim::after{
    opacity:.16;
    transition:opacity .95s var(--ease-out) .08s;
  }
}
@media (prefers-reduced-motion:reduce){
  .honey-enter{display:none!important}
}

@media (prefers-reduced-motion:reduce){
  html.js-motion .reveal,html.js-motion .hr{opacity:1;transform:none;filter:none;animation:none}
  .hero__media video{display:none}
  .hero__media video.is-live{display:none}
  .layers-bg img{transform:none!important}
  .boot{display:none!important}
}

/* ── Interior pages ──────────────────────────────────────────────── */
.nav a[aria-current="page"]{color:var(--accent)}
.nav a[aria-current="page"]::after{transform:scaleX(1)}

.phero{
  position:relative;height:100svh;min-height:100svh;
  display:flex;align-items:flex-end;margin-top:0;overflow:clip;
  background:#0a0a0a;isolation:isolate;
}
@media (min-width:768px){
  .phero{height:100dvh;min-height:620px}
}
.phero--compact{height:auto;min-height:auto;background:var(--ink)}
.phero--compact .phero__in{padding-block:clamp(56px,10vw,96px)}
.phero__media{position:absolute;inset:0;z-index:0}
.phero__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.phero__scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.28) 40%,rgba(0,0,0,.92) 100%);
}
.phero__scrim::before,
.phero__scrim::after{
  content:'';position:absolute;pointer-events:none;
  width:min(44vw,400px);height:min(36vh,260px);
  background-image:url('assets/brand/honeycomb.svg');
  background-size:64px 56px;background-repeat:repeat;
  opacity:.1;mix-blend-mode:screen;
}
.phero__scrim::before{
  top:0;left:0;
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 0% 0%,#000 22%,transparent 70%);
  mask-image:radial-gradient(ellipse 85% 80% at 0% 0%,#000 22%,transparent 70%);
}
.phero__scrim::after{
  top:0;right:0;
  -webkit-mask-image:radial-gradient(ellipse 85% 80% at 100% 0%,#000 22%,transparent 70%);
  mask-image:radial-gradient(ellipse 85% 80% at 100% 0%,#000 22%,transparent 70%);
}
.phero__scrim--solid{background:var(--ink)}
.phero__in{
  position:relative;z-index:2;width:min(100% - 2*var(--pad),var(--wrap));
  margin-inline:auto;padding-block:clamp(48px,8vw,88px);padding-top:calc(var(--nav-h) + clamp(24px,4vw,48px));color:#fff;
  display:grid;gap:clamp(14px,2vh,22px);
}
.phero .kick{color:var(--accent);text-shadow:0 1px 12px rgba(0,0,0,.85)}
.phero .kick__x{color:rgba(255,255,255,.78);letter-spacing:.12em}
.phero h1{font-size:clamp(2.4rem,7.5vw,5.2rem);max-width:18ch;color:#fff;
  text-shadow:0 3px 28px rgba(0,0,0,.55)}
.phero .lede{color:rgba(255,255,255,.88);max-width:48ch;text-shadow:0 2px 16px rgba(0,0,0,.65)}
.phero .capsule{
  margin-top:var(--s3);max-width:58ch;font-size:clamp(1rem,.98rem + .2vw,1.12rem);
  line-height:1.55;color:rgba(255,255,255,.88);
}
.phero .btn__row{margin-top:var(--s3)}
.phero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6)}
@media (hover:hover){
  .phero .btn--ghost:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
}

.split{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center;
}
@media (max-width:800px){.split{grid-template-columns:1fr}}
.split__media{
  overflow:clip;border:1px solid var(--line);box-shadow:var(--shadow-rest);
  aspect-ratio:4 / 5;background:var(--ink);max-height:560px;
}
.split__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  border:0;box-shadow:none;
  filter:grayscale(1) contrast(1.06);
  transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover);
}
/* Facility amenities — keep natural proportions + full color */
.pg--facility #amenities .split__media{
  aspect-ratio:4 / 3;max-height:480px;
}
.pg--facility #amenities .split__media img{
  object-fit:cover;object-position:center center;
  filter:none;
}
@media (hover:hover){
  .pg--facility #amenities .split__media:hover img{filter:none;transform:scale(1.02)}
}
@media (hover:hover){
  .split__media:hover img{transform:scale(1.03);filter:grayscale(0) contrast(1)}
}
@media (hover:none){.split__media img{filter:none}}
.split__copy{display:grid;gap:var(--s2)}
.split--rev .split__media{order:2}
@media (max-width:800px){
  .split--rev .split__media{order:0}
  .split__media{max-height:420px;aspect-ratio:5 / 4}
}

.form{display:grid;gap:18px;max-width:640px}
/* Wave 7.1 — contact form gradient top bar + expectation-setter */
.form--contact,.contact-form{
  position:relative;overflow:hidden;padding:28px 24px 24px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-rest);
}
.form--contact::before,.contact-form::before{
  content:'';position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,#E66A0A 0%,#FF7C1A 45%,#FFA04A 100%);
}
.form__expect,.expectation-setter{
  display:grid;gap:8px;margin:0 0 6px;padding:14px 16px;
  background:rgba(255,124,26,.08);border:1px solid rgba(255,124,26,.22);
}
.form__expect p,.expectation-setter p{
  margin:0;font-size:.95rem;line-height:1.45;color:var(--muted);
}
.form__expect strong,.expectation-setter strong{color:var(--ink);font-weight:600}
.form__row{display:grid;gap:18px}
@media (min-width:600px){.form__row--2{grid-template-columns:1fr 1fr}}
.form label{
  display:grid;gap:8px;font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;font-weight:600;
}
.form input,.form select,.form textarea{
  width:100%;min-height:52px;padding:14px 16px;border:1px solid var(--line-2);
  background:var(--surface);font-family:var(--body);font-size:1rem;border-radius:0;
  transition:border-color var(--dur-hover);
}
.form textarea{min-height:140px;resize:vertical;padding-top:14px}
/* Wave 3.8 — outline:none only when paired with a custom focus ring */
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--wash-2),0 0 18px rgba(255,124,26,.22);
}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:4px;
  box-shadow:0 0 0 3px var(--wash-2),0 0 22px rgba(255,124,26,.28);
}
.form__note{font-size:.9rem;color:var(--muted);max-width:52ch;line-height:1.5}
.form.is-sent .form__note{color:var(--ink);font-weight:500}

.nap-card{
  background:var(--surface);border:1px solid var(--line);padding:clamp(24px,4vw,36px);
  display:grid;gap:var(--s2);box-shadow:var(--shadow-rest);align-content:start;
}
.nap-card dl{margin:0;display:grid;gap:16px}
.nap-card dt{
  font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);
}
.nap-card dd{margin:0;font-weight:500}
.nap-card .map-embed--in-card{
  margin-top:4px;
  aspect-ratio:4/3;
  border-color:var(--line-2);
}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  column-gap:clamp(24px,4vw,48px);
  row-gap:clamp(18px,2.5vw,28px);
  align-items:start;
}
.contact-hd{display:grid;gap:8px;align-content:start}
.contact-hd h2{margin:0}
.contact-hd .lede{margin:4px 0 0;max-width:42ch;color:var(--muted)}
.contact-grid > .form--contact,
.contact-grid > .contact-form{max-width:none;width:100%}
/* Visit layouts (about/facility): photo or map beside nap-card */
.contact-grid > .map-embed,
.contact-grid > .visit-media{
  margin:0;min-height:0;height:100%;
  align-self:stretch;
}
.contact-grid > .visit-media{
  overflow:clip;border:1px solid var(--line);box-shadow:var(--shadow-rest);
  background:var(--ink);aspect-ratio:4/5;max-height:560px;
}
.contact-grid > .visit-media img{
  width:100%;height:100%;object-fit:cover;object-position:center;display:block;
}
.contact-grid > .map-embed{aspect-ratio:4/5;max-height:560px;height:auto}
@media (min-width:901px){
  /* Contact page only — headers row + equalized cards (do not affect about/facility) */
  .pg--contact .contact-grid{align-items:stretch}
  .pg--contact .contact-hd--visit{grid-column:1;grid-row:1}
  .pg--contact .contact-hd--message{grid-column:2;grid-row:1}
  .pg--contact .contact-grid > .nap-card{grid-column:1;grid-row:2}
  .pg--contact .contact-grid > .form--contact,
  .pg--contact .contact-grid > .contact-form{grid-column:2;grid-row:2}
  .pg--contact .contact-grid > .nap-card,
  .pg--contact .contact-grid > .form--contact,
  .pg--contact .contact-grid > .contact-form{align-self:stretch}
  .pg--contact .form--contact,
  .pg--contact .contact-form{
    height:100%;
    display:flex;flex-direction:column;gap:18px;
  }
  .pg--contact .form--contact > .field--message,
  .pg--contact .contact-form > .field--message{
    flex:1 1 auto;display:flex;flex-direction:column;gap:8px;min-height:0;
  }
  .pg--contact .form--contact .field--message textarea,
  .pg--contact .contact-form .field--message textarea{
    flex:1 1 auto;min-height:180px;width:100%;
  }
}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr}
  .contact-grid > .visit-media,
  .contact-grid > .map-embed{aspect-ratio:16/10;max-height:none}
}

.map-embed{
  aspect-ratio:16/10;border:1px solid var(--line);overflow:hidden;background:var(--surface-2);
}
.map-embed iframe{width:100%;height:100%;border:0;display:block}

.trainer-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:640px){.trainer-cards{grid-template-columns:1fr}}
.trainer-card{
  background:var(--surface);border:1px solid var(--line);padding:24px;display:grid;gap:12px;
  box-shadow:var(--shadow-rest);
}
.reviews--2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media (max-width:700px){.reviews--2{grid-template-columns:1fr!important}}

/* ── Interior: answer-first lead ─────────────────────────────────── */
.lead-answer{padding-block:clamp(36px,5vw,56px);background:var(--surface);border-bottom:1px solid var(--line)}
.lead-answer p{
  max-width:62ch;margin-inline:auto;font-size:clamp(1.05rem,1rem + .35vw,1.2rem);
  line-height:1.58;color:var(--ink);font-weight:500;
}
.lead-answer time{
  display:block;margin-top:var(--s2);font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:right;max-width:62ch;
  margin-inline:auto;
}

/* ── Interior: membership plans ──────────────────────────────────── */
/* Charcoal + honeycomb + facility wash — matches reviews energy, white cards pop */
.plans-band{
  position:relative;overflow:clip;
  background:
    linear-gradient(105deg,#121212 0%,#121212 42%,rgba(18,18,18,.88) 62%,rgba(18,18,18,.55) 100%),
    url('assets/images/facility-03.webp') right center / cover no-repeat,
    #121212;
  color:#fff;
}
.plans-band::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.12;mix-blend-mode:screen;
  -webkit-mask-image:
    radial-gradient(ellipse 75% 65% at 15% 0%,#000 18%,transparent 72%),
    radial-gradient(ellipse 60% 55% at 100% 100%,#000 16%,transparent 70%),
    radial-gradient(ellipse 50% 40% at 80% 20%,#000 10%,transparent 65%);
  mask-image:
    radial-gradient(ellipse 75% 65% at 15% 0%,#000 18%,transparent 72%),
    radial-gradient(ellipse 60% 55% at 100% 100%,#000 16%,transparent 70%),
    radial-gradient(ellipse 50% 40% at 80% 20%,#000 10%,transparent 65%);
}
.plans-band::after{
  content:'';position:absolute;inset:auto -10% -20% 35%;z-index:0;pointer-events:none;
  height:60%;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(255,124,26,.22) 0%,transparent 70%);
}
.plans-band > .wrap{position:relative;z-index:1}
.plans-band .kick--ink{color:var(--accent)}
.plans-band h2,.plans-band h3{color:#fff}
.plans-band .plans-hd .lede,
.plans-band .billing-toggle__hint,
.plans-band .other-ways__hd p{color:rgba(255,255,255,.82)}
.plans-band .other-ways__hd h3{color:#fff}
.plans-band .uline path{stroke:var(--accent)}
.plans-band .tier-compare{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);
  box-shadow:0 18px 40px rgba(0,0,0,.4);backdrop-filter:blur(6px);
}
.plans-band .tier-compare__cell{border-right-color:rgba(255,255,255,.16)}
.plans-band .tier-compare__name{color:rgba(255,255,255,.7)}
.plans-band .tier-compare__price{color:#fff !important}
.plans-band .tier-compare__price span{color:rgba(255,255,255,.6)}
.plans-band .tier-compare__note{
  color:rgba(255,255,255,.78);background:rgba(255,124,26,.16);
  border-top-color:rgba(255,255,255,.14);
}
.plans-band .billing-toggle{
  background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);
}
.plans-band .billing-toggle__btn{color:rgba(255,255,255,.7)}
.plans-band .billing-toggle__btn.is-active{
  background:var(--accent);color:#111;
}
.plans-band .plan{
  background:#fff;border-color:transparent;
  box-shadow:0 16px 36px rgba(0,0,0,.35);
}
.plans-band .other-ways__item{
  background:rgba(255,255,255,.97);border-color:transparent;
  box-shadow:0 12px 28px rgba(0,0,0,.3);
}
.plans-band .other-ways__meta{color:var(--muted)}
@media (hover:hover){
  .plans-band .plan:hover,
  .plans-band .other-ways__item:hover{
    box-shadow:0 22px 44px rgba(0,0,0,.45);
  }
}

/* Wave 7.0d — section intros centered + width-constrained (§7b-3) */
.plans-hd{max-width:720px;margin:0 auto var(--s4);text-align:center}
.plans-hd .lede{margin-top:var(--s2);margin-inline:auto}
.plans-hd .uline{margin-inline:auto}
.plans__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.plans__grid{grid-template-columns:1fr}}
.plan{
  display:grid;grid-template-rows:auto auto 1fr auto;background:var(--surface);
  border:1px solid var(--line);box-shadow:var(--shadow-rest);height:100%;
  transition:translate var(--dur-hover) var(--ease-hover),border-color var(--dur-hover),
             box-shadow var(--dur-hover);
}
.plan__head{padding:var(--s3) var(--s3) 0;display:grid;gap:8px;border-top:3px solid var(--accent)}
.plan__price{
  font-family:var(--display);font-weight:700;font-size:clamp(2rem,4vw,2.8rem);
  letter-spacing:-.02em;line-height:1;
}
.plan__price span{font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:600;display:block;margin-top:6px}
.plan__fees{
  margin:0;font-family:var(--display);font-size:.8rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.plan__body{padding:var(--s2) var(--s3);display:grid;gap:10px;align-content:start}
.plan__body ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.plan__body li{
  position:relative;padding-left:18px;color:var(--muted);font-size:.98rem;line-height:1.45;
}
.plan__body li::before{content:'';position:absolute;left:0;top:.55em;width:8px;height:2px;background:var(--accent)}
.plan__foot{padding:0 var(--s3) var(--s3)}
.plan__foot .btn{width:100%}
.plans__note{
  margin-top:var(--s3);padding:var(--s2) var(--s3);background:var(--surface-2);
  border:1px solid var(--line);font-size:.95rem;color:var(--muted);max-width:62ch;
}
.plans__note b{color:var(--ink);font-weight:600}
@media (hover:hover){
  .plan:hover{translate:0 var(--lift);border-color:var(--accent);box-shadow:var(--shadow-lift)}
}

/* Billing toggle — monthly vs pay-in-full */
.billing-toggle{
  display:flex;margin:0 auto var(--s2);padding:4px;
  background:var(--surface-2);border:1px solid var(--line);
  gap:4px;width:max-content;max-width:100%;
}
.billing-toggle__btn{
  appearance:none;border:0;background:transparent;cursor:pointer;
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  padding:12px 18px;min-height:44px;color:var(--muted);
  transition:background var(--dur-hover),color var(--dur-hover);
}
.billing-toggle__btn.is-active{
  background:var(--ink);color:#fff;
}
.billing-toggle__hint{
  text-align:center;margin:0 auto var(--s4);max-width:46ch;
  font-size:.95rem;color:var(--muted);
}
#plans[data-billing="monthly"] [data-show="pif"],
#plans[data-billing="pif"] [data-show="monthly"]{display:none!important}
#plans[data-billing="monthly"] [data-show="monthly"],
#plans[data-billing="pif"] [data-show="pif"]{display:block!important}
#plans[data-billing="monthly"] .plan__price > [data-show="monthly"],
#plans[data-billing="pif"] .plan__price > [data-show="pif"]{display:block!important}
#plans .plan__price > [data-show] > span{display:block}
.plan.is-selected{border-color:var(--accent);box-shadow:var(--shadow-lift)}
.plan.is-selected .plan__head{border-top-color:var(--accent)}

/* Other ways in — clickable menu, inverted pyramid (3 then 2) */
.other-ways{margin-top:var(--s5);display:grid;gap:var(--s3)}
.other-ways__hd{max-width:52ch}
.other-ways__hd h3{font-size:clamp(1.15rem,2vw,1.45rem)}
.other-ways__menu{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
}
.other-ways__item{
  grid-column:span 2;
  appearance:none;width:100%;text-align:left;cursor:pointer;
  display:grid;gap:6px;align-content:start;
  padding:18px 18px 16px;min-height:96px;
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-top:3px solid var(--accent);
  box-shadow:var(--shadow-rest);font:inherit;
  transition:translate var(--dur-hover) var(--ease-hover),border-color var(--dur-hover),
             box-shadow var(--dur-hover),background var(--dur-hover);
}
/* Inverted pyramid: 3 across, then 2 centered */
.other-ways__menu > .other-ways__item:nth-child(4){grid-column:2 / span 2}
.other-ways__menu > .other-ways__item:nth-child(5){grid-column:4 / span 2}
.other-ways__name{
  font-family:var(--display);font-size:1rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--ink);
}
.other-ways__meta{font-size:.92rem;color:var(--muted);line-height:1.35}
.other-ways__go{
  margin-top:4px;font-family:var(--display);font-size:.75rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
}
.other-ways__item.is-selected{
  border-color:var(--accent);box-shadow:var(--shadow-lift);background:#fff;
}
@media (hover:hover){
  .other-ways__item:hover{
    translate:0 var(--lift);border-color:var(--accent);box-shadow:var(--shadow-lift);
  }
}
@media (max-width:800px){
  .other-ways__menu{grid-template-columns:1fr 1fr;gap:10px}
  .other-ways__item,
  .other-ways__menu > .other-ways__item:nth-child(4),
  .other-ways__menu > .other-ways__item:nth-child(5){grid-column:span 1}
  .other-ways__menu > .other-ways__item:nth-child(5):last-child{grid-column:1 / -1}
}
@media (max-width:520px){
  .other-ways__menu{grid-template-columns:1fr}
  .other-ways__item,
  .other-ways__menu > .other-ways__item:nth-child(4),
  .other-ways__menu > .other-ways__item:nth-child(5),
  .other-ways__menu > .other-ways__item:nth-child(5):last-child{grid-column:1}
}

.plans-footnote{
  margin:var(--s4) auto 0;max-width:54ch;text-align:center;
  font-size:.9rem;color:var(--muted);line-height:1.5;
}
.plans-footnote a{text-decoration:underline;text-underline-offset:3px}

/* Punchy cite / source bands — legacy alias; prefer .quote.quote--cite */
.cite-source{
  position:relative;overflow:clip;
  background:#111;color:#fff;
  padding-block:clamp(48px,7vw,88px);
}
.cite-source::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.14;mix-blend-mode:screen;
}
.cite-source .wrap{
  position:relative;z-index:1;
  display:flex;justify-content:center;
}
.cite-source .lede,
.cite-source__card{
  margin:0;max-width:46ch;width:100%;
  text-align:center;
  padding:clamp(22px,3vw,32px) clamp(22px,4vw,40px);
  border-top:3px solid var(--accent);
  background:rgba(255,255,255,.03);
  border-left:1px solid rgba(255,255,255,.1);
  border-right:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.1);
  font-family:var(--body);font-size:clamp(1.05rem,1rem + .35vw,1.28rem);
  font-weight:500;line-height:1.55;color:rgba(255,255,255,.92);
  text-wrap:pretty;
}
.cite-source .lede a,
.cite-source__card a{
  color:var(--accent);font-weight:600;
  text-decoration:underline;text-underline-offset:3px;
}
.cite-source__card{display:block}

.signup-selected{
  margin:0 auto var(--s3);max-width:40ch;text-align:center;
  font-family:var(--display);font-size:var(--fs-micro);font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.signup-selected strong{color:var(--accent);font-weight:700}
.signup.is-idle,
.signup[hidden]{display:none}
.signup.is-open{display:block}

/* ── Choose-path — light horizontal charging steps before plans ──── */
.choose-path{background:var(--surface)}
.choose-path__hd{text-align:center;max-width:720px;margin:0 auto var(--s4)}
.choose-path__hd .lede{margin:var(--s2) auto 0;color:var(--muted)}
.choose-steps{
  position:relative;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(18px,3vw,36px);
  padding-top:8px;
}
.choose-steps__rail{
  position:absolute;z-index:0;pointer-events:none;
  left:0;top:24px;width:0;height:4px;
}
.choose-steps__rail-track,
.choose-steps__rail-fill{
  position:absolute;inset:0;border-radius:999px;
}
.choose-steps__rail-track{
  background:rgba(255,124,26,.18);
  box-shadow:inset 0 0 0 1px rgba(255,124,26,.12);
}
.choose-steps__rail-fill{
  background:linear-gradient(90deg,#FFB07A 0%,var(--accent) 45%,#E85D00 100%);
  box-shadow:0 0 10px rgba(255,124,26,.55),0 0 2px rgba(255,124,26,.9);
  transform:scaleX(1);transform-origin:left center;
}
.choose-steps.is-vertical .choose-steps__rail-fill{
  background:linear-gradient(180deg,#FFB07A 0%,var(--accent) 45%,#E85D00 100%);
  transform:scaleY(1);transform-origin:top center;
}
.choose-steps__rail-head{
  position:absolute;left:0;top:50%;width:12px;height:12px;
  margin:-6px 0 0 -6px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 2px var(--accent),0 0 14px 3px rgba(255,124,26,.75),
             0 0 28px 6px rgba(255,124,26,.35);
  opacity:1;
}
.choose-steps.is-vertical .choose-steps__rail-head{
  left:50%;top:0;margin:-6px 0 0 -6px;
}
.choose-step{
  position:relative;z-index:1;
  text-align:center;
  padding:64px 12px 8px;
  display:grid;gap:10px;justify-items:center;
}
.choose-step__num{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:48px;height:48px;display:grid;place-items:center;
  background:var(--accent);color:#111;
  font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;
  border:3px solid var(--surface);box-shadow:0 0 0 2px var(--accent);
  z-index:2;
}
.choose-step h3{
  margin:0;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.15;
}
.choose-step p{
  margin:0;max-width:28ch;color:var(--muted);font-size:.95rem;line-height:1.45;
}
html.js-motion .choose-steps:not(.is-charged) .choose-steps__rail-fill{transform:scaleX(0)}
html.js-motion .choose-steps.is-vertical:not(.is-charged) .choose-steps__rail-fill{transform:scaleY(0)}
html.js-motion .choose-steps:not(.is-charged) .choose-steps__rail-head{left:0;opacity:0}
html.js-motion .choose-steps.is-vertical:not(.is-charged) .choose-steps__rail-head{top:0;left:50%;opacity:0}
html.js-motion .choose-steps.is-charging .choose-steps__rail-fill{
  transform:scaleX(1);
  transition:transform 1.45s cubic-bezier(.22,.61,.36,1);
}
html.js-motion .choose-steps.is-vertical.is-charging .choose-steps__rail-fill{
  transform:scaleY(1);
}
html.js-motion .choose-steps.is-charging .choose-steps__rail-head{
  left:100%;opacity:1;
  transition:left 1.45s cubic-bezier(.22,.61,.36,1),opacity .2s ease;
}
html.js-motion .choose-steps.is-vertical.is-charging .choose-steps__rail-head{
  left:50%;top:100%;
  transition:top 1.45s cubic-bezier(.22,.61,.36,1),opacity .2s ease;
}
html.js-motion .choose-steps.is-charged .choose-steps__rail-fill{transform:scaleX(1)}
html.js-motion .choose-steps.is-vertical.is-charged .choose-steps__rail-fill{transform:scaleY(1)}
html.js-motion .choose-steps.is-charged .choose-steps__rail-head{left:100%;opacity:.55}
html.js-motion .choose-steps.is-vertical.is-charged .choose-steps__rail-head{left:50%;top:100%;opacity:.55}
html.js-motion .choose-steps:not(.is-charged) .choose-step__num{
  filter:brightness(.72);
  box-shadow:0 0 0 2px rgba(255,124,26,.28);
}
html.js-motion .choose-steps .choose-step.is-lit .choose-step__num,
html.js-motion .choose-steps.is-charged .choose-step__num{
  filter:none;
  box-shadow:0 0 0 2px var(--accent),0 0 16px rgba(255,124,26,.45);
}
html.js-motion .choose-steps:not(.is-charged) .choose-step h3{opacity:.7}
html.js-motion .choose-steps:not(.is-charged) .choose-step p{
  /* Color dim instead of opacity — opacity×#484848 was reading as #9a9a9a (2.81:1) */
  color:#5c5c5c;opacity:1;
}
html.js-motion .choose-steps .choose-step.is-lit h3,
html.js-motion .choose-steps .choose-step.is-lit p,
html.js-motion .choose-steps.is-charged .choose-step h3,
html.js-motion .choose-steps.is-charged .choose-step p{opacity:1;color:inherit;transition:opacity .35s ease,color .35s ease}
html.js-motion .choose-steps.is-charged .choose-step p,
html.js-motion .choose-steps .choose-step.is-lit p{color:var(--muted)}
@media (max-width:800px){
  .choose-steps{
    grid-template-columns:1fr;
    gap:0;
    max-width:420px;margin-inline:auto;
    padding-top:0;
  }
  .choose-step{
    text-align:left;justify-items:start;
    padding:22px 12px 22px 80px;
  }
  .choose-step__num{left:18px;top:22px;transform:none;width:40px;height:40px;font-size:.95rem}
  .choose-step + .choose-step{border-top:1px solid var(--line)}
  .choose-steps__rail{width:4px}
}
@media (prefers-reduced-motion:reduce){
  html.js-motion .choose-steps .choose-steps__rail-fill,
  html.js-motion .choose-steps .choose-steps__rail-head{transition:none!important}
}

/* ── Interior: membership proof band ─────────────────────────────── */
.mem-proof{
  position:relative;overflow:clip;
  background:#111;color:#fff;
  border-top:3px solid var(--accent);
}
.mem-proof::before,
.mem-proof::after{
  content:'';position:absolute;z-index:0;pointer-events:none;
  width:min(300px,46vw);height:min(220px,36vw);
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.19;mix-blend-mode:screen;
}
.mem-proof::before{
  top:-10px;right:-14px;
  -webkit-mask-image:radial-gradient(ellipse 90% 85% at 100% 0%,#000 15%,transparent 72%);
  mask-image:radial-gradient(ellipse 90% 85% at 100% 0%,#000 15%,transparent 72%);
}
.mem-proof::after{
  bottom:-10px;left:-14px;
  -webkit-mask-image:radial-gradient(ellipse 90% 85% at 0% 100%,#000 15%,transparent 72%);
  mask-image:radial-gradient(ellipse 90% 85% at 0% 100%,#000 15%,transparent 72%);
}
.mem-proof .wrap{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,56px);align-items:center;
}
@media (max-width:800px){.mem-proof .wrap{grid-template-columns:1fr}}
.mem-proof__stat{
  margin:0;padding:0;background:none;border:0;box-shadow:none;
  width:max-content;max-width:100%;
  justify-self:center;
  translate:calc(clamp(28px,5vw,56px) / 2) 0;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  text-align:center;
}
.mem-proof__bar{
  display:block;width:28px;height:3px;background:var(--accent);border-radius:0;
  flex:0 0 auto;
  box-shadow:0 0 14px rgba(255,124,26,.55);
}
.mem-proof__stat b{
  display:flex;align-items:center;justify-content:center;gap:.08em;
  margin:0;font-family:var(--display);font-weight:500;
  font-size:clamp(4rem,11.5vw,7.2rem);letter-spacing:-.08em;line-height:.84;
  color:var(--accent);font-variation-settings:'wght' 500;
  text-shadow:0 0 28px rgba(255,124,26,.35);
}
.mem-proof__num{display:inline-block;font-weight:500}
.mem-proof__star{
  width:.62em;height:.62em;flex:0 0 auto;
  transform:scaleX(.78) translateY(-.02em);transform-origin:center;
  filter:drop-shadow(0 0 10px rgba(255,124,26,.45));
}
.mem-proof__caption{
  display:block;margin:0;font-family:var(--display);
  font-size:clamp(.88rem,.84rem + .2vw,1.02rem);font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62);
  text-align:center;line-height:1.35;
}
.mem-proof__copy{display:grid;gap:10px}
.mem-proof__copy .kick{color:var(--accent)}
.mem-proof__copy h3{font-size:clamp(1.25rem,2.4vw,1.65rem);color:#fff}
.mem-proof__copy p{color:rgba(255,255,255,.78);line-height:1.55;max-width:48ch}
@media (max-width:800px){
  .mem-proof__stat{justify-self:center;margin-bottom:4px;translate:none}
}

/* ── Service area city cards ─────────────────────────────────────── */
.city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.city-grid{grid-template-columns:1fr}}
.city-card{
  display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);
  padding:var(--s3);box-shadow:var(--shadow-rest);height:100%;
  transition:translate var(--dur-hover) var(--ease-hover),border-color var(--dur-hover),
             box-shadow var(--dur-hover);text-decoration:none;color:inherit;
}
.city-card__k{
  font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:700;
}
.city-card h3{font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.2}
.city-card p{color:var(--muted);font-size:.98rem;line-height:1.5;margin:0}
.city-card__more{
  font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.1em;
  text-transform:uppercase;font-weight:700;color:var(--accent);margin-top:4px;
}
@media (hover:hover){
  .city-card:hover{translate:0 var(--lift);border-color:var(--accent);box-shadow:var(--shadow-lift)}
}
.area-links{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:var(--s3)}
.area-links a{
  font-family:var(--display);font-size:var(--fs-micro);letter-spacing:.1em;
  text-transform:uppercase;font-weight:700;color:var(--ink);text-decoration:none;
  border-bottom:2px solid var(--accent);padding:12px 0;min-height:44px;
  display:inline-flex;align-items:center;
}
.area-links a:hover{color:var(--accent)}
.area-local{display:grid;gap:12px;max-width:62ch}
.area-local ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.area-local li{
  position:relative;padding-left:18px;color:var(--muted);font-size:.98rem;line-height:1.45;
}
.area-local li::before{content:'';position:absolute;left:0;top:.55em;width:8px;height:2px;background:var(--accent)}

/* ── Trainers / team ─────────────────────────────────────────────── */
.trainer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,32px)}
@media (max-width:800px){.trainer-grid{grid-template-columns:1fr}}
.trainer{
  display:grid;grid-template-columns:minmax(140px,.42fr) 1fr;gap:0;
  background:var(--surface);border:1px solid var(--line);overflow:clip;
  box-shadow:var(--shadow-rest);
}
@media (max-width:560px){.trainer{grid-template-columns:1fr}}
.trainer__media{aspect-ratio:3/4;overflow:clip;background:var(--ink);min-height:220px}
.trainer__media img{
  width:100%;height:100%;object-fit:cover;object-position:center top;display:block;
  filter:grayscale(1) contrast(1.06);
  transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover);
}
@media (hover:hover){
  .trainer__media:hover img{transform:scale(1.04);filter:grayscale(0) contrast(1)}
}
@media (hover:none){.trainer__media img{filter:none}}
.trainer__body{padding:clamp(20px,3vw,28px);display:grid;gap:12px;align-content:start}
.trainer__body h3{font-size:clamp(1.25rem,2.2vw,1.55rem)}
.trainer__body p{color:var(--muted);line-height:1.5}
.trainer .rev{margin-top:4px;box-shadow:none}

/* Unified coaching team — 4-over-3 inverted pyramid, bottom row centered */
.team-grid{
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:18px;
  max-width:1200px;margin-inline:auto;
}
.team-grid > .team-card{grid-column:span 2}
.team-grid > .team-card:nth-child(5){grid-column:2 / span 2}
.team-grid > .team-card:nth-child(6){grid-column:4 / span 2}
.team-grid > .team-card:nth-child(7){grid-column:6 / span 2}
@media (max-width:1000px){
  .team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .team-grid > .team-card,
  .team-grid > .team-card:nth-child(5),
  .team-grid > .team-card:nth-child(6),
  .team-grid > .team-card:nth-child(7){grid-column:span 1}
  /* 3 + 3 + 1 centered */
  .team-grid > .team-card:nth-child(7):last-child{grid-column:2}
}
@media (max-width:700px){
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-grid > .team-card,
  .team-grid > .team-card:nth-child(5),
  .team-grid > .team-card:nth-child(6),
  .team-grid > .team-card:nth-child(7),
  .team-grid > .team-card:nth-child(7):last-child{grid-column:span 1}
  /* Last card centered on final row */
  .team-grid > .team-card:nth-child(7):last-child{grid-column:1 / -1;max-width:calc(50% - 9px);justify-self:center;width:100%}
}
@media (max-width:420px){
  .team-grid{grid-template-columns:1fr;max-width:360px}
  .team-grid > .team-card,
  .team-grid > .team-card:nth-child(5),
  .team-grid > .team-card:nth-child(6),
  .team-grid > .team-card:nth-child(7),
  .team-grid > .team-card:nth-child(7):last-child{
    grid-column:1;max-width:none;width:auto;justify-self:stretch;
  }
}
.team-card{
  background:var(--surface);border:1px solid var(--line);overflow:clip;
  box-shadow:var(--shadow-rest);display:grid;grid-template-rows:auto 1fr;
}
.team-card__media{aspect-ratio:1;overflow:clip;background:var(--ink)}
.team-card__media img{
  width:100%;height:100%;object-fit:cover;object-position:center center;display:block;
  filter:grayscale(1) contrast(1.06);
  transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover);
}
.team-card__body{padding:18px 20px;display:grid;gap:6px;align-content:start}
.team-card__body h3{font-size:1.1rem;line-height:1.2}
.team-card__body p{color:var(--muted);font-size:.92rem;line-height:1.45;margin:0}

.signup{
  background:var(--ink);color:#fff;padding-block:var(--s5);text-align:center;
}
.signup .kick{color:var(--accent)}
.signup h2{max-width:18ch;margin-inline:auto;color:#fff}
.signup .lede{margin:var(--s3) auto 0;color:rgba(255,255,255,.78)}
.signup .btn__row{justify-content:center;margin-top:var(--s4)}
.signup .btn--ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.signup .note{margin-top:var(--s3);font-size:.92rem;color:rgba(255,255,255,.6);max-width:48ch;margin-inline:auto}
.signup-embed{
  margin:var(--s4) auto 0;max-width:920px;
  border:1px solid rgba(255,255,255,.18);background:#0a0a0a;
  overflow:clip;min-height:720px;
}
.signup-embed iframe{
  display:block;width:100%;height:min(78vh,920px);min-height:720px;
  border:0;background:#fff;
}
.signup .signup-fallback{margin-top:var(--s3);font-size:.92rem;color:rgba(255,255,255,.65)}
.signup .signup-fallback a{color:#fff;text-decoration:underline;text-underline-offset:3px}

.clean-band .wrap{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(24px,4vw,40px);align-items:center;
}
@media (max-width:800px){.clean-band .wrap{grid-template-columns:1fr}}
.clean-band__media{
  aspect-ratio:4/5;max-height:480px;overflow:clip;border:1px solid var(--line);
  box-shadow:var(--shadow-rest);background:var(--ink);
}
.clean-band__media img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.06);
  transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover);
}
@media (hover:hover){
  .clean-band__media:hover img{transform:scale(1.03);filter:grayscale(0) contrast(1)}
}
@media (hover:none){
  .clean-band__media img{filter:none}
}

/* ═══════════════════════════════════════════════════════════════════
   WAVE 3 — Depth, hover, focus, micro-interactions
   Brand True: radius 0 throughout (sharp geometry, not pills)
   ═══════════════════════════════════════════════════════════════════ */

/* 3.1 — Service / feature cards: lift + shadow + image zoom */
.service-card,.feature-card{
  transition:transform var(--dur-hover) var(--ease-hover),
             box-shadow var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover) var(--ease-hover),
             translate var(--dur-hover) var(--ease-hover);
}
.service-card img,.feature-card img,.card img{
  transition:transform .45s var(--ease-hover);
}
@media (hover:hover){
  .service-card:hover,.feature-card:hover,.card:hover{
    transform:translateY(-6px);
    translate:0 -6px;
    box-shadow:var(--shadow-lift);
    border-color:var(--accent);
  }
  .service-card:hover img,.feature-card:hover img,.card:hover img,
  .service-card:hover .path__media,.feature-card:hover .path__media,
  .service-card:hover .why-card__media img,.feature-card:hover .why-card__media img,
  .service-card:hover .team-card__media img,.feature-card:hover .team-card__media img{
    transform:scale(1.045);
  }
}

/* 3.2 — Audience / persona cards: gradient top-bar reveal + icon morph to accent */
.audience-card,.persona-card{position:relative;overflow:clip}
.audience-card::before,.persona-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;z-index:3;
  background:linear-gradient(90deg,var(--accent) 0%,#FFB07A 55%,var(--accent-2) 100%);
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-hover) var(--ease-hover);
}
.audience-card .audience-card__icon,.persona-card .audience-card__icon,
.audience-card .kick,.persona-card .kick{
  transition:color var(--dur-hover) var(--ease-hover),
             transform var(--dur-hover) var(--ease-hover);
}
.audience-card__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;margin-bottom:8px;
  font-size:0;line-height:1;color:transparent;
  border:2px solid var(--muted);background:transparent;
  /* Brand True sharp square — not a unicode glyph */
  transition:color var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover) var(--ease-hover),
             background var(--dur-hover) var(--ease-hover),
             transform var(--dur-hover) var(--ease-hover);
}
@media (hover:none){
  /* Touch: keep the accent top-bar readable without hover */
  .audience-card::before,.persona-card::before{transform:scaleX(1)}
  .audience-card__icon{border-color:var(--accent);background:var(--accent)}
}
@media (hover:hover){
  .audience-card:hover::before,.persona-card:hover::before,
  .audience-card:focus-within::before,.persona-card:focus-within::before{
    transform:scaleX(1);
  }
  .audience-card:hover .audience-card__icon,
  .persona-card:hover .audience-card__icon,
  .audience-card:hover .kick,.persona-card:hover .kick{
    color:var(--accent);
    transform:translateY(-1px);
  }
  .audience-card:hover .audience-card__icon,
  .persona-card:hover .audience-card__icon{
    border-color:var(--accent);background:var(--accent);color:var(--accent);
  }
  .audience-card:hover h3,.persona-card:hover h3{color:var(--accent)}
}

/* 3.5 — Trust marquee / logo strip: uppercase, accent dots, pause on hover */
.trust-strip,.logo-strip,.marquee{
  background:var(--ink);color:#fff;overflow:hidden;
  border-block:1px solid rgba(255,255,255,.08);
  z-index:3;
}
.hero-fold > .trust-strip{
  border-top:1px solid rgba(255,255,255,.12);
  /* Same accent rule as the credibility bar’s top edge */
  border-bottom:3px solid var(--accent);
}
.trust-strip__track,.logo-strip__track,.marquee__track{
  display:flex;width:max-content;align-items:center;gap:0;
  animation:trust-marquee 36s linear infinite;
  will-change:transform;
}
.trust-strip:hover .trust-strip__track,
.trust-strip:hover .marquee__track,
.logo-strip:hover .logo-strip__track,
.marquee:hover .marquee__track,
.trust-strip:hover .trust-strip__track,
.logo-strip:hover .logo-strip__track{
  animation-play-state:paused;
}
.trust-strip__item,.logo-strip__item,.marquee__item{
  position:relative;
  display:inline-flex;align-items:center;gap:0;
  /* Equal L/R pad — bullet sits on the item boundary so space before/after matches */
  padding:14px 36px;white-space:nowrap;
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.88);
}
.trust-strip__item::after,.logo-strip__item::after,.marquee__item::after{
  content:'';position:absolute;right:0;top:50%;
  width:6px;height:6px;border-radius:0;
  transform:translate(50%,-50%);
  background:var(--accent);box-shadow:0 0 0 2px rgba(255,124,26,.25);
}
@keyframes trust-marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .trust-strip__track,.logo-strip__track,.marquee__track{animation:none}
}

/* Interior page hero H1 halo (Wave 3.3 companion) */
.phero h1{position:relative}
.phero h1::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;
  left:-6%;top:-20%;width:112%;height:140%;
  background:radial-gradient(46% 50% at 28% 45%,rgba(255,124,26,.16) 0%,rgba(255,124,26,.04) 48%,rgba(255,124,26,0) 72%);
}

/* Align path / why / plan / city / team lift with checklist translateY(-6px) */
@media (hover:hover){
  .path:hover,.path:focus-within{
    transform:translateY(-6px);translate:0 -6px;
  }
  .why-card:hover,.plan:hover,.city-card:hover,.team-card:hover{
    transform:translateY(-6px);translate:0 -6px;
  }
}
.team-card{
  transition:transform var(--dur-hover) var(--ease-hover),
             box-shadow var(--dur-hover),border-color var(--dur-hover),
             translate var(--dur-hover) var(--ease-hover);
}
.team-card__media img{transition:transform .45s var(--ease-hover),filter .45s var(--ease-hover)}
@media (hover:hover){
  .team-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lift)}
  .team-card:hover .team-card__media img{
    transform:scale(1.045);filter:grayscale(0) contrast(1);
  }
}
/* Touch: keep team cards grayscale (no hover:none color override) */


/* ═══════════════════════════════════════════════════════════════════
   Wave 4 — Imagery & art direction
   ═══════════════════════════════════════════════════════════════════ */

/* 4.7 — Gradient bottom-fade on hero-image / split-image
   CRITICAL: do NOT set position:relative on .hero-image alone — that would
   override .hero__media / .phero__media {position:absolute;inset:0} and
   collapse the full-bleed hero (CFE Wave 4 regression). */
.hero-image::after,
.split-image::after{
  content:'';
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(0,0,0,0) 42%,
    rgba(0,0,0,.22) 72%,
    rgba(0,0,0,.55) 100%);
}
/* Full-bleed heroes already have .hero__scrim / .phero__scrim — keep the
   ::after fade light so we don't crush the photo twice */
.hero__media.hero-image::after,
.phero__media.hero-image::after{
  background:linear-gradient(180deg,
    rgba(0,0,0,0) 55%,
    rgba(0,0,0,.18) 78%,
    rgba(0,0,0,.42) 100%);
}
/* In-flow split panels may safely be relative for the ::after anchor */
.split__media.split-image{position:relative;isolation:isolate}
.split__media.split-image img{position:relative;z-index:0}

/* 4.8 — Service / icon depth (blurred accent ring + drop shadow) */
.service-icon,
.icon-circle,
.audience-card__icon.service-icon{
  box-shadow:
    0 0 0 2px rgba(255,124,26,.35),
    0 0 14px rgba(255,124,26,.4),
    0 4px 12px rgba(0,0,0,.28);
  filter:drop-shadow(0 3px 8px rgba(255,124,26,.28));
}
/* Path card numerals act as the service-card icon mark */
.path__num.service-icon,
.path__num.icon-circle{
  text-shadow:
    0 0 12px rgba(255,124,26,.45),
    0 2px 6px rgba(0,0,0,.55);
  filter:drop-shadow(0 4px 10px rgba(255,124,26,.3));
  box-shadow:none; /* numerals aren't boxes */
}

/* ── Member focus carousel — continuous 3-up, people photos only ─── */
.member-slider{
  --ms-gap:16px;
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  margin-top:var(--s2);
}
.member-slider__viewport{
  overflow:hidden;
  padding:18px 0 12px;
  container-type:inline-size;
  container-name:member-vp;
}
.member-slider__track{
  display:flex;
  align-items:center;
  gap:var(--ms-gap);
  will-change:transform;
  transition:transform .55s var(--ease-settle);
}
.member-slider__track.is-jumping{transition:none}
.member-slide{
  flex:0 0 calc((100cqi - (2 * var(--ms-gap))) / 3);
  margin:0;
  position:relative;
  border:1.5px solid rgba(255,124,26,.42);
  background:var(--ink);
  overflow:clip;
  transform:scale(.9);
  opacity:.7;
  filter:grayscale(1) contrast(1.05);
  transition:transform .55s var(--ease-settle),opacity .45s ease,filter .45s ease,
             border-color .35s ease,box-shadow .35s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.member-slide.is-active{
  transform:scale(1);
  opacity:1;
  filter:none;
  border-color:var(--accent);
  box-shadow:0 16px 40px -18px rgba(255,124,26,.45),0 6px 18px rgba(0,0,0,.18);
  z-index:2;
}
.member-slide img{
  width:100%;aspect-ratio:4/5;object-fit:cover;display:block;
  height:auto!important;
}
.member-slide figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:28px 16px 14px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));
  color:#fff;font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  opacity:0;transform:translateY(6px);
  transition:opacity .35s ease,transform .35s ease;
}
.member-slide.is-active figcaption{opacity:1;transform:none}
.member-slider__btn{
  width:48px;height:48px;border:1.5px solid rgba(255,124,26,.55);
  background:var(--surface);color:var(--accent);cursor:pointer;
  display:grid;place-items:center;padding:0;flex-shrink:0;
  transition:background var(--dur-hover),border-color var(--dur-hover),color var(--dur-hover);
}
.member-slider__btn svg{width:18px;height:18px;display:block}
@media (hover:hover){
  .member-slider__btn:hover{background:var(--accent);border-color:var(--accent);color:#111}
}
.member-slider__btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (max-width:900px){
  .member-slide{flex-basis:calc((100cqi - var(--ms-gap)) / 2);max-width:none}
}
@media (max-width:720px){
  .member-slider{
    display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;
  }
  .member-slider__viewport{width:100%;order:1}
  .member-slider__btn--prev{order:2}
  .member-slider__btn--next{order:3}
  .member-slide{flex-basis:min(78cqi,300px);max-width:320px}
}
@media (prefers-reduced-motion:reduce){
  .member-slider__track,.member-slide{transition:none}
}

/* 4.9 — Gallery / portfolio cards: lift + image zoom + caption fade-in */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gallery-grid{grid-template-columns:1fr}}
.gallery-card,
.portfolio-card{
  position:relative;overflow:clip;margin:0;
  background:var(--ink);border:1px solid var(--line);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),
             0 14px 36px -24px rgba(255,124,26,.28),
             0 2px 10px rgba(0,0,0,.16);
  transition:transform var(--dur-hover) var(--ease-hover),
             box-shadow var(--dur-hover) var(--ease-hover),
             border-color var(--dur-hover);
}
.gallery-card img,
.portfolio-card img{
  width:100%;height:auto!important;aspect-ratio:1;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.06);
  transition:transform .5s var(--ease-hover),filter .45s var(--ease-hover);
}
/* Facility / space gallery — landscape crops so cardio + equipment stay readable */
.space-grid .gallery-card img,
.space-grid .portfolio-card img{
  aspect-ratio:4/3;
  object-position:center center;
}
.space-grid .gallery-card img[src*="fb-cardio"],
.space-grid .portfolio-card img[src*="fb-cardio"]{
  object-position:center 65%;
}
.gallery-card figcaption,
.portfolio-card figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:18px 16px 14px;
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.72) 100%);
  opacity:0;transform:translateY(22px);
  transition:opacity var(--dur-hover) var(--ease-hover),
             transform var(--dur-hover) var(--ease-hover);
}
@media (hover:hover){
  .gallery-card:hover,
  .portfolio-card:hover{
    transform:translateY(-6px);
    border-color:var(--accent);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),
               0 22px 48px -22px rgba(255,124,26,.4),
               0 8px 22px rgba(0,0,0,.22);
  }
  .gallery-card:hover img,
  .portfolio-card:hover img{transform:scale(1.06);filter:grayscale(0) contrast(1)}
  .gallery-card:hover figcaption,
  .portfolio-card:hover figcaption{opacity:1;transform:translateY(0)}
}
@media (hover:none){
  /* Touch: captions readable + color at rest (no hover) */
  .gallery-card figcaption,
  .portfolio-card figcaption{opacity:1;transform:none}
  .gallery-card img,
  .portfolio-card img{filter:none}
}

/* ── Wave 5 — Cross-page hero rhythm ── */
.pg--memberships .phero{min-height:560px}
.pg--memberships .phero h1{font-size:clamp(2.15rem,6.2vw,4.4rem);max-width:20ch}
.pg--memberships .phero .lede{max-width:42ch}
.pg--memberships .phero__in{padding-block:clamp(40px,7vw,72px)}

.pg--training .phero{min-height:680px}
.pg--training .phero h1{font-size:clamp(2.55rem,7.8vw,5.5rem);max-width:14ch}
.pg--training .phero .lede{max-width:38ch}
.pg--training .phero__in{padding-block:clamp(52px,9vw,96px)}
.pg--training .phero .btn__row{flex-wrap:wrap;gap:12px}

/* PT non-coach imagery: full color (team cards stay grayscale → color on hover) */
.pg--training .split__media img,
.pg--training .phero__media img{
  filter:none;
}
@media (hover:hover){
  .pg--training .split__media:hover img,
  .pg--training .phero__media:hover img{
    filter:none;
  }
}

/* Who-it-is-for: pull image closer to copy */
.pg--training #who .split{
  gap:clamp(18px,3vw,36px);
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
}
.pg--training #who .split__media{justify-self:end}
.pg--training #who .split__media,
.pg--training #who .split__media.framed-image,
.pg--training #who .split__media.image-frame{
  border:0;
  box-shadow:none;
}
@media (max-width:800px){
  .pg--training #who .split{grid-template-columns:1fr}
  .pg--training #who .split__media{justify-self:stretch}
}

.pg--about .phero{min-height:580px;align-items:center}
.pg--about .phero h1{font-size:clamp(2.3rem,6.8vw,4.7rem);max-width:14ch}
.pg--about .phero .lede{max-width:44ch}
.pg--about .phero__in{padding-block:clamp(56px,10vw,100px)}
.pg--about .phero__media img{object-position:center 42%}
@media (max-width:700px){
  .pg--about .phero__media img{object-position:center 38%}
}

.pg--contact .phero{min-height:500px;align-items:center}
.pg--contact .phero h1{font-size:clamp(2.4rem,7vw,4.9rem);max-width:12ch}
.pg--contact .phero .lede{max-width:46ch}
.pg--contact .phero__in{padding-block:clamp(36px,6vw,64px)}
.pg--contact .phero .btn__row{flex-wrap:wrap;gap:10px}

/* Contact FAQ — charcoal + corner honeycomb (mem-proof energy); scoped so other FAQs stay light */
.pg--contact #faq{
  position:relative;overflow:clip;
  background:#111;color:#fff;
  border-top:3px solid var(--accent);
}
.pg--contact #faq::before,
.pg--contact #faq::after{
  content:'';position:absolute;z-index:0;pointer-events:none;
  width:min(300px,46vw);height:min(220px,36vw);
  background-image:url('assets/brand/honeycomb.svg');
  background-size:56px 48px;background-repeat:repeat;
  opacity:.14;mix-blend-mode:screen;
}
.pg--contact #faq::before{
  top:-10px;right:-14px;
  -webkit-mask-image:radial-gradient(ellipse 90% 85% at 100% 0%,#000 15%,transparent 72%);
  mask-image:radial-gradient(ellipse 90% 85% at 100% 0%,#000 15%,transparent 72%);
}
.pg--contact #faq::after{
  bottom:-10px;left:-14px;
  -webkit-mask-image:radial-gradient(ellipse 90% 85% at 0% 100%,#000 15%,transparent 72%);
  mask-image:radial-gradient(ellipse 90% 85% at 0% 100%,#000 15%,transparent 72%);
}
.pg--contact #faq > .wrap{position:relative;z-index:1}
.pg--contact #faq .faq__hd .kick--ink{color:var(--accent)}
.pg--contact #faq .faq__hd h2{color:#fff}
.pg--contact #faq details{border-color:rgba(255,255,255,.18)}
.pg--contact #faq details:last-of-type{border-bottom-color:rgba(255,255,255,.18)}
.pg--contact #faq summary{color:#fff}
.pg--contact #faq summary h3{color:#fff}
.pg--contact #faq .a p{color:rgba(255,255,255,.78)}
.pg--contact #faq details[open] summary::after{background-color:rgba(255,124,26,.16)}
@media (hover:hover){
  .pg--contact #faq summary:hover::after{background-color:rgba(255,124,26,.16)}
  .pg--contact #faq details:hover{background:rgba(255,124,26,.08)}
}

.pg--service-areas .phero{min-height:540px}
.pg--service-areas .phero h1{font-size:clamp(2.2rem,6.5vw,4.6rem);max-width:22ch}
.pg--service-areas .phero .lede{max-width:52ch}
.pg--service-areas .phero__in{padding-block:clamp(44px,7.5vw,80px)}

.pg--service-area .phero{min-height:500px}
.pg--service-area .phero h1{font-size:clamp(2.05rem,5.8vw,4.1rem);max-width:16ch}
.pg--service-area .phero .lede{max-width:40ch}
.pg--service-area .phero__in{padding-block:clamp(36px,6.5vw,68px)}

.pg--glen-carbon .phero h1{max-width:15ch}
.pg--maryville .phero h1{max-width:14ch}
.pg--collinsville .phero h1{max-width:12ch;font-size:clamp(2.2rem,6vw,4.2rem)}
.pg--collinsville .phero .kick{letter-spacing:.08em}
.pg--collinsville .phero .kick__x{letter-spacing:.06em}
.pg--service-area .phero .kick{white-space:normal;max-width:100%}
@media (max-width:380px){
  .pg--service-area .phero .kick__x{display:none}
}

/* Wave 5 — PT process diagram */
.process-steps{
  list-style:none;margin:var(--s3) 0 0;padding:0;
  display:grid;gap:0;border-left:2px solid var(--accent);
}
.process-steps__item{
  display:grid;grid-template-columns:auto 1fr;gap:14px 16px;
  padding:14px 0 14px 18px;position:relative;
}
.process-steps__item + .process-steps__item{border-top:1px solid var(--line)}
.process-steps__num{
  font-family:var(--display);font-weight:700;font-size:var(--fs-micro);
  letter-spacing:.14em;color:var(--accent);line-height:1.2;padding-top:2px;
}
.process-steps__item strong{
  display:block;font-family:var(--display);font-weight:700;
  font-size:1.05rem;margin-bottom:4px;
}
.process-steps__item p{margin:0;color:var(--ink-soft, #484848);font-size:1rem;line-height:1.5;max-width:42ch}

/* Wave 5 — Town drive callouts */
.drive-callout{
  display:grid;grid-template-columns:auto 1fr;gap:20px 28px;align-items:center;
  margin:0 0 var(--s4);padding:22px 24px;
  background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 0 0 1px rgba(255,124,26,.22), 0 16px 40px -28px rgba(0,0,0,.55);
}
@media (max-width:560px){
  .drive-callout{grid-template-columns:1fr;gap:14px;padding:18px 18px}
}
.drive-callout__num{
  margin:0;font-family:var(--display);font-weight:700;
  font-size:clamp(2.6rem,8vw,4rem);line-height:.95;letter-spacing:-.03em;color:#fff;
}
.drive-callout__num span{
  display:inline-block;margin-left:6px;
  font-size:.38em;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);vertical-align:middle;font-weight:700;
}
.drive-callout__meta{display:grid;gap:4px}
.drive-callout__label{
  margin:0;font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
}
.drive-callout__route{margin:0;font-weight:600;color:#fff}
.drive-callout__note{margin:0;color:rgba(255,255,255,.72);font-size:.95rem}
.drive-callout__chips{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;
}
.drive-callout__chips li{
  font-family:var(--display);font-weight:700;font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;
  padding:10px 14px;border:1px solid rgba(255,124,26,.55);color:var(--accent);
}
.drive-callout--routes{grid-template-columns:1fr;gap:16px}
.drive-callout--routes .drive-callout__chips{margin-bottom:2px}

/* Wave 5 — Membership tier comparison strip */
.tier-compare{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;margin:0 0 var(--s4);border:1px solid var(--line);background:var(--surface,#fff);
}
@media (max-width:720px){.tier-compare{grid-template-columns:1fr}}
.tier-compare__cell{
  display:grid;gap:6px;padding:18px 20px;
  border-right:1px solid var(--line);
}
@media (max-width:720px){
  .tier-compare__cell{border-right:0;border-bottom:1px solid var(--line)}
}
.tier-compare__cell:last-of-type{border-right:0}
.tier-compare__name{
  font-family:var(--display);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#484848);
}
.tier-compare__price{
  font-family:var(--display);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;
  letter-spacing:-.02em;line-height:1;color:var(--ink);
}
.tier-compare__price span{
  font-size:.42em;letter-spacing:.06em;margin-left:4px;
  color:var(--muted,#484848);font-weight:600;
}
.tier-compare__note{
  grid-column:1 / -1;margin:0;padding:12px 20px;
  font-size:.95rem;color:var(--muted,#484848);
  background:rgba(255,124,26,.08);border-top:1px solid var(--line);
}

/* ── Wave 7 — Conversion architecture ─────────────────────────────── */

/* 7.0d — PT section intros centered over grids (§7b-3) */
.sec-hd,.trainers-hd,.team-hd{
  max-width:720px;margin:0 auto var(--s4);text-align:center;
}
.sec-hd .lede,.trainers-hd .lede,.team-hd .lede{margin-inline:auto}
.sec-hd .uline,.trainers-hd .uline,.team-hd .uline{margin-inline:auto}

/* 7.3 — refined phone glyph */
.phone-icon{width:18px;height:18px;flex:none}

/* 7.4 — trust micro-line near CTAs */
.cta-trust,.closer .proof,.hero__trust{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;
  margin-top:var(--s3);font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.cta-trust b,.hero__trust b{color:var(--ink)}
.closer .proof{color:rgba(255,255,255,.82)}
.closer .proof b{color:#fff}
.hero__left .hero__trust,.hero__left .cta-trust{
  justify-content:flex-start;margin-left:var(--hero-stair-3);color:rgba(255,255,255,.78);
}
.hero__left .hero__trust b,.hero__left .cta-trust b{color:#fff}
@media (max-width:960px){
  .hero__left .hero__trust,.hero__left .cta-trust{margin-left:0}
}

/* Hero sub (7.5) */
.hero__sub{
  margin:0;max-width:36ch;font-size:clamp(1rem,2.2vw,1.125rem);line-height:1.45;
  color:rgba(255,255,255,.88);text-shadow:0 1px 14px rgba(0,0,0,.55);
}
.hero__left .hero__sub{margin-left:var(--hero-stair-3)}
@media (max-width:960px){.hero__left .hero__sub{margin-left:0;max-width:42ch}}

/* 7.0a — mobile CTA groups equalize to widest (§7b-5).
   Use minmax(0,max-content) so long labels wrap instead of overflowing
   under overflow-x:clip ancestors. Stamp substring max-content retained. */
@media (max-width:560px){
  .btn__row,
  .hero__left .btn__row,
  .phero .btn__row,
  .closer .btn__row,
  .signup .btn__row,
  .nap-card .btn__row,
  .clean-band .btn__row,
  .area-local .btn__row{
    display:grid;
    grid-template-columns:minmax(0,max-content); /* grid-template-columns:max-content equalize */
    gap:12px;
    justify-items:stretch;
  }
  .closer .btn__row,
  .signup .btn__row{
    justify-content:center;
    justify-items:stretch;
    margin-inline:auto;
  }
  .btn__row .btn,
  .hero__left .btn__row .btn,
  .phero .btn__row .btn,
  .closer .btn__row .btn,
  .signup .btn__row .btn{
    width:100%;
  }
  /* Hero stair offset collapses on phone so the equalized stack is readable */
  .hero__left .btn__row{margin-left:0}
}

/* ── Wave 8 — final blemish hunt + wow ───────────────────────────── */
/* 8.2 Handwritten signature flourish (Caveat; 1 site instance on About) */
.signature-script{
  margin:var(--s3) 0 0;
  font-family:'Caveat',cursive;font-weight:700;
  font-size:clamp(1.7rem,3vw,2.15rem);line-height:1;
  color:var(--accent);transform:rotate(-2deg);transform-origin:left center;
  letter-spacing:.01em;
}
/* Owners photo stays level — no polaroid tilt */
.polaroid{transform:none;box-shadow:var(--shadow-rest)}
.polaroid:hover{transform:none}
/* 8.3 Service-areas hub delight — slight card tilt that settles on hover */
.city-grid .city-card:nth-child(odd){transform:rotate(-0.7deg)}
.city-grid .city-card:nth-child(even){transform:rotate(0.7deg)}
@media (hover:hover){
  .city-grid .city-card:hover{
    transform:rotate(0deg) translateY(-6px);
  }
}
@media (prefers-reduced-motion:reduce){
  .city-grid .city-card:nth-child(odd),
  .city-grid .city-card:nth-child(even),
  .city-grid .city-card:hover{transform:none}
}
/* 8.3 PT delight — process steps cascade tick-in */
html.js-motion .process-steps__item{
  opacity:0;transform:translateX(-14px);
  transition:opacity .55s var(--ease-settle), transform .55s var(--ease-settle);
}
html.js-motion .process-steps.is-ticked .process-steps__item{opacity:1;transform:none}
html.js-motion .process-steps.is-ticked .process-steps__item:nth-child(2){transition-delay:.12s}
html.js-motion .process-steps.is-ticked .process-steps__item:nth-child(3){transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html.js-motion .process-steps__item{opacity:1;transform:none;transition:none}
}
/* 8.3 Contact delight — floating field labels */
.form .field{
  position:relative;display:block;padding-top:22px;
  font-family:var(--display);font-size:var(--fs-micro);
  letter-spacing:.1em;text-transform:uppercase;font-weight:600;
}
.form .field__label{
  position:absolute;left:16px;top:calc(22px + 26px);transform:translateY(-50%);
  font-size:1rem;letter-spacing:0;text-transform:none;font-family:var(--body);font-weight:400;
  color:var(--muted);pointer-events:none;
  transition:top .2s var(--ease-hover), font-size .2s var(--ease-hover),
             letter-spacing .2s, color .2s, text-transform .2s, font-family .2s;
}
.form .field.is-active .field__label,
.form .field.has-content .field__label{
  top:8px;left:0;transform:none;
  font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;
  font-family:var(--display);font-weight:600;color:var(--accent);
}
.form .field input,
.form .field select,
.form .field textarea{
  width:100%;min-height:52px;padding:14px 16px;border:1px solid var(--line-2);
  background:var(--surface);font-family:var(--body);font-size:1rem;border-radius:0;
}
.form .field textarea{min-height:140px;resize:vertical;padding-top:18px}
.form .field select{appearance:auto}
/* 8.4 FAQ summary + area-links tap floor (area-links already min-height:44 at L980) */
.faq summary{min-height:48px;display:flex;align-items:center}
.drive-callout__chips li{min-height:44px;display:inline-flex;align-items:center}

/* 8.3 Memberships delight — tier prices cascade in */
html.js-motion .tier-compare .tier-compare__price{
  opacity:0;transform:translateY(22px);
  transition:opacity .55s var(--ease-settle), transform .55s var(--ease-settle);
}
html.js-motion .tier-compare.is-priced .tier-compare__cell:nth-child(1) .tier-compare__price{opacity:1;transform:none}
html.js-motion .tier-compare.is-priced .tier-compare__cell:nth-child(2) .tier-compare__price{opacity:1;transform:none;transition-delay:.12s}
html.js-motion .tier-compare.is-priced .tier-compare__cell:nth-child(3) .tier-compare__price{opacity:1;transform:none;transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html.js-motion .tier-compare .tier-compare__price{opacity:1;transform:none;transition:none}
}

/* 8.3 Town-page delight — drive-time number / route chips pop in */
html.js-motion .drive-callout__num{
  opacity:0;transform:scale(.86);
  transition:opacity .6s var(--ease-settle), transform .6s var(--ease-settle);
}
html.js-motion .drive-callout.is-popped .drive-callout__num{opacity:1;transform:none}
html.js-motion .drive-callout__chips li{
  opacity:0;transform:translateY(10px);
  transition:opacity .45s var(--ease-settle), transform .45s var(--ease-settle);
}
html.js-motion .drive-callout.is-popped .drive-callout__chips li{opacity:1;transform:none}
html.js-motion .drive-callout.is-popped .drive-callout__chips li:nth-child(2){transition-delay:.1s}
html.js-motion .drive-callout.is-popped .drive-callout__chips li:nth-child(3){transition-delay:.2s}
@media (prefers-reduced-motion:reduce){
  html.js-motion .drive-callout__num,
  html.js-motion .drive-callout__chips li{opacity:1;transform:none;transition:none}
}


/* --- audit: legal pages + mobile pattern gaps --- */
.form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.legal-page .legal-wrap{
  max-width:760px;margin:0 auto;padding:clamp(40px,6vw,72px) var(--pad) clamp(64px,8vw,96px);
  color:var(--ink);line-height:1.7;font-size:1.02rem}
.legal-page .legal-meta{color:var(--muted);font-size:.92rem;margin:0 0 1.5rem}
.legal-page .legal-wrap h2{
  font-family:var(--display);font-size:clamp(1.35rem,2.4vw,1.75rem);margin:2rem 0 .75rem;line-height:1.2}
.legal-page .legal-wrap h3{font-size:1.1rem;margin:1.4rem 0 .5rem}
.legal-page .legal-wrap p{margin:0 0 1rem}
.legal-page .legal-wrap ul{margin:0 0 1.25rem;padding-left:1.2rem}
.legal-page .legal-wrap li{margin:0 0 .45rem}
.legal-page .phero--compact{min-height:auto}
.legal-page .phero--compact .phero__in{padding-block:clamp(72px,12vw,120px)}
.legal-page .crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;color:rgba(255,255,255,.8);margin-bottom:12px}
.legal-page .crumbs a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.pg--legal .phero__scrim{background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.72))}
.pg--legal .phero{background:var(--ink);min-height:auto}
.form .field input,.form .field select,.form .field textarea{font-size:16px}
html{overscroll-behavior-y:none}
@media (hover: hover) and (pointer: fine){
  .btn:hover{filter:brightness(1.05)}
  a.lc:hover{opacity:.85}
}
@media print{
  .hdr,.drawer,.callbar,.floating-cta,.sticky-cta,.burger{display:none!important}
  body{background:#fff;color:#000}
  a{text-decoration:underline}
}

/* ── Brand True mono + honeycomb system — reduced motion ─────────── */
@media (prefers-reduced-motion:reduce){
  .why-card__media img,
  .team-card__media img,
  .gallery-card img,
  .portfolio-card img,
  .clean-band__media img,
  .steps-photo img,
  .split__media img,
  .trainer__media img{
    filter:none!important;transition:none!important;
  }
}

/* ── Facility page + operator blanks ─────────────────────────────── */
.facility-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
  margin-top:clamp(28px,4vw,40px)
}
@media (max-width:900px){.facility-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.facility-stats{grid-template-columns:1fr}}
.facility-stat{
  padding:22px 20px;border:1px solid rgba(255,124,26,.28);
  background:rgba(255,255,255,.55);display:grid;gap:6px;align-content:start
}
.facility-stat .kick--m{margin:0}
.facility-stat b{
  font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.45rem);
  line-height:1.15;letter-spacing:-.02em;color:var(--ink)
}
.facility-stat span{color:var(--muted);font-size:.92rem;line-height:1.4}
.equip-list{margin-top:clamp(28px,4vw,40px);max-width:42rem}
.equip-list h3{
  font-family:var(--display);font-size:clamp(1.2rem,2vw,1.45rem);
  margin:0 0 14px;letter-spacing:-.02em
}
.op-checklist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.op-checklist li{
  margin:0;padding:12px 14px;border:1px dashed rgba(255,124,26,.45);
  background:rgba(255,124,26,.06);font-size:.95rem;line-height:1.45;color:var(--ink)
}
.op-blank{
  font-family:var(--body);font-weight:500;color:var(--accent)!important;
  letter-spacing:0!important
}
b.op-blank{font-size:clamp(1rem,1.8vw,1.2rem)!important;line-height:1.3!important}
.op-note{
  margin-top:clamp(22px,3vw,32px);padding:18px 20px;
  border-left:3px solid var(--accent);background:rgba(255,124,26,.08)
}
.op-note__label{
  font-family:var(--display);font-size:.75rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);margin:0 0 6px
}
.op-note p:last-child{margin:0;color:var(--ink);line-height:1.55;font-size:.95rem}
.pg--facility .closer .uline{margin-inline:auto}
