/* =========================================================
   AMERICAN TOP TEAM WINTER GARDEN
   Editorial / print-inspired design system
   Palette: warm cream + ink + ATT red
   ========================================================= */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,600;0,700;0,800;0,900;1,700;1,800;1,900&family=Archivo+Narrow:wght@600;700&family=Hanken+Grotesk:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

/* ---------- Tokens — balanced black & white combat palette ---------- */
:root{
  --paper:#FFFFFF;        /* light section base */
  --paper-2:#F2F2F3;      /* soft gray surface */
  --paper-3:#E7E7E9;      /* higher gray surface */
  --ink:#0B0B0C;          /* black text */
  --ink-soft:#37373A;     /* muted text */
  --ink-faint:#79797F;    /* faint text / labels */
  --charcoal:#0B0B0D;     /* dark sections */
  --charcoal-2:#141417;
  --red:#E11013;          /* ATT red accent */
  --red-deep:#A60A0D;
  --red-glow:rgba(225,16,19,0.5);
  --blue:#323A96;         /* CTA button blue (matches kids JJ landing page) */
  --blue-deep:#272D78;
  --blue-glow:rgba(50,58,150,0.5);
  --line:rgba(11,11,12,0.16);
  --line-light:rgba(255,255,255,0.16);
  --grid-red:rgba(225,16,19,0.06);     /* faint red graph-paper line */
  --grid-red-dark:rgba(225,16,19,0.15);
  --shadow:0 30px 70px -30px rgba(0,0,0,.32);
  --shadow-soft:0 18px 44px -26px rgba(0,0,0,.28);
  --grad-redblack:linear-gradient(135deg,#E11013 0%,#7A0507 42%,#0B0B0D 100%);
  --grad-blackred:linear-gradient(120deg,#0B0B0D 38%,#3A0406 72%,#E11013 130%);

  --display:'Archivo',system-ui,sans-serif;
  --sans:'Hanken Grotesk',system-ui,sans-serif;
  --cond:'Archivo Narrow','Archivo',sans-serif;

  --maxw:1280px;
  --gut:clamp(20px,5vw,72px);
  --radius:2px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Reset ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--paper)}
body{
  font-family:var(--sans);
  background:transparent;
  color:var(--ink);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* ---- Global animated graph-paper grid background ---- */
body::before{
  content:"";position:fixed;inset:-60px;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(to right, var(--grid-red) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-red) 1px, transparent 1px);
  background-size:30px 30px;
  animation:gridPan 26s linear infinite;
  will-change:background-position;
}
/* heavier accent line every 5 squares + slow breathing glow */
body::after{
  content:"";position:fixed;inset:-60px;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(225,16,19,0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(225,16,19,0.05) 1px, transparent 1px);
  background-size:150px 150px;
  animation:gridPanBig 130s linear infinite, gridGlow 9s ease-in-out infinite;
  will-change:background-position,opacity;
}
@keyframes gridPan{from{background-position:0 0,0 0}to{background-position:30px 30px,30px 30px}}
@keyframes gridPanBig{from{background-position:0 0,0 0}to{background-position:150px 150px,150px 150px}}
@keyframes gridGlow{0%,100%{opacity:.5}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){
  body::before,body::after{animation:none}
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ---------- Type ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:900;line-height:.96;letter-spacing:-.022em;text-transform:uppercase}
.h-display{font-size:clamp(2.9rem,8vw,6.6rem);font-weight:900;line-height:.9;letter-spacing:-.03em}
h2{font-size:clamp(2rem,4.5vw,3.6rem);font-weight:900}
h3{font-size:clamp(1.3rem,2.3vw,1.85rem);font-weight:700;letter-spacing:-.01em}
p{max-width:68ch}
.lead{font-size:clamp(1.1rem,1.6vw,1.32rem);line-height:1.55;color:var(--ink-soft)}

.eyebrow{
  font-family:var(--cond);
  text-transform:uppercase;
  letter-spacing:.32em;
  font-size:.72rem;
  font-weight:700;
  color:var(--red);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--red);display:inline-block}
.eyebrow.no-rule::before{display:none}
.sec-num{
  font-family:var(--cond);font-weight:700;font-size:.72rem;letter-spacing:.3em;
  color:var(--ink-faint);text-transform:uppercase;
}

em,.it{font-style:italic}
.accent{color:var(--red)}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.section{padding-block:clamp(52px,6.5vw,104px)}
.section.tight{padding-block:clamp(40px,4.5vw,72px)}
.dark{background:var(--charcoal);color:var(--paper)}
.dark .lead{color:rgba(243,236,224,.72)}
.dark .sec-num{color:rgba(243,236,224,.5)}
.cream-2{background:var(--paper-2)}

.grid{display:grid;gap:clamp(20px,2.4vw,34px)}
.g-12{grid-template-columns:repeat(12,1fr)}
@media(max-width:860px){.g-12{grid-template-columns:repeat(6,1fr)}}

/* hairline grid texture — global background now provides the grid on light
   sections, so .gridlines only keeps stacking context for its children. */
.gridlines{position:relative}
.gridlines>*{position:relative;z-index:1}

/* ---- Red graph-paper grid on dark sections ---- */
.coach,.site-footer,.locate-info,.diff{position:relative;overflow:hidden}
.coach::before,.site-footer::before,.locate-info::before,.diff::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(to right, var(--grid-red-dark) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-red-dark) 1px, transparent 1px);
  background-size:30px 30px;
  animation:gridPan 26s linear infinite;
}
.coach>.wrap,.site-footer>.wrap,.locate-info>*,.diff>.wrap{position:relative;z-index:1}
.locate-info{display:flex;flex-direction:column}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;
  font-weight:700;font-size:.86rem;
  padding:1.05em 1.7em;border-radius:var(--radius);
  background:var(--blue);color:#fff;
  transition:transform .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease);
  position:relative;overflow:hidden;
}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover{background:var(--blue-deep);transform:translateY(-2px);box-shadow:0 14px 30px -14px var(--blue)}
.btn:hover .arr{transform:translateX(5px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper);box-shadow:none}
.dark .btn.ghost{color:var(--paper);border-color:rgba(243,236,224,.45)}
.dark .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.btn.lg{padding:1.2em 2.1em;font-size:.95rem}

.tlink{
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-weight:700;
  font-size:.82rem;color:var(--ink);display:inline-flex;align-items:center;gap:.55em;
  border-bottom:1px solid var(--line);padding-bottom:.35em;transition:gap .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.tlink:hover{gap:.95em;color:var(--red);border-color:var(--red)}
.dark .tlink{color:var(--paper);border-color:var(--line-light)}
.dark .tlink:hover{color:#fff}

/* ===========================================================
   HEADER
   =========================================================== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  transition:background .3s,box-shadow .3s;
}
.site-header.scrolled{background:rgba(255,255,255,.96);box-shadow:0 12px 34px -24px rgba(0,0,0,.4)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:78px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:46px;height:46px;object-fit:contain}
.brand .bt{font-family:var(--cond);text-transform:uppercase;line-height:.98}
.brand .bt b{display:block;font-weight:700;letter-spacing:.04em;font-size:.96rem}
.brand .bt span{display:block;font-size:.62rem;letter-spacing:.34em;color:var(--ink-faint);font-weight:600}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-weight:600;
  font-size:.82rem;color:var(--ink-soft);position:relative;padding:6px 0;transition:color .25s;
}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--red);transition:width .3s var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.has-sub{position:relative}
.submenu{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);
  min-width:260px;padding:10px;opacity:0;visibility:hidden;transition:.28s var(--ease);border-radius:var(--radius);
}
.has-sub:hover .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.submenu a{display:block;padding:11px 14px;font-size:.78rem;color:var(--ink-soft);border-radius:var(--radius)}
.submenu a::after{display:none}
.submenu a:hover{background:var(--paper-2);color:var(--red)}
.nav-cta{display:flex;align-items:center;gap:18px}
.nav-phone{font-family:var(--cond);font-weight:700;letter-spacing:.04em;font-size:.92rem;white-space:nowrap}
.nav-phone span{color:var(--ink-faint);font-size:.62rem;letter-spacing:.28em;display:block;text-transform:uppercase}
.burger{display:none;flex-direction:column;gap:5px;width:30px;padding:6px 0}
.burger span{height:2px;background:var(--ink);transition:.3s var(--ease)}

@media(max-width:1080px){.nav-links,.nav-phone{display:none}.burger{display:flex}}
body.lock{overflow:hidden}
/* =========================================================
   MOBILE NAV — full-screen premium overlay
   ========================================================= */
.mnav{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;color:#fff;
  background:radial-gradient(120% 80% at 100% 0%,#161619,#0a0a0c 70%);
  opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .42s var(--ease),transform .42s var(--ease),visibility .42s;
  padding:clamp(18px,5vw,30px) var(--gut) calc(env(safe-area-inset-bottom) + 24px);overflow-y:auto}
.mnav.open{opacity:1;visibility:visible;transform:none}
/* grid texture + red glow */
.mnav::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.10) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.10) 1px,transparent 1px);
  background-size:32px 32px;-webkit-mask-image:radial-gradient(110% 70% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(110% 70% at 100% 0%,#000,transparent 72%)}
.mnav::after{content:"";position:absolute;right:-20%;top:-10%;width:70%;height:50%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(225,16,19,.28),transparent 70%)}
.mnav>*{position:relative;z-index:1}
/* top bar */
.mnav-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.mnav-brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.mnav-brand img{width:40px;height:40px;object-fit:contain}
.mnav-bt b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:.82rem;color:#fff;letter-spacing:-.01em;line-height:1}
.mnav-bt span{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.54rem;color:rgba(255,255,255,.5);margin-top:3px}
.mnav-close{width:46px;height:46px;border:1px solid var(--line-light);background:rgba(255,255,255,.04);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;flex:none;transition:.3s var(--ease)}
.mnav-close:hover{background:var(--red);border-color:var(--red)}
/* links */
.mnav-links{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:clamp(20px,5vw,40px) 0}
.mn-link{display:flex;align-items:center;gap:13px;padding:clamp(13px,3.2vw,17px) 0;text-decoration:none;color:#fff;
  font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;line-height:1;
  font-size:clamp(1.35rem,5.4vw,1.95rem);border-bottom:1px solid rgba(255,255,255,.09);
  opacity:0;transform:translateX(-14px);transition:color .3s var(--ease)}
.mn-acc{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.09);cursor:pointer;-webkit-appearance:none;appearance:none}
.mn-chev{flex:none;color:var(--red);font-weight:400;font-size:1.5rem;line-height:1;transition:transform .3s var(--ease)}
.mn-acc.is-open .mn-chev{transform:rotate(45deg)}
.mnav.open .mn-link{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s var(--ease)}
.mnav.open .mn-link:nth-of-type(1){transition-delay:.07s}
.mnav.open .mn-link:nth-of-type(2){transition-delay:.12s}
.mnav.open .mn-link:nth-of-type(3){transition-delay:.17s}
.mnav.open .mn-link:nth-of-type(4){transition-delay:.22s}
.mnav.open .mn-link:nth-of-type(5){transition-delay:.27s}
.mnav.open .mn-link:nth-of-type(6){transition-delay:.32s}
.mn-link .mn-no{font-family:var(--cond);font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--red);flex:none}
.mn-link .mn-t{flex:1}
.mn-link .mn-ar{font-size:1.1rem;color:var(--red);opacity:0;transform:translateX(-8px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.mn-link:hover,.mn-link:active,.mn-link.active{color:var(--red)}
.mn-link:hover .mn-ar,.mn-link.active .mn-ar{opacity:1;transform:none}
/* program sub-links — tap to expand */
.mn-sub{display:flex;flex-wrap:wrap;gap:8px;padding-left:30px;margin:0;max-height:0;overflow:hidden;opacity:0;
  transition:max-height .4s var(--ease),opacity .35s var(--ease),margin .4s var(--ease)}
.mn-acc.is-open + .mn-sub{max-height:300px;opacity:1;margin:10px 0 12px}
.mn-sub a{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.62);
  text-decoration:none;border:1px solid var(--line-light);border-radius:999px;padding:.55em .85em;transition:.25s var(--ease)}
.mn-sub a:hover{border-color:var(--red);color:#fff;background:rgba(225,16,19,.12)}
/* CTA + footer */
.mnav-cta{margin-top:auto}
.mnav-cta .btn{width:100%;justify-content:center}
.mnav-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:clamp(18px,4vw,26px);padding-top:clamp(16px,3.5vw,22px);border-top:1px solid var(--line-light)}
.mnav-soc{display:flex;gap:10px}
.mnav-soc a{width:42px;height:42px;border:1px solid var(--line-light);display:grid;place-items:center;color:#fff;transition:.3s var(--ease)}
.mnav-soc a:hover{border-color:var(--red);background:rgba(225,16,19,.12)}
.mnav-soc svg{width:18px;height:18px}
.mnav-phone{font-family:var(--display);font-weight:800;font-size:1.05rem;color:#fff;text-decoration:none;letter-spacing:-.01em}
@media(prefers-reduced-motion:reduce){.mnav,.mn-link,.mn-sub{transition:none}}

/* =========================================================
   MOBILE EXPERIENCE REFINEMENTS
   ========================================================= */
@media(max-width:640px){
  /* tighter, intentional section rhythm */
  .section{padding-block:clamp(44px,11vw,62px)}
  /* larger, thumb-friendly buttons */
  .btn{min-height:48px;padding:.95em 1.3em}
  .btn.lg{min-height:54px;padding:1.05em 1.4em}
  /* full-width primary CTAs */
  .hero-actions,.h2-cta,.bigcta .actions,.jc-actions,.cf2-foot{flex-direction:column;align-items:stretch}
  .hero-actions .btn,.h2-cta .btn,.bigcta .actions .btn,.jc-actions .btn,.cf2-foot .btn{width:100%;justify-content:center}
  /* copy never too wide */
  .lead,.s-body p,.article p,.cx-lead,.man2-panel p{max-width:100%}
  /* program/benefit grids: clean single column with breathing room */
  .progcards{gap:14px}
  .bf-grid,.bf-grid.four{grid-template-columns:1fr;row-gap:24px}
  .bf-item{border-left:none;padding-left:0;border-top:1px solid var(--line-light);padding-top:20px}
  .bf-grid .bf-item:first-child{border-top:none;padding-top:0}
  /* trim oversized display headings on small screens */
  .bigcta h2,.jc-title,.creed-h{font-size:clamp(1.8rem,8.5vw,2.6rem)}
  /* schedule: sticky filter for easy scanning */
  .sched-bar{position:sticky;top:74px;z-index:20;background:var(--paper);
    padding:12px 0;margin-bottom:18px;box-shadow:0 14px 20px -16px rgba(11,11,13,.3)}
  /* schedule day cards: a touch more compact */
  .wk-row{padding:12px 8px}
}
/* horizontal swipe for homepage program cards on phones */
@media(max-width:540px){
  .progcards{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * var(--gut));padding:4px var(--gut) 14px;-webkit-overflow-scrolling:touch}
  .progcards .pgc{flex:0 0 80%;scroll-snap-align:center}
  .progcards::-webkit-scrollbar{height:0}
}

/* =========================================================
   MOBILE IMAGE FRAMING — keep heads & faces visible
   Faces sit in the upper third, so bias crops toward the top
   on narrow screens (overridden per-image by inline styles).
   ========================================================= */
@media(max-width:760px){
  /* page headers (tall on mobile → protect heads) */
  .phero-media img{object-position:center 20%}
  /* home hero framed photo — show full scene, keep heads */
  .h2-frame img{aspect-ratio:4/3;object-position:center 18%}
  /* program / about intro split images */
  .s-media img{object-position:center 24%}
  /* program & blog cards */
  .pgc-media img,.pg2-card-media img,.pg2-feat-media img,.prog-card img,
  .bcard-img img,.bfeature-img img,.pcard-media img{object-position:center 26%}
  /* homepage facility tiles + manifesto */
  .fac-tile img{object-position:center 26%}
  .man2-media img{object-position:center}
  /* coach feature + contact photo */
  .cxf-media img,.cx-photo img,.coach .c-media img{object-position:center 22%}
  /* schedule board + about gallery */
  .sched-media img{object-position:center 24%}
  .collage img{object-position:center 24%}
  /* darkened CTA / texture backgrounds with people */
  .bigcta-media img,.joincta-media img,.creed-media img,.fightcta-media img{object-position:center 26%}
  /* modal visual panel */
  .tm-aside-media img{object-position:center 20%}
}
/* very small phones — protect heads a little more on headers */
@media(max-width:430px){
  .phero-media img{object-position:center 16%}
  .tm-aside-media img{object-position:center 16%}
}
/* mobile: keep red corner accents tucked so they never cover faces */
@media(max-width:760px){
  .s-media::before{left:-8px;top:-8px;width:44px;height:44px}
  .h2-frame::before{left:-10px;top:-10px;width:52px;height:52px}
  .cx-photo::before{left:-8px;top:-8px;width:48px;height:48px}
  .split:hover .s-media::before{width:44px;height:44px;transform:none}
  /* guard against any decorative element causing horizontal scroll */
  html,body{overflow-x:hidden}
  /* prevent text/email overflow */
  h1,h2,h3,.h2-title{overflow-wrap:break-word}
  a[href^="mailto:"],.c7-dv,.cx-dv,.tm-note,.crumbs{overflow-wrap:anywhere}
  img{max-width:100%}
}

/* ===========================================================
   HERO (home)
   =========================================================== */
/* red grid wash over cinematic photo sections */
.hero::before,.phero::before,.bigcta::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(225,16,19,0.14) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(225,16,19,0.14) 1px, transparent 1px);
  background-size:30px 30px;
  animation:gridPan 26s linear infinite;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.65));
          mask-image:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.65));
}
.hero{position:relative;background:var(--charcoal);color:var(--paper);overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(.15) contrast(1.05)}
.hero-media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(20,17,14,.55),rgba(20,17,14,.35) 40%,rgba(20,17,14,.9)),
  linear-gradient(90deg,rgba(20,17,14,.7),transparent 60%)}
.hero-inner{position:relative;z-index:2;min-height:clamp(560px,86vh,860px);display:flex;flex-direction:column;justify-content:flex-end;padding-block:clamp(40px,7vw,80px)}
.hero h1{color:#fff;margin:.2em 0 .35em;max-width:16ch}
.hero .lead{color:rgba(243,236,224,.82);max-width:50ch}
.hero-meta{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,54px);margin-top:clamp(28px,4vw,46px);padding-top:26px;border-top:1px solid var(--line-light)}
.hero-meta .stat b{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.7rem);display:block;line-height:1;color:#fff}
.hero-meta .stat span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:rgba(243,236,224,.7)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(26px,4vw,40px)}

/* ---- Split hero (Mission-style) ---- */
.hero-m{position:relative;display:flex;flex-direction:column;min-height:clamp(600px,92vh,940px);background:var(--charcoal);color:#fff;overflow:hidden}
.hero-m-grid{position:relative;display:grid;grid-template-columns:1.06fr .94fr;flex:1;min-height:0}
.hero-m-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(64px,6vw,104px) clamp(24px,5vw,78px) clamp(40px,5vw,68px)}
.hero-m-content::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.14) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.14) 1px,transparent 1px);background-size:32px 32px;animation:gridPan 26s linear infinite;-webkit-mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 75%);mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 75%)}
.hero-m-media{position:relative;overflow:hidden;border-left:1px solid var(--line-light)}
.hero-m-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;filter:grayscale(1) contrast(1.12);animation:kenburns 24s ease-in-out infinite alternate}
.hero-m-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal),rgba(11,11,12,0) 22%),linear-gradient(0deg,rgba(11,11,12,.5),transparent 40%),radial-gradient(70% 60% at 100% 100%,rgba(225,16,19,.3),transparent 60%)}
.hero-code{position:absolute;top:clamp(16px,2vw,26px);right:clamp(20px,3vw,40px);z-index:3;font-family:var(--cond);text-transform:uppercase;letter-spacing:.24em;font-size:.6rem;color:rgba(255,255,255,.5)}
.hero-pill{display:inline-flex;align-items:center;gap:.7em;align-self:flex-start;border:1px solid var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700;padding:.65em 1.05em;border-radius:40px;margin-bottom:22px;transition:background .3s var(--ease)}
.hero-pill:hover{background:rgba(225,16,19,.16)}
.hero-pill i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(225,16,19,.6);animation:pulse 2.4s ease-out infinite}
.hero-pill .arr{color:var(--red);margin-left:.2em}
.hero-m h1{color:#fff;margin:.16em 0 .4em;max-width:14ch}
.hero-m .lead{color:rgba(255,255,255,.8);max-width:44ch}
.hero-tag{font-family:var(--sans);font-style:italic;font-weight:700;font-size:clamp(1.1rem,1.6vw,1.45rem);margin:1.1em 0 0;color:#fff}
.hero-tag .accent{color:var(--red)}
.hero-m .hero-actions{margin-top:clamp(26px,3vw,40px)}
/* lineage credibility chip on the hero photo */
.hero-mchip{position:absolute;left:clamp(18px,2vw,28px);top:clamp(18px,2vw,28px);z-index:3;display:inline-flex;align-items:center;gap:9px;background:rgba(11,11,12,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);padding:.62em .95em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700;color:#fff}
.hero-mchip i{width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;box-shadow:0 0 0 0 rgba(225,16,19,.6);animation:pulse 2.4s ease-out infinite}
/* full-width trust / value-point band */
.hero-trust{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-light);background:rgba(0,0,0,.34);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.hero-trust .ht{display:flex;align-items:center;gap:13px;padding:clamp(15px,1.9vw,24px) clamp(20px,2.6vw,42px);border-right:1px solid var(--line-light)}
.hero-trust .ht:last-child{border-right:none}
.hero-trust .ht .rev-stars{color:var(--red);letter-spacing:1px;font-size:.86rem;flex:none}
.hero-trust .htn{font-family:var(--display);font-weight:800;font-size:clamp(1.45rem,2.2vw,2.05rem);line-height:1;color:#fff;display:block;letter-spacing:-.02em}
.hero-trust .htn i{color:var(--red);font-style:normal;font-size:.55em;vertical-align:super;margin-left:.04em}
.hero-trust .htl{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:rgba(255,255,255,.62);display:block;margin-top:5px}
@media(max-width:900px){
  .hero-m{min-height:0}
  .hero-m-grid{grid-template-columns:1fr}
  .hero-m-content{order:2;padding:clamp(40px,8vw,60px) var(--gut)}
  .hero-m-media{order:1;min-height:clamp(320px,54vh,460px);border-left:none;border-bottom:1px solid var(--line-light)}
  .hero-m-content::before{-webkit-mask-image:linear-gradient(180deg,#000,transparent 90%);mask-image:linear-gradient(180deg,#000,transparent 90%)}
  .hero-code{display:none}
}
@media(max-width:600px){
  .hero-trust{grid-template-columns:1fr 1fr}
  .hero-trust .ht:nth-child(2n){border-right:none}
  .hero-trust .ht:nth-child(-n+2){border-bottom:1px solid var(--line-light)}
}

/* ---- Cinematic full-bleed hero (home) ---- */
.hero-cine{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(620px,94vh,960px);overflow:hidden;background:var(--charcoal);color:#fff}
.hero-cine-media{position:absolute;inset:0;z-index:0}
.hero-cine-media img{width:100%;height:100%;object-fit:cover;object-position:center 26%;filter:grayscale(1) contrast(1.12);animation:kenburns 24s ease-in-out infinite alternate;will-change:transform}
.hero-cine-media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(7,7,9,.6),rgba(7,7,9,.15) 32%,rgba(7,7,9,.94)),
  radial-gradient(85% 70% at 100% 100%,rgba(225,16,19,.34),transparent 58%),
  linear-gradient(90deg,rgba(7,7,9,.7),transparent 55%)}
.hero-cine::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.13) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.13) 1px,transparent 1px);
  background-size:32px 32px;animation:gridPan 26s linear infinite;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 70%);mask-image:linear-gradient(180deg,transparent,#000 70%)}
.hero-cine-inner{position:relative;z-index:2;padding-block:clamp(44px,6vw,84px)}
.hero-cine .hero-accent{width:64px;height:4px;background:var(--red);margin-bottom:22px}
.hero-cine h1{color:#fff;margin:.18em 0 .38em;max-width:18ch}
.hero-cine .lead{color:rgba(255,255,255,.82);max-width:50ch}

/* ---- Split editorial hero (home) ---- */
.hero-shell{position:relative;display:flex;flex-direction:column;background:var(--charcoal);color:var(--paper);overflow:hidden;min-height:clamp(580px,94vh,960px)}
.hero-split{position:relative;display:grid;grid-template-columns:1.06fr .94fr;overflow:hidden;flex:1;min-height:0}
.hs-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(72px,8vw,120px) clamp(24px,5vw,84px) clamp(40px,5vw,72px)}
.hs-content::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(to right, var(--grid-red-dark) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-red-dark) 1px, transparent 1px);
  background-size:30px 30px;animation:gridPan 26s linear infinite;
  -webkit-mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 78%);
          mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 78%);
}
.hs-content h1{color:#fff;margin:.22em 0 .42em;max-width:13ch}
.hs-content .lead{color:rgba(255,255,255,.78);max-width:46ch}
.hs-media{position:relative;min-height:clamp(340px,50vh,940px);border-left:1px solid var(--line-light)}
.hs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:grayscale(.2) contrast(1.06)}
.hs-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal),rgba(11,11,12,0) 24%),linear-gradient(0deg,rgba(11,11,12,.6),transparent 45%),radial-gradient(80% 70% at 100% 100%,rgba(225,16,19,.34),transparent 60%)}
.hs-tag{position:absolute;top:0;right:0;z-index:3;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:700;padding:.85em 1.2em}
.hs-badge{position:absolute;left:clamp(20px,2.4vw,34px);bottom:clamp(20px,2.4vw,34px);z-index:3;background:rgba(11,11,12,.72);backdrop-filter:blur(6px);border:1px solid var(--line-light);padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.hs-badge .rev-stars{color:var(--red);letter-spacing:2px;font-size:.95rem}
.hs-badge b{font-family:var(--display);font-size:1.5rem;line-height:1;color:#fff}
.hs-badge span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:rgba(255,255,255,.7)}
/* program pills */
.hs-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.hs-pills span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:600;border:1px solid var(--line-light);color:rgba(255,255,255,.82);padding:.55em .95em;border-radius:40px;transition:border-color .3s,color .3s}
.hs-pills span:hover{border-color:var(--red);color:#fff}
/* scroll cue */
.hs-scroll{display:inline-flex;align-items:center;gap:12px;margin-top:30px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.62rem;color:rgba(255,255,255,.55)}
.hs-scroll i{width:46px;height:1px;background:rgba(255,255,255,.28);position:relative;overflow:hidden;display:inline-block}
.hs-scroll i::after{content:"";position:absolute;left:0;top:0;height:100%;width:16px;background:var(--red);animation:scrollLine 2.4s ease-in-out infinite}
@keyframes scrollLine{0%{transform:translateX(-16px)}100%{transform:translateX(46px)}}
/* lineage chip + vertical label on media */
.hs-chip{position:absolute;left:clamp(20px,2.4vw,34px);top:clamp(20px,2.4vw,34px);z-index:3;display:inline-flex;align-items:center;gap:9px;background:rgba(11,11,12,.6);backdrop-filter:blur(6px);border:1px solid var(--line-light);padding:.6em .95em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700;color:#fff}
.hs-chip i{width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;box-shadow:0 0 0 0 rgba(225,16,19,.6);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(225,16,19,.55)}70%{box-shadow:0 0 0 9px rgba(225,16,19,0)}100%{box-shadow:0 0 0 0 rgba(225,16,19,0)}}
.hs-vlabel{position:absolute;right:0;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;z-index:3;font-family:var(--cond);text-transform:uppercase;letter-spacing:.32em;font-size:.6rem;color:rgba(255,255,255,.6);padding:16px 9px;border-left:1px solid var(--line-light)}
/* full-width marquee ticker */
.hero-ticker{position:relative;z-index:2;border-top:1px solid var(--line-light);overflow:hidden;background:rgba(0,0,0,.25)}
.hero-ticker .track{display:inline-flex;align-items:center;white-space:nowrap;padding:15px 0;animation:ticker 34s linear infinite;will-change:transform}
.hero-ticker:hover .track{animation-play-state:paused}
.hero-ticker .track span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;font-weight:700;color:rgba(255,255,255,.78);display:inline-flex;align-items:center}
.hero-ticker .track span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);margin:0 26px}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.hero-ticker .track{animation:none}.hs-scroll i::after,.hs-chip i{animation:none}}
@media(max-width:900px){
  .hero-shell{min-height:0}
  .hero-split{grid-template-columns:1fr;min-height:0}
  .hs-content{order:2;padding:clamp(40px,8vw,60px) var(--gut)}
  .hs-media{order:1;min-height:clamp(300px,52vh,460px);border-left:none;border-bottom:1px solid var(--line-light)}
  .hs-content::before{-webkit-mask-image:linear-gradient(180deg,#000,transparent 90%);mask-image:linear-gradient(180deg,#000,transparent 90%)}
  .hs-vlabel{display:none}
  .hs-scroll{display:none}
}

/* page hero (interior) */
.phero{position:relative;background:var(--charcoal);color:var(--paper);overflow:hidden}
.phero-media{position:absolute;inset:0}
.phero-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) contrast(1.04)}
.phero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.5),rgba(20,17,14,.82))}
.phero-inner{position:relative;z-index:2;padding-block:clamp(74px,12vw,150px);min-height:clamp(340px,46vh,520px);display:flex;flex-direction:column;justify-content:flex-end}
.phero h1{color:#fff;max-width:18ch;margin-top:.25em}
.phero .lead{color:rgba(243,236,224,.8);max-width:54ch;margin-top:.7em}
.crumbs{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:rgba(243,236,224,.6)}
.crumbs a:hover{color:#fff}
.crumbs .sep{color:var(--red);margin:0 .5em}

/* ===========================================================
   FEATURE STRIP (what makes us different)
   =========================================================== */
.feats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.feat{padding:clamp(22px,2.6vw,34px) clamp(16px,1.8vw,26px);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.feat .ic{width:30px;height:30px;color:var(--red);margin-bottom:14px}
.feat b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:.86rem;display:block;line-height:1.2;margin-bottom:6px}
.feat span{font-size:.82rem;color:var(--ink-faint)}
@media(max-width:860px){.feats{grid-template-columns:repeat(2,1fr)}}

/* ===========================================================
   DIFFERENTIATOR BAND (dark, home)
   =========================================================== */
.diff{background:var(--charcoal);color:var(--paper);position:relative;overflow:hidden}
.diff .wrap{position:relative;z-index:1}
.diff-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,52px)}
.diff-head h2{color:#fff}
.diff-head .lead{color:#fff}
.diff-row{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}
.diff-item{display:flex;flex-direction:column;padding:clamp(30px,3vw,44px) clamp(24px,2.1vw,34px);border-right:1px solid var(--line-light)}
.diff-item:first-child{padding-left:0}
.diff-item:last-child{border-right:none;padding-right:0}
.diff-item .dn{font-family:var(--cond);font-weight:700;letter-spacing:.2em;font-size:.7rem;color:var(--red);display:block;margin-bottom:clamp(20px,2.2vw,30px)}
.diff-item .ic{width:30px;height:30px;color:#fff;margin-bottom:18px}
.diff-item b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.05em;font-size:.92rem;display:block;margin-bottom:9px;color:#fff}
.diff-item span{font-size:.84rem;color:#fff;line-height:1.45}
@media(max-width:860px){.diff-row{grid-template-columns:1fr 1fr}.diff-item{padding-left:0;padding-right:clamp(20px,4vw,30px)}.diff-item:nth-child(even){padding-left:clamp(20px,4vw,30px);border-right:none}.diff-item:nth-child(-n+4){border-bottom:1px solid var(--line-light)}}
@media(max-width:520px){.diff-row{grid-template-columns:1fr}.diff-item{border-right:none;padding-left:0;padding-right:0}.diff-item:not(:last-child){border-bottom:1px solid var(--line-light)}}

/* ---- Differentiators v2: editorial index list ---- */
.diff2{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(34px,6vw,96px);align-items:start}
.diff2-intro .sec-num{color:rgba(255,255,255,.5)}
.diff2-intro h2{color:#fff;margin:.45em 0 .55em}
.diff2-intro .lead{color:#fff}
.diff2-list{list-style:none;border-top:1px solid var(--line-light)}
.diff2-row{position:relative;display:grid;grid-template-columns:auto 38px 1fr;gap:clamp(16px,2.4vw,42px);align-items:center;padding:clamp(22px,2.7vw,34px) clamp(8px,1.4vw,22px) clamp(22px,2.7vw,34px) clamp(8px,1.4vw,22px);border-bottom:1px solid var(--line-light);transition:padding .45s var(--ease),background .45s var(--ease)}
.diff2-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.diff2-row:hover{padding-left:clamp(20px,2.4vw,38px);background:linear-gradient(90deg,rgba(225,16,19,.12),transparent 70%)}
.diff2-row:hover::before{transform:scaleY(1)}
.diff2-row .n{font-family:var(--cond);font-weight:700;letter-spacing:.18em;font-size:.82rem;color:var(--red)}
.diff2-row .ic{width:34px;height:34px;color:#fff}
.diff2-row .tx b{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.05em;font-size:1.06rem;color:#fff;margin-bottom:5px}
.diff2-row .tx span{display:block;font-size:.9rem;color:rgba(255,255,255,.66);line-height:1.45}
@media(max-width:860px){
  .diff2{grid-template-columns:1fr;gap:30px}
  .diff2-row{grid-template-columns:auto 32px 1fr;gap:18px;padding-left:0;padding-right:0}
  .diff2-row:hover{padding-left:14px}
}

/* ===========================================================
   MANIFESTO (home intro)
   =========================================================== */
.manifesto{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,90px);align-items:start}
@media(max-width:900px){.manifesto{grid-template-columns:1fr;gap:30px}}
.manifesto-h{font-family:var(--display);font-weight:500;font-size:clamp(2rem,4.6vw,3.8rem);line-height:1.04;letter-spacing:-.015em}
.manifesto-h .accent{font-style:italic}
.manifesto-side .lead{margin-bottom:1.3em}
.manifesto-img{margin-top:clamp(34px,5vw,64px);position:relative}
.manifesto-img img{width:100%;height:clamp(280px,42vw,520px);object-fit:cover;filter:grayscale(.25) contrast(1.05);border-radius:2px}
.manifesto-img .cap{position:absolute;left:0;bottom:0;background:var(--red);color:#fff;padding:14px 20px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}

/* ===========================================================
   STATS STRIP (home)
   =========================================================== */
.statstrip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--paper)}
.statstrip .st{padding:clamp(26px,3vw,44px) clamp(18px,2vw,30px);border-right:1px solid var(--line)}
.statstrip .st:last-child{border-right:none}
.statstrip .st b{font-family:var(--display);font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:.9;display:block}
.statstrip .st b .accent{color:var(--red)}
.statstrip .st span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--ink-faint);display:block;margin-top:12px}
@media(max-width:760px){.statstrip{grid-template-columns:1fr 1fr}.statstrip .st:nth-child(2n){border-right:none}.statstrip .st:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* ===========================================================
   PROGRAMS GRID
   =========================================================== */
.prog-mag{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2vw,28px)}
.prog-mag .prog-card{grid-column:span 6;min-height:clamp(300px,32vw,400px)}
.prog-mag .prog-card.lg{grid-column:span 7;min-height:clamp(380px,44vw,540px)}
.prog-mag .prog-card.sm{grid-column:span 5}
@media(max-width:760px){.prog-mag{grid-template-columns:1fr}.prog-mag .prog-card,.prog-mag .prog-card.lg,.prog-mag .prog-card.sm{grid-column:1/-1;min-height:340px}}

/* ---- Programs v2: alternating editorial rows + red duotone blend ---- */
.prog-rows{display:flex;flex-direction:column}
.prog-row{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4.5vw,76px);align-items:center;padding-block:clamp(30px,4.5vw,66px)}
.prog-row:first-child{padding-top:clamp(8px,1.5vw,20px)}
.prog-row + .prog-row{border-top:1px solid var(--line)}
.prog-row:nth-child(even) .pr-media{order:2}

.pr-media{position:relative;overflow:hidden;border-radius:2px;box-shadow:var(--shadow-soft);isolation:isolate;display:block}
.pr-media img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;filter:grayscale(1) contrast(1.07);transition:transform 1.1s var(--ease),filter .8s var(--ease)}
/* red duotone blend over the grayscale photo */
.pr-media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(145deg,rgba(0,0,0,.25),rgba(0,0,0,.5));transition:opacity .8s var(--ease)}
.pr-media .glow{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent 60%)}
.prog-row:hover .pr-media img{transform:scale(1.06);filter:grayscale(1) contrast(1.08)}
.prog-row:hover .pr-media::after{opacity:.16}
.pr-tag{position:absolute;top:0;left:0;z-index:3;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;font-weight:700;padding:.65em 1.05em}
.pr-vlabel{position:absolute;top:0;right:0;z-index:3;writing-mode:vertical-rl;background:rgba(11,11,12,.42);backdrop-filter:blur(4px);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.26em;font-size:.6rem;font-weight:700;padding:15px 9px}
.pr-view{position:absolute;right:clamp(16px,2vw,22px);bottom:clamp(16px,2vw,22px);z-index:3;width:clamp(50px,5vw,62px);height:clamp(50px,5vw,62px);border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;transform:scale(.55) rotate(-12deg);opacity:0;transition:.5s var(--ease);box-shadow:0 10px 26px -10px rgba(225,27,34,.7)}
.pr-view svg{width:22px;height:22px}
.prog-row:hover .pr-view{transform:scale(1) rotate(0);opacity:1}

.pr-body{position:relative}
.pr-index{font-family:var(--display);font-weight:600;font-size:clamp(3.6rem,7.5vw,6.4rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px rgba(11,11,12,.22);letter-spacing:-.02em;display:block;margin-bottom:.06em}
.pr-body h3{font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:.4em}
.pr-body h3 .accent{color:var(--red)}
.pr-body .pdesc{color:var(--ink-soft);max-width:46ch}
.pr-pills{display:flex;flex-wrap:wrap;gap:8px;margin:1.3em 0}
.pr-pills span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);padding:.55em .9em;border-radius:40px;transition:.3s var(--ease)}
.prog-row:hover .pr-pills span{border-color:rgba(11,11,12,.4)}
.pr-cta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.82rem;color:var(--ink);display:inline-flex;align-items:center;gap:.55em;border-bottom:2px solid var(--red);padding-bottom:.35em;transition:gap .3s var(--ease)}
.pr-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
.prog-row:hover .pr-cta{gap:.95em}
.prog-row:hover .pr-cta .arr{transform:translateX(4px)}
@media(max-width:760px){
  .prog-row{grid-template-columns:1fr;gap:20px;padding-block:clamp(28px,7vw,40px)}
  .prog-row:nth-child(even) .pr-media{order:0}
  .pr-media img{height:clamp(240px,60vw,340px)}
}

/* ---- Programs v3: expanding panel showcase ---- */
.prog-accordion{display:flex;gap:12px;height:clamp(470px,54vw,580px)}
.pa-panel{position:relative;flex:1;min-width:62px;overflow:hidden;border-radius:2px;isolation:isolate;text-decoration:none;transition:flex .7s var(--ease)}
.pa-panel.active{flex:2.7}
.prog-accordion:hover .pa-panel{flex:1}
.prog-accordion:hover .pa-panel:hover{flex:2.9}
.pa-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);transition:transform 1.2s var(--ease),filter .8s var(--ease)}
.pa-panel.active img,.pa-panel:hover img{transform:scale(1.05)}
.pa-panel::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(160deg,rgba(0,0,0,.35),rgba(0,0,0,.45) 45%,rgba(0,0,0,.78));transition:opacity .7s var(--ease)}
.pa-panel.active::after,.pa-panel:hover::after{opacity:.65}
.pa-panel .pshade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg,rgba(11,11,12,.9),rgba(11,11,12,.1) 58%)}
.pa-num{position:absolute;top:clamp(18px,1.8vw,26px);left:clamp(18px,1.8vw,26px);z-index:4;font-family:var(--cond);font-weight:700;letter-spacing:.2em;font-size:.74rem;color:#fff}
.pa-tag{position:absolute;top:clamp(16px,1.8vw,24px);right:0;z-index:4;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;padding:.55em .85em;opacity:0;transform:translateX(8px);transition:.5s var(--ease)}
.pa-vtitle{position:absolute;left:clamp(20px,2vw,30px);bottom:clamp(22px,2.2vw,32px);z-index:4;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--display);font-weight:600;font-size:clamp(1.15rem,1.7vw,1.6rem);color:#fff;white-space:nowrap;transition:opacity .35s var(--ease)}
.pa-detail{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:clamp(24px,2.4vw,38px);color:#fff;width:min(100%,460px);opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease) .08s,transform .55s var(--ease) .08s;pointer-events:none}

/* --- open / collapsed state logic --- */
/* default: the active panel is open */
.pa-panel.active .pa-tag{opacity:1;transform:none}
.pa-panel.active .pa-vtitle{opacity:0}
.pa-panel.active .pa-detail{opacity:1;transform:none;pointer-events:auto}
/* when the row is hovered, the active panel collapses unless it is the one hovered */
.prog-accordion:hover .pa-panel.active .pa-tag{opacity:0;transform:translateX(8px)}
.prog-accordion:hover .pa-panel.active .pa-vtitle{opacity:1}
.prog-accordion:hover .pa-panel.active .pa-detail{opacity:0;transform:translateY(14px);pointer-events:none}
/* the hovered panel is always open */
.prog-accordion:hover .pa-panel:hover .pa-tag{opacity:1;transform:none}
.prog-accordion:hover .pa-panel:hover .pa-vtitle{opacity:0}
.prog-accordion:hover .pa-panel:hover .pa-detail{opacity:1;transform:none;pointer-events:auto}
.pa-detail h3{font-size:clamp(1.5rem,2.1vw,2.1rem);color:#fff;line-height:1.05;margin-bottom:.45em}
.pa-detail p{font-size:.92rem;color:rgba(255,255,255,.82);max-width:40ch}
.pa-pills{display:flex;flex-wrap:wrap;gap:7px;margin:1.1em 0}
.pa-pills span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:700;color:#fff;border:1px solid var(--line-light);padding:.5em .8em;border-radius:40px}
.pa-cta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.8rem;color:#fff;display:inline-flex;align-items:center;gap:.55em;border-bottom:2px solid var(--red);padding-bottom:.3em}
.pa-cta .arr{color:var(--red)}
@media(max-width:760px){
  .prog-accordion{flex-direction:column;height:auto;gap:14px}
  .pa-panel,.pa-panel.active,.prog-accordion:hover .pa-panel,.prog-accordion:hover .pa-panel:hover{flex:none;height:clamp(300px,68vw,400px)}
  .pa-panel::after{opacity:.5}
  .pa-tag,.prog-accordion:hover .pa-panel.active .pa-tag{opacity:1 !important;transform:none !important}
  .pa-vtitle{display:none !important}
  .pa-detail,.prog-accordion:hover .pa-panel.active .pa-detail{opacity:1 !important;transform:none !important;pointer-events:auto !important;width:100%}
}

.prog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2vw,28px)}
@media(max-width:760px){.prog-grid{grid-template-columns:1fr}}
.prog-card{position:relative;display:block;overflow:hidden;background:var(--charcoal);color:var(--paper);min-height:clamp(320px,38vw,440px);border-radius:var(--radius)}
.prog-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.25);transition:transform .9s var(--ease),filter .6s}
.prog-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.15),rgba(20,17,14,.85))}
.prog-card:hover img{transform:scale(1.06);filter:grayscale(0)}
.prog-card .pc-body{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(22px,2.6vw,34px)}
.prog-card .pc-num{position:absolute;top:clamp(20px,2.4vw,30px);left:clamp(22px,2.6vw,34px);font-family:var(--cond);font-weight:700;letter-spacing:.2em;font-size:.72rem;color:rgba(243,236,224,.7)}
.prog-card .pc-tag{position:absolute;top:clamp(18px,2.4vw,28px);right:clamp(22px,2.6vw,34px);background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;font-weight:700;padding:.5em .8em}
.prog-card h3{color:#fff;font-size:clamp(1.4rem,2.2vw,2rem)}
.prog-card p{color:rgba(243,236,224,.8);font-size:.92rem;max-width:42ch;margin:.5em 0 1.1em}
.prog-card .pc-cta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.78rem;display:inline-flex;align-items:center;gap:.5em;color:#fff}
.prog-card:hover .pc-cta{gap:.95em}
.prog-card .pc-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
.prog-card:hover .pc-cta .arr{transform:translateX(4px)}

/* ===========================================================
   SPLIT / EDITORIAL BLOCKS
   =========================================================== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
.split.rev .s-media{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr}.split.rev .s-media{order:0}}
.s-media{position:relative}
.s-media img{width:100%;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.s-media .tag-card{position:absolute;background:var(--red);color:#fff;padding:clamp(16px,2vw,24px);max-width:240px}
.s-media .tag-card.br{right:-14px;bottom:-22px}
.s-media .tag-card b{font-family:var(--display);font-size:1.6rem;display:block;line-height:1}
.s-media .tag-card span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem}
.s-body h2{margin:.3em 0 .5em}
.s-body .rt{margin-top:1.4em;display:flex;flex-direction:column;gap:1em}
.tick{display:flex;gap:.8em;align-items:flex-start;font-size:.96rem}
.tick svg{flex:none;width:20px;height:20px;color:var(--red);margin-top:3px}

/* media collage */
.collage{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:14px}
.collage img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius)}
.collage .c1{grid-row:1/3;min-height:340px}
.collage.three{grid-template-columns:repeat(3,1fr);grid-template-rows:auto;margin-top:14px}
.collage.three img{min-height:240px}
@media(max-width:600px){
  .collage,.collage.three{grid-template-columns:1fr 1fr;gap:10px}
  .collage img{aspect-ratio:1/1;height:auto;min-height:0}
  .collage .c1{grid-column:1 / -1;grid-row:auto;aspect-ratio:16/10}
  .collage.three img{min-height:0}
  .collage.three img:last-child{grid-column:1 / -1;aspect-ratio:16/10}
}

/* ===========================================================
   COACH FEATURE
   =========================================================== */
.coach{background:var(--charcoal);color:var(--paper);position:relative;overflow:hidden}
.coach .split{align-items:stretch}
.coach .c-media{position:relative}
.coach .c-media img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);min-height:380px}
.coach .c-media .badge{position:absolute;left:-10px;top:24px;background:var(--red);color:#fff;writing-mode:vertical-rl;padding:18px 10px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;font-weight:700}
.coach h2{color:#fff}
.coach .quote{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.3;color:#fff;margin:.4em 0 1em;border-left:2px solid var(--red);padding-left:1em}
.cred-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:1.6em;border-top:1px solid var(--line-light)}
.cred{padding:18px 0;border-bottom:1px solid var(--line-light);padding-right:18px}
.cred:nth-child(odd){border-right:1px solid var(--line-light);padding-right:24px}
.cred:nth-child(even){padding-left:24px}
.cred b{font-family:var(--display);font-size:1.5rem;display:block;line-height:1;color:#fff}
.cred span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;color:rgba(243,236,224,.65)}
.cred-list{margin-top:1.4em;display:grid;gap:.7em}
.cred-list li{display:flex;gap:.7em;font-size:.95rem;color:rgba(243,236,224,.86)}
.cred-list svg{flex:none;width:18px;height:18px;color:var(--red);margin-top:4px}

/* ===========================================================
   REVIEWS
   =========================================================== */
.reviews{background:var(--charcoal);color:#fff;overflow:hidden;position:relative}
.reviews::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 70%);mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 70%);animation:gridPan 26s linear infinite}
.reviews .wrap{position:relative;z-index:1}
.rev-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(26px,3.2vw,42px)}
.rev-head h2{color:#fff}
.rev-head .sec-num{color:rgba(255,255,255,.5)}
.rev-rating{display:flex;align-items:center;gap:14px}
.rev-rating .num{font-family:var(--display);font-weight:800;font-size:2.8rem;line-height:1;letter-spacing:-.03em;color:#fff}
.rev-stars{color:var(--red);letter-spacing:2px;font-size:1.1rem}
.rev-rating .rev-meta{color:rgba(255,255,255,.55)}

/* featured + selectable reviewer list */
.rev-module{display:grid;grid-template-columns:1.55fr .85fr;gap:clamp(16px,1.8vw,28px);align-items:stretch}
.rev-featured{position:relative;display:grid;background:rgba(255,255,255,.04);border:1px solid var(--line-light);border-top:3px solid var(--red);padding:clamp(28px,3.4vw,56px);overflow:hidden;min-height:clamp(280px,26vw,340px)}
.rev-featured::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 80% at 100% 0%,rgba(225,16,19,.16),transparent 60%)}
.rev-fslide{grid-area:1/1;position:relative;z-index:1;display:flex;flex-direction:column;gap:clamp(16px,1.8vw,26px);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.rev-fslide.active{opacity:1;visibility:visible;transform:none}
.rev-mark{font-family:Georgia,serif;font-size:clamp(3rem,5vw,4.4rem);line-height:.55;color:var(--red);height:.5em}
.rev-quote{font-size:clamp(1.12rem,1.7vw,1.5rem);line-height:1.5;color:#fff;font-weight:500;flex:1}
.rev-foot{display:flex;align-items:center;gap:14px;margin-top:auto}
.rev-avatar{width:48px;height:48px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.1rem;flex:none}
.rev-name{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:1rem;line-height:1;display:block;color:#fff}
.rev-meta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:rgba(255,255,255,.55);display:block}
.rev-rating .rev-meta{margin-top:4px}
.rev-foot .rev-meta{margin-top:5px}
.rev-foot .rstars{margin-left:auto;color:var(--red);letter-spacing:3px}
/* reviewer list */
.rev-list{display:flex;flex-direction:column;gap:8px}
.rev-list button{position:relative;display:flex;align-items:center;gap:13px;padding:13px 16px;border:1px solid var(--line-light);background:none;color:#fff;text-align:left;cursor:pointer;transition:background .35s var(--ease),border-color .35s var(--ease);overflow:hidden;flex:1}
.rev-list button::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.rev-list button:hover{border-color:rgba(255,255,255,.4)}
.rev-list button.on{background:rgba(225,16,19,.12);border-color:var(--red)}
.rev-list button.on::before{transform:scaleY(1)}
.rev-list .la{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.95rem;flex:none}
.rev-list button.on .la{background:var(--red)}
.rev-list .ln{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:.85rem;line-height:1.05;display:block}
.rev-list .lm{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.5);display:block;margin-top:3px}
.rev-list .ls{margin-left:auto;color:var(--red);font-size:.75rem;letter-spacing:1px}
@media(max-width:860px){
  .rev-module{grid-template-columns:1fr}
  .rev-list{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .rev-list button{flex:0 0 auto;min-width:200px}
}

/* ===========================================================
   MAP / LOCATION
   =========================================================== */
.locate{display:grid;grid-template-columns:1fr 1.15fr;gap:0;border:1px solid var(--line)}
@media(max-width:860px){.locate{grid-template-columns:1fr}}
.locate-info{padding:clamp(28px,4vw,56px);background:var(--charcoal);color:var(--paper);border-top:3px solid var(--red);display:flex;flex-direction:column}
.locate-info h2{color:#fff;margin:.3em 0 .8em}
.locate-eb{margin-bottom:22px}
.locate-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.locate-grid2 .locate-row{border-bottom:1px solid var(--line-light)}
@media(max-width:520px){.locate-grid2{grid-template-columns:1fr}}
.locate-hours{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-light)}
.lh-row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px dashed var(--line-light);font-size:.9rem}
.lh-row:last-child{border-bottom:none}
.lh-row .d{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:rgba(255,255,255,.6)}
.lh-row .t{color:#fff;font-weight:500}
.lh-row.closed .t{color:rgba(255,255,255,.4)}
.locate-areas-wrap{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-light)}
.locate-areas{display:flex;flex-wrap:wrap;gap:8px}
.locate-areas a{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;font-weight:700;color:#fff;border:1px solid var(--line-light);padding:.5em .85em;border-radius:40px;transition:.3s var(--ease)}
.locate-areas a:hover{background:var(--red);border-color:var(--red)}
.locate-cta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:26px}
.locate-cta-row .btn{flex:1;min-width:200px;justify-content:center}
.locate-soc{margin-top:0}
.locate-soc a{border-color:var(--line-light)}
.locate-map{position:relative}
.locate-mapbadge{position:absolute;left:clamp(14px,1.6vw,20px);bottom:clamp(14px,1.6vw,20px);z-index:2;background:rgba(7,7,9,.86);backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:11px 16px;display:flex;flex-direction:column;gap:1px;text-decoration:none}
.locate-mapbadge .rstars{color:var(--red);letter-spacing:2px;font-size:.8rem}
.locate-mapbadge b{font-family:var(--display);font-weight:800;font-size:1.25rem;color:#fff;line-height:1}
.locate-mapbadge .mb-m{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.6)}
.locate-row{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line-light)}
.locate-row svg{flex:none;width:22px;height:22px;color:var(--red);margin-top:2px}
.locate-row .lt{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:rgba(243,236,224,.6);display:block;margin-bottom:3px}
.locate-row .lv{font-size:1rem}
.locate-row a.lv:hover{color:var(--red)}
.locate-map{min-height:360px}
.locate-map iframe{width:100%;height:100%;min-height:360px;border:0;filter:grayscale(.3) contrast(1.05)}

/* ---- Map module v3 (premium dark location / contact) ---- */
.map-dark{background:var(--charcoal);color:#fff;position:relative;overflow:hidden}
.map-dark::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 72%);mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 72%);animation:gridPan 26s linear infinite}
.map-dark .wrap{position:relative;z-index:1}
.map-head{margin-bottom:clamp(28px,3.4vw,46px)}
.map-head .sec-num{color:rgba(255,255,255,.5)}
.map-head h2{color:#fff;margin:.4em 0 0;max-width:18ch}
.map-head h2 .accent{color:var(--red)}
.map-head-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(20px,3vw,48px);flex-wrap:wrap;margin-top:clamp(22px,2.6vw,34px)}
.map-head-bottom .lead{color:rgba(255,255,255,.7);max-width:46ch;margin:0}
.map-head-cta{display:flex;gap:12px;flex-wrap:wrap;flex:none}
.map-head-cta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.map-head-cta .btn.ghost:hover{background:#fff;color:#0b0b0c}
@media(max-width:560px){
  .map-head-cta{width:100%}
  .map-head-cta .btn{flex:1;justify-content:center;min-width:0}
}

/* split: contact card + large framed map */
.map-grid{display:grid;grid-template-columns:.86fr 1.5fr;gap:clamp(14px,1.6vw,24px);align-items:stretch}

/* contact card */
.map-info{display:flex;flex-direction:column;background:rgba(255,255,255,.04);border:1px solid var(--line-light);border-top:3px solid var(--red);padding:clamp(18px,2vw,30px)}
.mrow{display:flex;align-items:center;gap:15px;padding:clamp(13px,1.5vw,18px) 0;border-bottom:1px solid var(--line-light);transition:padding .4s var(--ease)}
.mrow:first-child{padding-top:0}
.mrow-ic{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-light);background:rgba(255,255,255,.04);display:grid;place-items:center;color:#fff;transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}
.mrow-ic svg{width:20px;height:20px}
a.mrow:hover{padding-left:6px}
a.mrow:hover .mrow-ic{background:var(--red);border-color:var(--red);box-shadow:0 10px 24px -10px var(--red-glow)}
.mrow-tx{flex:1;min-width:0}
.mrow-l{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;color:var(--red);margin-bottom:4px}
.mrow-v{display:block;font-size:.94rem;color:#fff;line-height:1.4}
.mrow-arr{flex:none;color:rgba(255,255,255,.38);transition:color .4s var(--ease),transform .4s var(--ease)}
.mrow-arr svg{width:18px;height:18px}
a.mrow:hover .mrow-arr{color:var(--red);transform:translateX(4px)}
/* hours block */
.map-hours{padding:clamp(13px,1.5vw,18px) 0;border-bottom:1px solid var(--line-light)}
.map-hours .mrow-l{margin-bottom:10px}
.map-hours .lh-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:.84rem;border-bottom:1px dashed var(--line-light)}
.map-hours .lh-row:last-child{border-bottom:none}
.map-hours .lh-row .d{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:rgba(255,255,255,.6)}
.map-hours .lh-row .t{color:#fff;font-weight:500}
.map-hours .lh-row.closed .t{color:rgba(255,255,255,.4)}
/* also serving */
.map-areas{padding-top:clamp(14px,1.5vw,18px)}
.map-areas .mrow-l{margin-bottom:10px}
.map-areas .areas{display:flex;flex-wrap:wrap;gap:8px}
.map-areas .areas a{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;font-weight:700;color:#fff;border:1px solid var(--line-light);padding:.5em .85em;border-radius:40px;transition:.3s var(--ease)}
.map-areas .areas a:hover{background:var(--red);border-color:var(--red)}

/* framed map */
.map-canvas{position:relative;min-height:clamp(360px,42vw,560px);border:1px solid var(--line-light);overflow:hidden}
.map-canvas iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.map-canvas::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);background:linear-gradient(0deg,rgba(11,11,12,.32),transparent 28%)}
.map-corner{position:absolute;left:0;top:0;width:62px;height:4px;background:var(--red);z-index:2}
.map-corner::after{content:"";position:absolute;left:0;top:0;width:4px;height:62px;background:var(--red)}
.map-badge{position:absolute;left:clamp(14px,1.6vw,20px);bottom:clamp(14px,1.6vw,20px);z-index:2;background:rgba(7,7,9,.86);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:11px 16px;display:flex;flex-direction:column;gap:1px;text-decoration:none}
.map-badge .rstars{color:var(--red);letter-spacing:2px;font-size:.8rem}
.map-badge b{font-family:var(--display);font-weight:800;font-size:1.25rem;color:#fff;line-height:1}
.map-badge .mb-m{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.6)}

/* first-visit strip */
.map-note{display:flex;align-items:center;gap:clamp(14px,2vw,26px);flex-wrap:wrap;margin-top:clamp(14px,1.6vw,22px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:clamp(14px,1.5vw,20px) clamp(18px,2vw,28px)}
.map-note-k{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.64rem;font-weight:700;color:var(--red);flex:none}
.map-note p{flex:1;min-width:240px;margin:0;max-width:none;color:rgba(255,255,255,.74);font-size:.9rem;line-height:1.5}
.map-note p b{color:#fff}
.map-note .tlink{flex:none;color:#fff;border-color:rgba(255,255,255,.35)}
.map-note .tlink:hover{color:#fff;border-color:var(--red)}
@media(max-width:860px){
  .map-grid{grid-template-columns:1fr}
  .map-canvas{min-height:clamp(300px,72vw,420px)}
}
@media(max-width:560px){
  .map-note .tlink{flex-basis:100%}
}

/* ---- Map findgrid bento (current markup) ---- */
.map-head{display:grid;grid-template-columns:1.3fr .9fr;gap:clamp(24px,4vw,56px);align-items:end}
.map-head-top h2{color:#fff;max-width:16ch}
.map-head-bottom{display:block;margin-top:0}
.map-head-bottom .lead{max-width:46ch;color:rgba(255,255,255,.72)}
@media(max-width:760px){.map-head{grid-template-columns:1fr;gap:16px}}

.findgrid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(0,auto);gap:clamp(10px,1.2vw,16px)}
.fg-map{grid-column:1/9;grid-row:1/3;position:relative;overflow:hidden;min-height:clamp(360px,40vw,520px);border:1px solid var(--line-light)}
.fg-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.fg-corner{position:absolute;left:0;top:0;z-index:3;width:58px;height:4px;background:var(--red)}
.fg-corner::after{content:"";position:absolute;left:0;top:0;width:4px;height:58px;background:var(--red)}
.fg-dir{position:absolute;top:16px;right:16px;z-index:3}
.fg-badge{position:absolute;left:clamp(14px,1.6vw,20px);bottom:clamp(14px,1.6vw,20px);z-index:3;background:rgba(7,7,9,.86);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:11px 16px;display:flex;flex-direction:column;gap:1px;text-decoration:none}
.fg-badge .rstars{color:var(--red);letter-spacing:2px;font-size:.8rem}
.fg-badge b{font-family:var(--display);font-weight:800;font-size:1.25rem;color:#fff;line-height:1}
.fg-badge .mb-m{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.6)}

.fg-img{grid-column:9/13;grid-row:1;position:relative;overflow:hidden;min-height:clamp(150px,15vw,200px);border:1px solid var(--line-light)}
.fg-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08)}
.fg-img::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(225,16,19,.4),rgba(11,11,13,.62))}
.fg-imglabel{position:absolute;left:0;bottom:0;z-index:2;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;padding:.55em .85em}

.fg-tile{position:relative;background:rgba(255,255,255,.04);border:1px solid var(--line-light);padding:clamp(16px,1.5vw,24px);display:flex;flex-direction:column;gap:5px;text-decoration:none;color:#fff;transition:background .35s var(--ease),border-color .35s var(--ease)}
.fg-tile:hover{border-color:var(--red);background:rgba(225,16,19,.08)}
.fg-ic{width:26px;height:26px;color:var(--red);margin-bottom:8px}
.fg-ic svg{width:100%;height:100%}
.fg-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.55)}
.fg-v{font-size:.94rem;color:#fff;line-height:1.45}
.fg-addr{grid-column:9/13;grid-row:2;justify-content:flex-start}
.fg-phone{grid-column:1/5;grid-row:3;gap:0;justify-content:center}
.fg-line{display:flex;align-items:center;gap:13px;padding:11px 0;color:#fff;text-decoration:none}
.fg-line+.fg-line{border-top:1px solid var(--line-light)}
.fg-lic{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:var(--red)}
.fg-lic svg{width:17px;height:17px}
.fg-hours{grid-column:5/9;grid-row:3}
.fg-hours .fg-l{margin-bottom:8px}
.fg-hours .lh-row{padding:5px 0;font-size:.82rem}
.fg-cta{grid-column:9/13;grid-row:3;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;border:none;background:linear-gradient(120deg,#0B0B0D,#3A0406 70%,var(--red) 130%)}
.fg-cta .fg-l{color:rgba(255,255,255,.7)}
.fg-cta b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,1.7vw,1.85rem);line-height:.95;display:block;margin-top:6px;color:#fff}
.fg-arr{flex:none;width:50px;height:50px;border-radius:50%;background:#fff;color:#0b0b0c;display:grid;place-items:center;transition:transform .4s var(--ease)}
.fg-arr svg{width:22px;height:22px}
.fg-cta:hover .fg-arr{transform:rotate(-45deg)}
@media(max-width:860px){
  .findgrid{grid-template-columns:repeat(2,1fr)}
  .fg-map,.fg-img,.fg-addr,.fg-phone,.fg-hours,.fg-cta{grid-column:auto;grid-row:auto}
  .fg-map{grid-column:1/3;min-height:clamp(300px,64vw,420px)}
  .fg-img{grid-column:1/3;min-height:180px}
  .fg-cta{grid-column:1/3}
}
@media(max-width:520px){.findgrid{grid-template-columns:1fr}.fg-map,.fg-img,.fg-addr,.fg-phone,.fg-hours,.fg-cta{grid-column:1}}

/* ===========================================================
   BIG CTA
   =========================================================== */
.bigcta{position:relative;overflow:hidden;background:var(--grad-blackred);border-top:3px solid var(--red);color:#fff;padding-block:clamp(60px,8vw,120px)}
.bigcta-media{position:absolute;inset:0;z-index:0}
.bigcta-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1) contrast(1.12);opacity:.16;animation:kenburns 30s ease-in-out infinite alternate}
.bigcta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#07070a,transparent 55%),linear-gradient(180deg,rgba(7,7,9,.4),transparent 30%)}
.bigcta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.1) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(78% 90% at 50% 50%,#000,transparent 80%);mask-image:radial-gradient(78% 90% at 50% 50%,#000,transparent 80%);animation:gridPan 28s linear infinite}
.bigcta::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(55% 70% at 50% 45%,rgba(225,16,19,.22),transparent 62%)}
.bigcta-inner{position:relative;z-index:3;max-width:780px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(.7em,1.4vw,1.05em)}
.bigcta-inner::before{content:"";width:64px;height:3px;background:var(--red)}
.bigcta .eyebrow{color:var(--red)}
.bigcta h2{color:#fff;font-size:clamp(2.3rem,5.2vw,4.2rem);line-height:.98;max-width:18ch;margin:0}
.bigcta h2 .accent{color:var(--red)}
.bigcta .lead{color:rgba(255,255,255,.82);max-width:52ch;margin:0}
.bigcta .actions,.bigcta-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:.5em}
@media(max-width:600px){.bigcta .actions .btn,.bigcta-actions .btn{flex:1;justify-content:center;min-width:0}}

/* ── Trial offer eligibility terms — shown beneath primary CTAs ──────────── */
.trial-terms{display:inline-flex;align-items:flex-start;gap:.5em;margin:0;padding:.6em .9em;background:rgba(225,16,19,.07);border:1px solid rgba(225,16,19,.2);border-radius:6px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:700;line-height:1.45;color:var(--ink-soft);text-align:left}
.trial-terms svg{width:15px;height:15px;flex:none;margin-top:.12em;color:var(--red);stroke:currentColor;fill:none}
.trial-terms b{color:var(--red-deep)}
.trial-terms--dark{background:rgba(225,16,19,.12);border-color:rgba(225,16,19,.34);color:rgba(255,255,255,.82)}
.trial-terms--dark svg{color:var(--red)}
.trial-terms--dark b{color:#fff}
.bigcta-inner .trial-terms,.joincta .trial-terms,.booknow-inner .trial-terms{margin-top:.35em;text-align:center}
.cform2-terms{margin:.5em 0 .2em}
.h2-cta+.trial-terms{margin-top:1.15em}
@media(max-width:600px){.trial-terms{font-size:.66rem;letter-spacing:.06em}}

/* ===========================================================
   SCHEDULE
   =========================================================== */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(28px,3.6vw,44px)}
.filters button{
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:.78rem;
  padding:.8em 1.3em;border:1px solid var(--line);color:var(--ink-soft);border-radius:40px;transition:.3s var(--ease);
}
.filters button:hover{border-color:var(--ink)}
.filters button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filters button .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5em;vertical-align:middle}

.sched-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
@media(max-width:900px){.sched-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sched-grid{grid-template-columns:1fr}}
.day-col{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden;display:flex;flex-direction:column}
.day-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;background:var(--paper-2)}
.day-head b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.92rem}
.day-head span{font-family:var(--cond);font-size:.68rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em}
.slots{padding:8px;display:flex;flex-direction:column;gap:6px}
.slot{padding:13px 14px;border-radius:var(--radius);border-left:3px solid var(--line);background:var(--paper-2);transition:.45s var(--ease);position:relative}
.slot.hide{display:none}
.slot .time{font-family:var(--cond);font-weight:700;letter-spacing:.04em;font-size:.92rem}
.slot .cls{font-weight:700;font-size:.86rem;margin-top:2px}
.slot .det{font-size:.76rem;color:var(--ink-faint)}
.slot.dim{opacity:.26;filter:grayscale(1)}
.slot[data-cat="kids"]{border-left-color:#9A9AA0}
.slot[data-cat="bjj"]{border-left-color:var(--red)}
.slot[data-cat="striking"]{border-left-color:#0B0B0C}
.legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--ink-faint)}
.legend span{display:inline-flex;align-items:center;gap:.55em}
.legend i{width:12px;height:12px;border-radius:2px;display:inline-block}

/* ===========================================================
   BLOG
   =========================================================== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,34px)}
@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.blog-grid{grid-template-columns:1fr}}
.post{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.4s var(--ease)}
.post:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.post .pimg{aspect-ratio:3/2;overflow:hidden}
.post .pimg img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);filter:grayscale(.2)}
.post:hover .pimg img{transform:scale(1.05);filter:grayscale(0)}
.post .pbody{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post .pcat{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;color:var(--red);font-weight:700}
.post h3{font-size:1.3rem}
.post p{font-size:.9rem;color:var(--ink-soft)}
.post .pmeta{margin-top:auto;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--ink-faint)}
.post.feature{grid-column:span 3;flex-direction:row}
.post.feature .pimg{flex:1.1;aspect-ratio:auto}
.post.feature .pbody{flex:1;justify-content:center;padding:clamp(28px,4vw,56px)}
.post.feature h3{font-size:clamp(1.6rem,2.6vw,2.4rem)}
@media(max-width:900px){.post.feature{grid-column:span 2;flex-direction:column}.post.feature .pimg{aspect-ratio:3/2}}
@media(max-width:600px){.post.feature{grid-column:span 1}}

/* ===========================================================
   CONTACT
   =========================================================== */
.cform{display:grid;gap:16px}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.cform .row{grid-template-columns:1fr}}
.field label{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:var(--ink-faint);display:block;margin-bottom:7px;font-weight:700}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--paper);font-family:var(--sans);font-size:.95rem;color:var(--ink);border-radius:var(--radius);transition:border-color .3s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red)}
.field textarea{min-height:130px;resize:vertical}

/* ===========================================================
   FOOTER
   =========================================================== */
.site-footer{background:var(--ink);color:var(--paper);padding-block:clamp(54px,7vw,90px) 30px}
.foot-top{display:grid;grid-template-columns:1.5fr .9fr .9fr 1.1fr 1.2fr;gap:clamp(24px,3vw,48px)}
@media(max-width:900px){.foot-top{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-top{grid-template-columns:1fr}}
.foot-brand .brand img{width:54px;height:54px}
.foot-brand p{color:rgba(243,236,224,.6);font-size:.9rem;margin-top:18px;max-width:34ch}
.foot-col h4{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;color:rgba(243,236,224,.5);margin-bottom:18px;font-weight:700}
.foot-col a{display:block;color:rgba(243,236,224,.85);padding:7px 0;font-size:.92rem;transition:color .25s,padding-left .25s}
.foot-col a:hover{color:#fff;padding-left:5px}
.foot-soc{display:flex;gap:12px;margin-top:18px}
.foot-soc a{width:42px;height:42px;border:1px solid var(--line-light);display:grid;place-items:center;border-radius:50%;transition:.3s var(--ease)}
.foot-soc a:hover{background:var(--red);border-color:var(--red)}
.foot-soc svg{width:18px;height:18px;color:var(--paper)}
.foot-bottom{margin-top:clamp(40px,5vw,64px);padding-top:24px;border-top:1px solid var(--line-light);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.78rem;color:rgba(243,236,224,.5);font-family:var(--cond);letter-spacing:.04em}
.foot-bottom a:hover{color:#fff}

/* ===========================================================
   UTIL / REVEAL
   =========================================================== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*{scroll-behavior:auto}}

.kicker-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:clamp(26px,3.4vw,46px)}
.mw-60{max-width:60ch}
.mt-1{margin-top:1em}.mt-2{margin-top:2em}
.center{text-align:center}
.pull{font-family:var(--display);font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.25;font-weight:500}
.pull .accent{font-style:italic}
.divider{height:1px;background:var(--line);border:0;margin:0}

/* intro stagger for hero */
.hero .reveal{transition-duration:1s}

/* ===========================================================
   BELT-LINE marquee (section transition)
   =========================================================== */
.beltline{background:#0b0b0d;border-block:1px solid var(--line-light);overflow:hidden;position:relative}
.beltline::before,.beltline::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}
.beltline::before{left:0;background:linear-gradient(90deg,#0b0b0d,transparent)}
.beltline::after{right:0;background:linear-gradient(270deg,#0b0b0d,transparent)}
.belt-track{display:inline-flex;white-space:nowrap;padding:clamp(14px,1.6vw,22px) 0;animation:ticker 38s linear infinite}
.beltline:hover .belt-track{animation-play-state:paused}
.belt-track span{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(1.05rem,1.7vw,1.5rem);color:#fff;display:inline-flex;align-items:center}
.belt-track span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);margin:0 clamp(22px,3vw,46px);flex:none}
.belt-track span:nth-child(even){color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.45)}
@media(prefers-reduced-motion:reduce){.belt-track{animation:none}}

/* ===========================================================
   FACILITY bento (immersive)
   =========================================================== */
.facility{background:#0b0b0d;color:#fff;position:relative;overflow:hidden}
.facility::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 80% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(80% 80% at 100% 0%,#000,transparent 72%);animation:gridPan 26s linear infinite}
.facility .wrap{position:relative;z-index:1}
.facility .kicker-row h2,.facility .kicker-row .sec-num{color:#fff}
.facility .kicker-row .sec-num{color:rgba(255,255,255,.5)}
.facility .kicker-row .lead{color:rgba(255,255,255,.72)}
.fac-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(150px,15vw,212px);gap:clamp(10px,1.2vw,16px)}
.fac-tile{position:relative;overflow:hidden;display:block;text-decoration:none;border:1px solid var(--line-light)}
.fac-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.fac-tile:hover img{transform:scale(1.07);filter:grayscale(.25) contrast(1.04)}
.fac-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(11,11,13,.82)),radial-gradient(80% 70% at 100% 100%,rgba(225,16,19,.22),transparent 60%)}
.fac-tile .fl{position:absolute;left:0;bottom:0;z-index:2;padding:14px 16px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:700;color:#fff}
.fac-tile .fl small{display:block;font-weight:600;letter-spacing:.1em;font-size:.58rem;color:rgba(255,255,255,.6);margin-top:3px}
.fac-a{grid-column:1/7;grid-row:1/3}
.fac-b{grid-column:7/10;grid-row:1}
.fac-c{grid-column:10/13;grid-row:1}
.fac-d{grid-column:7/10;grid-row:2}
.fac-e{grid-column:10/13;grid-row:2}
@media(max-width:860px){
  .fac-grid{grid-template-columns:repeat(2,1fr)}
  .fac-a{grid-column:1/3;grid-row:1/3}
  .fac-b{grid-column:1;grid-row:3}.fac-c{grid-column:2;grid-row:3}
  .fac-d{grid-column:1;grid-row:4}.fac-e{grid-column:2;grid-row:4}
}
@media(max-width:520px){.fac-grid{grid-template-columns:1fr}.fac-a,.fac-b,.fac-c,.fac-d,.fac-e{grid-column:1;grid-row:auto}}

/* ----- 06 · FACILITY — "What makes us different": video + amenity badges -----
   (wmd- prefix avoids the existing .diff-head/.diff-item component above) */
.wmd-video{position:relative;width:min(400px,84vw);margin:0 auto;aspect-ratio:9/16;overflow:hidden;
  background:#000;border:1px solid var(--line-light);border-top:2px solid rgba(225,16,19,.85);
  box-shadow:0 50px 100px -50px rgba(0,0,0,.9),inset 0 0 70px -16px rgba(0,0,0,.55)}
.wmd-video iframe,.wmd-video mux-player{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.wmd-head{text-align:center;max-width:840px;margin:clamp(36px,5vw,64px) auto 0}
.wmd-head .sec-num{display:block;margin-bottom:.9rem;color:rgba(255,255,255,.55)}
.wmd-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(26px,3vw,46px);
  max-width:1060px;margin:clamp(34px,4.5vw,58px) auto 0;padding:0}
.wmd-item{flex:0 1 150px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:15px}
.wmd-badge{width:clamp(66px,7vw,84px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  color:#fff;border:1px solid rgba(255,255,255,.14);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.wmd-badge svg{width:46%;height:46%}
/* alternate blue / red — white icon centered */
.wmd-item:nth-child(odd) .wmd-badge{background:linear-gradient(150deg,var(--blue),var(--blue-deep));
  box-shadow:0 16px 32px -14px var(--blue-glow),inset 0 1px 0 rgba(255,255,255,.2)}
.wmd-item:nth-child(even) .wmd-badge{background:linear-gradient(150deg,var(--red),var(--red-deep));
  box-shadow:0 16px 32px -14px var(--red-glow),inset 0 1px 0 rgba(255,255,255,.2)}
.wmd-item:hover .wmd-badge{transform:translateY(-5px)}
.wmd-item:nth-child(odd):hover .wmd-badge{box-shadow:0 24px 42px -14px var(--blue-glow),inset 0 1px 0 rgba(255,255,255,.2)}
.wmd-item:nth-child(even):hover .wmd-badge{box-shadow:0 24px 42px -14px var(--red-glow),inset 0 1px 0 rgba(255,255,255,.2)}
.wmd-label{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  font-size:.76rem;line-height:1.32;color:rgba(255,255,255,.9)}
@media(max-width:560px){
  .wmd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,190px));justify-content:center;gap:36px 24px}
  .wmd-item{flex:none;gap:18px}
  .wmd-badge{width:99px}
  .wmd-label{font-size:1rem;letter-spacing:.1em;line-height:1.3}
  .wmd-head h2 br{display:none}
}

/* ===========================================================
   STEP-ON-THE-MATS CTA (oversized type)
   =========================================================== */
.stepcta{position:relative;overflow:hidden;background:#07070A;color:#fff;border-top:3px solid var(--red);padding-block:clamp(56px,7vw,110px)}
.stepcta-media{position:absolute;inset:0;z-index:0}
.stepcta-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15);opacity:.15;animation:kenburns 30s ease-in-out infinite alternate}
.stepcta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.12) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(90% 100% at 50% 50%,#000,transparent 80%);mask-image:radial-gradient(90% 100% at 50% 50%,#000,transparent 80%);animation:gridPan 28s linear infinite}
.stepcta::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 80% at 20% 30%,rgba(225,16,19,.26),transparent 60%),linear-gradient(0deg,#07070a,transparent 50%)}
.stepcta .wrap{position:relative;z-index:2}
.sc-eyebrow{display:inline-flex;align-items:center;gap:.9em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.3em;font-size:.72rem;font-weight:700;color:var(--red);margin-bottom:clamp(20px,2.6vw,34px)}
.sc-eyebrow::before{content:"";width:clamp(28px,4vw,54px);height:2px;background:var(--red)}
.sc-mega{display:flex;flex-direction:column;line-height:.82}
.sc-line{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.04em;font-size:clamp(3.2rem,13vw,11rem);color:#fff}
.sc-line.outline{color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.4);text-stroke:2px rgba(255,255,255,.4)}
.sc-line.accent{color:var(--red);display:inline-flex;align-items:center;gap:clamp(18px,3vw,52px)}
.sc-go{flex:none;width:clamp(60px,8vw,118px);height:clamp(60px,8vw,118px);border-radius:50%;background:#fff;color:#0b0b0c;display:grid;place-items:center;transition:transform .4s var(--ease),box-shadow .4s var(--ease);box-shadow:0 18px 44px -16px rgba(0,0,0,.7)}
.sc-go svg{width:clamp(26px,3vw,46px);height:clamp(26px,3vw,46px)}
.sc-go:hover{transform:scale(1.06) rotate(-8deg);box-shadow:0 22px 50px -16px var(--red-glow)}
.sc-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(24px,4vw,48px);flex-wrap:wrap;margin-top:clamp(28px,3.6vw,52px);border-top:1px solid var(--line-light);padding-top:clamp(22px,2.8vw,36px)}
.sc-foot p{max-width:42ch;margin:0;color:rgba(255,255,255,.78);font-size:1.02rem;line-height:1.5}
.sc-foot p b{color:#fff}
.sc-actions{display:flex;gap:14px;flex-wrap:wrap}
.stepcta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.stepcta .btn.ghost:hover{background:#fff;color:#0b0b0c}
@media(max-width:560px){.sc-line.accent .sc-go{width:54px;height:54px}}

/* ===========================================================
   DECISION CTA (transformation split)
   =========================================================== */
.decision{position:relative;background:#07070A;color:#fff;border-top:3px solid var(--red);overflow:hidden}
.dec-split{position:relative;display:grid;grid-template-columns:1fr 1fr}
.dec-split::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line-light);z-index:2}
.dec-side{position:relative;overflow:hidden;min-height:clamp(380px,44vw,560px);display:flex;flex-direction:column;justify-content:center;padding:clamp(36px,5vw,84px)}
.dec-bg{position:absolute;inset:0;z-index:0}
.dec-bg img{width:100%;height:100%;object-fit:cover}
.dec-today{background:#0c0c0e}
.dec-today .dec-bg img{filter:grayscale(1) contrast(1.05);opacity:.24}
.dec-today::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#0a0a0c,rgba(10,10,12,.55))}
.dec-become{background:#120103}
.dec-become .dec-bg img{filter:grayscale(1) contrast(1.12);opacity:.4}
.dec-become::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(18,1,3,.55),rgba(18,1,3,.2)),radial-gradient(90% 90% at 100% 0%,rgba(225,16,19,.4),transparent 60%)}
.dec-side>*{position:relative;z-index:2}
.dec-tag{font-family:var(--cond);text-transform:uppercase;letter-spacing:.26em;font-size:.66rem;font-weight:700;margin-bottom:16px}
.dec-today .dec-tag{color:rgba(255,255,255,.45)}
.dec-become .dec-tag{color:var(--red)}
.dec-h{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:-.02em;font-size:clamp(2.1rem,4.2vw,3.8rem);margin-bottom:.45em}
.dec-today .dec-h{color:rgba(255,255,255,.5)}
.dec-become .dec-h{color:#fff}
.dec-side p{font-size:.98rem;line-height:1.5;max-width:30ch;margin:0}
.dec-today p{color:rgba(255,255,255,.45)}
.dec-become p{color:rgba(255,255,255,.82)}
.dec-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:clamp(60px,7vw,98px);height:clamp(60px,7vw,98px);border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;box-shadow:0 0 0 0 var(--red-glow),0 20px 50px -16px rgba(0,0,0,.7);animation:vspulse 2.6s ease-out infinite}
.dec-arrow svg{width:clamp(24px,3vw,36px);height:clamp(24px,3vw,36px)}
.dec-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:clamp(26px,3vw,44px) clamp(28px,5vw,84px);border-top:1px solid var(--line-light);background:linear-gradient(90deg,#0b0b0d,#1a0204)}
.dec-cta .eyebrow{color:var(--red)}
.dec-cta h3{color:#fff;margin-top:.3em;font-size:clamp(1.5rem,2.4vw,2.2rem)}
.dec-cta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.dec-cta .btn.ghost:hover{background:#fff;color:#0b0b0c}
@media(max-width:760px){
  .dec-split{grid-template-columns:1fr}
  .dec-split::before{left:0;right:0;top:50%;bottom:auto;width:auto;height:1px}
  .dec-arrow{transform:translate(-50%,-50%) rotate(90deg)}
  .dec-side{min-height:clamp(300px,60vw,380px)}
  .dec-cta{flex-direction:column;align-items:flex-start}
  .dec-cta .fc-actions{width:100%}
}

/* ===========================================================
   FIGHT-CARD CTA (You vs Your Limits)
   =========================================================== */
.fightcta{position:relative;overflow:hidden;background:#07070A;color:#fff;text-align:center;border-top:3px solid var(--red);padding-block:clamp(66px,9vw,140px)}
.fightcta-media{position:absolute;inset:0;z-index:0}
.fightcta-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15);opacity:.2;animation:kenburns 30s ease-in-out infinite alternate}
.fightcta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.12) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 90% at 50% 50%,#000,transparent 78%);mask-image:radial-gradient(80% 90% at 50% 50%,#000,transparent 78%);animation:gridPan 28s linear infinite}
.fightcta::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(55% 65% at 50% 45%,rgba(225,16,19,.26),transparent 62%),linear-gradient(0deg,#07070a,transparent 38%,#07070a)}
.fightcta .wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.fc-eyebrow{display:inline-flex;align-items:center;gap:1em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.32em;font-size:.72rem;font-weight:700;color:var(--red);margin-bottom:clamp(24px,3.4vw,44px)}
.fc-eyebrow::before,.fc-eyebrow::after{content:"";width:clamp(24px,4vw,54px);height:2px;background:var(--red)}
.fc-bout{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,52px);flex-wrap:wrap}
.fc-side{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.82;letter-spacing:-.03em;font-size:clamp(3.2rem,11vw,8.5rem)}
.fc-you{color:#fff}
.fc-limits{color:transparent;-webkit-text-stroke:2px var(--red);text-stroke:2px var(--red)}
.fc-vs{flex:none;width:clamp(56px,7vw,104px);height:clamp(56px,7vw,104px);border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:clamp(1.2rem,2.4vw,2.2rem);line-height:1;box-shadow:0 0 0 0 var(--red-glow);animation:vspulse 2.6s ease-out infinite}
@keyframes vspulse{0%{box-shadow:0 0 0 0 rgba(225,16,19,.5)}70%{box-shadow:0 0 0 22px rgba(225,16,19,0)}100%{box-shadow:0 0 0 0 rgba(225,16,19,0)}}
.fc-tagline{font-family:var(--sans);font-style:italic;font-weight:600;font-size:clamp(1.1rem,1.8vw,1.5rem);max-width:40ch;margin:clamp(24px,3vw,40px) auto 0;color:rgba(255,255,255,.86)}
.fc-tagline .accent{color:var(--red)}
.fc-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(16px,3vw,40px);margin-top:clamp(22px,2.8vw,34px);font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.72)}
.fc-meta span{display:inline-flex;align-items:center;gap:.6em}
.fc-meta span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none}
.fc-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:clamp(30px,3.6vw,46px)}
.fightcta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.fightcta .btn.ghost:hover{background:#fff;color:#0b0b0c}
.fc-brand{margin-top:clamp(28px,3.2vw,44px);font-family:var(--cond);text-transform:uppercase;letter-spacing:.28em;font-size:.66rem;color:rgba(255,255,255,.42)}
@media(max-width:560px){.fc-side{font-size:clamp(3rem,17vw,5rem)}.fc-vs{width:54px;height:54px}}

/* =========================================================
   CINEMATIC MOTION (video-reference energy)
   ========================================================= */
/* slow Ken Burns push on the hero image */
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.13)}}
.hs-media img{animation:kenburns 22s ease-in-out infinite alternate;will-change:transform}
.phero-media img{animation:kenburns 28s ease-in-out infinite alternate;will-change:transform}
.bigcta-media img{animation:kenburns 30s ease-in-out infinite alternate}

/* scroll-triggered cinematic image reveal (scale + clip) */
.reveal-zoom{overflow:hidden}
.reveal-zoom img{transform:scale(1.16);transition:transform 1.4s var(--ease),filter 1.4s var(--ease)}
.reveal-zoom.in img{transform:scale(1)}
@media(prefers-reduced-motion:reduce){
  .hs-media img,.phero-media img,.bigcta-media img{animation:none}
  .reveal-zoom img{transform:none;transition:none}
}

/* premium hover depth on cards/media */
.pcard-media,.man2-media,.b-img,.coach .c-media{will-change:transform}

/* ---- Stat band v2: cohesive aggressive black panel ---- */
.statband{position:relative;background:#0B0B0D;color:#fff;overflow:hidden;padding:clamp(32px,4.5vw,68px);border-top:3px solid var(--red);box-shadow:var(--shadow)}
.statband::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(90% 120% at 100% 0%,#000,transparent 75%);mask-image:radial-gradient(90% 120% at 100% 0%,#000,transparent 75%);animation:gridPan 26s linear infinite}
.statband>*{position:relative;z-index:1}
.statband-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end;margin-bottom:clamp(32px,4vw,54px)}
.statband-top h2{color:#fff;margin-top:.35em}
.statband-top .sec-num{color:rgba(255,255,255,.5)}
.statband-top .lead{color:rgba(255,255,255,.7);max-width:42ch}
.statband-nums{display:grid;grid-template-columns:repeat(4,1fr)}
.sb-num{padding:6px clamp(16px,2vw,34px);border-left:1px solid var(--line-light)}
.sb-num:first-child{padding-left:0;border-left:0}
.sb-num b{font-family:var(--display);font-weight:800;font-size:clamp(3rem,6vw,5.4rem);line-height:.82;color:#fff;display:inline-flex;align-items:flex-start;letter-spacing:-.035em}
.sb-num b i{color:var(--red);font-style:normal;font-size:.38em;margin-left:.06em;transform:translateY(.25em)}
.sb-num span{display:block;margin-top:14px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:rgba(255,255,255,.6)}
/* highlighted Google-rating stat */
.sb-num--rating b i{color:var(--red)}
.sb-num--rating span{color:#fff}
.sb-num--rating{position:relative}
.sb-num--rating::after{content:"";position:absolute;left:clamp(16px,2vw,34px);bottom:-12px;width:38px;height:3px;background:var(--red)}
.sb-num--rating:first-child::after{left:0}
.statband-quote{margin-top:clamp(32px,4vw,54px);padding-top:clamp(26px,3vw,40px);border-top:1px solid var(--line-light);font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.35rem,2.5vw,2.3rem);line-height:1.12;letter-spacing:-.015em;max-width:30ch}
.statband-quote .accent{color:var(--red)}
@media(max-width:760px){
  .statband-nums{grid-template-columns:1fr 1fr;gap:24px 0}
  .sb-num:nth-child(odd){padding-left:0;border-left:0}
  .sb-num:nth-child(even){border-left:1px solid var(--line-light)}
}
@media(max-width:420px){.statband-nums{grid-template-columns:1fr}.sb-num{border-left:0;padding-left:0;border-top:1px solid var(--line-light);padding-top:20px}.sb-num:first-child{border-top:0;padding-top:6px}}

/* ---- Stats band: solid black, red superscript accents ---- */
.statstrip{background:var(--charcoal);border:1px solid var(--line-light)}
.statstrip .st{border-right:1px solid var(--line-light)}
.statstrip .st b{color:#fff;display:inline-flex;align-items:flex-start}
.statstrip .st b .accent{color:var(--red);font-size:.42em;vertical-align:super;line-height:1;margin-left:.06em;font-weight:700;transform:translateY(.15em)}
.statstrip .st span{color:rgba(255,255,255,.6)}
@media(max-width:760px){.statstrip .st:nth-child(2n){border-right:none}.statstrip .st:nth-child(-n+2){border-bottom:1px solid var(--line-light)}}

/* ---- Differentiators v5: cinematic feature image + refined amenity tiles + bold gridded CTA ---- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(10px,1vw,16px);margin-top:clamp(30px,4vw,52px);
  grid-template-areas:"img c1 c2" "img c3 c4" "c5 cta cta"}

/* amenity tile */
.b-cell{position:relative;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);
  padding:clamp(24px,2.1vw,34px);min-height:clamp(192px,14vw,226px);overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.b-cell::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);z-index:4;transition:width .5s var(--ease)}
.b-cell:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft)}
.b-cell:hover::before{width:100%}
/* large outlined number watermark, top-right */
.b-cell .bn{position:absolute;top:clamp(12px,1.2vw,18px);right:clamp(16px,1.6vw,22px);z-index:1;
  font-family:var(--display);font-weight:800;font-size:clamp(2.3rem,3.2vw,3.1rem);line-height:.8;letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1.4px rgba(11,11,12,.13);transition:-webkit-text-stroke-color .5s var(--ease)}
.b-cell:hover .bn{-webkit-text-stroke-color:var(--red)}
/* circular icon chip */
.b-cell .ic{position:relative;z-index:2;width:clamp(46px,3.6vw,54px);height:clamp(46px,3.6vw,54px);padding:13px;
  border:1px solid var(--line);border-radius:50%;background:var(--paper-2);color:var(--ink);margin:0 0 auto;
  transition:background .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease)}
.b-cell:hover .ic{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 12px 26px -12px var(--red-glow)}
.b-cell b{position:relative;z-index:2;font-family:var(--cond);text-transform:uppercase;letter-spacing:.04em;font-size:.98rem;color:var(--ink);display:block;margin:clamp(16px,1.6vw,22px) 0 8px}
.b-cell span{position:relative;z-index:2;font-size:.85rem;color:var(--ink-soft);line-height:1.5}
.b-c1{grid-area:c1}.b-c2{grid-area:c2}.b-c3{grid-area:c3}.b-c4{grid-area:c4}.b-c5{grid-area:c5}

/* cinematic feature image */
.b-img{grid-area:img;position:relative;overflow:hidden;min-height:clamp(320px,32vw,100%)}
.b-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(1) contrast(1.08);transition:transform 1.3s var(--ease)}
.b-img:hover img{transform:scale(1.06)}
.b-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.04),rgba(11,11,13,.22) 44%,rgba(11,11,13,.9)),radial-gradient(72% 50% at 0% 100%,rgba(225,16,19,.4),transparent 62%)}
.b-img .b-vlabel{position:absolute;top:clamp(16px,1.8vw,24px);right:0;z-index:2;writing-mode:vertical-rl;background:rgba(11,11,12,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.26em;font-size:.6rem;font-weight:700;padding:14px 8px}
.b-imgcap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(22px,2.2vw,32px)}
.b-imgcap .ic-eb{display:inline-flex;align-items:center;gap:.6em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;font-weight:700;color:#fff;margin-bottom:11px}
.b-imgcap .ic-eb::before{content:"";width:26px;height:2px;background:var(--red)}
.b-imgcap b{display:block;font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.02;color:#fff;letter-spacing:-.01em}
.b-imgcap span{display:block;margin-top:9px;font-size:.84rem;color:rgba(255,255,255,.74);line-height:1.45}

/* bold gridded CTA */
.b-cta{grid-area:cta;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:clamp(18px,2vw,30px);padding:clamp(26px,2.6vw,42px);background:var(--grad-blackred);color:#fff;border-top:3px solid var(--red);transition:gap .45s var(--ease)}
.b-cta::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:30px 30px;opacity:.55;-webkit-mask-image:linear-gradient(135deg,#000,transparent 78%);mask-image:linear-gradient(135deg,#000,transparent 78%);animation:gridPan 26s linear infinite}
.b-cta>*{position:relative;z-index:1}
.b-cta .cta-eb{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.64rem;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:10px}
.b-cta .cta-t{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(1.3rem,2.1vw,1.95rem);line-height:1.0;letter-spacing:-.005em}
.b-cta .cta-a{flex:none;width:clamp(52px,4.4vw,66px);height:clamp(52px,4.4vw,66px);border-radius:50%;background:#fff;color:#0b0b0c;display:grid;place-items:center;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.b-cta:hover{gap:clamp(26px,3vw,44px)}
.b-cta:hover .cta-a{transform:rotate(-45deg) scale(1.06);box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
.b-cta .cta-a svg{width:24px;height:24px}
@media(max-width:900px){
  .bento{grid-template-columns:repeat(2,1fr);grid-template-areas:"img img" "c1 c2" "c3 c4" "c5 cta"}
  .b-img{min-height:clamp(240px,46vw,320px)}
}
@media(max-width:560px){
  .bento{grid-template-columns:1fr;grid-template-areas:"img" "c1" "c2" "c3" "c4" "c5" "cta"}
  .b-img{min-height:clamp(260px,62vw,340px)}
  .b-cell:hover{transform:none}
}

/* ---- Coach feature v2: layered profile ---- */
.coach .c-media{position:relative;z-index:1}
.coach .c-media img{position:relative;z-index:1;width:100%;display:block;filter:none!important}
.coach .c-media::after{content:"";position:absolute;right:-16px;bottom:-16px;left:48px;top:48px;border:2px solid var(--red);z-index:0;pointer-events:none}
.coach .c-media .badge{z-index:3}
.c-nameplate{position:absolute;left:0;bottom:0;z-index:3;background:rgba(7,7,9,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-left:3px solid var(--red);padding:14px 22px}
.c-nameplate b{font-family:var(--display);text-transform:uppercase;font-weight:700;font-size:1.3rem;color:#fff;display:block;line-height:1;letter-spacing:.01em}
.c-nameplate span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:rgba(255,255,255,.7)}
.coach h2{font-size:clamp(2.2rem,4vw,3.5rem)}
.coach .quote{font-size:clamp(1.35rem,2.3vw,1.9rem);border-left-width:3px;padding-left:1.1em}
.coach .cred b{color:var(--red)}
.coach .cred-list li b,.coach .cred-list li{font-weight:500}
.coach .btn{margin-top:.4em}

/* ---- Coach feature v4: asymmetric editorial split — whole photo + stat block ---- */
.coach-split{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(30px,5vw,74px);align-items:start}
.coach-left{position:relative}
.coach-photo{position:relative;margin:0;box-shadow:var(--shadow)}
.coach-photo img{width:100%;height:auto;display:block;filter:none;border:1px solid var(--line-light)}
.coach-photo::before{content:"";position:absolute;left:0;top:0;width:64px;height:4px;background:var(--red);z-index:2}
.coach-plate{display:flex;align-items:center;gap:9px 16px;flex-wrap:wrap;background:#0B0B0D;border-left:3px solid var(--red);padding:14px clamp(16px,1.6vw,22px)}
.coach-plate b{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(1.05rem,1.5vw,1.4rem);color:#fff;line-height:1;letter-spacing:.01em}
.coach-plate .cp-meta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;color:rgba(255,255,255,.62)}
.coach-stats{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(22px,2.6vw,32px);border-top:1px solid var(--line-light)}
.cstat{padding:clamp(16px,1.9vw,22px) 0;border-bottom:1px solid var(--line-light)}
.cstat:nth-child(odd){border-right:1px solid var(--line-light);padding-right:20px}
.cstat:nth-child(even){padding-left:clamp(18px,2vw,26px)}
.cstat b{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--red);display:block;line-height:1;letter-spacing:-.02em}
.cstat span{display:block;margin-top:9px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:rgba(255,255,255,.6);line-height:1.35}
.coach-right{position:relative}
.coach-right .quote{margin:.55em 0 1em}
.coach-right .lead{color:rgba(255,255,255,.8)}
.coach-right .cred-list{margin-top:1.4em}
.coach-right .btn{margin-top:1.8em}
@media(max-width:860px){
  .coach-split{grid-template-columns:1fr;gap:34px}
}
@media(max-width:420px){
  .coach-stats{grid-template-columns:1fr}
  .cstat:nth-child(odd){border-right:0;padding-right:0}
  .cstat:nth-child(even){padding-left:0}
}

/* ---- Programs v4: premium card grid ---- */
.pcards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,24px)}
.pcard{position:relative;display:flex;flex-direction:column;background:var(--paper);box-shadow:var(--shadow-soft);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.pcard::before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--red);z-index:6;transition:width .5s var(--ease)}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pcard:hover::before{width:100%}
.pcard-media{position:relative;aspect-ratio:1/1.18;overflow:hidden}
.pcard-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:transform 1.15s var(--ease),filter .6s var(--ease)}
.pcard:hover .pcard-media img{transform:scale(1.07);filter:grayscale(.35) contrast(1.05)}
.pcard-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.05),rgba(11,11,13,.5)),radial-gradient(60% 50% at 100% 0%,rgba(225,16,19,.32),transparent 60%)}
.pcard-tag{position:absolute;top:0;left:0;z-index:2;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:700;padding:.55em .9em}
.pcard-num{position:absolute;top:12px;right:16px;z-index:2;font-family:var(--display);font-weight:700;font-size:1.5rem;color:#fff}
.pcard-body{padding:clamp(20px,1.5vw,26px);display:flex;flex-direction:column;gap:10px;flex:1}
.pcard-body h3{font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.05}
.pcard-body p{font-size:.86rem;color:var(--ink-soft);line-height:1.5}
.pcard-pills{display:flex;flex-wrap:wrap;gap:6px}
.pcard-pills span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.58rem;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);padding:.45em .7em;border-radius:40px}
.pcard-cta{margin-top:auto;padding-top:8px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:.5em}
.pcard-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
.pcard:hover .pcard-cta .arr{transform:translateX(5px)}
@media(max-width:980px){.pcards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pcards{grid-template-columns:1fr}.pcard-media{aspect-ratio:16/10}}

/* ---- Manifesto v2: layered image + overlapping black panel ---- */
.man2{position:relative;display:grid;grid-template-columns:1.18fr .82fr;align-items:center}
.man2-media{position:relative;z-index:1}
.man2-media img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:center;filter:grayscale(1) contrast(1.08);display:block}
.man2-media::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 80% at 0% 100%,rgba(225,16,19,.3),transparent 60%);pointer-events:none}
.man2-media .man2-badge{position:absolute;left:0;top:clamp(20px,2.4vw,32px);z-index:2;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:700;padding:.7em 1.1em}
.man2-panel{position:relative;z-index:3;background:#0B0B0D;color:#fff;padding:clamp(30px,3.6vw,58px);margin-left:clamp(-130px,-7vw,-48px);border-top:4px solid var(--red);box-shadow:var(--shadow)}
.man2-panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:30px 30px;opacity:.5;-webkit-mask-image:linear-gradient(135deg,#000,transparent 70%);mask-image:linear-gradient(135deg,#000,transparent 70%)}
.man2-panel>*{position:relative;z-index:1}
.man2-panel h2{color:#fff;font-size:clamp(1.9rem,3.4vw,3rem);margin:.4em 0 .55em}
.man2-panel h2 .accent{color:var(--red);font-style:italic}
.man2-panel .lead{color:rgba(255,255,255,.8)}
.man2-panel .rt{margin-top:1.3em;display:flex;flex-direction:column;gap:.85em}
.man2-panel .tick span{color:rgba(255,255,255,.85)}
.man2-panel .tick svg{color:var(--red)}
.man2-panel .tlink{color:#fff;border-color:rgba(255,255,255,.3)}
.man2-panel .tlink:hover{color:#fff;border-color:var(--red)}
@media(max-width:860px){
  .man2{grid-template-columns:1fr}
  .man2-media img{aspect-ratio:16/10}
  .man2-panel{margin-left:0;margin-top:-40px;margin-right:clamp(0px,4vw,40px)}
}
/* 'Everyone' manifesto — full-color training collage (a self-contained graphic):
   show it whole (16:9, no crop), in color, framed + lifted off the light bg.
   minmax(0,…) stops the panel's long heading from collapsing the image column;
   the collage takes the dominant column, with no B&W filter, red glow or overlap. */
.man2--art{grid-template-columns:minmax(0,1.32fr) minmax(0,.8fr);align-items:center}
.man2--art .man2-media img{aspect-ratio:16/9;object-fit:cover;filter:none;
  border:1px solid rgba(255,255,255,.12);box-shadow:0 28px 58px -32px rgba(0,0,0,.5)}
.man2--art .man2-media::after{display:none}
.man2--art .man2-panel{margin-left:0}
@media(max-width:860px){
  .man2--art{grid-template-columns:1fr}
  .man2--art .man2-media img{aspect-ratio:16/9}
  .man2--art .man2-panel{margin-top:0}
}

/* ===== WHY ATT — full-width manifesto band (home #more) ===== */
.why-band{position:relative;overflow:hidden;background:var(--charcoal);color:#fff;
  border-top:4px solid var(--red);box-shadow:var(--shadow);
  padding:clamp(38px,4.6vw,74px) clamp(26px,4vw,72px)}
.why-band::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);
  background-size:34px 34px;opacity:.5;
  -webkit-mask-image:radial-gradient(88% 88% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(88% 88% at 100% 0%,#000,transparent 72%)}
.why-band>*{position:relative;z-index:1}
.why-head{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(26px,4vw,64px);
  align-items:end;padding-bottom:clamp(28px,3.2vw,46px);border-bottom:1px solid rgba(255,255,255,.13)}
.why-head::after{content:"";position:absolute;left:0;bottom:-2px;width:84px;height:3px;background:var(--red)}
.why-head .eyebrow{color:var(--red)}
.why-headline h2{margin:.32em 0 0;color:#fff;font-size:clamp(2.1rem,4.2vw,3.7rem);line-height:.92;letter-spacing:-.02em}
.why-headline h2 .accent{color:var(--red)}
.why-copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(16px,1.8vw,24px)}
.why-copy .lead{margin:0;color:rgba(255,255,255,.82);max-width:46ch}
.why-copy .tlink{color:#fff;border-color:rgba(255,255,255,.32)}
.why-copy .tlink:hover{color:#fff;border-color:var(--red)}
.why-grid{margin-top:clamp(30px,3.4vw,50px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.8vw,50px)}
.why-cell{position:relative;padding-top:clamp(18px,1.8vw,24px);border-top:2px solid rgba(225,16,19,.55)}
.why-ic{display:grid;place-items:center;width:44px;height:44px;margin-bottom:16px;
  color:var(--red);background:rgba(225,16,19,.12);border:1px solid rgba(225,16,19,.5);
  transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.why-ic svg{width:21px;height:21px}
.why-cell:hover .why-ic{background:var(--red);color:#fff;transform:translateY(-3px)}
.why-cell h3{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.005em;
  font-size:clamp(1.02rem,1.3vw,1.18rem);margin:0 0 .5em;color:#fff}
.why-cell p{margin:0;color:rgba(255,255,255,.72);font-size:.98rem;line-height:1.55}
@media(max-width:860px){
  .why-head{grid-template-columns:1fr;gap:16px;align-items:start}
  .why-grid{grid-template-columns:1fr;gap:0;margin-top:clamp(24px,6vw,34px)}
  .why-cell{padding:clamp(20px,5vw,26px) 0}
  .why-cell:first-child{padding-top:clamp(24px,6vw,30px)}
}

/* =========================================================
   BLACK & WHITE SYSTEM — balanced light / dark sections
   Light sections: black text + black accent on white.
   Dark sections: white text + white accent. (--red flips per context.)
   ========================================================= */

/* --- Dark sections: white text, red accent stays red --- */
.hero,.hero-shell,.phero,.coach,.bigcta,.locate-info,.site-footer,.mobile-nav,.diff{color:#fff}
.hero .lead,.hero-shell .lead,.phero .lead,.coach .lead,.bigcta .lead,.diff .lead{color:rgba(255,255,255,.78)}
.diff .kicker-row h2{color:#fff}
.coach .sec-num,.diff .sec-num,.diff2-intro .sec-num{color:rgba(255,255,255,.5)}
/* ghost buttons on dark → white outline; primary stays red gradient */
.hero .btn.ghost,.hero-shell .btn.ghost,.hero-cine .btn.ghost,.hero-m .btn.ghost,.phero .btn.ghost,.coach .btn.ghost,.bigcta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.hero .btn.ghost:hover,.hero-shell .btn.ghost:hover,.hero-cine .btn.ghost:hover,.hero-m .btn.ghost:hover,.phero .btn.ghost:hover,.coach .btn.ghost:hover,.bigcta .btn.ghost:hover{background:#fff;color:#0b0b0c}
.coach .tlink,.bigcta .tlink,.hero .tlink{color:#fff;border-color:rgba(255,255,255,.35)}
.site-footer{background:#0A0A0B}

/* --- Light sections: clean surfaces, subtle definition --- */
.field input,.field select,.field textarea,.day-head,.slot{background:var(--paper-2)}
.cream-2{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* red active / hover states */
.filters button.active{background:var(--red);color:#fff;border-color:var(--red)}
.rev-ctrl button{border-color:var(--ink);color:var(--ink)}
.rev-ctrl button:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* --- Sharp, confident UI with brand-blue CTAs (red stays the accent) --- */
.eyebrow::before{height:2px;width:42px}
.btn{letter-spacing:.14em;border-radius:0;background:var(--blue);background-color:var(--blue)}
.btn:hover{background:var(--blue-deep);box-shadow:0 16px 34px -14px var(--blue-glow)}
.btn.ghost{border-width:1px;background:none}
.btn.ghost:hover{background:var(--ink)}
.tlink,.filters button,.day-col,.rev-card,.post,.statstrip,.locate,.pr-media,.pa-panel,.field input,.field select,.field textarea,.s-media img,.manifesto-img img,.day-head,.slot,.submenu{border-radius:0}
.pull{font-weight:800;text-transform:uppercase;letter-spacing:-.015em}
.quote{font-family:var(--sans);font-style:italic;text-transform:none;font-weight:500;letter-spacing:0}
.manifesto-h .accent,.pull .accent,.man2-panel h2 .accent{font-style:normal}

/* --- Cinematic black + red photography & gradients --- */
.hs-media img,.phero-media img,.hero-media img,.prog-card img,.pa-panel img,
.pr-media img,.post .pimg img,.s-media img,.collage img,.manifesto-img img,
.bigcta-media img,.coach .c-media img,.article figure img{filter:grayscale(1) contrast(1.08)}
.prog-card:hover img,.post:hover .pimg img{filter:grayscale(.55) contrast(1.05)}
.locate-map iframe{filter:grayscale(1) contrast(1.05)}
/* red→black duotone over program panels */
.pa-panel::after{background:linear-gradient(150deg,rgba(225,16,19,.5),rgba(11,11,13,.72) 60%)!important;mix-blend-mode:multiply}
.pr-media::after{background:linear-gradient(150deg,rgba(225,16,19,.45),rgba(11,11,13,.55))!important;mix-blend-mode:multiply}
/* big CTA: sharp red top transition (bg handled by media image + gradient) */
.bigcta{border-top:3px solid var(--red)}
/* section accent line option */
.accent-line{height:3px;width:64px;background:var(--red);border:0;margin-bottom:24px}

/* =========================================================
   THREE STEPS TO THE MATS — guided training-journey path
   Light section (contrast against dark stat band / reviews).
   Large outlined step numbers, red directional connector,
   controlled scroll-reveal + hover lift.
   ========================================================= */
.steps{position:relative;overflow:hidden}
.steps .wrap{position:relative;z-index:1}
.steps-path{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,30px);margin-top:clamp(34px,4vw,60px)}
/* horizontal connector line sitting behind the step number row (desktop) */
.steps-path::before{
  content:"";position:absolute;left:8%;right:8%;top:clamp(74px,7vw,104px);height:2px;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--red) 12%,var(--red) 88%,transparent);
  background-size:14px 2px;
  -webkit-mask-image:repeating-linear-gradient(90deg,#000 0 9px,transparent 9px 16px);
          mask-image:repeating-linear-gradient(90deg,#000 0 9px,transparent 9px 16px);
  opacity:.55;
}
.step{
  position:relative;z-index:1;background:var(--paper);border:1px solid var(--line);
  border-top:3px solid transparent;padding:clamp(26px,2.6vw,42px) clamp(24px,2.4vw,38px) clamp(28px,2.8vw,40px);
  display:flex;flex-direction:column;align-items:flex-start;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.step::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);transition:width .55s var(--ease)}
.step:hover{transform:translateY(-7px);box-shadow:var(--shadow-soft)}
.step:hover::before{width:100%}
/* large outlined number */
.step-num{
  font-family:var(--display);font-weight:800;font-size:clamp(3.4rem,6.4vw,5.6rem);line-height:.78;
  letter-spacing:-.035em;color:transparent;-webkit-text-stroke:1.6px rgba(11,11,12,.22);
  display:block;transition:-webkit-text-stroke-color .5s var(--ease),color .5s var(--ease)}
.step:hover .step-num{-webkit-text-stroke-color:var(--red)}
/* icon chip */
.step-ic{width:clamp(46px,4vw,56px);height:clamp(46px,4vw,56px);margin:clamp(18px,2vw,26px) 0 clamp(16px,1.8vw,22px);
  display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--paper-2);transition:.5s var(--ease)}
.step-ic svg{width:24px;height:24px;color:var(--ink);transition:color .5s var(--ease)}
.step:hover .step-ic{background:var(--red);border-color:var(--red);box-shadow:0 12px 26px -12px var(--red-glow)}
.step:hover .step-ic svg{color:#fff}
.step h3{font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.02;margin-bottom:.5em}
.step p{font-size:.92rem;color:var(--ink-soft);line-height:1.55;max-width:34ch}
.step-tag{margin-top:clamp(18px,2vw,24px);font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;
  font-size:.66rem;font-weight:700;color:var(--ink-faint);display:inline-flex;align-items:center;gap:.6em}
.step-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none}
/* directional chevron between cards (desktop only) */
.step:not(:last-child)::after{
  content:"";position:absolute;z-index:2;right:clamp(-14px,-1.2vw,-9px);top:clamp(74px,7vw,104px);
  width:18px;height:18px;border-top:2px solid var(--red);border-right:2px solid var(--red);
  transform:translateY(-50%) rotate(45deg);background:var(--paper);
}
/* end cap CTA row */
.steps-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(26px,3vw,40px);padding:clamp(22px,2.4vw,32px) clamp(24px,2.6vw,40px);
  background:var(--grad-blackred);color:#fff;border-top:3px solid var(--red)}
.steps-cta .sc-t{font-family:var(--display);text-transform:uppercase;font-weight:700;
  font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.02;letter-spacing:.01em}
.steps-cta .sc-t span{color:var(--red);font-style:italic;font-weight:800}
@media(max-width:860px){
  .steps-path{grid-template-columns:1fr;gap:0}
  .steps-path::before{left:clamp(22px,4vw,30px);right:auto;top:0;bottom:0;width:2px;height:auto;
    background:linear-gradient(180deg,transparent,var(--red) 10%,var(--red) 90%,transparent);
    -webkit-mask-image:repeating-linear-gradient(180deg,#000 0 9px,transparent 9px 16px);
            mask-image:repeating-linear-gradient(180deg,#000 0 9px,transparent 9px 16px)}
  .step{padding-left:clamp(54px,12vw,72px)}
  .step + .step{border-top:none}
  .step:not(:last-child)::after{right:auto;left:clamp(13px,4vw,21px);top:auto;bottom:-9px;transform:rotate(135deg)}
  .step:hover{transform:none}
}

/* =========================================================
   ACCESSIBILITY POLISH — keyboard focus rings (site-wide)
   Visible only for keyboard users; mouse clicks stay clean.
   ========================================================= */
a:focus-visible,button:focus-visible,
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,
.filters button:focus-visible,.rev-list button:focus-visible{
  outline:2px solid var(--red);outline-offset:3px;border-radius:1px;
}
.dark a:focus-visible,.reviews a:focus-visible,.reviews button:focus-visible,
.site-footer a:focus-visible,.coach a:focus-visible,.bigcta a:focus-visible,
.map-dark a:focus-visible,.hero-m a:focus-visible,.phero a:focus-visible{
  outline-color:#fff;outline-offset:3px;
}
.btn:focus-visible{outline-offset:4px}

/* =========================================================
   FIGHT-CARD CTA — signature "YOU vs YOUR LIMITS" moment
   ========================================================= */
.fightcta{position:relative;background:var(--charcoal);color:#fff;overflow:hidden;border-top:3px solid var(--red);padding-block:clamp(58px,8vw,116px) 0}
.fightcta-media{position:absolute;inset:0;z-index:0}
.fightcta-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(1) contrast(1.14);opacity:.26}
.fightcta-media::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 86% at 50% 0%,rgba(225,16,19,.24),transparent 56%),linear-gradient(180deg,rgba(7,7,9,.8),rgba(7,7,9,.93))}
.fightcta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.08) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.08) 1px,transparent 1px);background-size:34px 34px;animation:gridPan 26s linear infinite;-webkit-mask-image:radial-gradient(78% 78% at 50% 38%,#000,transparent 82%);mask-image:radial-gradient(78% 78% at 50% 38%,#000,transparent 82%)}
.fightcta .wrap{position:relative;z-index:2}
.fc-eyebrow{display:flex;align-items:center;justify-content:center;gap:.85em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.4em;font-size:.74rem;font-weight:700;color:var(--red);text-align:center;margin-bottom:clamp(26px,3.4vw,48px)}
.fc-eyebrow::before,.fc-eyebrow::after{content:"";height:2px;width:clamp(28px,6vw,82px)}
.fc-eyebrow::before{background:linear-gradient(90deg,transparent,var(--red))}
.fc-eyebrow::after{background:linear-gradient(90deg,var(--red),transparent)}
/* the bout */
.fc-bout{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(8px,2vw,46px)}
.fc-side{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.8;letter-spacing:-.045em}
.fc-you{text-align:right;color:#fff;font-size:clamp(3.4rem,13vw,13rem)}
.fc-limits{text-align:left;color:var(--red);font-size:clamp(2.3rem,8.2vw,8.4rem)}
/* VS badge */
.fc-vs{position:relative;width:clamp(64px,9vw,128px);height:clamp(64px,9vw,128px);display:grid;place-items:center;border-radius:50%;background:var(--red);box-shadow:0 0 0 6px rgba(225,16,19,.16),0 26px 60px -22px var(--red);font-family:var(--display);font-weight:900;font-size:clamp(1.4rem,3vw,2.7rem);color:#fff;letter-spacing:-.02em}
.fc-vs::before{content:"";position:absolute;inset:-13px;border:1px solid rgba(225,16,19,.42);border-radius:50%}
/* tagline + meta + actions */
.fc-tagline{text-align:center;font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(1.1rem,2vw,1.75rem);letter-spacing:-.01em;color:#fff;margin:clamp(30px,4vw,52px) auto 0;max-width:24ch;line-height:1.06}
.fc-tagline .accent{color:var(--red)}
.fc-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(12px,2vw,26px);margin-top:clamp(18px,2.2vw,26px)}
.fc-meta span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:700;color:rgba(255,255,255,.72);display:inline-flex;align-items:center;gap:.6em}
.fc-meta span+span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.fc-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:clamp(28px,3.4vw,44px)}
.fc-actions .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.fc-actions .btn.ghost:hover{background:#fff;color:#0b0b0c}
.fc-brand{text-align:center;font-family:var(--cond);text-transform:uppercase;letter-spacing:.28em;font-size:.64rem;color:rgba(255,255,255,.45);margin-top:clamp(30px,4vw,52px);padding-bottom:clamp(50px,6vw,84px)}
/* directional reveal (motion-safe only) */
@media(prefers-reduced-motion:no-preference){
  .fc-you.reveal{transform:translateX(-46px)}
  .fc-limits.reveal{transform:translateX(46px)}
  .fc-vs.reveal{transform:scale(.5) rotate(-12deg);transition-duration:.7s}
  .fc-you.reveal.in,.fc-limits.reveal.in,.fc-vs.reveal.in{transform:none}
}
@media(max-width:760px){
  .fc-bout{grid-template-columns:1fr;justify-items:center;gap:clamp(4px,2.5vw,14px)}
  .fc-you,.fc-limits{text-align:center}
  .fc-actions{width:100%}
  .fc-actions .btn{flex:1;justify-content:center;min-width:0}
}

/* =========================================================
   FIND US / 06 — architectural bento grid
   ========================================================= */
.findgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.1vw,16px);
  grid-template-areas:"im im mp mp" "ad ph mp mp" "hr ct mp mp";margin-top:clamp(24px,2.8vw,40px)}
.fg-tile{position:relative;background:rgba(255,255,255,.04);border:1px solid var(--line-light);padding:clamp(18px,1.8vw,26px);display:flex;flex-direction:column;overflow:hidden;transition:background .4s var(--ease),border-color .4s var(--ease)}
.fg-ic{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:#fff;margin-bottom:14px;transition:background .4s var(--ease),border-color .4s var(--ease)}
.fg-ic svg{width:18px;height:18px}
.fg-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;color:var(--red);display:block;margin-bottom:6px}
.fg-v{font-size:.92rem;color:#fff;line-height:1.42;display:block}
a.fg-tile:hover{background:rgba(225,16,19,.09);border-color:var(--red)}
a.fg-tile:hover .fg-ic{background:var(--red);border-color:var(--red)}
.fg-img{grid-area:im}.fg-map{grid-area:mp}.fg-addr{grid-area:ad}.fg-phone{grid-area:ph}.fg-hours{grid-area:hr}.fg-cta{grid-area:ct}
/* facility image tile */
.fg-img{position:relative;overflow:hidden;border:1px solid var(--line-light);min-height:clamp(200px,18vw,260px)}
.fg-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%;filter:grayscale(1) contrast(1.08);transition:transform 1.2s var(--ease)}
.fg-img:hover img{transform:scale(1.05)}
.fg-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.06),rgba(11,11,13,.55)),radial-gradient(60% 60% at 0% 100%,rgba(225,16,19,.4),transparent 62%)}
.fg-imglabel{position:absolute;left:0;bottom:0;z-index:2;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;font-weight:700;padding:.62em .95em}
/* map tile */
.fg-map{position:relative;overflow:hidden;border:1px solid var(--line-light);min-height:clamp(340px,32vw,100%)}
.fg-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.fg-corner{position:absolute;left:0;top:0;width:60px;height:4px;background:var(--red);z-index:2}
.fg-corner::after{content:"";position:absolute;left:0;top:0;width:4px;height:60px;background:var(--red)}
.fg-badge{position:absolute;left:clamp(12px,1.4vw,18px);bottom:clamp(12px,1.4vw,18px);z-index:2;background:rgba(7,7,9,.86);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:9px 14px;display:flex;flex-direction:column;text-decoration:none}
.fg-badge .rstars{color:var(--red);letter-spacing:2px;font-size:.78rem}
.fg-badge b{font-family:var(--display);font-weight:800;font-size:1.1rem;color:#fff;line-height:1}
.fg-badge .mb-m{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.56rem;color:rgba(255,255,255,.6)}
.fg-dir{position:absolute;right:clamp(12px,1.4vw,18px);bottom:clamp(12px,1.4vw,18px);z-index:2;padding:.85em 1.3em;font-size:.78rem}
/* address tile */
.fg-addr{justify-content:flex-start}
/* phone / email tile */
.fg-phone{justify-content:center;padding-block:clamp(12px,1.4vw,18px)}
.fg-line{display:flex;align-items:center;gap:13px;padding:11px 0}
.fg-line+.fg-line{border-top:1px solid var(--line-light);margin-top:4px;padding-top:15px}
.fg-lic{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:#fff;transition:background .35s var(--ease),border-color .35s var(--ease)}
.fg-lic svg{width:16px;height:16px}
.fg-line:hover .fg-lic{background:var(--red);border-color:var(--red)}
.fg-line .fg-l{margin-bottom:3px}
/* hours tile */
.fg-hours{justify-content:flex-start}
.fg-hours .lh-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-bottom:1px dashed var(--line-light)}
.fg-hours .lh-row:last-child{border-bottom:none}
.fg-hours .lh-row .d{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;color:rgba(255,255,255,.58)}
.fg-hours .lh-row .t{color:#fff;font-size:.8rem}
.fg-hours .lh-row.closed .t{color:rgba(255,255,255,.4)}
/* CTA tile */
.fg-cta{background:var(--grad-blackred);border-color:var(--red);flex-direction:row;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;transition:gap .4s var(--ease)}
a.fg-cta:hover{gap:24px;background:var(--grad-blackred);border-color:var(--red)}
.fg-cta .fg-l{color:#fff;opacity:.85;margin-bottom:12px}
.fg-cta b{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(1.05rem,1.4vw,1.45rem);line-height:1;color:#fff;display:block}
.fg-arr{flex:none;width:46px;height:46px;border-radius:50%;background:#fff;color:#0b0b0c;display:grid;place-items:center;transition:transform .4s var(--ease)}
a.fg-cta:hover .fg-arr{transform:rotate(-45deg)}
.fg-arr svg{width:20px;height:20px}
@media(max-width:860px){
  .findgrid{grid-template-columns:1fr;grid-template-areas:"mp" "ad" "ph" "hr" "ct" "im"}
  .fg-map{min-height:clamp(300px,66vw,400px)}
  .fg-img{min-height:clamp(170px,44vw,230px)}
}

/* =========================================================
   HERO X — clean two-column split
   ========================================================= */
.herox{position:relative;display:grid;grid-template-columns:1.06fr .94fr;min-height:clamp(560px,88vh,880px);background:var(--charcoal);color:#fff;overflow:hidden}
.herox-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(58px,5.5vw,96px) clamp(24px,5vw,76px)}
.herox-content::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.13) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.13) 1px,transparent 1px);background-size:32px 32px;animation:gridPan 26s linear infinite;-webkit-mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 76%);mask-image:radial-gradient(120% 100% at 0% 50%,#000,transparent 76%)}
.herox-accent{width:62px;height:4px;background:var(--red);margin-bottom:22px}
.herox h1{color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.025em;line-height:.9;font-size:clamp(2.7rem,5.4vw,5.2rem);margin:.18em 0 .42em}
.herox h1 .accent{color:var(--red)}
.herox .lead{color:rgba(255,255,255,.8);max-width:46ch}
.herox .hero-meta{margin-top:clamp(26px,3vw,40px);padding-top:24px;border-top:1px solid var(--line-light)}
.herox-media{position:relative;overflow:hidden;border-left:1px solid var(--line-light)}
.herox-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 24%;filter:grayscale(1) contrast(1.12);animation:kenburns 24s ease-in-out infinite alternate;will-change:transform}
.herox-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal),rgba(11,11,12,0) 22%),linear-gradient(0deg,rgba(11,11,12,.55),transparent 42%),radial-gradient(72% 60% at 100% 100%,rgba(225,16,19,.32),transparent 58%)}
.herox-tag{position:absolute;top:0;right:0;z-index:3;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.64rem;font-weight:700;padding:.8em 1.15em}
.herox-badge{position:absolute;left:clamp(20px,2.4vw,32px);bottom:clamp(20px,2.4vw,32px);z-index:3;background:rgba(7,7,9,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:12px 17px;display:flex;flex-direction:column;gap:2px;text-decoration:none}
.herox-badge .rstars{color:var(--red);letter-spacing:2px;font-size:.92rem}
.herox-badge b{font-family:var(--display);font-weight:800;font-size:1.4rem;color:#fff;line-height:1}
.herox-badge span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;color:rgba(255,255,255,.65)}
.herox .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.herox .btn.ghost:hover{background:#fff;color:#0b0b0c}
@media(max-width:900px){
  .herox{grid-template-columns:1fr;min-height:0}
  .herox-content{order:2;padding:clamp(40px,8vw,60px) var(--gut)}
  .herox-media{order:1;min-height:clamp(320px,56vh,460px);border-left:none;border-bottom:1px solid var(--line-light)}
  .herox-content::before{-webkit-mask-image:linear-gradient(180deg,#000,transparent 92%);mask-image:linear-gradient(180deg,#000,transparent 92%)}
}

/* =========================================================
   HERO — stronger left scrim + scroll cue (no internal ticker)
   ========================================================= */
.hero-cine-media::after{background:
  linear-gradient(180deg,rgba(7,7,9,.5),rgba(7,7,9,.12) 30%,rgba(7,7,9,.96)),
  linear-gradient(90deg,rgba(7,7,9,.9),rgba(7,7,9,.3) 56%,transparent 80%),
  radial-gradient(72% 62% at 100% 100%,rgba(225,16,19,.3),transparent 58%)!important}
.hero-scroll{position:absolute;left:var(--gut);bottom:clamp(18px,2.4vw,30px);z-index:3;display:inline-flex;align-items:center;gap:12px;
  color:rgba(255,255,255,.6);font-family:var(--cond);text-transform:uppercase;letter-spacing:.24em;font-size:.6rem;font-weight:700;text-decoration:none}
.hero-scroll:hover{color:#fff}
.hero-scroll i{width:46px;height:1px;background:rgba(255,255,255,.3);position:relative;overflow:hidden;display:inline-block}
.hero-scroll i::after{content:"";position:absolute;left:-16px;top:0;width:16px;height:1px;background:var(--red);animation:scrollLine 2.2s ease-in-out infinite}
@media(max-width:760px){.hero-scroll{display:none}}

/* =========================================================
   SECTION HEADER — structured divider header (programs etc.)
   ========================================================= */
.sec-head{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,64px);align-items:end;
  position:relative;padding-bottom:clamp(22px,2.6vw,34px);margin-bottom:clamp(30px,4vw,54px);border-bottom:1px solid var(--line)}
.sec-head::after{content:"";position:absolute;left:0;bottom:-2px;width:88px;height:3px;background:var(--red)}
.sec-head h2{margin-top:.32em}
.sec-head h2 .accent{color:var(--red)}
.sec-head-r{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.sec-head-r .lead{margin:0}
@media(max-width:760px){.sec-head{grid-template-columns:1fr;gap:18px}}

/* =========================================================
   COACH FEATURE v3 — magazine layout (name banner + landscape photo)
   ========================================================= */
.cxf-head{margin-bottom:clamp(26px,3.2vw,44px)}
.cxf-head .eyebrow{color:var(--red)}
.cxf-name{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.88;letter-spacing:-.03em;font-size:clamp(2.6rem,6vw,5.4rem);color:#fff;margin:.22em 0 .28em}
.cxf-role{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;font-weight:700;color:rgba(255,255,255,.6)}
.cxf-role b{color:var(--red)}
/* champion creed — statement line above the "About The Coach" eyebrow */
.cxf-creed{font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.35rem,2.9vw,2.7rem);line-height:1.08;letter-spacing:-.015em;
  color:#fff;margin:0 0 clamp(22px,2.6vw,34px)}
.cxf-creed-hi{font-style:italic;font-weight:900;color:#fff;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
  background:linear-gradient(var(--red),var(--red)) no-repeat 0 100%/100% .09em;
  padding-bottom:.06em}
.cxf-body{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,60px);align-items:center}
.cxf-media{position:relative}
.cxf-media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block;border:1px solid var(--line-light);filter:none!important}
.cxf-media::before{content:"";position:absolute;left:0;top:0;z-index:2;width:60px;height:4px;background:var(--red)}
.cxf-media::after{content:"";position:absolute;left:0;top:0;z-index:2;width:4px;height:60px;background:var(--red)}
.cxf-plate{position:absolute;left:0;bottom:0;z-index:2;background:rgba(7,7,9,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-left:3px solid var(--red);padding:13px 18px}
.cxf-plate b{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:#fff}
.cxf-plate span{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.6);margin-top:3px}
.cxf-text .quote{color:#fff;font-size:clamp(1.2rem,1.9vw,1.6rem);border-left:3px solid var(--red);padding-left:1em;margin:0 0 1em}
.cxf-text .lead{color:rgba(255,255,255,.78)}
.cxf-text .cred-list{margin-top:1.4em}
.cxf-text .cred-list li{color:rgba(255,255,255,.85)}
.cxf-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:clamp(28px,3.4vw,46px)}
.cxf-foot .cx-stats{flex:1;min-width:280px;margin:0;border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}
@media(max-width:860px){
  .cxf-body{grid-template-columns:1fr;gap:28px}
  .cxf-foot{flex-direction:column;align-items:stretch}
}

/* =========================================================
   COACH SPOTLIGHT v2 — editorial athlete feature
   ========================================================= */
.coachx{position:relative;overflow:hidden;background:var(--charcoal);color:#fff}
.coachx::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 90% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(80% 90% at 100% 0%,#000,transparent 72%);animation:gridPan 26s linear infinite}
.coachx .wrap{position:relative;z-index:1}
.cx-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,4.5vw,72px);align-items:center}
.cx-media{position:relative;align-self:stretch;min-height:clamp(400px,46vw,560px)}
.cx-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;border:1px solid var(--line-light);filter:none}
.cx-media::after{content:"";position:absolute;right:-16px;bottom:-16px;left:46px;top:46px;border:2px solid var(--red);z-index:-1;pointer-events:none}
.cx-badge{position:absolute;left:0;top:clamp(18px,2vw,26px);z-index:2;background:var(--red);color:#fff;writing-mode:vertical-rl;transform:rotate(180deg);padding:16px 9px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.28em;font-size:.64rem;font-weight:700}
.cx-exp{position:absolute;left:0;bottom:0;z-index:2;background:rgba(7,7,9,.82);backdrop-filter:blur(6px);border-left:3px solid var(--red);padding:14px 20px;display:flex;align-items:baseline;gap:10px}
.cx-exp b{font-family:var(--display);font-weight:800;font-size:2.2rem;color:var(--red);line-height:1}
.cx-exp span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;color:rgba(255,255,255,.7);max-width:9ch;line-height:1.2}
.cx-body .eyebrow{color:var(--red)}
.cx-name{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.86;letter-spacing:-.03em;font-size:clamp(2.6rem,5.2vw,4.8rem);color:#fff;margin:.25em 0 .25em}
.cx-role{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:700;color:rgba(255,255,255,.6);margin-bottom:1.1em}
.cx-role b{color:var(--red)}
.coachx .quote{color:#fff;font-size:clamp(1.25rem,2vw,1.7rem);border-left:3px solid var(--red);padding-left:1em;margin:0 0 1em}
.coachx .lead{color:rgba(255,255,255,.78);max-width:52ch}
.cx-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light);margin:clamp(24px,2.8vw,34px) 0}
.cx-stat{padding:clamp(16px,1.8vw,22px) clamp(10px,1.4vw,20px);border-left:1px solid var(--line-light)}
.cx-stat:first-child{border-left:0;padding-left:0}
.cx-stat b{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,2.6vw,2.5rem);color:var(--red);line-height:1;display:block;letter-spacing:-.02em}
.cx-stat span{display:block;margin-top:9px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;color:rgba(255,255,255,.6);line-height:1.3}
.coachx .cred-list{margin:0 0 1.6em}
.coachx .cred-list li{color:rgba(255,255,255,.85)}
@media(max-width:860px){
  .cx-grid{grid-template-columns:1fr;gap:36px}
  .cx-media{min-height:clamp(360px,80vw,460px)}
  .cx-media::after{left:30px;top:30px;right:-10px;bottom:-10px}
}
@media(max-width:480px){.cx-stats{grid-template-columns:1fr 1fr;gap:0}.cx-stat:nth-child(odd){border-left:0;padding-left:0}.cx-stat:nth-child(-n+2){border-bottom:1px solid var(--line-light)}.cx-stat{padding:16px 12px}}

/* =========================================================
   COACH — about portrait variant + Titles & Achievements
   ========================================================= */
.cxf-media--portrait img{aspect-ratio:4/5;object-position:center top}
/* desktop: narrow the photo column and match its height to the text block */
@media(min-width:861px){
  .coachx .cxf-body{grid-template-columns:clamp(258px,30%,336px) 1fr;align-items:stretch}
  .cxf-media--portrait{align-self:stretch;position:relative;min-height:360px}
  .cxf-media--portrait img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 22%}
}
/* wide (landscape) photo variant — used for the championship belts & medals trophy shot */
.cxf-media--wide img{aspect-ratio:4/3;object-position:center}
@media(min-width:861px){
  .coachx .cxf-body--wide{grid-template-columns:1.06fr .94fr;align-items:start}
}
.cxf-text>p{color:rgba(255,255,255,.78);margin:0 0 1.05em;line-height:1.62}
.cxf-text>p:last-child{margin-bottom:0}
.cxf-text .lead{color:#fff}
.cxf-closing{margin-top:1.5em!important;color:#fff;font-style:italic;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.45;border-left:3px solid var(--red);padding-left:1em}
/* Marcel competition photo — sits under the closing quote, matches the coach-photo frame */
.cxf-fight{position:relative;margin-top:clamp(22px,2.4vw,32px);overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 60px -34px rgba(0,0,0,.7)}
.cxf-fight::before{content:"";position:absolute;left:0;top:0;z-index:2;width:60px;height:4px;background:var(--red)}
.cxf-fight::after{content:"";position:absolute;left:0;top:0;z-index:2;width:4px;height:60px;background:var(--red)}
.cxf-fight img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 40%;display:block;filter:none}

.coach-ach{position:relative;overflow:hidden;background:var(--charcoal-2);color:#fff;border-top:1px solid var(--line-light)}
.coach-ach::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 90% at 0% 100%,#000,transparent 70%);mask-image:radial-gradient(80% 90% at 0% 100%,#000,transparent 70%)}
.coach-ach .wrap{position:relative;z-index:1}
.ach-top{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,4vw,60px);align-items:center}
.ach-head{margin-bottom:0}
.ach-head .eyebrow{color:var(--red)}
.ach-head h2{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:-.03em;font-size:clamp(2.1rem,5vw,4rem);color:#fff;margin:.22em 0 0}
.ach-head h2 .accent{color:var(--red)}
.ach-lead{margin:1.1em 0 0;color:rgba(255,255,255,.74);font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.6;max-width:46ch}
.ach-video{position:relative}
.ach-vid-frame{position:relative;z-index:1;aspect-ratio:16/9;overflow:hidden;background:#000;border:1px solid var(--line-light);border-top:2px solid rgba(225,16,19,.9);box-shadow:0 50px 100px -50px rgba(0,0,0,.9)}
.ach-vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.ach-video::after{content:"";position:absolute;right:-14px;bottom:-14px;left:40px;top:40px;border:2px solid var(--red);z-index:0;pointer-events:none}
.ach-vid-badge{position:absolute;left:0;top:14px;z-index:3;background:var(--red);color:#fff;writing-mode:vertical-rl;transform:rotate(180deg);padding:14px 8px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.26em;font-size:.62rem;font-weight:700;pointer-events:none}
/* click-to-play YouTube facade — fills the 16:9 frame with a custom poster + play button */
.ytlite{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;cursor:pointer;background:#000;display:block;overflow:hidden}
.ytlite-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.82) saturate(1.02);transition:filter .35s var(--ease),transform .6s var(--ease)}
.ytlite::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(58% 58% at 50% 50%,transparent,rgba(0,0,0,.34))}
.ytlite-play{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);width:clamp(60px,7.4vw,84px);height:clamp(60px,7.4vw,84px);border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;box-shadow:0 20px 44px -16px rgba(225,16,19,.75),0 2px 0 rgba(0,0,0,.2);transition:transform .3s var(--ease),background .3s var(--ease)}
.ytlite-play svg{width:42%;height:42%;margin-left:7%}
.ytlite:hover .ytlite-thumb,.ytlite:focus-visible .ytlite-thumb{filter:brightness(.66);transform:scale(1.03)}
.ytlite:hover .ytlite-play,.ytlite:focus-visible .ytlite-play{transform:translate(-50%,-50%) scale(1.09);background:#c70d10}
.ytlite:focus-visible{outline:3px solid var(--red);outline-offset:3px}
/* =========================================================
   COACH — left column: portrait + "THE RECORD" honors ledger
   ========================================================= */
.cxf-col{display:flex;flex-direction:column;gap:clamp(16px,1.9vw,26px)}

/* the ledger reads as a matching sibling to the belts-&-medals photo above it:
   same charcoal-over-grid, same red L corner-tick, sharp edges */
.record{position:relative;container-type:inline-size;background:linear-gradient(180deg,rgba(20,20,23,.72),rgba(9,9,11,.74));border:1px solid var(--line-light);box-shadow:0 34px 70px -46px rgba(0,0,0,.85);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.record::before{content:"";position:absolute;left:-1px;top:-1px;z-index:2;width:42px;height:3px;background:var(--red)}
.record::after{content:"";position:absolute;left:-1px;top:-1px;z-index:2;width:3px;height:42px;background:var(--red)}
.rec-head{display:flex;align-items:center;gap:14px;padding:clamp(13px,1.5vw,17px) clamp(16px,1.9vw,21px);border-bottom:1px solid var(--line-light)}
.rec-head-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:700;color:#fff;white-space:nowrap}
.rec-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--line-light),transparent)}
.rec-head-r{font-family:var(--cond);text-transform:uppercase;letter-spacing:.15em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.5);white-space:nowrap}
.rec-head-r b{font-family:var(--display);font-weight:800;font-size:1.05rem;color:var(--red);letter-spacing:0;margin-right:.32em}
.rec-list{list-style:none;margin:0;padding:0}
.rec{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;column-gap:clamp(13px,1.5vw,20px);padding:clamp(11px,1.35vw,15px) clamp(16px,1.9vw,21px);border-bottom:1px solid rgba(255,255,255,.08);transition:background .25s var(--ease)}
.rec:last-child{border-bottom:0}
.rec::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .28s var(--ease)}
.rec:hover{background:rgba(255,255,255,.035)}
.rec:hover::before{transform:scaleY(1)}
.rec-no{font-family:var(--display);font-weight:800;font-size:clamp(1rem,1.15vw,1.2rem);line-height:1;letter-spacing:.01em;color:var(--red-deep);font-variant-numeric:tabular-nums;transition:color .25s var(--ease),text-shadow .25s var(--ease)}
.rec:hover .rec-no{color:var(--red);text-shadow:0 0 20px var(--red-glow)}
.rec-name{font-family:var(--sans);font-weight:600;font-size:clamp(.95rem,1vw,1.05rem);line-height:1.32;color:rgba(255,255,255,.9)}
.rec-x{font-family:var(--display);font-weight:800;color:var(--red);font-size:1.05em;margin-right:.1em;letter-spacing:-.01em}
.rec-name small{display:block;margin-top:4px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:600;color:rgba(255,255,255,.46)}
.rec-tag{justify-self:end;white-space:nowrap;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.58rem;font-weight:700;color:rgba(255,255,255,.42);transition:color .25s var(--ease)}
.rec:hover .rec-tag{color:rgba(225,16,19,.92)}
/* when the ledger itself gets narrow (tight desktop col / small phones), drop the discipline column */
@container (max-width:440px){.rec-tag{display:none}.rec{grid-template-columns:auto 1fr}}
.coach-ach .cxf-foot{margin-top:clamp(30px,3.6vw,48px)}
@media(max-width:900px){.ach-top{grid-template-columns:1fr;gap:30px}.ach-lead{max-width:none}}

/* =========================================================
   FIND US v2 — map with floating glass info card
   ========================================================= */
.findus{position:relative;overflow:hidden;background:var(--charcoal);color:#fff}
.findus::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 72%);mask-image:radial-gradient(80% 80% at 0% 0%,#000,transparent 72%);animation:gridPan 26s linear infinite}
.findus .wrap{position:relative;z-index:1}
.fu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px)}
.fu-head h2{color:#fff;margin-top:.3em}
.fu-head .sec-num{color:rgba(255,255,255,.5)}
.fu-head h2 .accent{color:var(--red)}
/* stage: map full width, card floats over it */
.fu-stage{position:relative;z-index:1}
.fu-map{position:relative;overflow:hidden;border:1px solid var(--line-light);min-height:clamp(440px,48vw,620px)}
.fu-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.06)}
.fu-corner{position:absolute;left:0;top:0;z-index:3;width:64px;height:4px;background:var(--red)}
.fu-corner::after{content:"";position:absolute;left:0;top:0;width:4px;height:64px;background:var(--red)}
.fu-badge{position:absolute;right:clamp(14px,1.6vw,22px);bottom:clamp(14px,1.6vw,22px);z-index:3;background:rgba(7,7,9,.86);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line-light);border-left:3px solid var(--red);padding:10px 15px;display:flex;flex-direction:column;text-decoration:none}
.fu-badge .rstars{color:var(--red);letter-spacing:2px;font-size:.78rem}
.fu-badge b{font-family:var(--display);font-weight:800;font-size:1.15rem;color:#fff;line-height:1}
.fu-badge .mb-m{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.56rem;color:rgba(255,255,255,.6)}
/* floating card */
.fu-card{position:absolute;z-index:4;top:50%;left:clamp(20px,4vw,60px);transform:translateY(-50%);width:min(420px,40%);
  background:rgba(8,8,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line-light);border-top:3px solid var(--red);box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
  padding:clamp(24px,2.4vw,38px)}
.fu-eb{color:var(--red);display:block;margin-bottom:18px}
.fu-row{display:flex;gap:14px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line-light);text-decoration:none;color:#fff;transition:padding-left .35s var(--ease)}
.fu-row:hover{padding-left:5px}
.fu-ic{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:var(--red);transition:.35s var(--ease)}
.fu-row:hover .fu-ic{background:var(--red);border-color:var(--red);color:#fff}
.fu-ic svg{width:17px;height:17px}
.fu-l{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;color:var(--red);margin-bottom:4px}
.fu-v{display:block;font-size:.92rem;color:#fff;line-height:1.4}
.fu-hours{padding:14px 0;border-bottom:1px solid var(--line-light)}
.fu-hours .fu-l{margin-bottom:8px}
.fu-hours .lh-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;font-size:.8rem}
.fu-hours .lh-row .d{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;color:rgba(255,255,255,.58)}
.fu-hours .lh-row .t{color:#fff;text-align:right;line-height:1.32}
.fu-hours .lh-row.closed .t{color:rgba(255,255,255,.4)}
.fu-areas{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 4px}
.fu-areas a{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;font-weight:700;color:#fff;border:1px solid var(--line-light);padding:.45em .7em;border-radius:40px;transition:.3s var(--ease)}
.fu-areas a:hover{background:var(--red);border-color:var(--red)}
.fu-btn{width:100%;justify-content:center;margin-top:16px}
@media(max-width:900px){
  .fu-stage{display:flex;flex-direction:column}
  .fu-map{min-height:clamp(300px,60vw,420px)}
  .fu-card{position:static;transform:none;width:100%;box-shadow:none}
}

/* =========================================================
   SCROLL FX — progress bar + hero parallax
   ========================================================= */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--red);z-index:200;box-shadow:0 0 12px rgba(225,16,19,.55);pointer-events:none;transition:width .08s linear}
/* JS drives transform on these; remove competing Ken Burns + give scale headroom */
.herox-media img,.hero-cine-media img,.phero-media img{animation:none!important;transform:scale(1.16);will-change:transform}
@media(prefers-reduced-motion:reduce){.herox-media img,.hero-cine-media img,.phero-media img{transform:none}}

/* =========================================================
   PAGE HERO v2 — split (content left + angled image right)
   ========================================================= */
.phero{position:relative;min-height:clamp(460px,64vh,660px);background:var(--charcoal);color:#fff;overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(110% 100% at 0% 50%,#000,transparent 70%);mask-image:radial-gradient(110% 100% at 0% 50%,#000,transparent 70%);animation:gridPan 26s linear infinite}
.phero-media{position:absolute;top:0;right:0;bottom:0;left:auto;width:56%;z-index:0;clip-path:polygon(15% 0,100% 0,100% 100%,0% 100%)}
.phero-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1) contrast(1.1)!important}
.phero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal),rgba(11,11,12,0) 30%),radial-gradient(72% 64% at 100% 100%,rgba(225,16,19,.32),transparent 58%),linear-gradient(0deg,rgba(11,11,12,.45),transparent 42%)}
.phero::after{content:"Winter Garden, FL · 28.49° N · 81.53° W";position:absolute;right:clamp(20px,3vw,46px);bottom:clamp(18px,2.4vw,30px);z-index:3;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.55);pointer-events:none}
.phero-inner{position:relative;z-index:2;min-height:clamp(460px,64vh,660px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding-block:clamp(108px,14vw,160px) clamp(40px,6vw,76px)}
.phero-inner>*{width:100%}
.phero .crumbs{color:rgba(255,255,255,.55);margin-bottom:16px}
.phero .eyebrow{align-self:flex-start}
.phero h1{color:#fff;max-width:12ch;margin:.2em 0 0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.022em;line-height:.92;font-size:clamp(2.05rem,3.7vw,3.4rem)}
.phero h1 .it,.phero h1 em{font-style:italic;font-weight:900}
.phero h1 .accent{color:var(--red);font-style:italic}
.phero .lead{color:rgba(255,255,255,.8);max-width:38ch;margin-top:.9em}
@media(max-width:900px){
  .phero{min-height:clamp(420px,72vh,560px)}
  .phero-media{position:absolute;inset:0;width:100%;clip-path:none}
  .phero-media::after{background:linear-gradient(180deg,rgba(11,11,12,.45),rgba(11,11,12,.9)),radial-gradient(80% 60% at 100% 0%,rgba(225,16,19,.3),transparent 60%)}
  .phero-inner{max-width:none;justify-content:flex-end;padding-block:clamp(110px,24vw,140px) clamp(34px,8vw,52px)}
  .phero-coords{display:none}
}

/* =========================================================
   HEADER — floating dark bar overlaying hero + scroll animation
   ========================================================= */
html{scroll-padding-top:108px}
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:transparent!important;border:none!important;box-shadow:none!important;
  padding:clamp(12px,1.5vw,18px) clamp(12px,2vw,26px) 0;transition:padding .4s var(--ease)}
.site-header .nav{position:relative;max-width:var(--maxw);margin:0 auto;height:clamp(60px,6.2vw,74px);padding-inline:clamp(20px,2.4vw,40px)!important;
  background:linear-gradient(90deg,rgba(8,8,10,.95) 0%,rgba(8,8,10,.9) 46%,rgba(26,26,28,.46) 100%);
  border:1px solid var(--line-light);border-top:2px solid var(--red);
  -webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);
  box-shadow:0 22px 46px -30px rgba(0,0,0,.85);
  transition:background .4s var(--ease),box-shadow .4s var(--ease),height .4s var(--ease)}
.site-header.scrolled{padding-top:clamp(6px,.8vw,10px);background:transparent!important;box-shadow:none!important}
.site-header.scrolled .nav{height:clamp(56px,5.6vw,66px);background:rgba(8,8,10,.98);box-shadow:0 16px 38px -24px rgba(0,0,0,.95)}

/* =========================================================
   HEADER — dark combat nav (red top accent, white links)
   ========================================================= */
.site-header .brand .bt b{color:#fff}
.site-header .brand .bt span{color:rgba(255,255,255,.5)}
.site-header .nav-links a{color:rgba(255,255,255,.72)}
.site-header .nav-links a:hover,.site-header .nav-links a.active{color:#fff}
.site-header .nav-phone{color:#fff}
.site-header .nav-phone span{color:rgba(255,255,255,.5)}
.site-header .burger span{background:#fff}
.site-header .submenu{background:#0e0e11;border-color:var(--line-light)}
.site-header .submenu a{color:rgba(255,255,255,.78)}
.site-header .submenu a:hover{background:rgba(225,16,19,.12);color:#fff}

/* =========================================================
   IMAGE + CONTENT SECTIONS — unified premium treatment
   (matches the coach feature: framed image, red corner, aspect)
   ========================================================= */
.split{align-items:center;gap:clamp(28px,4.5vw,72px)}
.s-body .sec-num,.s-body .eyebrow{display:inline-block;margin-bottom:.4em}
.s-media{position:relative}
.s-media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-soft);display:block}
.s-media::before{content:"";position:absolute;left:0;top:0;z-index:2;width:4px;height:clamp(46px,5vw,66px);background:var(--red)}
.s-media::after{content:"";position:absolute;left:0;top:0;z-index:2;width:clamp(46px,5vw,66px);height:4px;background:var(--red)}
/* dark sections keep the corner but lighten the frame */
.coach .s-media img,.diff .s-media img{border-color:var(--line-light)}
@media(max-width:900px){.s-media img{aspect-ratio:16/10}}

/* =========================================================
   BENEFITS — dark numbered value grid (site-wide pattern)
   ========================================================= */
.benefits{position:relative;overflow:hidden;background:var(--charcoal);color:#fff}
.benefits::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(90% 80% at 0% 0%,#000,transparent 74%);mask-image:radial-gradient(90% 80% at 0% 0%,#000,transparent 74%);animation:gridPan 28s linear infinite}
.benefits .wrap{position:relative;z-index:1}
.bf-head .eyebrow{color:var(--red)}
.bf-head h2{color:#fff;margin-top:.3em}
.bf-head h2 .accent{color:var(--red)}
.bf-divider{height:1px;background:var(--line-light);margin-top:clamp(22px,2.8vw,38px)}
.bf-grid{display:grid;grid-template-columns:repeat(3,1fr);row-gap:clamp(32px,4vw,52px);margin-top:clamp(34px,4vw,56px)}
.bf-grid.four{grid-template-columns:repeat(4,1fr)}
.bf-item{border-left:1px solid var(--line-light);padding-left:clamp(20px,2.5vw,42px)}
.bf-grid:not(.four) .bf-item:nth-child(3n+1){border-left:none;padding-left:0}
.bf-grid.four .bf-item:nth-child(4n+1){border-left:none;padding-left:0}
.bf-num{font-family:var(--display);font-weight:900;font-size:clamp(2rem,3vw,2.9rem);line-height:1;color:var(--red);letter-spacing:-.02em;margin-bottom:clamp(14px,1.6vw,20px)}
.bf-item h3{color:#fff;font-size:clamp(1.05rem,1.4vw,1.35rem);margin:0 0 9px;letter-spacing:.01em}
.bf-item p{color:rgba(255,255,255,.62);font-size:.9rem;line-height:1.5;margin:0;max-width:34ch}
@media(max-width:860px){
  .bf-grid,.bf-grid.four{grid-template-columns:1fr 1fr;row-gap:30px}
  .bf-grid:not(.four) .bf-item:nth-child(3n+1),.bf-grid.four .bf-item:nth-child(4n+1){border-left:1px solid var(--line-light);padding-left:clamp(18px,4vw,30px)}
  .bf-item:nth-child(odd){border-left:none;padding-left:0}
}
@media(max-width:480px){
  .bf-grid,.bf-grid.four{grid-template-columns:1fr}
  .bf-item,.bf-item:nth-child(n){border-left:none;padding-left:0;border-top:1px solid var(--line-light);padding-top:22px}
  .bf-item:first-child{border-top:none;padding-top:0}
}

/* =========================================================
   CREED — dark belief/manifesto band
   ========================================================= */
.creed{position:relative;overflow:hidden;background:#0b0b0d;color:#fff;border-block:3px solid var(--red)}
.creed-media{position:absolute;inset:0;z-index:0}
.creed-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:.14}
.creed::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.1) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 80% at 50% 50%,#000,transparent 82%);mask-image:radial-gradient(80% 80% at 50% 50%,#000,transparent 82%);animation:gridPan 28s linear infinite}
.creed::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 60% at 50% 42%,rgba(225,16,19,.2),transparent 62%)}
.creed-inner{position:relative;z-index:2;max-width:920px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.creed-inner .eyebrow{color:var(--red)}
.creed-h{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.96;font-size:clamp(2.2rem,5vw,4.2rem);color:#fff;margin:.32em 0 .5em;max-width:16ch}
.creed-h .accent{color:var(--red)}
.creed-inner .lead{color:rgba(255,255,255,.78);max-width:60ch;margin:0 auto}
.creed-points{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,30px);width:100%;margin-top:clamp(36px,4.5vw,60px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line-light);text-align:left}
.creed-point{display:flex;flex-direction:column;gap:8px;position:relative;padding-left:clamp(14px,1.4vw,20px)}
.creed-point::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--red)}
.creed-point .pn{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--red);line-height:1}
.creed-point b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.05em;font-size:.92rem;color:#fff}
.creed-point span{font-size:.82rem;color:rgba(255,255,255,.6);line-height:1.45}
@media(max-width:760px){.creed-points{grid-template-columns:1fr 1fr;gap:24px 18px}}
@media(max-width:440px){.creed-points{grid-template-columns:1fr}}

/* =========================================================
   JOIN CTA — full-bleed cinematic membership call-to-action
   ========================================================= */
.joincta{position:relative;overflow:hidden;background:#07070a;color:#fff;border-top:3px solid var(--red);text-align:center;padding-block:clamp(78px,11vw,150px)}
.joincta-media{position:absolute;inset:0;z-index:0}
.joincta-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(1) contrast(1.14)}
.joincta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,7,9,.9),rgba(7,7,9,.5) 48%,rgba(7,7,9,.86)),radial-gradient(70% 55% at 50% 100%,rgba(225,16,19,.42),transparent 62%)}
.joincta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(225,16,19,.08) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.08) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80% 80% at 50% 50%,#000,transparent 82%);mask-image:radial-gradient(80% 80% at 50% 50%,#000,transparent 82%);animation:gridPan 28s linear infinite}
.jc-cn{position:absolute;z-index:3;width:clamp(22px,2.4vw,38px);height:clamp(22px,2.4vw,38px);pointer-events:none}
.jc-cn.tl{left:clamp(16px,2vw,30px);top:clamp(16px,2vw,30px);border-top:2px solid rgba(255,255,255,.5);border-left:2px solid rgba(255,255,255,.5)}
.jc-cn.tr{right:clamp(16px,2vw,30px);top:clamp(16px,2vw,30px);border-top:2px solid rgba(255,255,255,.5);border-right:2px solid rgba(255,255,255,.5)}
.jc-cn.bl{left:clamp(16px,2vw,30px);bottom:clamp(16px,2vw,30px);border-bottom:2px solid rgba(255,255,255,.5);border-left:2px solid rgba(255,255,255,.5)}
.jc-cn.br{right:clamp(16px,2vw,30px);bottom:clamp(16px,2vw,30px);border-bottom:2px solid rgba(255,255,255,.5);border-right:2px solid rgba(255,255,255,.5)}
.joincta .wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.jc-eyebrow{display:inline-flex;align-items:center;gap:.85em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.3em;font-size:.72rem;font-weight:700;color:var(--red);margin-bottom:clamp(18px,2.4vw,30px)}
.jc-eyebrow::before{content:"";width:clamp(30px,4vw,56px);height:2px;background:var(--red)}
.jc-title{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.025em;line-height:.94;font-size:clamp(2rem,4.4vw,4.2rem);color:#fff;max-width:16ch;margin:0}
.jc-title .accent{color:var(--red)}
.jc-tagline{font-family:var(--sans);font-style:italic;font-weight:700;font-size:clamp(1.05rem,1.8vw,1.5rem);color:#fff;margin:clamp(18px,2.4vw,30px) 0 0}
.jc-tagline .accent{color:var(--red)}
.jc-lead{color:rgba(255,255,255,.8);max-width:46ch;margin:1em auto 0}
.jc-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:clamp(26px,3.2vw,42px)}
.joincta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.joincta .btn.ghost:hover{background:#fff;color:#0b0b0c}
.jc-meta{margin-top:clamp(20px,2.4vw,30px);font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:700;color:rgba(255,255,255,.6)}
.jc-meta b{color:var(--red);margin:0 .5em}
.jc-coords{position:absolute;right:clamp(20px,3vw,46px);bottom:clamp(18px,2.4vw,30px);z-index:3;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.5);text-align:right}
@media(max-width:560px){.joincta .btn{flex:1;justify-content:center;min-width:0}.jc-coords{display:none}}

/* =========================================================
   PROGRAMS v6 — image-top cards (number badge + red-underline CTA)
   ========================================================= */
.progcards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,24px)}
.pgc{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.pgc::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);z-index:4;transition:width .5s var(--ease)}
.pgc:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pgc:hover::before{width:100%}
.pgc-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.pgc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.07);transition:transform 1.1s var(--ease),filter .6s var(--ease)}
.pgc:hover .pgc-media img{transform:scale(1.06);filter:grayscale(.4) contrast(1.04)}
.pgc-num{position:absolute;top:12px;left:12px;z-index:2;background:rgba(7,7,9,.66);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-left:2px solid var(--red);color:#fff;font-family:var(--cond);font-weight:700;letter-spacing:.14em;font-size:.7rem;padding:.45em .7em}
.pgc-body{padding:clamp(20px,1.5vw,28px);display:flex;flex-direction:column;gap:10px;flex:1}
.pgc-body h3{font-size:clamp(1.1rem,1.4vw,1.4rem);line-height:1.05;margin:0}
.pgc-body p{font-size:.9rem;color:var(--ink-soft);line-height:1.5;margin:0;flex:1}
.pgc-cta{align-self:flex-start;margin-top:6px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:.5em;border-bottom:2px solid var(--red);padding-bottom:7px;transition:gap .3s var(--ease)}
.pgc-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
.pgc:hover .pgc-cta{gap:.95em}
.pgc:hover .pgc-cta .arr{transform:translateX(4px)}
@media(max-width:980px){.progcards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.progcards{grid-template-columns:1fr}.pgc-media{aspect-ratio:16/10}}
/* mobile: enlarge program-card titles (~2x) — gym owner request */
@media(max-width:640px){
  .pgc-body h3,.pg2-card-body h3{font-size:2.15rem;line-height:1.06;letter-spacing:-.01em}
}

/* =========================================================
   PROGRAMS v5 — numbered editorial directory list
   ========================================================= */
.prog-list{border-top:1px solid var(--line);margin-top:clamp(8px,1.5vw,16px)}
.pl-row{position:relative;display:grid;grid-template-columns:clamp(54px,6vw,104px) 1fr auto;align-items:center;gap:clamp(16px,2.5vw,42px);
  padding:clamp(22px,2.6vw,34px) clamp(8px,1.4vw,20px);border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;
  transition:background .4s var(--ease),padding-left .4s var(--ease)}
.pl-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.pl-row:hover{background:linear-gradient(90deg,rgba(225,16,19,.06),transparent 62%);padding-left:clamp(18px,2.4vw,32px)}
.pl-row:hover::before{transform:scaleY(1)}
.pl-num{font-family:var(--display);font-weight:900;font-size:clamp(2rem,3.4vw,3.2rem);line-height:1;color:transparent;-webkit-text-stroke:1.6px rgba(11,11,12,.2);transition:-webkit-text-stroke-color .4s var(--ease)}
.pl-row:hover .pl-num{-webkit-text-stroke-color:var(--red)}
.pl-main{min-width:0}
.pl-main h3{font-size:clamp(1.3rem,2.2vw,2rem);margin:0 0 .25em}
.pl-main p{font-size:.92rem;color:var(--ink-soft);max-width:54ch;margin:0;line-height:1.5}
.pl-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.pl-tags span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);padding:.4em .7em;border-radius:40px}
.pl-end{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.pl-thumb{display:none;width:clamp(110px,9vw,150px);height:clamp(74px,6vw,96px);overflow:hidden;flex:none;border:1px solid var(--line)}
.pl-thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);transition:transform .9s var(--ease),filter .5s var(--ease)}
.pl-row:hover .pl-thumb img{transform:scale(1.08);filter:grayscale(.2)}
.pl-arr{flex:none;width:clamp(46px,4vw,56px);height:clamp(46px,4vw,56px);border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;color:var(--ink);transition:.35s var(--ease)}
.pl-arr svg{width:20px;height:20px}
.pl-row:hover .pl-arr{background:var(--red);border-color:var(--red);color:#fff;transform:translateX(3px)}
@media(min-width:820px){.pl-thumb{display:block}}
@media(max-width:560px){.pl-row{grid-template-columns:auto 1fr auto;gap:16px}.pl-main p{display:none}.pl-tags{display:none}}

/* =========================================================
   REVIEWS MARQUEE — auto-scrolling review cards
   ========================================================= */
.rev-marquee{position:relative;overflow:hidden;margin-top:clamp(28px,3.4vw,46px)}
.rev-marquee::before,.rev-marquee::after{content:"";position:absolute;top:0;bottom:0;width:clamp(40px,8vw,130px);z-index:2;pointer-events:none}
.rev-marquee::before{left:0;background:linear-gradient(90deg,var(--charcoal),transparent)}
.rev-marquee::after{right:0;background:linear-gradient(270deg,var(--charcoal),transparent)}
.rev-mtrack{display:flex;gap:clamp(16px,1.6vw,24px);width:max-content;padding-inline:clamp(20px,5vw,72px);animation:ticker 52s linear infinite;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.rev-marquee:hover .rev-mtrack{animation-play-state:paused}
.rev-mcard{flex:0 0 clamp(290px,30vw,400px);background:rgba(255,255,255,.04);border:1px solid var(--line-light);border-top:3px solid var(--red);padding:clamp(24px,2.4vw,34px);display:flex;flex-direction:column;gap:14px;min-height:clamp(240px,20vw,280px);transition:background .4s var(--ease),transform .4s var(--ease)}
.rev-mcard:hover{background:rgba(225,16,19,.08);transform:translateY(-4px)}
.rev-mcard .rstars{color:var(--red);letter-spacing:3px;font-size:1.02rem}
.rev-mcard .rev-quote{color:rgba(255,255,255,.86);font-size:.98rem;line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;max-width:none}
.rev-mcard .rev-foot{display:flex;align-items:center;gap:12px;margin-top:auto;border-top:1px solid var(--line-light);padding-top:14px}
.rev-mcard .rev-avatar{width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1rem;flex:none}
.rev-mcard .rev-name{display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:.9rem;color:#fff;line-height:1}
.rev-mcard .rev-meta{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;color:rgba(255,255,255,.55);margin-top:4px}
.rev-mcard .rev-g{width:22px;height:22px;color:rgba(255,255,255,.4);margin-left:auto;flex:none}
@media(prefers-reduced-motion:reduce){.rev-marquee{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.rev-marquee::before,.rev-marquee::after{display:none}.rev-mtrack{animation:none;transform:none;padding-bottom:10px}.rev-mcard{scroll-snap-align:start}}
/* mobile: swap the auto-scroll marquee for a reliable native swipe carousel —
   wide CSS-animated tracks can intermittently fail to paint on iOS Safari ("reviews not loading") */
@media(max-width:640px){
  .rev-marquee{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none}
  .rev-marquee::-webkit-scrollbar{display:none}
  .rev-marquee::before,.rev-marquee::after{display:none}
  .rev-mtrack{animation:none;transform:none;will-change:auto;padding-inline:clamp(16px,5vw,24px)}
  .rev-mcard{scroll-snap-align:start}
  .rev-mtrack>.rev-mcard:nth-child(n+8){display:none}
}

/* =========================================================
   FOOTER — cinematic upgrade (gradient, glow, grid, watermark, CTA strip)
   ========================================================= */
.site-footer{position:relative;overflow:hidden;border-top:3px solid var(--red);
  background:linear-gradient(180deg,#0c0c0f 0%,#09090b 60%,#070708 100%)!important;
  padding-block:clamp(46px,5.5vw,80px) 28px}
.site-footer::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.10) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.10) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(90% 80% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(90% 80% at 100% 0%,#000,transparent 72%);
  animation:gridPan 28s linear infinite}
.site-footer::after{content:"";position:absolute;left:-10%;bottom:-40%;width:60%;height:120%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(225,16,19,.22),transparent 70%)}
.site-footer .wrap{position:relative;z-index:1}
/* giant faint brand watermark */
.foot-watermark{position:absolute;right:clamp(-10px,1vw,40px);bottom:clamp(-3vw,-2vw,0px);z-index:0;pointer-events:none;
  font-family:var(--display);font-weight:800;line-height:.7;letter-spacing:-.05em;
  font-size:clamp(11rem,30vw,34rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05);white-space:nowrap}
/* top CTA strip */
.foot-cta{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-bottom:clamp(30px,4vw,48px);margin-bottom:clamp(34px,4vw,52px);border-bottom:1px solid var(--line-light)}
.foot-cta .eyebrow{color:var(--red)}
.foot-cta h3{color:#fff;margin-top:.35em;font-size:clamp(1.6rem,3vw,2.7rem);text-transform:uppercase;letter-spacing:-.01em}
/* lift columns above bg */
.foot-top,.foot-bottom{position:relative;z-index:1}
.foot-col a:hover{color:var(--red)}
.foot-col h4{color:var(--red)}
@media(max-width:560px){.foot-watermark{font-size:9rem}}

/* =========================================================
   REVIEWS — premium WHITE theme (same layout/structure/anim)
   Off-white band, light elevated cards, black text, red accents
   ========================================================= */
.reviews{background:linear-gradient(180deg,#FFFFFF 0%,#F4F4F5 100%);color:var(--ink)}
/* faint dark/red grid instead of the light-on-dark grid */
.reviews::before{background:linear-gradient(to right,rgba(11,11,12,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(11,11,12,.05) 1px,transparent 1px);
  -webkit-mask-image:radial-gradient(78% 78% at 0% 0%,#000,transparent 72%);mask-image:radial-gradient(78% 78% at 0% 0%,#000,transparent 72%)}
/* faint red glow in the corner for depth */
.reviews::after{content:"";position:absolute;right:-8%;top:-30%;width:46%;height:120%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(225,16,19,.10),transparent 70%)}
/* header */
.reviews .rev-head h2{color:var(--ink)}
.reviews .rev-head .sec-num{color:var(--ink-faint)}
.reviews .rev-rating .num{color:var(--ink)}
.reviews .rev-rating .rev-meta{color:var(--ink-faint)}
.reviews .rev-stars{color:var(--red)}
/* marquee edge fades match the light band */
.reviews .rev-marquee::before{background:linear-gradient(90deg,#F4F4F5,transparent)}
.reviews .rev-marquee::after{background:linear-gradient(270deg,#F4F4F5,transparent)}
/* cards: light, elevated, premium border + soft shadow */
.reviews .rev-mcard{background:linear-gradient(180deg,#FFFFFF 0%,#FCFCFD 100%);
  border:1px solid var(--line);border-top:3px solid var(--red);
  box-shadow:0 18px 44px -28px rgba(11,11,12,.30),0 2px 6px -2px rgba(11,11,12,.06)}
.reviews .rev-mcard:hover{background:#FFFFFF;transform:translateY(-5px);
  border-color:rgba(225,16,19,.35);
  box-shadow:0 30px 64px -28px rgba(11,11,12,.34),0 0 0 1px rgba(225,16,19,.08)}
.reviews .rev-mcard .rstars{color:var(--red)}
.reviews .rev-mcard .rev-quote{color:var(--ink-soft)}
.reviews .rev-mcard .rev-foot{border-top:1px solid var(--line)}
.reviews .rev-mcard .rev-avatar{background:var(--red);color:#fff}
.reviews .rev-mcard .rev-name{color:var(--ink)}
.reviews .rev-mcard .rev-meta{color:var(--ink-faint)}
.reviews .rev-mcard .rev-g{color:var(--ink-faint)}

/* =========================================================
   CLASS TIMES — premium schedule board (image + dark board)
   ========================================================= */
.sched{background:var(--paper)}
.sched-grid{display:grid;grid-template-columns:1fr 1.04fr;align-items:stretch;gap:clamp(18px,2.4vw,40px)}
/* image side */
.sched-media{position:relative;overflow:hidden;min-height:clamp(380px,42vw,560px);border:1px solid var(--line)}
.sched-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(1) contrast(1.08)}
.sched-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(11,11,13,.55),transparent 46%),radial-gradient(70% 60% at 0% 100%,rgba(225,16,19,.26),transparent 60%)}
.sched-corner{position:absolute;left:0;top:0;z-index:2;width:62px;height:4px;background:var(--red)}
.sched-corner::after{content:"";position:absolute;left:0;top:0;width:4px;height:62px;background:var(--red)}
.sched-tag{position:absolute;left:clamp(16px,2vw,26px);bottom:clamp(16px,2vw,26px);z-index:2;
  background:rgba(11,11,13,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-left:3px solid var(--red);padding:11px 18px}
.sched-tag b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(1.5rem,2.4vw,2.1rem);color:#fff;line-height:1;letter-spacing:-.02em}
.sched-tag span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:rgba(255,255,255,.7);margin-top:5px;display:block}
/* board side */
.sched-board{position:relative;overflow:hidden;background:var(--charcoal);color:#fff;border-top:3px solid var(--red);
  padding:clamp(30px,3.4vw,54px);display:flex;flex-direction:column}
.sched-board::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);
  background-size:30px 30px;-webkit-mask-image:radial-gradient(86% 80% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(86% 80% at 100% 0%,#000,transparent 72%);
  animation:gridPan 26s linear infinite}
.sched-board>*{position:relative;z-index:1}
.sched-board .eyebrow{color:var(--red)}
.sched-board h2{color:#fff;margin-top:.32em;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.94;font-size:clamp(1.9rem,3vw,2.8rem)}
.sched-board h2 .accent{color:var(--red);font-style:italic}
.sched-board .lead{color:rgba(255,255,255,.72);margin-top:.85em;max-width:44ch}
.sched-rows{margin-top:clamp(20px,2.4vw,32px);border-top:1px solid var(--line-light)}
.sched-row{display:flex;align-items:center;gap:clamp(14px,1.6vw,22px);padding:clamp(13px,1.5vw,18px) 0;
  border-bottom:1px solid var(--line-light);transition:padding-left .35s var(--ease)}
.sched-row:hover{padding-left:12px}
.sr-day{flex:0 0 auto;min-width:92px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:700;color:var(--red)}
.sr-mid{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.sr-name{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(.95rem,1.2vw,1.08rem);color:#fff;line-height:1.05}
.sr-sub{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.5)}
.sr-time{flex:0 0 auto;font-family:var(--display);font-weight:800;font-size:clamp(.95rem,1.3vw,1.15rem);color:#fff;letter-spacing:-.01em;white-space:nowrap}
.sched-board .tlink{margin-top:auto;padding-top:clamp(22px,2.4vw,30px);color:#fff;border-color:var(--line-light);align-self:flex-start}
@media(max-width:900px){
  .sched-grid{grid-template-columns:1fr}
  .sched-media{min-height:clamp(240px,58vw,340px)}
}

/* =========================================================
   SPLIT (image + text intro) — premium upgrade, applied sitewide
   Refined label + red rule, framed image, cinematic overlay,
   corner bracket, soft depth, smooth hover. Reuses site tokens.
   ========================================================= */
.split{gap:clamp(30px,5vw,86px);align-items:center}
/* — content column — */
.s-body .sec-num,.s-body .eyebrow{display:inline-flex;align-items:center;gap:.7em;margin-bottom:.6em}
.s-body .sec-num::before{content:"";flex:none;width:clamp(22px,2.4vw,34px);height:2px;background:var(--red)}
.s-body h2{position:relative;margin:.12em 0 0}
.s-body h2::after{content:"";display:block;width:clamp(44px,4.4vw,62px);height:3px;background:var(--red);margin-top:clamp(18px,2vw,26px)}
.s-body .lead{margin-top:clamp(20px,2.2vw,30px)}
.dark .s-body .sec-num::before{background:var(--red)}
/* — image column: framed + cinematic overlay + corner + hover — */
.s-media{position:relative;isolation:isolate}
.s-media img{position:relative;z-index:0;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;
  border:1px solid var(--line);
  box-shadow:0 36px 74px -34px rgba(11,11,13,.44),0 6px 16px -10px rgba(11,11,13,.16);
  transition:filter .6s var(--ease),transform .9s var(--ease)}
/* cinematic duotone overlay (dark foot + red corner glow) */
.s-media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:1;
  background:linear-gradient(180deg,transparent 50%,rgba(11,11,13,.42)),radial-gradient(64% 56% at 100% 100%,rgba(225,16,19,.22),transparent 60%);
  transition:opacity .6s var(--ease)}
/* single-element L corner bracket, top-left */
.s-media::before{content:"";position:absolute;left:-1px;top:-1px;z-index:3;
  width:clamp(48px,5vw,68px);height:clamp(48px,5vw,68px);
  border-top:4px solid var(--red);border-left:4px solid var(--red);
  transition:width .55s var(--ease),height .55s var(--ease)}
/* tag-card sits above the overlay */
.s-media .tag-card{z-index:4;box-shadow:0 24px 48px -26px rgba(11,11,13,.55)}
/* smooth hover: image warms slightly, overlay eases back, bracket extends */
.split:hover .s-media img{filter:grayscale(.4) contrast(1.08)}
.split:hover .s-media::after{opacity:.74}
.split:hover .s-media::before{width:clamp(60px,6.4vw,86px);height:clamp(60px,6.4vw,86px)}
.s-media img,.coach .s-media img,.diff .s-media img{border-color:var(--line)}
.dark .s-media img,.coach .s-media img,.diff .s-media img{border-color:var(--line-light)}
@media(max-width:900px){.s-media img{aspect-ratio:16/10}.s-media::before{width:46px;height:46px}}

/* =========================================================
   FULL-COLOR PHOTOGRAPHY — preserve natural image colors sitewide
   Brand black/white/red comes from UI, type, gradients & accents,
   NOT from desaturating photos. Subtle contrast/saturation only.
   (Map embeds and UI dim-states intentionally keep their styling.)
   ========================================================= */
.hero-media img,.hero-m-media img,.hero-cine-media img,.hs-media img,.phero-media img,
.manifesto-img img,.pr-media img,.pa-panel img,.prog-card img,.fg-img img,.b-img img,
.pcard-media img,.man2-media img,.coach .c-media img,.coach-photo img,.article figure img,
.cxf-media img,.cx-media img,.herox-media img,.fac-tile img,.post .pimg img,.pgc-media img,
.pl-thumb img,.sched-media img,.s-media img,.collage img,.bigcta-media img,.stepcta-media img,
.fightcta-media img,.creed-media img,.joincta-media img,.dec-bg img{
  filter:contrast(1.04) saturate(1.06)!important}
/* hover states keep their motion (scale) but stay full-color */
.prog-row:hover .pr-media img,.prog-card:hover img,.post:hover .pimg img,.fac-tile:hover img,
.pcard:hover .pcard-media img,.pgc:hover .pgc-media img,.pl-row:hover .pl-thumb img,
.split:hover .s-media img{filter:contrast(1.06) saturate(1.1)!important}
/* soften the red duotone overlays to subtle cinematic gradients (color now shows through) */
.pa-panel::after{background:linear-gradient(160deg,rgba(225,16,19,.16),rgba(11,11,13,.50) 72%)!important;mix-blend-mode:normal!important}
.pr-media::after{background:linear-gradient(160deg,rgba(225,16,19,.12),rgba(11,11,13,.34) 70%)!important;mix-blend-mode:normal!important}

/* =========================================================
   HERO X v3 — full-bleed dark + angled photo (reference match)
   ========================================================= */
.herox{display:block;position:relative;grid-template-columns:none;background:var(--charcoal);color:#fff;overflow:hidden;
  min-height:clamp(640px,94vh,960px)}
/* faint animated red grid on the dark side */
.herox::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.12) 1px,transparent 1px);
  background-size:34px 34px;animation:gridPan 26s linear infinite;
  -webkit-mask-image:radial-gradient(122% 100% at 0% 46%,#000,transparent 72%);mask-image:radial-gradient(122% 100% at 0% 46%,#000,transparent 72%)}
/* angled photo, right side */
.herox-media{position:absolute;top:0;right:0;bottom:0;left:auto;width:54%;z-index:0;border:none;overflow:hidden;
  clip-path:polygon(15% 0,100% 0,100% 100%,0 100%)}
.herox-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;
  animation:kenburns 26s ease-in-out infinite alternate;will-change:transform}
.herox-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--charcoal) 1%,rgba(11,11,13,.12) 24%,transparent 46%),
  linear-gradient(0deg,rgba(11,11,13,.5),transparent 36%),
  radial-gradient(70% 58% at 100% 100%,rgba(225,16,19,.24),transparent 58%)}
/* content container (uses .wrap for gutters/max-width) */
.herox-inner{position:relative;z-index:2;display:flex;align-items:stretch;min-height:inherit}
.herox-content{display:flex;flex-direction:column;justify-content:center;
  max-width:clamp(440px,53vw,720px);padding-block:clamp(118px,13vw,172px) clamp(48px,6vw,82px)}
/* announcement pill */
.herox-pill{display:inline-flex;align-items:center;gap:.7em;align-self:flex-start;text-decoration:none;
  background:rgba(255,255,255,.05);border:1px solid var(--line-light);border-radius:999px;padding:.62em 1.05em;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;font-weight:700;color:#fff;
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.herox-pill:hover{border-color:var(--red);background:rgba(225,16,19,.12)}
.herox-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(225,16,19,.22)}
.herox-pill .arr{color:var(--red);transition:transform .3s var(--ease)}
.herox-pill:hover .arr{transform:translateX(3px)}
/* eyebrow w/ red dash */
.herox-eyebrow{display:inline-flex;align-items:center;gap:.8em;margin-top:clamp(20px,2.4vw,30px);
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.66)}
.herox-eyebrow::before{content:"";width:34px;height:2px;background:var(--red);flex:none}
/* headline */
.herox h1{color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;
  line-height:.86;font-size:clamp(2.5rem,5.4vw,5.1rem);margin:.2em 0 0}
.herox h1 .accent{color:var(--red)}
.herox .lead{color:rgba(255,255,255,.78);max-width:48ch;margin-top:clamp(20px,2.2vw,30px)}
.herox-tagline{margin-top:clamp(16px,1.6vw,22px);font-family:var(--display);font-weight:800;text-transform:uppercase;
  letter-spacing:-.01em;font-size:clamp(1.05rem,1.7vw,1.5rem);color:#fff}
.herox-tagline em{color:var(--red);font-style:italic}
.herox .hero-actions{margin-top:clamp(28px,3vw,40px);display:flex;gap:14px;flex-wrap:wrap}
.herox .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.herox .btn.ghost:hover{background:#fff;color:#0b0b0c}
/* feature row */
.herox-feats{display:flex;flex-wrap:wrap;gap:clamp(18px,2.4vw,38px);
  margin-top:clamp(30px,3.4vw,48px);padding-top:clamp(22px,2.4vw,30px);border-top:1px solid var(--line-light)}
.hf{display:flex;align-items:center;gap:12px}
.hf-ic{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:var(--red);
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.hf:hover .hf-ic{border-color:var(--red);background:rgba(225,16,19,.1)}
.hf-ic svg{width:18px;height:18px}
.hf-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;font-weight:700;color:rgba(255,255,255,.82);line-height:1.25}
/* coordinates */
.herox-coords{position:absolute;right:clamp(20px,3vw,46px);bottom:clamp(16px,2.2vw,28px);z-index:3;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.55);pointer-events:none}
@media(max-width:980px){
  .herox{min-height:0}
  .herox-media{position:relative;width:100%;clip-path:none;min-height:clamp(300px,52vw,420px)}
  .herox-media::after{background:linear-gradient(180deg,rgba(11,11,13,.18),rgba(11,11,13,.92)),radial-gradient(80% 60% at 100% 0%,rgba(225,16,19,.26),transparent 60%)}
  .herox-inner{display:block}
  .herox-content{max-width:none;padding-block:clamp(40px,9vw,62px)}
  .herox-coords{display:none}
}
@media(max-width:560px){
  .herox-feats{gap:16px}
  .hf{flex:1 1 42%}
}
/* left-align hero content to the page gutter (override centered .wrap) */
.herox .herox-inner{max-width:none;margin:0;padding-inline:clamp(24px,5vw,76px) 0}
@media(max-width:980px){.herox .herox-inner{padding-inline:var(--gut)}}

/* =========================================================
   PROGRAMS v2 — featured + trio editorial cards (programs.html)
   ========================================================= */
.pg2{display:flex;flex-direction:column;gap:clamp(18px,2vw,28px)}
.pg2 img{display:block;filter:contrast(1.04) saturate(1.05)}
/* shared media chrome */
.pg2-feat-media,.pg2-card-media{position:relative;overflow:hidden;background:var(--charcoal)}
.pg2-feat-media img,.pg2-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pg2-feat-media::after,.pg2-card-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(11,11,13,.42),transparent 52%),radial-gradient(72% 60% at 100% 100%,rgba(225,16,19,.16),transparent 60%)}
.pg2-chip{position:absolute;top:14px;right:14px;z-index:3;background:var(--red);color:#fff;font-family:var(--cond);
  text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:700;padding:.5em .8em}
.pg2-idx{position:absolute;left:16px;top:12px;z-index:3;font-family:var(--display);font-weight:900;line-height:1;
  font-size:clamp(1.5rem,2.2vw,2.3rem);color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.55)}
/* shared CTA */
.pg2-cta{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.76rem;
  display:inline-flex;align-items:center;gap:.5em;color:#fff;padding-bottom:.4em;border-bottom:1px solid var(--line-light);
  align-self:flex-start;transition:border-color .35s var(--ease),gap .35s var(--ease)}
.pg2-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
/* card shells */
.pg2-feat,.pg2-card{background:var(--charcoal);color:#fff;border:1px solid var(--line);border-top:3px solid var(--red);
  text-decoration:none;overflow:hidden;transition:box-shadow .45s var(--ease),transform .45s var(--ease),border-color .45s var(--ease)}
/* featured: horizontal split */
.pg2-feat{display:grid;grid-template-columns:1.12fr 1fr}
.pg2-feat-media{min-height:clamp(300px,32vw,430px)}
.pg2-feat-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,3.2vw,52px)}
.pg2-ey{display:inline-flex;align-items:center;gap:.7em;margin-bottom:.85em;font-family:var(--cond);
  text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:700;color:var(--red)}
.pg2-ey::before{content:"";width:26px;height:2px;background:var(--red)}
.pg2-feat-body h3{color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;
  line-height:.94;font-size:clamp(1.7rem,2.8vw,2.7rem)}
.pg2-feat-body p{color:rgba(255,255,255,.74);margin:.7em 0 1.2em;max-width:46ch}
.pg2-points{list-style:none;margin:0 0 1.4em;padding:0;display:flex;flex-wrap:wrap;gap:.55em 1.5em}
.pg2-points li{position:relative;padding-left:1.05em;font-family:var(--cond);text-transform:uppercase;
  letter-spacing:.08em;font-size:.66rem;font-weight:700;color:rgba(255,255,255,.72)}
.pg2-points li::before{content:"";position:absolute;left:0;top:.42em;width:6px;height:6px;background:var(--red)}
/* trio */
.pg2-row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,28px)}
@media(min-width:861px) and (max-width:1100px){.pg2-row{grid-template-columns:repeat(2,1fr)}}
.pg2-card{display:flex;flex-direction:column}
.pg2-card-media{aspect-ratio:4/3}
.pg2-card-body{display:flex;flex-direction:column;flex:1;padding:clamp(20px,2vw,30px)}
.pg2-card-body h3{color:#fff;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  line-height:1.02;font-size:clamp(1.18rem,1.5vw,1.5rem)}
.pg2-card-body p{color:rgba(255,255,255,.7);font-size:.9rem;line-height:1.5;margin:.6em 0 1.3em;flex:1}
/* hover */
.pg2-feat:hover,.pg2-card:hover{transform:translateY(-5px);border-color:rgba(225,16,19,.4);box-shadow:0 32px 66px -34px rgba(11,11,13,.55)}
.pg2-feat:hover .pg2-feat-media img,.pg2-card:hover .pg2-card-media img{transform:scale(1.06)}
.pg2-feat:hover .pg2-cta,.pg2-card:hover .pg2-cta{gap:.95em;border-color:var(--red)}
.pg2-feat:hover .pg2-cta .arr,.pg2-card:hover .pg2-cta .arr{transform:translateX(4px)}
@media(max-width:860px){
  .pg2-feat{grid-template-columns:1fr}
  .pg2-feat-media{min-height:clamp(240px,54vw,330px)}
  .pg2-row{grid-template-columns:1fr}
}

/* =========================================================
   PROGRAM-INTRO SPLIT — layered bold red square (reference look)
   Replaces the thin L-bracket with a solid red block sitting
   behind the image's top-left corner. Applies to every .split.
   ========================================================= */
.s-media{isolation:isolate;overflow:visible}
.s-media img{position:relative;z-index:1}
/* bold solid red square on the image's top-left corner */
.s-media::before{content:"";position:absolute;z-index:3;border:none;
  left:clamp(-22px,-1.5vw,-14px);top:clamp(-22px,-1.5vw,-14px);
  width:clamp(72px,7vw,100px);height:clamp(72px,7vw,100px);
  background:var(--red);transition:transform .55s var(--ease)}
.s-media::after{z-index:2}
.split:hover .s-media::before{width:clamp(72px,7vw,100px);height:clamp(72px,7vw,100px);transform:translate(-4px,-4px)}
@media(max-width:900px){
  .s-media::before{left:-14px;top:-14px;width:56px;height:56px}
}

/* =========================================================
   SCHEDULE v2 — premium dropdown filter + weekly day cards
   ========================================================= */
.sched-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(20px,3vw,40px);flex-wrap:wrap;margin-bottom:clamp(26px,3.2vw,44px)}
.sched-bar-head .eyebrow{display:inline-block;margin-bottom:.45em}
.sched-bar-head h2{margin:0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;font-size:clamp(1.6rem,2.6vw,2.4rem)}
/* dropdown */
.sched-dd{position:relative;min-width:clamp(250px,30vw,330px)}
.sched-dd-cap{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;font-weight:700;color:var(--ink-faint);margin-bottom:9px}
.sched-dd-btn{width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--red);
  padding:.95em 1.1em;cursor:pointer;font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:700;color:var(--ink);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.sched-dd-btn:hover{box-shadow:0 12px 32px -20px rgba(11,11,13,.45)}
.sched-dd.open .sched-dd-btn{border-color:var(--red);box-shadow:0 16px 38px -20px rgba(11,11,13,.5)}
.dd-label{flex:1;text-align:left}
.dd-chev{width:18px;height:18px;color:var(--ink-faint);transition:transform .35s var(--ease),color .3s var(--ease);flex:none}
.sched-dd.open .dd-chev{transform:rotate(180deg);color:var(--red)}
.dd-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--red)}
.dd-dot.kids{background:#6E76D6}.dd-dot.kids4{background:#6E76D6}.dd-dot.kids8{background:#323A96}.dd-dot.bjj{background:var(--red)}.dd-dot.striking{background:#F97316}.dd-dot.muaythai{background:#3A3A42}.dd-dot.cardio{background:#9A9AA0}.dd-dot.all{background:var(--red)}
.sched-dd-menu{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;list-style:none;margin:0;padding:6px;
  background:#fff;border:1px solid var(--line);box-shadow:0 28px 64px -28px rgba(11,11,13,.55);
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s}
.sched-dd.open .sched-dd-menu{opacity:1;visibility:visible;transform:none}
.dd-opt{display:flex;align-items:center;gap:11px;padding:.74em .85em;cursor:pointer;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700;color:var(--ink-soft);
  transition:background .2s var(--ease),color .2s var(--ease)}
.dd-opt:hover{background:var(--paper-2);color:var(--ink)}
.dd-opt.is-active{color:var(--red);background:rgba(225,16,19,.06)}
.dd-opt.is-active::after{content:"\2713";margin-left:auto;color:var(--red);font-size:.95em}
/* weekly grid of day cards */
.wk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,24px)}
.wk-day{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);transition:opacity .3s var(--ease)}
.wk-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:clamp(16px,1.6vw,22px) clamp(16px,1.6vw,22px) clamp(11px,1.1vw,15px);border-bottom:1px solid var(--line)}
.wk-day-head b{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.1rem,1.5vw,1.4rem);color:var(--ink)}
.wk-count{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;color:var(--ink-faint);white-space:nowrap}
.wk-count::after{content:" classes"}
.wk-rows{display:flex;flex-direction:column;padding:6px clamp(10px,1vw,14px) clamp(8px,1vw,12px)}
.wk-row{display:flex;align-items:center;gap:14px;max-height:160px;padding:13px 10px;
  border-bottom:1px solid var(--line);border-left:3px solid transparent;
  transition:opacity .35s var(--ease),max-height .4s var(--ease),padding .35s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}
.wk-row:last-child{border-bottom:0}
.wk-row[data-cat="kids"]{border-left-color:#6E76D6}
.wk-row[data-cat~="kids4"]{border-left-color:#6E76D6}
.wk-row[data-cat~="kids8"]{border-left-color:#323A96}
.wk-row[data-cat="bjj"]{border-left-color:var(--red)}
.wk-row[data-cat~="striking"]{border-left-color:#F97316}
.wk-row[data-cat~="muaythai"]{border-left-color:#3A3A42}
.wk-row[data-cat~="cardio"]{border-left-color:#9A9AA0}
.wk-row:hover{background:var(--paper-2);padding-left:14px}
.wk-time{flex:0 0 auto;width:74px;font-family:var(--display);font-weight:800;font-size:.95rem;color:var(--ink);letter-spacing:-.01em}
.wk-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.wk-cls{font-family:var(--cond);text-transform:uppercase;letter-spacing:.04em;font-weight:700;font-size:.82rem;color:var(--ink);line-height:1.15}
.wk-det{font-size:.72rem;color:var(--ink-faint);line-height:1.2}
.wk-row.hide{opacity:0;max-height:0;padding-top:0;padding-bottom:0;border-width:0 0 0 3px;overflow:hidden;pointer-events:none}
.wk-day.wk-empty{display:none}
@media(max-width:880px){.wk-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){
  .wk-grid{grid-template-columns:1fr}
  .sched-bar{align-items:stretch}
  .sched-dd{width:100%;min-width:0}
}

/* =========================================================
   CONTACT v2 — cinematic conversion section
   ========================================================= */
.contactx{position:relative;overflow:hidden;background:var(--charcoal);color:#fff}
/* animated red grid */
.contactx::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.10) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.10) 1px,transparent 1px);
  background-size:34px 34px;animation:gridPan 30s linear infinite;
  -webkit-mask-image:radial-gradient(125% 90% at 0% 0%,#000,transparent 72%);mask-image:radial-gradient(125% 90% at 0% 0%,#000,transparent 72%)}
/* red corner glows + black→transparent→red wash */
.contactx::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(58% 48% at 100% 0%,rgba(225,16,19,.22),transparent 60%),
  radial-gradient(48% 40% at 0% 100%,rgba(225,16,19,.12),transparent 60%),
  linear-gradient(180deg,rgba(11,11,13,.22),transparent 28%)}
/* oversized watermark */
.cx-watermark{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;text-align:center;
  font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.8;letter-spacing:-.045em;
  color:rgba(255,255,255,.045);white-space:nowrap;font-size:clamp(6rem,19vw,19rem)}
.cx-watermark em{display:block;font-style:normal;font-size:.32em;letter-spacing:.05em}
.cx-wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(30px,4vw,68px);align-items:start}
/* ---- left ---- */
.cx-eyebrow{display:inline-flex;align-items:center;gap:.8em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.7)}
.cx-no{font-family:var(--display);font-weight:900;color:var(--red);font-size:1.15rem;letter-spacing:0}
.cx-eyebrow::after{content:"";width:42px;height:2px;background:var(--red)}
.cx-title{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:.86;
  font-size:clamp(2.6rem,5.4vw,4.8rem);color:#fff;margin:.24em 0 0}
.cx-title .accent{color:var(--red);font-style:italic}
.cx-lead{color:rgba(255,255,255,.76);max-width:46ch;margin-top:clamp(18px,2vw,26px)}
/* trust */
.cx-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px 26px;margin-top:clamp(24px,2.8vw,38px);
  padding-top:clamp(22px,2.4vw,30px);border-top:1px solid var(--line-light)}
.cx-ti{display:flex;align-items:center;gap:11px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:700;color:rgba(255,255,255,.86)}
.cx-ti svg{width:20px;height:20px;color:var(--red);flex:none}
/* photo */
.cx-photo{position:relative;margin-top:clamp(26px,3vw,40px);isolation:isolate}
.cx-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 28%;border:1px solid var(--line-light);position:relative;z-index:1}
.cx-photo::before{content:"";position:absolute;left:-16px;top:-16px;z-index:0;width:84px;height:84px;background:var(--red)}
.cx-photo::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(0deg,rgba(11,11,13,.42),transparent 50%),radial-gradient(60% 50% at 100% 100%,rgba(225,16,19,.2),transparent 60%)}
.cx-photo-arrow{position:absolute;right:14px;bottom:14px;z-index:3;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;
  font-size:.64rem;font-weight:700;color:#fff;background:rgba(11,11,13,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.55em .8em;border-left:2px solid var(--red)}
/* editorial contact details */
.cx-info{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,26px) clamp(26px,3vw,44px);margin-top:clamp(26px,3vw,40px)}
.cx-detail{display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--line-light)}
.cx-dl{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;font-weight:700;color:var(--red)}
.cx-dv{color:#fff;font-size:.96rem;line-height:1.4;text-decoration:none;transition:color .25s var(--ease)}
a.cx-dv:hover{color:var(--red)}
.cx-socials{display:flex;gap:10px;margin-top:2px}
.cx-socials a{width:38px;height:38px;border:1px solid var(--line-light);display:grid;place-items:center;color:#fff;transition:.3s var(--ease)}
.cx-socials a:hover{border-color:var(--red);background:rgba(225,16,19,.12)}
.cx-socials svg{width:17px;height:17px}
/* integrated map preview */
.cx-map{position:relative;display:block;margin-top:clamp(24px,2.8vw,36px);overflow:hidden;border:1px solid var(--line-light);
  min-height:clamp(180px,20vw,240px);transition:border-color .3s var(--ease)}
.cx-map:hover{border-color:var(--red)}
.cx-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05);pointer-events:none}
.cx-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(11,11,13,.5),transparent 58%),radial-gradient(60% 70% at 100% 100%,rgba(225,16,19,.16),transparent 60%)}
.cx-map-badge{position:absolute;left:16px;bottom:14px;z-index:2;display:flex;flex-direction:column;gap:2px;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:700;color:#fff}
.cx-map-badge span{color:var(--red)}
/* ---- right: floating glass form ---- */
.cx-right{position:sticky;top:108px}
.cx-form{position:relative;background:rgba(20,20,24,.62);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid var(--line-light);border-top:3px solid var(--red);padding:clamp(24px,2.6vw,40px);
  box-shadow:0 50px 92px -50px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.02);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.cx-form:hover{transform:translateY(-5px);box-shadow:0 64px 104px -48px rgba(0,0,0,.95)}
.cx-form-head{margin-bottom:clamp(18px,2vw,26px)}
.cx-form-ey{display:inline-flex;align-items:center;gap:.7em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.64rem;font-weight:700;color:var(--red)}
.cx-form-ey::before{content:"";width:24px;height:2px;background:var(--red)}
.cx-form-head h3{margin:.55em 0 0;color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;font-size:clamp(1.5rem,2.2vw,2rem)}
.cx-form-head h3 .accent{color:var(--red);font-style:italic}
.cx-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cx-form .field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.cx-form label{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.6)}
.cx-form input,.cx-form select,.cx-form textarea{background:rgba(255,255,255,.05);border:1px solid var(--line-light);color:#fff;
  padding:.85em .9em;font-family:var(--sans);font-size:.94rem;border-radius:0;transition:border-color .3s var(--ease),background .3s var(--ease)}
.cx-form input::placeholder,.cx-form textarea::placeholder{color:rgba(255,255,255,.4)}
.cx-form input:focus,.cx-form select:focus,.cx-form textarea:focus{outline:none;border-color:var(--red);background:rgba(255,255,255,.09)}
.cx-form textarea{min-height:94px;resize:vertical}
.cx-form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.4em;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E11013' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9em center;background-size:15px}
.cx-form select option{color:#0b0b0c}
.cx-submit{width:100%;justify-content:center;margin-top:6px}
.cx-callnote{font-size:.82rem;color:rgba(255,255,255,.55);margin-top:14px;text-align:center}
.cx-callnote a{color:var(--red)}
@media(max-width:980px){
  .cx-wrap{grid-template-columns:1fr}
  .cx-right{position:static;margin-top:6px}
}
@media(max-width:560px){
  .cx-trust{grid-template-columns:1fr}
  .cx-info{grid-template-columns:1fr}
  .cx-form .row{grid-template-columns:1fr}
}

/* =========================================================
   CONTACT v3 — split card (dark info + white form) on light grid
   ========================================================= */
.contact7{position:relative;overflow:hidden;background:var(--paper)}
.contact7::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(11,11,12,.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(11,11,12,.04) 1px,transparent 1px);
  background-size:34px 34px;-webkit-mask-image:radial-gradient(120% 90% at 100% 0%,#000,transparent 78%);mask-image:radial-gradient(120% 90% at 100% 0%,#000,transparent 78%)}
.contact7 .wrap{position:relative;z-index:1}
/* oversized faint brand word */
.c7-bgword{position:absolute;right:-2%;top:-4%;z-index:0;pointer-events:none;font-family:var(--display);font-weight:900;
  text-transform:uppercase;line-height:.7;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(11,11,12,.05);
  font-size:clamp(9rem,26vw,26rem)}
/* head */
.c7-head{margin-bottom:clamp(24px,3vw,42px)}
.c7-eyebrow{display:inline-flex;align-items:center;gap:.85em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;font-weight:700;color:var(--ink-soft)}
.c7-eyebrow .c7-rule{width:42px;height:2px;background:var(--red)}
.c7-eyebrow em{font-style:normal;color:var(--ink-faint)}
.c7-title{margin:.55em 0 0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.025em;line-height:.92;
  font-size:clamp(1.9rem,4vw,3.4rem);color:var(--ink)}
.c7-title .accent{color:var(--red)}
/* card shell */
.c7-card{position:relative;display:grid;grid-template-columns:.82fr 1.18fr;background:#fff;border:1px solid var(--line);
  box-shadow:0 54px 104px -52px rgba(11,11,13,.5),0 10px 32px -18px rgba(11,11,13,.16)}
/* left dark aside */
.c7-aside{position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(165deg,#161619,#0b0b0d 72%);padding:clamp(28px,3vw,48px)}
.c7-aside::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.10) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.10) 1px,transparent 1px);
  background-size:30px 30px;-webkit-mask-image:radial-gradient(100% 80% at 0% 100%,#000,transparent 72%);mask-image:radial-gradient(100% 80% at 0% 100%,#000,transparent 72%)}
.c7-aside::after{content:"";position:absolute;right:-12%;top:-18%;width:62%;height:70%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(225,16,19,.30),transparent 70%)}
.c7-aside>*{position:relative;z-index:1}
.c7-aside-lead{color:rgba(255,255,255,.74);font-size:.95rem;line-height:1.6}
.c7-details{margin-top:clamp(22px,2.6vw,34px);display:flex;flex-direction:column;gap:clamp(15px,1.8vw,22px)}
.c7-d{display:flex;flex-direction:column;gap:5px}
.c7-dl{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;font-weight:700;color:var(--red)}
.c7-dv{color:#fff;font-size:.94rem;line-height:1.45;text-decoration:none;transition:color .25s var(--ease)}
a.c7-dv:hover{color:var(--red)}
.c7-inline{color:#fff;border-bottom:1px solid var(--red);white-space:nowrap;transition:color .25s var(--ease)}
.c7-inline:hover{color:var(--red)}
.c7-aside-foot{margin-top:clamp(24px,3vw,40px);padding-top:clamp(18px,2vw,24px);border-top:1px solid var(--line-light);display:flex;align-items:center;gap:12px}
.c7-aside-foot .rstars{color:var(--red);letter-spacing:2px;font-size:.95rem}
.c7-rev{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;font-weight:700;color:rgba(255,255,255,.72)}
/* right white form panel */
.c7-panel{padding:clamp(28px,3.2vw,52px)}
.cf2-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,30px) clamp(20px,2.6vw,40px)}
.cf2-field{display:flex;flex-direction:column;gap:9px;min-width:0}
.cf2-field.full{grid-column:1 / -1}
.cf2-field label{display:inline-flex;align-items:center;gap:.6em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700;color:var(--ink)}
.cf2-field label::before{content:"";width:7px;height:7px;background:var(--red);transform:rotate(45deg);flex:none}
.cf2-field label i{color:var(--red);font-style:normal}
.cf2-field input,.cf2-field textarea{width:100%;background:var(--paper-2);border:0;border-bottom:2px solid rgba(225,16,19,.45);
  color:var(--ink);padding:.85em .75em;font-family:var(--sans);font-size:.96rem;border-radius:0;
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.cf2-field input::placeholder,.cf2-field textarea::placeholder{color:var(--ink-faint)}
.cf2-field input:focus,.cf2-field textarea:focus{outline:none;border-bottom-color:var(--red);background:#fff;box-shadow:0 14px 30px -22px rgba(11,11,13,.4)}
.cf2-field textarea{min-height:118px;resize:vertical}
/* branded boxed select (twist) */
.cf2-select{position:relative}
.cf2-select select{width:100%;appearance:none;-webkit-appearance:none;cursor:pointer;
  background:#fff;border:1px solid var(--line);border-left:3px solid var(--red);color:var(--ink);
  padding:.85em 2.4em .85em .85em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.82rem;
  border-radius:0;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.cf2-select select:focus{outline:none;border-color:var(--red);box-shadow:0 14px 30px -22px rgba(11,11,13,.4)}
.cf2-select::after{content:"";position:absolute;right:1em;top:50%;width:9px;height:9px;
  transform:translateY(-65%) rotate(45deg);border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none;transition:transform .3s var(--ease)}
/* custom branded dropdown (JS-enhanced) */
.cf2-select.is-enhanced select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;clip:rect(0 0 0 0);overflow:hidden;margin:-1px}
.cf2-select.open::after{transform:translateY(-35%) rotate(225deg)}
.bsel-trigger{display:block;width:100%;text-align:left;cursor:pointer;background:#fff;border:1px solid var(--line);border-left:3px solid var(--red);color:var(--ink);padding:.85em 2.4em .85em .85em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.82rem;line-height:1.2;border-radius:0;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.cf2-select.open .bsel-trigger,.bsel-trigger:focus-visible{outline:none;border-color:var(--red);box-shadow:0 14px 30px -22px rgba(11,11,13,.4)}
.bsel-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);box-shadow:0 26px 60px -28px rgba(11,11,13,.5);max-height:280px;overflow:auto;display:none}
.cf2-select.open .bsel-list{display:block;animation:bselIn .22s var(--ease)}
@keyframes bselIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.bsel-opt{font-family:var(--cond);text-transform:uppercase;letter-spacing:.05em;font-weight:700;font-size:.78rem;color:var(--ink-soft);padding:.7em .8em;cursor:pointer;border-left:3px solid transparent;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
.bsel-opt:hover{background:var(--paper-2);color:var(--ink);border-left-color:var(--red)}
.bsel-opt.is-sel{background:var(--red);color:#fff;border-left-color:var(--red)}
/* footer row */
.cf2-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(26px,3vw,40px);padding-top:clamp(20px,2.4vw,28px);border-top:1px solid var(--line)}
.cf2-note{font-size:.85rem;color:var(--ink-faint);margin:0}
@media(max-width:860px){
  .c7-card{grid-template-columns:1fr}
}
@media(max-width:560px){
  .cf2-grid{grid-template-columns:1fr}
  .cf2-foot{flex-direction:column-reverse;align-items:stretch}
  .cf2-foot .btn{width:100%;justify-content:center}
}

/* =========================================================
   BLOG v2 — featured + search + category tabs + card grid
   ========================================================= */
.bx-kicker{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(22px,2.6vw,34px)}
.bx-kicker h2{margin:.2em 0 0}
/* featured */
.bfeature{display:grid;grid-template-columns:1.15fr 1fr;background:var(--charcoal);color:#fff;border:1px solid var(--line);
  border-top:3px solid var(--red);text-decoration:none;overflow:hidden;margin-bottom:clamp(30px,4vw,56px);
  transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.bfeature:hover{transform:translateY(-4px);box-shadow:0 36px 72px -38px rgba(11,11,13,.55)}
.bfeature-img{position:relative;overflow:hidden;min-height:clamp(260px,30vw,400px)}
.bfeature-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.bfeature:hover .bfeature-img img{transform:scale(1.05)}
.bfeature-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,3vw,48px)}
.bfeature-body h3{color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:1;font-size:clamp(1.4rem,2.4vw,2.2rem);margin:.45em 0 .5em}
.bfeature-body p{color:rgba(255,255,255,.74);font-size:.98rem;line-height:1.6;max-width:52ch}
/* shared chips */
.bpost-cat{position:absolute;top:14px;left:14px;z-index:2;background:var(--red);color:#fff;font-family:var(--cond);
  text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;padding:.5em .8em}
.bfeature-body .bpost-cat,.bcard-body .bpost-cat{position:static}
.bpost-date{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;font-weight:700;color:var(--red)}
.bfeature-body .bpost-date{color:var(--red)}
.bpost-cta{display:inline-flex;align-items:center;gap:.5em;margin-top:1em;font-family:var(--cond);text-transform:uppercase;
  letter-spacing:.14em;font-size:.74rem;font-weight:700;color:#fff}
.bpost-cta .arr{color:var(--red);transition:transform .3s var(--ease)}
.bfeature:hover .bpost-cta .arr{transform:translateX(4px)}
/* toolbar */
.bx-toolbar{display:flex;align-items:center;gap:clamp(14px,2vw,28px);flex-wrap:wrap;justify-content:space-between;
  margin-bottom:clamp(24px,3vw,38px);padding-bottom:clamp(18px,2vw,24px);border-bottom:1px solid var(--line)}
.bx-search{position:relative;flex:0 0 auto;min-width:clamp(220px,26vw,300px)}
.bx-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-faint);pointer-events:none}
.bx-search input{width:100%;background:var(--paper-2);border:1px solid var(--line);border-radius:0;padding:.8em .9em .8em 2.6em;
  font-family:var(--sans);font-size:.95rem;color:var(--ink);transition:border-color .3s var(--ease),background .3s var(--ease)}
.bx-search input:focus{outline:none;border-color:var(--red);background:#fff}
.bx-tabs{display:flex;flex-wrap:wrap;gap:8px;flex:1;justify-content:flex-end}
.bx-tabs button{background:transparent;border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:700;padding:.6em .95em;
  transition:.25s var(--ease)}
.bx-tabs button:hover{border-color:var(--ink);color:var(--ink)}
.bx-tabs button.is-active{background:var(--red);border-color:var(--red);color:#fff}
/* grid */
.bx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}
.bcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);
  overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.bcard::before{content:"";position:absolute}
.bcard:hover{transform:translateY(-6px);border-color:rgba(225,16,19,.4);box-shadow:0 30px 62px -34px rgba(11,11,13,.5)}
.bcard-img{position:relative;aspect-ratio:16/10;overflow:hidden}
.bcard-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.05s var(--ease)}
.bcard:hover .bcard-img img{transform:scale(1.06)}
.bcard-body{display:flex;flex-direction:column;gap:9px;padding:clamp(18px,1.8vw,26px);flex:1}
.bcard-body h3{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:1.08;
  font-size:clamp(1.02rem,1.3vw,1.22rem);margin:0}
.bcard-body p{font-size:.88rem;line-height:1.55;color:var(--ink-soft);margin:0;flex:1}
.bcard-body .bpost-cta{color:var(--ink);margin-top:.4em;padding-bottom:.3em;border-bottom:2px solid var(--red);align-self:flex-start}
.bcard:hover .bcard-body .bpost-cta .arr{transform:translateX(4px)}
.bcard[hidden]{display:none}
/* empty + load more */
.bx-empty{text-align:center;color:var(--ink-soft);margin:clamp(30px,4vw,50px) 0 0;font-size:1.02rem}
.bx-empty button{background:none;border:0;color:var(--red);font:inherit;cursor:pointer;border-bottom:1px solid var(--red)}
.bx-more{display:flex;justify-content:center;margin-top:clamp(30px,3.6vw,48px)}
.bx-more[hidden]{display:none}
@media(max-width:960px){.bx-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.bfeature{grid-template-columns:1fr}.bfeature-img{min-height:clamp(220px,52vw,300px)}}
@media(max-width:620px){
  .bx-grid{grid-template-columns:1fr}
  .bx-toolbar{flex-direction:column;align-items:stretch}
  .bx-search{min-width:0}
  .bx-tabs{justify-content:flex-start;flex-wrap:wrap;overflow:visible;gap:7px}
  .bx-tabs button{flex:0 0 auto;font-size:.64rem;letter-spacing:.05em;padding:.55em .8em}
}

/* =========================================================
   NAVBAR v2 — refined premium floating bar
   ========================================================= */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;
  background:#0d0d10!important;border:none!important;border-bottom:1px solid var(--line-light)!important;
  box-shadow:0 10px 30px -22px rgba(0,0,0,.85)!important;
  padding:0!important;transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.site-header .nav{position:relative;max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:clamp(12px,1.8vw,26px);
  height:clamp(62px,6vw,76px);padding-inline:clamp(20px,2.4vw,40px)!important;
  background:transparent!important;border:none!important;border-radius:0!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;
  transition:height .4s var(--ease)}
.site-header .nav::before{display:none!important}
.site-header.scrolled{padding:0!important;background:#0d0d10!important;box-shadow:0 14px 34px -22px rgba(0,0,0,.95)!important}
.site-header.scrolled .nav{height:clamp(56px,5.4vw,66px);background:transparent!important;box-shadow:none!important}
/* brand */
.site-header .brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand-badge{width:clamp(40px,3.4vw,48px);height:clamp(40px,3.4vw,48px);display:grid;place-items:center;border-radius:50%;
  background:rgba(255,255,255,.05);border:1px solid var(--line-light);overflow:hidden;flex:none;transition:border-color .3s var(--ease)}
.site-header .brand:hover .brand-badge{border-color:var(--red)}
.brand-badge img{width:86%;height:86%;object-fit:contain}
.site-header .brand .bt b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;font-size:.95rem;color:#fff;line-height:1}
.site-header .brand .bt span{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.56rem;color:rgba(255,255,255,.5);margin-top:3px}
/* top utility bar — phone + email at the very top of the site */
.site-topbar{background:#070708;border-bottom:1px solid rgba(255,255,255,.08)}
.site-topbar .stb-inner{display:flex;align-items:center;gap:clamp(16px,2.4vw,30px);
  height:clamp(34px,3vw,40px);padding-inline:clamp(20px,2.4vw,40px)!important}
.stb-item{display:inline-flex;align-items:center;gap:.55em;color:rgba(255,255,255,.82);
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;
  white-space:nowrap;transition:color .25s var(--ease)}
.stb-item:hover{color:#fff}
.stb-item svg{width:14px;height:14px;color:var(--red);flex:none}
.stb-addr{margin-left:auto;color:rgba(255,255,255,.48);font-family:var(--cond);text-transform:uppercase;
  letter-spacing:.14em;font-size:.7rem;font-weight:700;white-space:nowrap}
/* collapse the utility bar once the user scrolls — keeps the sticky nav slim */
.site-header.scrolled .site-topbar{display:none}
@media(max-width:760px){
  .stb-addr{display:none}
  .site-topbar .stb-inner{justify-content:center;gap:clamp(14px,4vw,22px)}
  .stb-item{font-size:.66rem;letter-spacing:.04em}
}
@media(max-width:360px){
  .stb-item{font-size:.6rem;gap:.4em}
  .stb-item svg{width:12px;height:12px}
}
/* nav links — centered, animated underline */
.site-header .nav-links{display:flex;align-items:center;gap:clamp(2px,.8vw,8px);margin:0 auto}
.site-header .nav-links>a,.site-header .has-sub>a{position:relative;display:inline-flex;align-items:center;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:700;color:rgba(255,255,255,.68);padding:.7em .85em;
  background-image:linear-gradient(var(--red),var(--red));background-repeat:no-repeat;background-position:center calc(100% - .35em);background-size:0 2px;
  transition:color .25s var(--ease),background-size .3s var(--ease)}
.site-header .nav-links>a:hover,.site-header .has-sub>a:hover,.site-header .nav-links a.active{color:#fff;background-size:calc(100% - 1.7em) 2px}
.site-header .nav-links a::after{display:none}
.site-header .has-sub{position:relative}
.site-header .has-sub>a::after{display:none}
.site-header .submenu{position:absolute;left:0;top:calc(100% + 10px);min-width:252px;background:rgba(12,12,15,.98);
  border:1px solid var(--line-light);border-top:2px solid var(--red);border-radius:10px;padding:8px;
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:.28s var(--ease);box-shadow:0 28px 58px -28px rgba(0,0,0,.9)}
.site-header .has-sub:hover .submenu{opacity:1;visibility:visible;transform:none}
.site-header .submenu a{display:block;padding:.72em .8em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.75);border-radius:6px}
.site-header .submenu a::after{display:none}
.site-header .submenu a:hover{background:rgba(225,16,19,.14);color:#fff}
/* cta cluster */
.site-header .nav-cta{display:flex;align-items:center;gap:clamp(10px,1.4vw,18px);flex:none}
.site-header .nav-phone{display:flex;align-items:center;gap:10px;text-decoration:none;padding-left:clamp(10px,1.4vw,18px);border-left:1px solid var(--line-light)}
.np-ic{width:36px;height:36px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:none;
  background:var(--red);color:#fff;flex:0 0 36px;line-height:0;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.np-ic svg{width:16px;height:16px;display:block}
.site-header .nav-phone:hover .np-ic{transform:scale(1.06);box-shadow:0 0 0 4px rgba(225,16,19,.18)}
.np-tx{display:flex;flex-direction:column;line-height:1.05;font-family:var(--display);font-weight:800;font-size:.92rem;color:#fff;letter-spacing:-.01em}
.np-tx>span{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.54rem;color:rgba(255,255,255,.5);margin-bottom:3px}
.site-header .nav-trial{padding:.72em 1.15em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:.78rem}
.site-header .burger{display:none}
@media(max-width:1080px){
  .site-header .nav-links,.site-header .nav-phone{display:none}
  .site-header .nav-cta{margin-left:auto}
  .site-header .burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;
    border:1px solid var(--line-light);border-radius:10px;background:transparent;cursor:pointer}
  .site-header .burger span{display:block;width:20px;height:2px;background:#fff;margin:0 auto;transition:.3s var(--ease)}
}
@media(max-width:520px){
  .site-header .nav-trial{display:none}
  /* keep the "Winter Garden, FL" line under the wordmark on phones too (trial btn is hidden here,
     so there's room) — match the desktop lockup; tighten spacing a touch so it stays clean + never wraps */
  .site-header .brand .bt span{display:block;font-size:.52rem;letter-spacing:.16em;margin-top:2px}
}

/* =========================================================
   HERO — contained two-column (fixes image stretching/upscaling)
   ========================================================= */
.herox{display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:clamp(28px,4vw,64px);
  min-height:0;padding:clamp(118px,13vw,164px) clamp(24px,5vw,72px) clamp(54px,7vw,92px)}
.herox::before{-webkit-mask-image:radial-gradient(120% 100% at 0% 42%,#000,transparent 70%);mask-image:radial-gradient(120% 100% at 0% 42%,#000,transparent 70%)}
.herox-inner{position:relative;z-index:2;order:1;display:block;min-height:0;max-width:none;margin:0}
.herox .herox-inner{padding-inline:0}
.herox-content{max-width:560px;padding-block:0}
/* media: contained framed image — sized near native, no stretch */
.herox-media{position:relative;order:2;inset:auto;width:auto;height:auto;overflow:visible;clip-path:none;border:none;isolation:isolate;z-index:1}
.herox-media img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:4/3;max-height:clamp(360px,50vw,560px);
  object-fit:cover;object-position:center 32%;border:1px solid var(--line-light);box-shadow:0 42px 86px -42px rgba(0,0,0,.85);animation:none}
.herox-media::before{content:"";position:absolute;left:-16px;top:-16px;z-index:-1;width:clamp(62px,7vw,92px);height:clamp(62px,7vw,92px);background:var(--red)}
.herox-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(11,11,13,.32),transparent 56%),radial-gradient(70% 60% at 100% 100%,rgba(225,16,19,.18),transparent 60%)}
.herox-coords{display:none}
@media(max-width:980px){
  .herox{grid-template-columns:1fr;gap:clamp(22px,6vw,38px);padding-top:clamp(108px,24vw,138px)}
  .herox-media{order:0}
  .herox-media img{aspect-ratio:16/10;max-height:clamp(230px,58vw,340px)}
  .herox-content{max-width:none}
}

/* =========================================================
   HERO 2 — program montage hero (home page only)
   Desktop: the baked 5-panel banner (Kids JJ · Adults JJ · ATT
   medallion · Muay Thai · Cardio Kickboxing) runs full-bleed under
   the nav and doubles as a program selector — each photo panel is a
   clipped link traced to the artwork's own diagonal (dx/dy = -0.25,
   so every divider shifts 25% of the banner's height to the left as
   it descends). Copy + CTA sit directly beneath, keeping the ask in
   the first screen.
   Mobile runs the SAME banner, full width and uncropped — scaled down
   rather than re-cut into tiles, so no faces or heads get cut off.
   ========================================================= */
.hero2{position:relative;isolation:isolate;background:var(--charcoal);color:#fff;
  padding-top:clamp(100px,calc(14vw + 40px),132px)}      /* clears the fixed nav + top utility bar */
@media(min-width:981px){
  .hero2{padding-top:clamp(128px,calc(11vh + 44px),168px)}
}

/* ---------- the banner (all breakpoints) ---------- */
.h2-banner{position:relative;width:100%;max-width:1920px;margin-inline:auto;line-height:0;
  border-top:2px solid rgba(225,16,19,.85);border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:0 40px 90px -60px rgba(0,0,0,.9)}
/* The supplied artwork carries ~110px of dead black below the labels. Cropping it in CSS rather
   than re-encoding keeps the client's own WebP byte-for-byte — no second lossy pass on the
   baked type. object-position pins the top, so only the dead band is cut. */
.h2-banner img{display:block;width:100%;height:auto;aspect-ratio:2172/614;object-fit:cover;object-position:50% 0}
/* program hotspots — polygons trace the divider slant, so each hit area (and its wash)
   matches the panel the visitor actually sees rather than a rectangle straddling two panels.
   The wash lights the photo and fades out by 72% height, stopping short of the baked label band:
   the medallion's "AMERICAN TOP TEAM" wordmark overhangs its own diagonal into the Muay panel,
   so a wash that ran to the bottom would tint someone else's type. */
.h2-hot{position:absolute;inset:0;z-index:2;
  -webkit-clip-path:var(--poly);clip-path:var(--poly);
  background:linear-gradient(180deg,rgba(225,16,19,0) 0%,rgba(225,16,19,0) 40%,rgba(225,16,19,0) 58%,rgba(225,16,19,0) 72%);
  transition:background .3s var(--ease);-webkit-tap-highlight-color:transparent}
.h2-hot:hover,.h2-hot:focus-visible,.h2-hot:active{outline:none;
  background:linear-gradient(180deg,rgba(225,16,19,.05) 0%,rgba(225,16,19,.32) 40%,rgba(225,16,19,.26) 58%,rgba(225,16,19,0) 72%)}
.h2-hot span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* measured off the artwork: outer dividers were line-fitted from their accent hairlines, the two
   medallion edges read off the panel boundary (not its inner hexagonal glow, which slants the
   other way). If the banner art is ever re-exported, these four pairs are what needs re-checking. */
.h2-hot--kids  {--poly:polygon(0 0,      25.95% 0,  18.12% 100%,  0 100%)}
.h2-hot--adults{--poly:polygon(25.95% 0, 43.12% 0,  36.05% 100%, 18.12% 100%)}
.h2-hot--muay  {--poly:polygon(62.52% 0, 83.56% 0,  76.50% 100%, 54.97% 100%)}
.h2-hot--cardio{--poly:polygon(83.56% 0, 100% 0,    100% 100%,   76.50% 100%)}

/* ---------- copy block ---------- */
.h2-inner{position:relative;z-index:2}
.h2-content{max-width:min(600px,94%)}
.h2-title{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:.86;
  font-size:clamp(2.7rem,6vw,5.4rem);color:#fff;margin:0;text-shadow:0 2px 40px rgba(0,0,0,.55)}
.h2-lead{color:rgba(255,255,255,.84);max-width:42ch;margin:clamp(20px,2.4vw,30px) 0 0;font-size:1.04rem;line-height:1.6}
.h2-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:clamp(26px,3vw,36px)}
/* The rule above the CTA row starts as a solid red bar and only then fades to the usual hairline —
   a directional cue that points the eye at the button instead of just fencing off the section. */
.h2-bar{position:relative;--rule-lead:clamp(56px,6vw,104px)}
.h2-bar::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,var(--red) 0 var(--rule-lead),var(--line-light) var(--rule-lead))}
/* soft halo pooled under the CTA — lifts the button off the flat charcoal without adding chrome */
.hero2::after{content:"";position:absolute;z-index:0;pointer-events:none;left:0;bottom:0;
  width:min(880px,68%);height:min(400px,54%);
  background:radial-gradient(56% 60% at 24% 74%,rgba(50,58,150,.26),transparent 72%)}

@media(min-width:981px){
  /* the banner bakes the wordmark, so the <h1> stays in the DOM for SEO + screen readers only */
  .h2-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .h2-inner{padding-block:clamp(28px,3.2vw,46px) clamp(44px,5vw,72px)}
  .h2-content{max-width:none}
  /* with the headline baked into the art, the lead carries the value prop — size it like a deck */
  .h2-lead{margin:0;max-width:62ch;font-size:clamp(1.08rem,1.4vw,1.42rem);line-height:1.5;color:rgba(255,255,255,.9)}
  /* the ask, on its own rule: CTA left, proof right */
  .h2-bar{display:flex;align-items:center;justify-content:space-between;gap:clamp(28px,4vw,72px);flex-wrap:wrap;
    margin-top:clamp(24px,2.8vw,38px);padding-top:clamp(22px,2.4vw,32px)}
  .h2-bar-lead{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(10px,1.1vw,14px);flex:0 0 auto}
  .h2-bar .h2-cta{margin-top:0}
  .h2-bar .h2-trust{margin-top:0;padding-top:0;border-top:none;
    grid-template-columns:repeat(3,auto);gap:clamp(20px,2.6vw,48px);align-items:end}
  /* dial the proof numbers back a little so the button clearly out-weighs them in its own row */
  .h2-bar .h2-ti b{font-size:clamp(1.3rem,1.85vw,1.7rem)}
}
/* Short laptops (1280x720 / 1366x768): a 3.5:1 full-bleed banner plus roomy copy spacing pushes
   the CTA under the fold. Tighten the copy block — the banner keeps its full width, uncropped. */
@media(min-width:981px) and (max-height:830px){
  .h2-inner{padding-block:clamp(16px,2vw,26px) clamp(26px,3vw,40px)}
  .h2-lead{font-size:clamp(1rem,1.15vw,1.16rem);line-height:1.45}
  .h2-bar{margin-top:clamp(14px,1.6vw,20px);padding-top:clamp(13px,1.5vw,18px)}
  .hero2 .btn.h2-book{padding:1.3em 2.6em}
}
.hero2 .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.04);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hero2 .btn.ghost:hover{background:#fff;color:#0b0b0c}
/* Primary CTA — the visual priority of the hero. Deliberately larger than the nav's button so the
   two never read as equals, sitting on a resting lift + halo rather than leaning on the pulse alone.
   NOTE the selector weight: .btn.lg also sets font-size/padding, so a bare .h2-book loses to it. */
.hero2 .btn.h2-book{position:relative;font-size:clamp(1rem,1.05vw,1.14rem);letter-spacing:.16em;
  padding:1.5em 3.2em;
  box-shadow:0 16px 40px -18px var(--blue-glow),0 3px 0 rgba(0,0,0,.3)}
.h2-book::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  animation:heroRing 3s var(--ease) infinite}
.hero2 .btn.h2-book:hover{box-shadow:0 24px 54px -18px var(--blue-glow),0 3px 0 rgba(0,0,0,.3)}
@keyframes heroRing{0%{box-shadow:0 0 0 0 rgba(50,58,150,.32)}68%{box-shadow:0 0 0 8px rgba(50,58,150,0)}100%{box-shadow:0 0 0 0 rgba(50,58,150,0)}}
/* reassurance microline under the CTA — kills friction at the decision point */
.h2-assure{margin:15px 0 0;font-family:var(--cond);text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.72)}
.h2-assure-star{color:var(--red);margin-right:.4em}
/* trust row */
.h2-trust{display:grid;grid-template-columns:repeat(3,auto);gap:clamp(18px,3vw,46px);justify-content:start;
  margin-top:clamp(30px,3.6vw,44px);padding-top:clamp(22px,2.4vw,30px);border-top:1px solid var(--line-light)}
.h2-ti b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(1.5rem,2.4vw,2.1rem);color:#fff;line-height:1;letter-spacing:-.02em}
.h2-ti b span{color:var(--red)}
.h2-tl{display:block;margin-top:7px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.62)}
/* highlighted Google-rating tile */
.h2-ti--rating{position:relative}
.h2-ti--rating b span{color:var(--red);font-size:.72em;margin-left:.08em}
.h2-ti--rating .h2-tl{color:#fff}
.h2-ti--rating::after{content:"";position:absolute;left:0;bottom:-9px;width:30px;height:2px;background:var(--red)}
/* compact text tile (e.g. Kids, Teens & Adults) — matches the display font without a giant number */
.h2-ti--txt{display:flex;align-items:center}
.h2-ti--txt b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.06;letter-spacing:.01em;color:#fff}
/* respect reduced-motion: kill the CTA pulse */
@media(prefers-reduced-motion:reduce){
  .h2-book::after{animation:none}
  .h2-hot{transition:none}
}

@media(max-width:980px){
  /* Same structure as desktop, just stacked: banner, then the lead, then the ask, then proof.
     The banner keeps its natural 3.5:1 ratio and simply scales with the viewport — nothing is
     cropped, so every face in the artwork survives. */
  .h2-inner{padding-block:clamp(20px,5vw,30px) clamp(46px,11vw,68px)}
  .h2-content{max-width:none;min-width:0}
  /* the wordmark is baked into the banner, so the <h1> stays in the DOM for SEO + screen readers */
  .h2-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .h2-lead{margin:0;font-size:1rem;line-height:1.58;max-width:none;color:rgba(255,255,255,.82)}
  .h2-bar{margin-top:clamp(22px,5.5vw,30px);padding-top:clamp(20px,5vw,26px)}
  .h2-bar-lead{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .h2-cta{margin-top:0;gap:11px}
  .h2-assure{font-size:.68rem;letter-spacing:.1em;margin-top:16px}
  .h2-trust{margin-top:clamp(22px,5.5vw,30px);padding-top:clamp(20px,5vw,26px)}
}
@media(max-width:540px){
  .h2-trust{grid-template-columns:repeat(2,1fr);gap:18px 16px}
  .hero2 .btn.h2-book{padding:1.35em 2.2em}
}
@media(max-width:380px){
  /* keep the hero headline (esp. "Winter Garden") from clipping on very narrow phones / before the webfont swaps in */
  .h2-title{font-size:clamp(1.95rem,8.2vw,2.4rem);letter-spacing:-.045em}
}

/* =========================================================
   FREE TRIAL MODAL
   ========================================================= */
.tm-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:clamp(16px,3vw,40px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s}
.tm-modal.open{opacity:1;visibility:visible}
.tm-overlay{position:absolute;inset:0;background:rgba(6,6,8,.74);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.tm-card{position:relative;z-index:1;width:100%;max-width:620px;max-height:92vh;overflow:auto;
  background:linear-gradient(165deg,#1a1a1e,#0a0a0c 72%);color:#fff;border:1px solid rgba(255,255,255,.13);
  box-shadow:0 0 0 1px rgba(225,16,19,.16),0 80px 150px -50px rgba(0,0,0,.96),0 0 140px -50px rgba(225,16,19,.4);
  transform:translateY(26px) scale(.965);transition:transform .55s var(--ease)}
.tm-modal.open .tm-card{transform:none}
.tm-card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.09) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.09) 1px,transparent 1px);
  background-size:30px 30px;-webkit-mask-image:radial-gradient(120% 70% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(120% 70% at 100% 0%,#000,transparent 72%)}
.tm-bgword{position:absolute;right:-3%;bottom:-6%;z-index:0;pointer-events:none;font-family:var(--display);font-weight:900;
  text-transform:uppercase;line-height:.7;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05);font-size:13rem}
.tm-inner{position:relative;z-index:1;padding:clamp(28px,3.4vw,46px)}
/* staggered entrance */
@keyframes tmIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tm-modal.open .tm-inner>*{animation:tmIn .45s var(--ease) both}
.tm-modal.open .tm-inner>*:nth-child(2){animation-delay:.06s}
.tm-modal.open .tm-inner>*:nth-child(3){animation-delay:.12s}
/* brand header */
.tm-brand{display:flex;align-items:center;gap:12px;padding-bottom:clamp(16px,2vw,22px);margin-bottom:clamp(16px,2vw,22px);border-bottom:1px solid var(--line-light)}
.tm-brand-logo{width:40px;height:40px;object-fit:contain;flex:none}
.tm-brand-tx{display:flex;flex-direction:column;line-height:1}
.tm-brand-tx b{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;font-size:.82rem;color:#fff}
.tm-brand-tx span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.54rem;color:rgba(255,255,255,.5);margin-top:3px}
.tm-brand-pill{margin-left:auto;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;font-weight:700;padding:.55em .85em;white-space:nowrap}
/* progress */
.tm-progress{height:3px;background:rgba(255,255,255,.1);margin-bottom:4px}
.tm-progress-bar{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),#ff5052);transition:width .4s var(--ease)}
.tm-x{position:absolute;top:14px;right:16px;z-index:5;width:38px;height:38px;border:1px solid var(--line-light);
  background:rgba(7,7,9,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:.3s var(--ease)}
.tm-x:hover{background:var(--red);border-color:var(--red)}
/* head */
.tm-eyebrow{display:inline-flex;align-items:center;gap:.7em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.64rem;font-weight:700;color:var(--red)}
.tm-eyebrow::before{content:"";width:24px;height:2px;background:var(--red)}
.tm-head{margin-bottom:clamp(18px,2.2vw,26px)}
.tm-head h3{margin:.5em 0 .3em;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;font-size:clamp(1.7rem,3.2vw,2.5rem);color:#fff}
.tm-head h3 .accent{color:var(--red);font-style:italic}
.tm-head p{color:rgba(255,255,255,.72);font-size:.92rem;line-height:1.5;max-width:48ch}
.tm-trustchip{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:7px 12px;border:1px solid var(--line-light);
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.8)}
.tm-trustchip .rstars{color:var(--red);letter-spacing:1px;font-size:.8rem}
/* step labels */
.tm-step{display:flex;align-items:center;gap:11px;margin:clamp(18px,2.2vw,26px) 0 14px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:700;color:#fff}
.tm-step i{color:var(--red);font-style:normal;margin-left:-6px}
.tm-step-no{display:grid;place-items:center;width:26px;height:26px;background:var(--red);color:#fff;font-family:var(--display);font-weight:900;font-size:.74rem;flex:none}
/* fields — underline style */
.tm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tm-field{display:flex;flex-direction:column;gap:7px;margin-bottom:8px;min-width:0}
.tm-field label{display:inline-flex;align-items:center;gap:.5em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.62)}
.tm-field label i{color:var(--red);font-style:normal}
.tm-field input{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);border-bottom:2px solid rgba(225,16,19,.5);color:#fff;padding:.85em .95em;font-family:var(--sans);font-size:.95rem;border-radius:4px;transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.tm-field input::placeholder{color:rgba(255,255,255,.4)}
.tm-field input:focus{outline:none;border-color:rgba(225,16,19,.7);border-bottom-color:var(--red);background:rgba(225,16,19,.08);box-shadow:0 0 0 3px rgba(225,16,19,.15)}
.tm-field input.tm-bad{border-color:var(--red);border-bottom-color:var(--red);background:rgba(225,16,19,.14)}
/* program dropdown (replaces the radio cards; webhooks unaffected) */
.tm-select{appearance:none;-webkit-appearance:none;width:100%;background:rgba(255,255,255,.045) url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='14'%20height='14'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23e11013'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%209l6%206%206-6'/%3E%3C/svg%3E") no-repeat right .9em center;border:1px solid rgba(255,255,255,.12);border-bottom:2px solid rgba(225,16,19,.5);color:#fff;padding:.85em 2.4em .85em .95em;font-family:var(--sans);font-size:.95rem;border-radius:4px;cursor:pointer;transition:border-color .3s var(--ease),background-color .3s var(--ease),box-shadow .3s var(--ease)}
.tm-select:focus{outline:none;border-color:rgba(225,16,19,.7);border-bottom-color:var(--red);background-color:rgba(225,16,19,.08);box-shadow:0 0 0 3px rgba(225,16,19,.15)}
.tm-select.tm-bad{border-color:var(--red);border-bottom-color:var(--red);background-color:rgba(225,16,19,.14)}
.tm-select:invalid{color:rgba(255,255,255,.45)}
.tm-select option{color:#141414;background:#fff}
/* program radio cards */
.tm-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.tm-cards.tm-invalid{outline:1px solid var(--red);outline-offset:8px}
.tm-rcard{position:relative;display:flex;align-items:center;gap:12px;padding:14px 34px 14px 14px;border:1px solid var(--line-light);
  background:rgba(255,255,255,.03);cursor:pointer;overflow:hidden;transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.tm-rcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:bottom;transition:transform .3s var(--ease)}
.tm-rcard input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.tm-rcard:hover{border-color:rgba(225,16,19,.55);background:rgba(225,16,19,.07)}
.tm-rcard.is-checked{border-color:var(--red);background:rgba(225,16,19,.14);box-shadow:0 0 0 1px var(--red),0 0 26px -6px rgba(225,16,19,.55),0 18px 36px -20px rgba(225,16,19,.7);transform:translateY(-1px);animation:tmPop .38s var(--ease)}
.tm-rcard.is-checked::before{transform:scaleY(1)}
@keyframes tmPop{0%{transform:translateY(-1px) scale(1)}45%{transform:translateY(-2px) scale(1.02)}100%{transform:translateY(-1px) scale(1)}}
.tm-rc-ic{flex:none;width:34px;height:34px;display:grid;place-items:center;color:var(--red);background:rgba(225,16,19,.1);transition:.25s var(--ease)}
.tm-rcard.is-checked .tm-rc-ic{background:var(--red);color:#fff}
.tm-rc-ic svg{width:20px;height:20px}
.tm-rc-l{min-width:0}
.tm-rc-l b{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.04em;font-weight:700;font-size:.8rem;color:#fff;line-height:1.1}
.tm-rc-l small{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:rgba(255,255,255,.55);margin-top:3px}
.tm-rc-tick{position:absolute;top:9px;right:9px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;opacity:0;transform:scale(.5);transition:opacity .25s var(--ease),transform .25s var(--ease)}
.tm-rc-tick svg{width:11px;height:11px}
.tm-rcard.is-checked .tm-rc-tick{opacity:1;transform:scale(1)}
/* submit + note + error + urgency */
.tm-error{color:#ff6b6d;font-size:.82rem;margin:12px 0 0}
.tm-urgency{display:flex;align-items:center;gap:8px;margin:16px 0 0;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:700;color:rgba(255,255,255,.7)}
.tm-urgency svg{width:14px;height:14px;color:var(--red);flex:none}
.tm-submit{width:100%;justify-content:center;margin-top:14px;position:relative;overflow:hidden;letter-spacing:.14em;box-shadow:0 18px 40px -18px rgba(225,16,19,.85)}
.tm-submit::after{content:"";position:absolute;top:-50%;left:-60%;width:40%;height:200%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .7s var(--ease);pointer-events:none}
.tm-submit:hover::after{left:130%}
.tm-note{display:block;text-align:center;line-height:1.9;font-family:var(--cond);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.5);margin-top:16px}
.tm-note span{white-space:nowrap}
.tm-note b{color:var(--red);font-weight:700;margin:0 .55em}
.tm-consent{text-align:center;line-height:1.5;font-size:.66rem;color:rgba(255,255,255,.45);margin-top:12px}
.tm-consent a{color:rgba(255,255,255,.7);text-decoration:underline}
.tm-optin{display:flex;flex-direction:column;gap:10px;margin:14px 0 4px}
.tm-opt{display:flex;align-items:flex-start;gap:10px;font-size:.7rem;line-height:1.45;color:rgba(255,255,255,.62);cursor:pointer;text-align:left}
.tm-opt input{flex:none;width:16px;height:16px;margin-top:1px;accent-color:var(--red);cursor:pointer}
@media(max-width:560px){
  .tm-row{grid-template-columns:1fr}
  .tm-cards{grid-template-columns:1fr}
  .tm-bgword{font-size:9rem}
}
@media(prefers-reduced-motion:reduce){
  .tm-modal,.tm-card,.tm-rcard{transition:none}
}

/* =========================================================
   FREE TRIAL MODAL — premium split layout (cinematic)
   ========================================================= */
.tm-card.tm-split{max-width:560px;padding:0}
.tm-grid{display:grid;grid-template-columns:1fr;min-height:0}
/* LEFT visual panel */
.tm-aside{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(28px,2.8vw,44px);
  background:radial-gradient(120% 90% at 0% 100%,rgba(225,16,19,.32),transparent 56%),radial-gradient(80% 60% at 100% 0%,rgba(225,16,19,.14),transparent 60%),linear-gradient(160deg,#1a1a1e,#08080a 82%)}
.tm-aside-media{position:absolute;inset:0;z-index:0}
.tm-aside-media img{width:100%;height:100%;object-fit:cover;object-position:center 24%;filter:contrast(1.08) saturate(1.04)}
.tm-modal.open .tm-aside-media img{animation:tmImg 1.3s var(--ease) both}
@keyframes tmImg{from{opacity:0;transform:scale(1.12)}to{opacity:1;transform:none}}
/* subtle depth: gentle bottom fade for text legibility + edge fade into form panel */
.tm-aside::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,transparent 50%,rgba(8,8,10,.5) 100%),
    linear-gradient(105deg,transparent 60%,rgba(8,8,10,.55))}
/* diagonal red accent line + soft top key-light (painted above the gradient) */
.tm-aside::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.6;
  background:
    linear-gradient(116deg,transparent 38%,rgba(225,16,19,.6) 39.2%,rgba(225,16,19,.6) 39.7%,transparent 41%),
    linear-gradient(180deg,rgba(255,255,255,.11),transparent 22%)}
.tm-aside-word{position:absolute;left:clamp(22px,2.4vw,34px);top:clamp(18px,2.2vw,28px);z-index:1;pointer-events:none;
  font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.8;letter-spacing:-.03em;
  font-size:clamp(2.4rem,4.4vw,3.6rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.14)}
.tm-aside-inner{position:relative;z-index:2}
.tm-aside .tm-brand{border-bottom:0;padding-bottom:0;margin-bottom:18px}
.tm-aside-pill{display:inline-flex;align-items:center;gap:.6em;background:var(--red);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:700;padding:.6em 1em;margin-bottom:18px;box-shadow:0 12px 30px -14px rgba(225,16,19,.9)}
.tm-aside-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.22)}
.tm-aside-inner h3{margin:0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.9;font-size:clamp(1.6rem,2.5vw,2.35rem);color:#fff;text-shadow:0 12px 42px rgba(0,0,0,.55)}
.tm-aside-inner h3 .accent{color:var(--red);font-style:italic}
.tm-aside-inner>p{color:rgba(255,255,255,.82);font-size:.92rem;line-height:1.5;margin:.7em 0 0;max-width:34ch}
.tm-benefits{list-style:none;margin:clamp(18px,2.2vw,24px) 0 0;padding:0;display:flex;flex-direction:column;gap:11px}
.tm-benefits li{position:relative;padding-left:30px;font-family:var(--sans);font-size:.9rem;font-weight:500;color:#fff;line-height:1.3}
.tm-benefits li::before{content:"";position:absolute;left:0;top:1px;width:19px;height:19px;border-radius:50%;background:var(--red);box-shadow:0 6px 16px -6px rgba(225,16,19,.9)}
.tm-benefits li::after{content:"";position:absolute;left:6px;top:7px;width:6px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.tm-rating{display:flex;align-items:center;gap:12px;margin-top:clamp(20px,2.4vw,28px);padding-top:clamp(16px,2vw,22px);border-top:1px solid var(--line-light)}
.tm-rating .rstars{color:var(--red);letter-spacing:2px;font-size:1rem}
.tm-rating b{display:block;font-family:var(--display);font-weight:800;font-size:1.2rem;color:#fff;line-height:1}
.tm-rating span{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.56rem;color:rgba(255,255,255,.62)}
/* RIGHT form panel */
.tm-main{position:relative;overflow:hidden;padding:clamp(22px,2.6vw,34px) clamp(26px,3vw,42px) clamp(28px,3.2vw,44px);background:linear-gradient(160deg,#161619,#0c0c0e 80%)}
.tm-main>*{position:relative;z-index:1}
/* diagonal sheen + red corner glow behind the form */
.tm-main::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(58% 48% at 100% 0%,rgba(225,16,19,.14),transparent 60%)}
/* subtle film-grain noise */
.tm-main::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.tm-split .tm-bgword{position:absolute;right:-4%;top:-7%;bottom:auto;z-index:0;font-size:12rem;-webkit-text-stroke:1px rgba(255,255,255,.06)}
.tm-head h4{margin:.4em 0 .35em;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.92;font-size:clamp(1.6rem,2.8vw,2.25rem);color:#fff}
.tm-head h4 .accent{color:var(--red);font-style:italic}
/* staggered entrance */
.tm-modal.open .tm-aside-inner>*,.tm-modal.open .tm-main>*{animation:tmIn .55s var(--ease) both}
.tm-modal.open .tm-aside-inner>*:nth-child(2){animation-delay:.07s}
.tm-modal.open .tm-aside-inner>*:nth-child(3){animation-delay:.14s}
.tm-modal.open .tm-aside-inner>*:nth-child(4){animation-delay:.21s}
.tm-modal.open .tm-aside-inner>*:nth-child(5){animation-delay:.28s}
.tm-modal.open .tm-aside-inner>*:nth-child(6){animation-delay:.35s}
.tm-modal.open .tm-main>*:nth-child(2){animation-delay:.12s}
.tm-modal.open .tm-main>*:nth-child(3){animation-delay:.2s}
.tm-modal.open .tm-main>*:nth-child(4){animation-delay:.28s}
/* mobile: stack image above form */
@media(max-width:820px){
  .tm-card.tm-split{max-width:560px}
  .tm-grid{grid-template-columns:1fr}
  .tm-aside{min-height:0;padding:clamp(78px,24vw,128px) 20px 22px}
  .tm-aside-media img{object-position:center 22%}
  .tm-aside-word{font-size:2.2rem}
  .tm-aside-inner h3 br,.tm-head h4 br{display:none}
}
@media(max-width:560px){
  .tm-main{padding:22px 18px 26px}
  .tm-aside-inner>p{display:none}
  .tm-benefits{gap:8px}
  .tm-rating{margin-top:16px;padding-top:14px}
}
@media(prefers-reduced-motion:reduce){
  .tm-aside-media img,.tm-modal.open .tm-aside-inner>*,.tm-modal.open .tm-main>*{animation:none}
  .tm-rcard.is-checked{animation:none}
}
/* honeypot — CSS-hidden anti-spam field (never type=hidden) */
.tm-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* =========================================================
   BOOKING PAGE — final step + per-program calendars
   ========================================================= */
.booknow{position:relative;overflow:hidden;background:var(--charcoal);color:#fff;isolation:isolate;
  padding:clamp(96px,12vw,128px) 0 clamp(34px,4.5vw,56px);text-align:center}
.booknow-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.booknow-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1) contrast(1.08);animation:kenburns 26s ease-in-out infinite alternate}
.booknow-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.5) 0%,rgba(8,8,10,.74) 58%,rgba(8,8,10,.92) 100%)}
.booknow::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(to right,rgba(225,16,19,.11) 1px,transparent 1px),linear-gradient(to bottom,rgba(225,16,19,.11) 1px,transparent 1px);
  background-size:34px 34px;animation:gridPan 30s linear infinite;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 72%);mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 72%)}
.booknow::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(58% 58% at 50% 0%,rgba(225,16,19,.34),transparent 60%),radial-gradient(80% 50% at 50% 122%,rgba(225,16,19,.16),transparent 60%)}
.bn-bigtype{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:1;pointer-events:none;white-space:nowrap;
  font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.04em;line-height:.7;
  font-size:clamp(5rem,15vw,12.5rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05)}
.booknow-inner{position:relative;z-index:2;max-width:900px;margin:0 auto}
.bn-pill{display:inline-flex;align-items:center;gap:.65em;background:var(--red);color:#fff;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.74rem;font-weight:700;
  padding:.72em 1.25em;box-shadow:0 16px 40px -16px rgba(225,16,19,.9)}
.bn-pulse{width:8px;height:8px;border-radius:50%;background:#fff;animation:bnPulse 1.8s ease-out infinite}
@keyframes bnPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}100%{box-shadow:0 0 0 10px rgba(255,255,255,0)}}
.booknow h1{margin:clamp(16px,2vw,24px) 0 0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:.92;font-size:clamp(2rem,4.8vw,3.5rem);color:#fff}
.booknow h1 .accent{color:var(--red);font-style:italic}
.booknow .lead{color:rgba(255,255,255,.82);max-width:60ch;margin:clamp(16px,2vw,22px) auto 0}
.booknow .lead b{color:#fff;border-bottom:2px solid var(--red);padding-bottom:1px}
.bn-steps{display:inline-flex;align-items:center;gap:14px;margin-top:clamp(20px,2.6vw,30px);flex-wrap:wrap;justify-content:center}
.bn-step{display:inline-flex;align-items:center;gap:9px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;padding:.72em 1.1em;border:1px solid var(--line-light)}
.bn-step.done{color:rgba(255,255,255,.72)}
.bn-step.now{color:#fff;border-color:var(--red);background:rgba(225,16,19,.12)}
.bn-step-ic,.bn-step-no{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font-size:.72rem}
.bn-step-no{font-family:var(--display);font-weight:900}
.bn-step-line{width:34px;height:2px;background:var(--line-light)}
/* booking page: get visitors to the calendar fast — tighter section top than the generic .section */
.bookcal{padding-top:clamp(34px,4vw,56px)}

/* program selector — image-forward editorial cards */
.bk-select-head{text-align:center;max-width:680px;margin:0 auto clamp(30px,3.6vw,48px)}
.bk-select-head h2{margin:.4em 0 .35em}
.bk-select-head .accent{color:var(--red)}
.bk-progs{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:clamp(14px,1.6vw,22px);max-width:1000px;margin:0 auto}
.bk-prog{position:relative;display:flex;flex-direction:column;text-align:left;padding:0;background:var(--paper);
  border:1px solid var(--line);cursor:pointer;overflow:hidden;
  transition:border-color .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)}
.bk-prog:hover,.bk-prog:focus-visible{border-color:var(--red);transform:translateY(-5px);box-shadow:0 34px 64px -32px rgba(225,16,19,.55);outline:none}
.bk-prog-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.bk-prog-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.18) contrast(1.03);transition:transform .8s var(--ease),filter .5s var(--ease)}
.bk-prog:hover .bk-prog-media img{transform:scale(1.08);filter:grayscale(0) contrast(1.02)}
.bk-prog-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(11,11,13,.02),rgba(11,11,13,.22)),radial-gradient(62% 60% at 0% 100%,rgba(225,16,19,.2),transparent 60%)}
.bk-prog-no{position:absolute;left:0;top:0;z-index:2;background:var(--red);color:#fff;font-family:var(--display);font-weight:900;font-size:.84rem;letter-spacing:.02em;line-height:1;padding:.55em .8em}
.bk-prog-body{position:relative;display:flex;flex-direction:column;gap:3px;padding:clamp(15px,1.6vw,20px)}
.bk-prog-t{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.04rem;color:var(--ink);line-height:1.06}
.bk-prog-age{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:700;color:var(--ink-faint)}
.bk-prog-cta{display:inline-flex;align-items:center;gap:.5em;margin-top:11px;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--red)}
.bk-prog-cta .arr{transition:transform .35s var(--ease)}
.bk-prog:hover .bk-prog-cta .arr{transform:translateX(5px)}

/* calendar stage */
.bk-calhead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(20px,2.4vw,30px);padding-bottom:clamp(16px,2vw,22px);border-bottom:1px solid var(--line)}
.bk-calhead h2{margin:.35em 0 .25em}
.bk-calsub{color:var(--ink-soft);font-size:.95rem;margin:0;max-width:52ch}
.bk-change{white-space:nowrap}
.bk-calcard{position:relative;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--red);
  box-shadow:0 40px 90px -50px rgba(0,0,0,.5),0 0 0 1px rgba(225,16,19,.05);padding:clamp(8px,1.4vw,18px);overflow:hidden}
/* 760px floor: taller than the GHL widget's tallest fixed screen at every width we measured
   (month view reports ~726-785, slot screens less, the contact-form step self-grows past it).
   The floor also stops the box from shrink-jumping between the widget's wizard screens. */
.bk-calmount{min-height:760px}
.bk-calmount iframe{width:100%;min-height:760px;border:0;display:block;background:transparent}
.bk-help{text-align:center;color:var(--ink-faint);font-size:.9rem;margin:clamp(18px,2.2vw,26px) auto 0}
.bk-help a{color:var(--red);border-bottom:1px solid var(--red)}

@media(max-width:680px){
  .bk-progs{grid-template-columns:1fr}
  .bk-calhead{align-items:flex-start}
  .bk-calmount,.bk-calmount iframe{min-height:760px}
}
@media(prefers-reduced-motion:reduce){.bn-pulse{animation:none}.booknow::before{animation:none}}

/* =========================================================
   FHERO — image-free editorial hero (schedule · blog · contact)
   Dark combat theme: animated red grid, ghost wordmark, red accents.
   ========================================================= */
.fhero{position:relative;overflow:hidden;isolation:isolate;background:var(--charcoal);color:#fff;border-bottom:1px solid var(--line-light)}
/* animated faint red grid */
.fhero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(to right,var(--grid-red-dark) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-red-dark) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(125% 115% at 100% 0%,#000,transparent 72%);mask-image:radial-gradient(125% 115% at 100% 0%,#000,transparent 72%);
  animation:gridPan 26s linear infinite}
/* red corner glow */
.fhero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(52% 64% at 94% -8%,rgba(225,16,19,.30),transparent 60%)}
/* giant outlined ghost wordmark */
.fhero-word{position:absolute;right:-2.5%;bottom:-14%;z-index:0;margin:0;pointer-events:none;user-select:none;white-space:nowrap;
  font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.7;letter-spacing:-.05em;
  font-size:clamp(7rem,23vw,23rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.06)}
.fhero-inner{position:relative;z-index:2;padding-block:clamp(118px,15vw,182px) clamp(48px,7vw,88px)}
.fhero-inner>*{max-width:100%}
/* crumbs */
.fhero-crumbs{display:flex;align-items:center;gap:.55em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;font-weight:700;color:rgba(255,255,255,.55);margin-bottom:clamp(16px,2vw,22px)}
.fhero-crumbs a{color:rgba(255,255,255,.55);transition:color .25s var(--ease)}
.fhero-crumbs a:hover{color:#fff}
.fhero-crumbs .sep{color:var(--red)}
/* eyebrow with red tick */
.fhero-eyebrow{display:inline-flex;align-items:center;gap:.7em;font-family:var(--cond);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:700;color:var(--red)}
.fhero-eyebrow::before{content:"";width:32px;height:2px;background:var(--red)}
/* title */
.fhero-title{margin:.32em 0 .34em;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:.86;
  font-size:clamp(2.8rem,7vw,6rem);color:#fff}
.fhero-title em{font-style:normal;color:var(--red)}
/* lead */
.fhero-lead{max-width:56ch;margin:0;color:rgba(255,255,255,.74);font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.6}
/* coordinates tag */
.fhero-coords{position:absolute;right:clamp(20px,3vw,46px);bottom:clamp(16px,2.2vw,28px);z-index:3;pointer-events:none;
  font-family:var(--cond);text-transform:uppercase;letter-spacing:.2em;font-size:.6rem;font-weight:700;color:rgba(255,255,255,.4)}

/* --- schedule: week ribbon --- */
.fweek{display:flex;flex-wrap:wrap;gap:clamp(6px,.8vw,10px);margin-top:clamp(28px,3.6vw,44px)}
.fweek-day{flex:1 1 0;min-width:72px;display:flex;flex-direction:column;gap:7px;padding:clamp(12px,1.4vw,18px) clamp(8px,1vw,14px);
  border:1px solid var(--line-light);border-top:2px solid var(--red);background:rgba(255,255,255,.025);transition:background .25s var(--ease),transform .25s var(--ease)}
.fweek-day:hover{background:rgba(225,16,19,.1);transform:translateY(-3px)}
.fweek-day b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700;color:#fff}
.fwk-n{font-family:var(--display);font-weight:900;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1;color:#fff}
.fwk-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.54rem;color:rgba(255,255,255,.45)}
.fweek-day.is-rest{border-top-color:var(--line-light);opacity:.5}
.fweek-day.is-rest .fwk-n{font-size:1rem;color:rgba(255,255,255,.6)}
.fweek-cap{margin:clamp(16px,2vw,22px) 0 0;font-family:var(--cond);text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:700;color:rgba(255,255,255,.55)}
.fweek-cap b{color:var(--red)}

/* --- contact: quick-info tiles --- */
.finfo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,16px);margin-top:clamp(28px,3.6vw,44px);max-width:720px}
.finfo-tile{display:flex;flex-direction:column;gap:7px;padding:clamp(14px,1.7vw,22px);border:1px solid var(--line-light);border-top:2px solid var(--red);background:rgba(255,255,255,.025);text-decoration:none;transition:background .25s var(--ease),transform .25s var(--ease)}
a.finfo-tile:hover{background:rgba(225,16,19,.1);transform:translateY(-3px)}
.finfo-l{font-family:var(--cond);text-transform:uppercase;letter-spacing:.18em;font-size:.58rem;font-weight:700;color:var(--red)}
.finfo-v{font-family:var(--display);font-weight:800;color:#fff;font-size:clamp(.96rem,1.3vw,1.12rem);line-height:1.2}
.finfo-s{font-family:var(--cond);font-size:.66rem;letter-spacing:.04em;color:rgba(255,255,255,.5)}

@media(max-width:640px){
  .fhero-word{font-size:clamp(6rem,30vw,9rem)}
  .finfo{grid-template-columns:1fr}
  .fweek-day{min-width:calc(33.333% - 8px)}
}
@media(prefers-reduced-motion:reduce){.fhero::before{animation:none}}

/* compact fhero variant — contact · blog (smaller title + tighter section) */
.fhero-sm .fhero-inner{padding-block:clamp(104px,11.5vw,150px) clamp(40px,5.5vw,66px)}
.fhero-sm .fhero-title{font-size:clamp(2.4rem,5.2vw,4.6rem)}
