/* Sky Athletics — site styles. Tokens follow brand/brand_guide.md (v1). */
:root{
  --red:#D83223; --red-deep:#A8241A; --black:#1B1719; --ink:#121011; --white:#fff;
  --chalk:#F6F3F1; --gold:#C9A14A; --gold-light:#E8CF8E; --silver:#B8B8BE; --steel:#5E585B; --line:#E4DFDB;
  --display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --body:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --radius:6px; --radius-lg:14px; --shadow:0 18px 40px -18px rgba(27,23,25,.35);
  --container:1320px; --header-h:84px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:18px;line-height:1.6;color:var(--black);background:var(--chalk);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video,iframe{display:block;max-width:100%}
picture{display:block}
img{height:auto}
a{color:var(--red-deep);text-underline-offset:3px}
a:hover{color:var(--red)}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0 0 .4em;line-height:1}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:12px;top:-60px;z-index:1000;background:var(--white);color:var(--black);padding:10px 16px;border-radius:var(--radius);font-weight:700;transition:top .2s}
.skip-link:focus{top:12px}
main:focus{outline:none}
.container{width:min(100% - 40px,var(--container));margin-inline:auto}
.narrow{width:min(100% - 40px,880px)}
.center{text-align:center}
.small{font-size:15px;line-height:1.5;color:var(--steel)}
.muted{color:inherit;opacity:.75}
code{font-size:.9em;background:rgba(0,0,0,.06);padding:2px 6px;border-radius:4px}

/* ---------- type ---------- */
.display,.hero__title,.h3,.h4{font-family:var(--display);text-transform:uppercase;font-style:italic;letter-spacing:.005em}
.display{font-weight:900;font-size:clamp(38px,5vw,56px);line-height:.95}
.display--xl{font-size:clamp(52px,7.2vw,88px);line-height:.92}
.display--md{font-size:clamp(34px,4vw,48px)}
.display em,.hero__title em{font-style:italic;color:var(--red)}
.section--dark .display em,.page-hero .display em,.trial-hero .display em,.shop-hero .display em{color:var(--red)}
.h3{font-weight:800;font-size:clamp(24px,2.4vw,30px);line-height:1.05}
.h4{font-weight:800;font-size:22px;margin-top:1.2em}
h3{font-family:var(--display);font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(24px,2.4vw,30px);line-height:1.05}
.eyebrow{font-family:var(--body);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 14px}
.eyebrow--light{color:var(--silver)}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--steel);max-width:62ch}
.lead--light{color:rgba(255,255,255,.86)}
.section-head{max-width:760px;margin:0 0 44px}
.section-head .lead{margin-top:14px}
.section-head--row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.center .section-head,.section-head.center{margin-inline:auto}

/* ---------- confirm tags (draft) ---------- */
.tbc{display:inline-block;font:700 11px/1.2 var(--body);letter-spacing:.04em;text-transform:uppercase;font-style:normal;color:#8a1a10;background:#FFE9A8;border:1px dashed #C9861A;padding:2px 6px;border-radius:4px;vertical-align:middle;white-space:normal;text-shadow:none}
.tbc.is-flash{animation:flash 1.4s ease 2}
@keyframes flash{50%{background:#ffcf3f;box-shadow:0 0 0 6px rgba(255,207,63,.45)}}
.tbc-pill{position:fixed;left:16px;bottom:16px;z-index:90;background:#FFE9A8;color:#5c1209;border:1px dashed #C9861A;border-radius:999px;padding:8px 14px;font:700 13px var(--body);cursor:pointer;box-shadow:var(--shadow)}
.tbc-note{color:#8a1a10}

/* ---------- buttons ---------- */
.btn{--bg:var(--black);--fg:var(--white);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:14px 28px;border-radius:var(--radius);border:2px solid var(--bg);background:var(--bg);color:var(--fg);font:800 18px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background .2s,border-color .2s,color .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{color:var(--fg);transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(0,0,0,.45)}
.btn:active{transform:none}
.btn--primary{--bg:var(--red)}
.btn--primary:hover{--bg:var(--red-deep)}
.btn--dark{--bg:var(--black)}
.btn--dark:hover{--bg:#000}
.btn--light{--bg:var(--white);--fg:var(--black)}
.btn--light:hover{--fg:var(--red-deep)}
.btn--outline-light{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white)}
.btn--outline-light:hover{background:var(--white);color:var(--black)}
.btn--ghost{background:transparent;border-color:currentColor;color:var(--black)}
.btn--sm{min-height:42px;padding:10px 18px;font-size:16px}
.btn--lg{min-height:56px;padding:16px 32px;font-size:19px}
.btn--block{width:100%}
.link-arrow{font-weight:700;color:var(--red-deep);text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.link-arrow::after{content:"→";transition:transform .2s var(--ease)}
.link-arrow:hover::after,a:hover .link-arrow::after{transform:translateX(4px)}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:80;color:var(--white);transition:background .3s,box-shadow .3s,height .3s}
.site-header::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,16,17,.75),rgba(18,16,17,0));pointer-events:none;transition:opacity .3s}
.site-header.is-scrolled{background:rgba(27,23,25,.97);box-shadow:0 8px 24px -12px rgba(0,0,0,.5);backdrop-filter:saturate(1.4) blur(8px)}
.site-header.is-scrolled::before{opacity:0}
.site-header__bar{position:relative;display:flex;align-items:center;gap:22px;height:var(--header-h);transition:height .3s}
.site-header.is-scrolled .site-header__bar{height:66px}
.brand{position:relative;display:block;flex:none;width:132px;height:64px}
.brand .logo,.brand .wordmark{position:absolute;left:0;top:50%;transform:translateY(-50%);transition:opacity .3s,transform .3s}
.brand .logo img{width:132px;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.brand .wordmark{opacity:0}
.brand .wordmark img{width:96px;height:auto}
.site-header.is-scrolled .brand .logo{opacity:0;transform:translateY(-50%) scale(.8)}
.site-header.is-scrolled .brand .wordmark{opacity:1}
.nav{margin-left:auto}
.nav__list{display:flex;gap:2px;list-style:none;margin:0;padding:0;align-items:center}
.nav__item{position:relative}
.nav__link{display:flex;align-items:center;gap:6px;padding:10px 11px;border:0;background:none;color:var(--white);font:700 15px var(--body);text-decoration:none;border-radius:var(--radius);cursor:pointer;white-space:nowrap}
.nav__link svg{width:11px;transition:transform .2s}
.nav__link:hover,.nav__link[aria-current],.nav__item.is-current>.nav__link{color:var(--white);background:rgba(255,255,255,.1)}
.nav__link[aria-current]{box-shadow:inset 0 -3px 0 var(--red)}
.nav__sub{position:absolute;top:calc(100% + 8px);left:-10px;min-width:280px;list-style:none;margin:0;padding:10px;background:var(--white);color:var(--black);border-radius:var(--radius-lg);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s var(--ease)}
.nav__sub a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--black)}
.nav__sub a strong{display:block;font-size:15px}
.nav__sub a span{font-size:13px;color:var(--steel)}
.nav__sub a:hover,.nav__sub a[aria-current]{background:var(--chalk)}
.has-sub:hover .nav__sub,.has-sub:focus-within .nav__sub,.has-sub.is-open .nav__sub{opacity:1;visibility:visible;transform:none}
.has-sub.is-open .nav__toggle svg,.has-sub:hover .nav__toggle svg{transform:rotate(180deg)}
.header-cta{display:flex;align-items:center;gap:14px;flex:none}
.portal-link{color:var(--white);font:700 15px var(--body);text-decoration:none;white-space:nowrap;opacity:.9}
.portal-link:hover{color:var(--white);opacity:1;text-decoration:underline}
.menu-btn{display:none;margin-left:auto;width:48px;height:48px;border:0;border-radius:var(--radius);background:rgba(255,255,255,.08);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.menu-btn span{display:block;width:24px;height:2.5px;background:var(--white);border-radius:2px;transition:.3s var(--ease)}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:70;background:var(--black);color:var(--white);padding:calc(var(--header-h) + 10px) 24px 120px;overflow-y:auto;display:flex;flex-direction:column;gap:28px;opacity:0;transform:translateY(-12px);transition:opacity .3s,transform .3s var(--ease)}
.mobile-menu.is-open{opacity:1;transform:none}
.mnav{list-style:none;margin:0;padding:0}
.mnav>li>a,.mnav__group li a{display:block;padding:10px 0;color:var(--white);text-decoration:none;font:800 italic 30px/1.1 var(--display);text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08)}
.mnav a[aria-current]{color:var(--red)}
.mnav__label{display:block;margin:18px 0 2px;font:700 13px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--silver)}
.mnav__group ul{list-style:none;margin:0;padding:0}
.mobile-menu__cta{display:grid;gap:12px}
.mobile-menu__foot a{color:var(--white)}
body.menu-open{overflow:hidden}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,940px);display:flex;align-items:flex-end;color:var(--white);background:var(--ink);overflow:hidden;isolation:isolate}
.hero__media,.hero__media picture,.hero__img img,.hero__video{position:absolute;inset:0;width:100%;height:100%}
.hero__media img,.hero__video{width:100%;height:100%;object-fit:cover;animation:herofade .9s ease-out both}
/* opacity-only fade: no scaling, so the photo is never upsampled */
@keyframes herofade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.hero__media img,.hero__video{animation:none}}
.hero__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(18,16,17,.92) 0%,rgba(18,16,17,.6) 45%,rgba(18,16,17,.15) 100%),linear-gradient(0deg,rgba(18,16,17,.9) 0%,rgba(18,16,17,0) 45%)}
.hero__shade::after{content:"";position:absolute;right:-8%;top:-10%;width:42%;height:130%;background:var(--red);transform:skewX(-14deg);mix-blend-mode:multiply;opacity:.55}
.hero__inner{position:relative;z-index:2;padding:calc(var(--header-h) + 60px) 0 96px}
.hero__kicker span{color:var(--red);margin:0 6px}
.hero__title{font-weight:900;font-size:clamp(76px,13vw,184px);line-height:.84;margin:0 0 24px;text-shadow:0 6px 30px rgba(0,0,0,.35)}
.hero__title span{display:inline-block}
.hero__accent{color:var(--red);-webkit-text-stroke:0}
.hero__lead{font-size:clamp(18px,1.7vw,22px);max-width:40ch;color:rgba(255,255,255,.9);margin-bottom:30px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}
.hero__ctas--center{justify-content:center}
.hero__meta{display:flex;gap:34px;list-style:none;padding:0;margin:40px 0 0;font-size:15px;color:var(--silver)}
.hero__meta strong{display:block;color:var(--white);font:800 italic 22px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.hero__scroll{position:absolute;z-index:2;left:50%;bottom:22px;width:28px;height:46px;border:2px solid rgba(255,255,255,.6);border-radius:20px;transform:translateX(-50%)}
.hero__scroll span{position:absolute;left:50%;top:8px;width:4px;height:9px;margin-left:-2px;background:var(--white);border-radius:2px;animation:scrolly 1.8s infinite}
@keyframes scrolly{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* ---------- marquee ---------- */
.marquee{background:var(--red);color:var(--white);overflow:hidden;padding:14px 0;transform:skewY(-1.2deg);margin-top:-14px;position:relative;z-index:3;box-shadow:0 10px 30px -15px rgba(0,0,0,.5)}
.marquee__track{display:flex;gap:28px;width:max-content;animation:marquee 32s linear infinite;font:900 italic 26px/1 var(--display);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.marquee i{font-style:normal;color:var(--black)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.section{padding:clamp(72px,9vw,120px) 0;position:relative}
.section--tint{background:var(--white)}
.section--dark{background:var(--black);color:var(--white)}
.section--dark .small{color:var(--silver)}
.section--dark a:not(.btn){color:var(--white)}
.halftone{background-image:radial-gradient(rgba(255,255,255,.07) 1.1px,transparent 1.6px);background-size:12px 12px}
.section--dark.halftone{background-color:var(--black)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}
.split--rev>:first-child{order:2}
.split--top{align-items:start;margin-top:56px}
.rounded img,img.rounded,.rounded{border-radius:var(--radius-lg)}
.rounded img{box-shadow:var(--shadow)}

/* stats */
.stats{background:var(--black);color:var(--white);padding:70px 0 54px}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{border-left:3px solid var(--red);padding-left:18px}
.stat__num{display:block;font:900 italic clamp(48px,6vw,76px)/.9 var(--display)}
.stat__label{font-size:15px;color:var(--silver);text-transform:uppercase;letter-spacing:.1em;font-weight:700}

/* programs */
.program-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(300px,auto);gap:18px}
.program{position:relative;display:flex;flex-direction:column;justify-content:flex-end;border-radius:var(--radius-lg);overflow:hidden;color:var(--white);text-decoration:none;background:var(--black);isolation:isolate;min-height:300px}
.program--lg{grid-column:span 2;grid-row:span 2}
.program__img,.program__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s var(--ease)}
.program::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(18,16,17,.95) 0%,rgba(18,16,17,.35) 55%,rgba(18,16,17,.05) 100%)}
.program:hover{color:var(--white)}
.program:hover .program__img img{transform:scale(1.06)}
.program__body{padding:24px}
.program__body h3{font-size:clamp(26px,2.6vw,34px);margin:8px 0 6px}
.program--lg .program__body h3{font-size:clamp(34px,4vw,56px)}
.program__body p{color:rgba(255,255,255,.85);font-size:16px;margin-bottom:12px;max-width:40ch}
.program__body .link-arrow{color:var(--white)}
.program__tag{display:inline-block;background:var(--red);color:var(--white);font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:4px}
.program__art{position:absolute;inset:0;z-index:-2;display:grid;place-items:center;overflow:hidden}
.program__art span{font:900 italic 150px/1 var(--display);color:rgba(255,255,255,.08);transform:translateY(-30px)}
.program__art--party{background:radial-gradient(circle at 20% 20%,rgba(216,50,35,.9),transparent 55%),radial-gradient(circle at 85% 30%,rgba(184,184,190,.35),transparent 40%),var(--black)}
.program__art--private{background:linear-gradient(135deg,var(--red-deep),var(--black) 70%)}

/* teams teaser */
.team-chips{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px}
.team-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;color:var(--white);text-decoration:none;font-weight:700;font-size:15px;transition:.2s}
.team-chip:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.section--dark .team-chip{color:var(--white)}
.teams-teaser__media{position:relative;max-width:460px;justify-self:center}
.tilt-img img{border-radius:var(--radius-lg);transform:rotate(2.5deg);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);aspect-ratio:4/5;object-fit:cover}
.sticker{position:absolute;left:-28px;bottom:36px;background:var(--red);color:var(--white);font:900 italic 26px/.9 var(--display);text-transform:uppercase;padding:16px 18px;border-radius:8px;transform:rotate(-8deg);box-shadow:var(--shadow)}

/* collage */
.collage{position:relative;min-height:460px}
.collage__a{width:78%}
.collage__a img{border-radius:var(--radius-lg);box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}
.collage__b{position:absolute;right:0;bottom:0;width:52%;border:6px solid var(--chalk);border-radius:calc(var(--radius-lg) + 6px)}
.section--tint .collage__b{border-color:var(--white)}
.collage__b img{border-radius:var(--radius-lg);aspect-ratio:1/1;object-fit:cover}

/* level path */
.level-path{list-style:none;padding:0;margin:0 0 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:lvl}
.level-pill{background:var(--chalk);border-radius:var(--radius-lg);padding:20px 20px 18px;border-left:4px solid var(--red);position:relative}
.level-pill__lvl{display:block;font:700 12px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.level-pill__name{display:block;font:800 italic 24px/1.05 var(--display);text-transform:uppercase;margin-top:4px}

/* testimonials */
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote-card{margin:0;background:var(--white);border-radius:var(--radius-lg);padding:28px;box-shadow:0 1px 0 var(--line);display:flex;flex-direction:column;gap:16px;border-top:4px solid var(--red)}
.section--tint .quote-card{background:var(--chalk)}
.quote-card blockquote{margin:0;font-size:17px}
.stars{color:var(--red);letter-spacing:3px}
.quote-card figcaption{display:flex;gap:12px;align-items:center;margin-top:auto}
.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--black);color:var(--white);font-weight:700}

/* cta band */
.cta-band{background:var(--red);color:var(--white);padding:64px 0;position:relative;overflow:hidden}
.cta-band::after{content:"SKY";position:absolute;right:-20px;top:50%;transform:translateY(-50%);font:900 italic 260px/1 var(--display);color:rgba(0,0,0,.09);pointer-events:none}
.cta-band__inner{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;position:relative;z-index:1}
.cta-band .display em{color:var(--black)}
.cta-band p{margin:0;color:rgba(255,255,255,.9)}
.cta-band .eyebrow{color:rgba(255,255,255,.85)}

/* shop teaser */
.shop-teaser__img img{border-radius:var(--radius-lg);aspect-ratio:1/1;object-fit:cover;box-shadow:var(--shadow)}
.price{font:900 italic 64px/1 var(--display);margin:10px 0 16px;color:var(--black)}
.price__cur{font-size:.5em;vertical-align:.7em;margin-right:2px;color:var(--red)}

/* instagram */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.ig-tile{position:relative;display:block;border-radius:10px;overflow:hidden;aspect-ratio:1/1}
.ig-img,.ig-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.ig-tile::after{content:"";position:absolute;inset:0;background:rgba(216,50,35,.0);transition:background .3s}
.ig-tile:hover::after{background:rgba(216,50,35,.35)}
.ig-tile:hover img{transform:scale(1.07)}
.social-strip__btns{display:flex;gap:12px;flex-wrap:wrap}

/* faq */
.faq{display:grid;gap:12px}
.faq-item{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--line);overflow:hidden}
.section--tint .faq-item{background:var(--chalk)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 24px;cursor:pointer;font-weight:700;font-size:18px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-icon{flex:none;position:relative;width:28px;height:28px;border-radius:50%;background:var(--black);transition:background .2s,transform .3s var(--ease)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--white)}
.faq-icon::after{transform:rotate(90deg);transition:transform .3s}
.faq-item[open] .faq-icon{background:var(--red);transform:rotate(180deg)}
.faq-item[open] .faq-icon::after{transform:rotate(0)}
.faq-body{padding:0 24px 20px;color:#3b3537}
.faq-body p{margin:0}
.faq-search input{width:100%;padding:16px 20px;border:2px solid var(--line);border-radius:999px;background:var(--white);margin-bottom:24px}
.faq-search input:focus{border-color:var(--red);outline:none}

/* visit */
.visit__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,70px);align-items:start}
.visit__addr{font-style:normal;font:800 italic 30px/1.1 var(--display);text-transform:uppercase;margin:6px 0 20px}
.contact-list{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:10px}
.contact-list li{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.contact-list__k{min-width:96px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.hours{list-style:none;padding:0;margin:0 0 6px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px dashed var(--line)}
.map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:#ddd;aspect-ratio:4/3}
.map iframe{width:100%;height:100%;border:0}

/* footer */
.site-footer{background:var(--ink);color:rgba(255,255,255,.8);font-size:16px}
.site-footer a{color:var(--white);text-decoration:none}
.site-footer a:hover{color:var(--white);text-decoration:underline}
.footer-cta{background:var(--red);color:var(--white);padding:56px 0;position:relative;overflow:hidden}
.footer-cta__inner{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.footer-cta__title{margin:0;font:900 italic clamp(40px,5vw,64px)/.92 var(--display);text-transform:uppercase;color:var(--white)}
.footer-cta__title em{color:var(--black)}
.footer-cta__btns{display:flex;gap:12px;flex-wrap:wrap}
.footer-cta .btn--light{--fg:var(--black)}
.footer-cta .btn--outline-light:hover{color:var(--red)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding:70px 0 40px}
.footer-brand .logo img{width:200px;margin-bottom:16px}
.footer-tagline{font:900 italic 30px/1 var(--display);text-transform:uppercase;color:var(--white);margin:0 0 10px}
.footer-h{font:700 13px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--silver);margin:6px 0 16px}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.footer-address{font-style:normal;margin-bottom:12px}
.site-footer .hours li{border-color:rgba(255,255,255,.12)}
.site-footer .small{color:var(--silver)}
.footer-legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);padding:22px 0 30px;font-size:14px;color:var(--silver)}
.footer-legal p{margin:0}
.socials{display:flex;gap:10px;list-style:none;padding:0;margin:16px 0}
.socials a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.08);color:var(--white);transition:.2s}
.socials a:hover{background:var(--red)}
.socials svg{width:20px;height:20px}
.mobile-bar{display:none}

/* ---------- page hero ---------- */
.page-hero{position:relative;min-height:560px;display:flex;align-items:flex-end;color:var(--white);background:var(--black);overflow:hidden;isolation:isolate}
.page-hero--short{min-height:440px}
.page-hero--plain{min-height:420px}
.page-hero__img,.page-hero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.page-hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,16,17,.92),rgba(18,16,17,.55) 60%,rgba(18,16,17,.3)),linear-gradient(0deg,rgba(18,16,17,.85),transparent 60%)}
.page-hero__inner{padding:calc(var(--header-h) + 60px) 0 64px;position:relative}
.page-hero .lead{max-width:56ch}
.page-hero::after,.trial-hero::after,.shop-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:44px;background:var(--chalk);clip-path:polygon(0 100%,100% 0,100% 100%);z-index:1}
.page-hero--party{background:radial-gradient(circle at 80% 20%,rgba(216,50,35,.75),transparent 50%),radial-gradient(circle at 10% 90%,rgba(216,50,35,.35),transparent 40%),var(--black)}
.confetti{position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--red) 3px,transparent 4px),radial-gradient(var(--silver) 2px,transparent 3px),radial-gradient(#fff 1.5px,transparent 2.5px);background-size:90px 90px,60px 60px,44px 44px;background-position:0 0,30px 20px,10px 35px;opacity:.35;animation:drift 30s linear infinite}
@keyframes drift{to{background-position:0 900px,30px 620px,10px 475px}}
.crumbs{display:flex;gap:10px;font-size:14px;margin-bottom:22px;color:var(--silver)}
.crumbs a{color:var(--white)}

/* tracks */
.track-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}
.track{background:var(--white);border-radius:var(--radius-lg);padding:28px 24px;border:1px solid var(--line);display:flex;flex-direction:column}
.track__no{font:900 italic 46px/1 var(--display);color:var(--red)}
.track h3{margin:10px 0 4px}
.track__tag{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.track p:not(.track__tag){font-size:16px}
.track--elite{background:var(--black);color:var(--white);border-color:var(--black)}
.track--elite .track__tag{color:var(--silver)}
.meter{margin-top:auto;height:8px;border-radius:8px;background:rgba(0,0,0,.08);overflow:hidden}
.track--elite .meter{background:rgba(255,255,255,.15)}
.meter span{display:block;height:100%;width:var(--v);background:var(--red);border-radius:8px}

/* team cards */

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.step{background:var(--chalk);border-radius:var(--radius-lg);padding:26px}
.section--tint .step{background:var(--chalk)}
.step__n{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--red);color:var(--white);font:900 italic 24px var(--display);margin-bottom:14px}
.step p{font-size:16px;margin:0}
.checks{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:10px}
.checks li{position:relative;padding-left:30px}
.checks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat}
.checks--light li{color:rgba(255,255,255,.9)}

/* classes */
.class-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}
.class-card{background:var(--white);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s}
.class-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.class-card__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.class-card__step{font:900 italic 40px/1 var(--display);color:var(--red)}
.class-card__lvl{font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;background:var(--black);color:var(--white);padding:4px 9px;border-radius:4px}
.class-card h3{font-size:26px;margin-bottom:4px}
.class-card__who{font-size:14px;font-weight:700;color:var(--red-deep);margin-bottom:10px}
.class-card p{font-size:16px}
.class-card .link-arrow{margin-top:auto}

/* schedule */
.day-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--white);font-weight:700;font-size:14px;cursor:pointer;transition:.2s}
.chip:hover{border-color:var(--black)}
.chip.is-active{background:var(--black);color:var(--white);border-color:var(--black)}
.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--white);margin-bottom:14px}
.schedule{width:100%;border-collapse:collapse;min-width:640px}
.schedule th,.schedule td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.schedule thead th{background:var(--black);color:var(--white);font:800 italic 20px var(--display);text-transform:uppercase;letter-spacing:.03em}
.schedule tbody th{font-weight:700;font-size:16px;white-space:nowrap;position:sticky;left:0;background:var(--white)}
.schedule tbody tr:hover td,.schedule tbody tr:hover th{background:#fdf6f4}
.slot{display:inline-block;margin:2px 4px 2px 0;padding:4px 10px;border-radius:999px;background:rgba(216,50,35,.1);color:var(--red-deep);font-weight:700;font-size:14px;white-space:nowrap}
.slot--none{background:none;color:#bbb}
.note-cell{font-size:15px;color:var(--steel)}
.schedule .is-dim{opacity:.18}

/* forms */
.form-card{background:var(--white);border-radius:18px;padding:clamp(24px,3vw,40px);box-shadow:0 30px 60px -30px rgba(27,23,25,.45);color:var(--black);position:relative}
.form-card .h3{margin-bottom:6px}
.form{display:grid;gap:16px;margin-top:18px}
.form-row{display:grid;gap:16px}
.form-row--2{grid-template-columns:1fr 1fr}
.field{display:grid;gap:6px;min-width:0;border:0;padding:0;margin:0}
.field label,.field legend{font-size:14px;font-weight:700}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:1.5px solid #d6cfca;border-radius:8px;background:#fff;font-size:16px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(216,50,35,.15)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--red-deep);background:#fff6f5}
.field-error{font-size:13px;color:var(--red-deep);font-weight:600}
.field--days{display:flex;flex-wrap:wrap;gap:8px 14px}
.field--days legend{width:100%;margin-bottom:6px}
.check{display:inline-flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--red)}
.check--consent{align-items:flex-start;font-size:14px;color:var(--steel)}
.check--consent input{margin-top:2px;flex:none}
.check--consent.is-invalid{color:var(--red-deep)}
.hp{position:absolute;left:-9999px}
.form-note{text-align:center;margin:0}
.form-success{text-align:center;padding:30px 10px}
.form-success:focus{outline:none}
.form-success__icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:var(--red);color:var(--white);font-size:36px;animation:pop .5s var(--ease)}
@keyframes pop{from{transform:scale(.4);opacity:0}}

/* free trial hero */
.trial-hero{position:relative;background-color:var(--black);color:var(--white);padding:calc(var(--header-h) + 50px) 0 110px;overflow:hidden}
.trial-hero::before{content:"";position:absolute;right:-10%;top:0;width:55%;height:100%;background:var(--red);transform:skewX(-14deg);opacity:.9}
.trial-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,70px);align-items:start}
.trial-hero__img{margin-top:24px;max-width:520px}
.trial-hero__img img{aspect-ratio:16/9;object-fit:cover}
.crumbs--light a{color:var(--white)}

/* features & why */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.feature{background:var(--white);border-radius:var(--radius-lg);padding:26px;border:1px solid var(--line)}
.feature__icon{font:900 italic 34px/1 var(--display);color:var(--red)}
.feature h3{margin:12px 0 6px;font-size:24px}
.feature p{font-size:16px;margin:0}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.why{border-top:3px solid var(--red);padding-top:20px}
.why__n{font:900 italic 56px/1 var(--display);color:rgba(255,255,255,.18)}
.why-grid--light .why__n{color:rgba(27,23,25,.12)}
.why h3{margin:8px 0}
.section--dark .why p{color:rgba(255,255,255,.8)}

/* price cards */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;margin-bottom:20px}
.price-card{background:var(--white);border-radius:18px;padding:32px 28px;border:1px solid var(--line);display:flex;flex-direction:column;position:relative}
.price-card .price{font-size:76px}
.price-card .checks{font-size:16px;flex:1}
.price-card--featured{background:var(--black);color:var(--white);border-color:var(--black);transform:translateY(-12px);box-shadow:0 30px 60px -25px rgba(0,0,0,.6)}
.price-card--featured .price{color:var(--white)}
.price-card--featured .small{color:var(--silver)}
.price-card--featured .checks li{color:rgba(255,255,255,.9)}

/* camps */
.camp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.camp{background:var(--white);border-radius:18px;padding:30px;border:1px solid var(--line);position:relative;overflow:hidden}
.camp::after{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;background:var(--red);transform:rotate(45deg);opacity:.08}
.camp__tag{font:700 12px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.camp h3{margin:8px 0 10px;font-size:32px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 0}
.kv div{background:var(--chalk);border-radius:10px;padding:10px 12px}
.kv dt{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.kv dd{margin:2px 0 0;font-size:14px}

/* childcare */
.info-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--black);color:var(--white);border-radius:18px;overflow:hidden;margin-bottom:12px}
.info{padding:28px 24px;border-right:1px solid rgba(255,255,255,.1)}
.info:last-child{border-right:0}
.info__k{display:block;font:700 13px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--silver);margin-bottom:6px}
.info__v{font:900 italic 46px/1 var(--display);text-transform:uppercase}
.info__v small{font-size:.5em;margin-left:2px}
.info__v--sm{font-size:26px;line-height:1.05}
.info:first-child .info__v{color:var(--red)}
.callout{background:var(--white);border-radius:18px;padding:30px;border-left:5px solid var(--red);box-shadow:var(--shadow)}
.callout--center{text-align:center;border-left:0;border-top:5px solid var(--red);margin-top:44px}
.date-list{list-style:none;padding:0;margin:0}
.date-list li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px dashed var(--line);font-weight:600}

/* shop */
.shop-hero{position:relative;background:var(--black);color:var(--white);padding:calc(var(--header-h) + 50px) 0 90px;overflow:hidden}
.shop-hero::before{content:"";position:absolute;left:-5%;bottom:-30%;width:60%;height:120%;background:radial-gradient(circle,rgba(216,50,35,.55),transparent 65%)}
.shop-hero__grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.shop-hero__img img{border-radius:18px;aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.product{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.product__gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.product__img img{border-radius:var(--radius-lg);aspect-ratio:3/4;object-fit:cover}
.badge{display:inline-block;background:var(--red);color:var(--white);font:800 italic 16px var(--display);letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:4px;margin-bottom:10px}
.sizes{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px}
.sizes legend{font-weight:700;font-size:14px;margin-bottom:8px}
.size{display:grid;place-items:center;min-width:56px;height:48px;padding:0 10px;border:1.5px solid var(--black);border-radius:8px;font-weight:700;font-size:15px}
.size--out{border-style:dashed;color:#aaa;border-color:#ccc;text-decoration:line-through;line-height:1;font-size:14px}
.size--out small{display:block;text-decoration:none;font-size:10px;font-weight:600}
.product__ctas{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 12px}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
.product-card{background:var(--chalk);border-radius:var(--radius-lg);padding:18px;text-align:center}
.product-card__ph{aspect-ratio:1/1;border-radius:10px;display:grid;place-items:center;background:var(--black);color:rgba(216,50,35,.6);font:900 italic 64px var(--display);margin-bottom:14px}

/* about */
.timeline{display:grid;gap:0;border-left:3px solid var(--red);padding-left:28px}
.tl{position:relative;padding:0 0 28px}
.tl::before{content:"";position:absolute;left:-37px;top:4px;width:15px;height:15px;border-radius:50%;background:var(--chalk);border:3px solid var(--red)}
.tl__y{font:900 italic 26px/1 var(--display);text-transform:uppercase;color:var(--red)}
.tl p{margin:6px 0 0;font-size:16px}
.coach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.coach{background:var(--white);border-radius:var(--radius-lg);padding:22px;border:1px solid var(--line)}
.coach__photo{aspect-ratio:1/1;border-radius:12px;background:linear-gradient(135deg,var(--black),#3a3236);display:grid;place-items:center;margin-bottom:16px;position:relative;overflow:hidden}
.coach__photo::after{content:"";position:absolute;right:-30%;top:0;width:60%;height:100%;background:var(--red);transform:skewX(-14deg);opacity:.6}
.coach__photo span{position:relative;z-index:1;font:900 italic 64px var(--display);color:var(--white)}
.coach h3{font-size:26px;margin-bottom:2px}
.coach__role{font-size:14px;font-weight:700;color:var(--red-deep);text-transform:uppercase;letter-spacing:.06em}
.coach p:last-child{font-size:15px;margin:0}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,60px);align-items:start}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.contact-card{background:var(--black);color:var(--white);border-radius:var(--radius-lg);padding:22px;text-decoration:none;transition:transform .25s var(--ease),background .25s}
.contact-card:hover{background:var(--red);color:var(--white);transform:translateY(-3px)}
.contact-card__k{display:block;font:700 12px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--silver);margin-bottom:6px}
.contact-card:hover .contact-card__k{color:rgba(255,255,255,.85)}
.contact-card__v{font:900 italic 28px/1.05 var(--display);text-transform:uppercase;word-break:break-word}
.contact-card__v--sm{font-size:20px;text-transform:none;font-style:normal;font-family:var(--body);font-weight:700}

/* calendar */
.cal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.cal-nav{display:flex;align-items:center;gap:10px}
.cal-title{font:900 italic 36px/1 var(--display);text-transform:uppercase;margin:0;min-width:240px;text-align:center}
.icon-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--white);font-size:24px;line-height:1;cursor:pointer}
.icon-btn:hover{border-color:var(--black)}
.cal-filters{display:flex;gap:8px;flex-wrap:wrap}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.dot--class{background:var(--black)}.dot--childcare{background:#3d8bd9}.dot--competition{background:var(--red)}.dot--clinic{background:#e0a21b}.dot--closed{background:#9a9396}
.cal{display:grid;grid-template-columns:repeat(7,1fr);background:var(--line);gap:1px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.cal__dow{background:var(--black);color:var(--white);text-align:center;padding:10px 4px;font:800 italic 16px var(--display);text-transform:uppercase;letter-spacing:.05em}
.cal__cell{background:var(--white);min-height:112px;padding:8px;text-align:left;border:0;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-size:13px;transition:background .15s}
.cal__cell:hover{background:#fdf6f4}
.cal__cell.is-out{background:#faf8f7;color:#bbb}
.cal__cell.is-today .cal__num{background:var(--red);color:var(--white)}
.cal__cell.is-selected{box-shadow:inset 0 0 0 2px var(--red)}
.cal__num{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:700}
.cal__ev{display:block;padding:2px 6px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--white)}
.cal__ev--class{background:var(--black)}.cal__ev--childcare{background:#3d8bd9}.cal__ev--competition{background:var(--red)}.cal__ev--clinic{background:#e0a21b;color:var(--black)}.cal__ev--closed{background:#9a9396}
.cal__more{font-size:11px;color:var(--steel)}
.cal-day{margin:22px 0 10px;background:var(--white);border-radius:var(--radius-lg);padding:22px;border:1px solid var(--line)}
.cal-day h3{font-size:26px}
.cal-day ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.cal-day li{display:flex;gap:12px;align-items:flex-start}
.cal-day li .dot{margin-top:8px;flex:none}
.tba-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tba-list li{background:var(--chalk);border-radius:var(--radius-lg);padding:20px;border-left:4px solid var(--red)}
.tba-list strong{display:block;font:800 italic 22px/1.1 var(--display);text-transform:uppercase;margin-bottom:4px}

/* img fallback */
.img-missing{background:#ddd;display:grid;place-items:center;min-height:200px;color:#666}

/* ---------- reveal animations ---------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal{opacity:1;transform:none}
  .marquee__track{animation:none}
}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .nav,.header-cta{display:none}
  .menu-btn{display:flex}
}
@media (max-width:1100px){
  .program-grid{grid-template-columns:repeat(2,1fr)}
  .class-grid,.track-grid,.coach-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}
  .level-path{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .ig-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .tba-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  body{font-size:17px;padding-bottom:68px}
  :root{--header-h:72px}
  .split,.visit__grid,.trial-hero__grid,.shop-hero__grid,.product,.contact-grid{grid-template-columns:1fr}
  .split--rev>:first-child{order:0}
  .quote-grid,.price-grid,.why-grid,.camp-grid{grid-template-columns:1fr}
  .price-card--featured{transform:none}
  .stats__grid{grid-template-columns:repeat(2,1fr);row-gap:34px}
  .info-strip{grid-template-columns:1fr 1fr}
  .info:nth-child(2){border-right:0}
  .info:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.1)}
  .collage{min-height:0;padding-bottom:30%}
  .collage__b{width:48%}
  .hero{min-height:100svh}
  .hero__shade{background:linear-gradient(0deg,rgba(18,16,17,.96) 0%,rgba(18,16,17,.7) 50%,rgba(18,16,17,.35) 100%)}
  .hero__shade::after{width:70%;right:-40%;opacity:.4}
  .hero__inner{padding-bottom:70px}
  .hero__scroll{display:none}
  .teams-teaser__media{max-width:360px;margin-top:20px}
  .sticker{left:-10px}
  .trial-hero::before{width:100%;right:-60%;opacity:.5}
  .mobile-bar{display:grid;grid-template-columns:1fr 2fr;position:fixed;left:0;right:0;bottom:0;z-index:85;background:var(--black);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -10px 30px -10px rgba(0,0,0,.5)}
  .mobile-bar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:var(--radius);color:var(--white);text-decoration:none;font:800 17px var(--display);letter-spacing:.06em;text-transform:uppercase;border:2px solid rgba(255,255,255,.3)}
  .mobile-bar svg{width:18px;height:18px}
  .mobile-bar__main{background:var(--red);border-color:var(--red)!important}
  .tbc-pill{bottom:80px;left:10px;font-size:12px;padding:6px 12px}
  .tba-list{grid-template-columns:1fr}
  .cal__cell{min-height:64px;padding:4px}
  .cal__ev{font-size:0;height:6px;padding:0;border-radius:3px}
  .cal__more{display:none}
  .cal-title{min-width:0;font-size:28px}
}
@media (max-width:640px){
  .container,.narrow{width:min(100% - 32px,var(--container))}
  .program-grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .program--lg{grid-column:auto;grid-row:auto;min-height:380px}
  .program{min-height:260px}
  .class-grid,.track-grid,.coach-grid,.feature-grid,.steps,.product-grid{grid-template-columns:1fr}
  .level-path{grid-template-columns:1fr 1fr;gap:10px}
  .level-pill{padding:14px}
  .level-pill__name{font-size:20px}
  .form-row--2{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .ig-grid{grid-template-columns:repeat(3,1fr);gap:6px}
  .hero__meta{gap:22px}
  .hero__ctas .btn{flex:1 1 100%}
  .kv{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:1fr}
  .info__v{font-size:38px}
  .info__v--sm{font-size:21px}
  .info{padding:20px 16px}
  .cta-band::after{font-size:160px}
  .page-hero{min-height:520px}
  .section-head{margin-bottom:32px}
  .schedule{min-width:0}
  .schedule thead{display:none}
  .schedule,.schedule tbody,.schedule tr,.schedule th,.schedule td{display:block;width:100%}
  .schedule tr{border-bottom:6px solid var(--chalk);padding:6px 0}
  .schedule tbody th{position:static;border:0;padding:12px 16px 4px;font:800 italic 22px var(--display);text-transform:uppercase}
  .schedule td{display:flex;gap:10px;align-items:center;border:0;padding:4px 16px}
  .schedule td::before{content:attr(data-label);min-width:40px;font-weight:700;font-size:13px;color:var(--steel);text-transform:uppercase}
  .schedule td.note-cell::before{content:none}
  .schedule td:has(.slot--none){display:none}
  .schedule td.is-dim{display:none}
}
.program--wide{grid-column:1/-1;min-height:200px}
.program--wide .program__body{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:6px 30px}
.program--wide .program__body .program__tag{grid-column:1/-1;justify-self:start}
.program--wide .program__body p{margin:0}
@media (max-width:640px){.program--wide .program__body{display:block}}
.site-footer .btn{color:var(--fg)}
.site-footer .btn--outline-light{color:var(--white)}
.site-footer .btn:hover{text-decoration:none}
.map{position:relative}
.map::before{content:"Loading map… 6590 Lamar Rd, Reno, TX";position:absolute;inset:0;display:grid;place-items:center;color:var(--steel);font-weight:600;font-size:15px;z-index:0}
.map iframe{position:relative;z-index:1}
.faq + p.center,.faq ~ .center{margin-top:24px}
.brand{width:112px;height:72px}
.brand .logo img{width:112px}
@media (max-width:900px){
  .brand{width:92px;height:60px}
  .brand .logo img{width:92px}
  .brand .wordmark img{width:84px}
  .hero__kicker{font-size:12px;letter-spacing:.1em}
  .footer-cta__btns{width:100%}
  .footer-cta__btns .btn{flex:1 1 100%}
}
@media (max-width:900px){.trial-hero__img{display:none}}
[hidden]{display:none!important}
@media (max-width:900px){html{scroll-padding-bottom:90px}}
body.menu-open .tbc-pill,body.menu-open .mobile-bar{display:none}
@media (max-width:900px){.hero__inner{padding-bottom:130px}}
@media (max-width:640px){.hero__meta{display:none}.hero{min-height:calc(100svh - 0px)}}
.party-note{font-size:17px;margin:8px 0 4px}
.mobile-menu__hours{font-size:14px;color:var(--silver);line-height:1.5}
.hours li span:last-child{text-align:right}
/* class status + pricing (Motion data) */
.status{display:inline-block;font:800 13px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:4px;margin:0 0 8px;align-self:flex-start}
.status--full{background:var(--black);color:var(--white)}
.status--partial{background:#FBE3DF;color:var(--red-deep)}
.class-grid{grid-template-columns:repeat(3,1fr)}
.class-card--full{background:#faf8f7}
.class-card--full h3{color:var(--steel)}
.class-card__days{font-size:14px!important;font-weight:600;color:var(--black);background:var(--chalk);border-radius:8px;padding:8px 10px}
.class-card__price{margin:4px 0 14px;font-size:15px;color:var(--steel)}
.class-card__price strong{font:900 italic 34px/1 var(--display);color:var(--black);margin-right:2px}
.class-card__team{display:block;font-size:13px;color:var(--red-deep);font-weight:600;margin-top:2px}
.class-card__ctas{margin-top:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.schedule tbody th a{color:var(--black);text-decoration:none}
.schedule tbody th a:hover{color:var(--red-deep);text-decoration:underline}
.schedule tbody th .status{display:block;width:max-content;margin:6px 0 0;font-size:11px;padding:3px 7px}
.slot--full{background:#ece8e6;color:var(--steel);text-decoration:line-through;text-decoration-thickness:1px}
.note-box{background:var(--white);border-left:4px solid var(--black);border-radius:8px;padding:14px 18px;font-size:15px;margin-top:10px}
.section--tint .note-box{background:var(--chalk)}
@media (min-width:1101px){.level-path{grid-template-columns:repeat(3,1fr)}}
@media (max-width:1100px){.class-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.class-grid{grid-template-columns:1fr}.schedule tbody th .status{display:inline-block;margin-left:8px;vertical-align:middle}}

/* all-star team cards: glam / sparkle (2026-27 lineup) */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.team-card{position:relative;isolation:isolate;display:flex;flex-direction:column;color:var(--white);border-radius:18px;padding:16px 18px 20px;background:linear-gradient(165deg,#2b2427 0%,#171314 55%,#221315 100%);box-shadow:0 24px 50px -24px rgba(0,0,0,.8);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.team-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:.55;background:radial-gradient(1px 1px at 12% 18%,#fff,transparent),radial-gradient(1.5px 1.5px at 82% 12%,#fff,transparent),radial-gradient(1px 1px at 64% 46%,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 22% 78%,#fff,transparent),radial-gradient(1.5px 1.5px at 90% 70%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 45% 92%,#fff,transparent)}
.team-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;min-height:26px}
.team-card__no{font:900 italic 20px/1 var(--display);background:linear-gradient(180deg,#fff,var(--silver));-webkit-background-clip:text;background-clip:text;color:transparent}
.team-badge{display:inline-flex;align-items:center;gap:6px;font:800 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px 6px 8px;border-radius:999px;background:rgba(216,50,35,.2);border:1px solid rgba(216,50,35,.75);color:var(--white)}
.team-card__price{margin:0 0 12px;color:var(--silver);font-size:15px}
.team-card__price strong{font:900 italic 30px/1 var(--display);color:var(--white);margin-right:2px}
.team-card__meta{margin:0 0 16px;display:grid;gap:0;font-size:14px}
.team-card__meta div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid rgba(255,255,255,.1);padding:7px 0}
.team-card__meta dt{color:var(--silver);font-weight:600;white-space:nowrap}
.team-card__meta dd{margin:0;text-align:right;color:var(--white);font-weight:600}
.team-card__cta{margin-top:auto;color:var(--white);font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;gap:6px}
.team-card__cta:hover{color:#ff8a7e}
.team-card__cta span{color:var(--red);transition:transform .2s}
.team-card__cta:hover span{transform:translateX(4px)}
@media (max-width:1100px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.team-grid{grid-template-columns:1fr}}

/* team logos (official 2026-27 logos) + gold accent */
.team-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,var(--gold-light),rgba(201,161,74,.25) 30%,rgba(216,50,35,.8) 65%,var(--gold) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}
.team-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -24px rgba(201,161,74,.45)}
.team-badge .spark{width:11px;height:11px;fill:var(--gold-light)}
.team-card__name{margin:0 0 14px}
.team-card__logo{display:block;position:relative;aspect-ratio:5/4;overflow:hidden;border-radius:12px;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(255,240,215,.2),rgba(255,240,215,.05) 60%,transparent 80%),linear-gradient(160deg,#3a3034,#221b1e);box-shadow:inset 0 0 0 1px rgba(232,207,142,.18)}
.team-card__logo picture,.team-tile__logo{display:contents}
.team-card__logo img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:contain;filter:drop-shadow(0 0 10px rgba(255,236,200,.18)) drop-shadow(0 8px 14px rgba(0,0,0,.45));transition:transform .35s var(--ease)}
.team-card:hover .team-card__logo img{transform:scale(1.04)}
.team-logos{list-style:none;padding:0;margin:26px 0 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.team-tile{display:block;position:relative;height:110px;border-radius:12px;background:radial-gradient(ellipse at center,rgba(255,240,215,.14),rgba(255,255,255,.03) 70%),#2a2326;box-shadow:inset 0 0 0 1px rgba(232,207,142,.18);transition:transform .25s var(--ease),box-shadow .25s}
.team-tile img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.team-tile:hover,.team-tile:focus-visible{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--gold),0 12px 24px -12px rgba(201,161,74,.5)}
@media (max-width:640px){.team-logos{grid-template-columns:repeat(2,1fr)}.team-tile{height:88px}}
.coach__photo--img{background:#d9d3cf}
.coach__photo--img::after{display:none}
.coach__photo--img picture,.coach__photo--img img{width:100%;height:100%;object-fit:cover;display:block}
.coach-chip{display:inline-flex;align-items:center;gap:12px;margin-top:18px;padding:6px 18px 6px 6px;border-radius:999px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(232,207,142,.35);color:var(--white);text-decoration:none;font-size:14px;line-height:1.3}
.coach-chip picture,.coach-chip img{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block}
.coach-chip strong{display:block;font-size:15px}
.coach-chip span{color:var(--silver)}
.coach-chip strong{color:var(--white)}
.coach-chip:hover{box-shadow:inset 0 0 0 1px var(--gold)}
/* home hero: whole-program group photo (gym-group-2026). Faces sit in the upper band; text sits low, over the floor. */
/* overlay only where text sits: a short top fade behind the nav and a bottom band over the floor; the faces band is left clear */
.hero--group .hero__shade{background:linear-gradient(180deg,rgba(18,16,17,.55) 0,rgba(18,16,17,0) 120px),linear-gradient(0deg,rgba(18,16,17,.96) 0%,rgba(18,16,17,.86) 22%,rgba(18,16,17,.3) 35%,rgba(18,16,17,0) 44%)}
.hero--group .hero__shade::after{display:none}
.hero--group .hero__title{font-size:clamp(64px,8.6vw,136px);margin-bottom:18px}
@media (min-width:901px){.hero--group .hero__title{margin-bottom:0}}
@media (min-width:901px){
  .hero--group .hero__inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 56px;align-items:end;padding-bottom:64px}
  .hero--group .hero__lead{margin-bottom:22px;max-width:46ch;font-size:clamp(17px,1.35vw,20px)}
  .hero--group .hero__meta{margin-top:22px}
  .hero--group .hero__scroll{display:none}
}
@media (max-width:900px){
  /* the group band sits under the header; zoomed to the middle of the group (crop rows ~24-76% of the original photo) */
  .hero--group{--band:clamp(270px,62vw,500px);--top:58px;align-items:stretch}
  .hero--group .hero__media{top:var(--top);bottom:auto;height:var(--band);overflow:hidden}
  .hero--group .hero__media picture{inset:auto 0;top:calc(var(--band) * -.19);height:calc(var(--band) * 1.66)}
  .hero--group .hero__media img{object-position:center 50%!important}
  .hero--group .hero__shade{background:linear-gradient(180deg,var(--ink) 0,var(--ink) var(--top),rgba(18,16,17,.35) calc(var(--top) + 18px),rgba(18,16,17,0) calc(var(--top) + 60px),rgba(18,16,17,0) calc(var(--top) + var(--band) * .74),var(--ink) calc(var(--top) + var(--band)))}
  .hero--group .hero__shade::after{display:none}
  .hero--group .hero__meta{margin:0 0 22px}
  .hero--group .hero__inner{display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(var(--top) + var(--band) - 24px)}
}

/* ---- v2 fixes (Oct 2, 2026): contrast, link affordance, touch targets ---- */
/* Eyebrows on light backgrounds use Deep Red (brand guide: 6.5:1 on Chalk); Sky Red #D83223 was 4.3:1 */
.eyebrow{color:var(--red-deep)}
.eyebrow--light{color:var(--silver)}
.cta-band .eyebrow{color:rgba(255,255,255,.9)}
/* Links inside small footer/body text need more than colour to stand out */
.site-footer .small a,.site-footer .footer-legal a{text-decoration:underline}
/* Pro Shop sold-out size and out-of-month calendar days: readable greys */
.size--out{color:var(--steel);border-color:#8d8789}
.size--out small{font-size:12px}
.cal__cell.is-out{color:#6a6568}
.cal__more{font-size:12px}
/* Touch targets: give text links in lists/crumbs a taller hit area */
.footer-links a,.crumbs a{display:inline-block;padding:4px 0}
.team-card__cta,.team-card .link-arrow{padding:8px 0}
@media (max-width:900px){
  .footer-links{gap:2px}
  .footer-links a{padding:8px 0}
  .crumbs a{padding:8px 4px;margin:-8px -4px}
}
/* calendar colours + CTA band text contrast */
.cal__ev--childcare{background:#2b6cb0}.dot--childcare{background:#2b6cb0}
.cal__ev--closed{background:#6a6568}.dot--closed{background:#6a6568}
.cta-band p,.cta-band .eyebrow,.cta-band .eyebrow--light{color:var(--white)}
.why-grid--light .why__n{color:var(--red-deep)}
.product-card__ph{color:var(--red)}

/* About: owners grid (2 cards) */
.coach-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
@media (max-width:640px){.coach-grid--pair{grid-template-columns:1fr;max-width:420px}}
