/* CrossFit IRONSKY, www.crossfitironsky.com (live since 2026-10-28). Brand tokens from CLAUDE.md §4.
   Mobile first: every rule below is the phone layout; @media (min-width) blocks add the tablet and desktop layouts. */
:root{
  --navy:#1C202D; --blue:#1D98F8; --cyan:#5DDFF4; --chalk:#E1E1E1; --iron:#0D0F18; --elev:#262B3B;
  --chalk-70:rgba(225,225,225,.72); --chalk-45:rgba(225,225,225,.62); /* was .45; lifted 2026-10-22 so small mono notes pass 4.5:1 on navy */ --line:rgba(225,225,225,.14);
  --display:'Bebas Neue',Impact,sans-serif; --body:'DM Sans',system-ui,sans-serif; --mono:'DM Mono',ui-monospace,monospace;
  --gutter:16px; --max:1240px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} [id]{scroll-margin-top:80px}/* sticky nav is 64/76px tall: an anchor jump lands below it, not under it (Phedias, 2026-10-27) */ @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--navy);color:var(--chalk);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
picture{display:contents}
picture>source{display:none}/* with display:contents the empty source would become its own grid item */
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:.01em;line-height:.92;margin:0;text-transform:uppercase}
p{margin:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:0 20px;border-radius:4px;font-weight:600;font-size:15px;border:1.5px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-blue{background:var(--blue);color:var(--iron)}.btn-blue:hover,.btn-blue:focus-visible{background:var(--cyan);color:var(--iron)}
.btn-ghost{border-color:var(--chalk-45);color:var(--chalk)}.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--chalk);border-color:var(--chalk);color:var(--iron)}
.btn-wa{background:#25D366;color:#0D0F18}.btn-wa:hover,.btn-wa:focus-visible{background:#5DDFF4;color:#0D0F18}
.btn-wa-ghost{background:transparent;color:#25D366;border-color:#25D366}.btn-wa-ghost:hover,.btn-wa-ghost:focus-visible{background:#25D366;color:#0D0F18}
.nav .cta,.menu>.menu-cta{text-transform:uppercase;letter-spacing:.05em}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.section{padding:56px 0}
.h-xl{font-size:48px} .h-l{font-size:38px} .h-m{font-size:28px}
.lede{font-size:17px;color:var(--chalk-70);max-width:56ch}
.kicker{font-family:var(--mono);font-size:13px;color:var(--cyan);letter-spacing:.04em}

/* nav: phone first, burger menu */
.nav{position:sticky;top:0;z-index:50;background:rgba(13,15,24,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.brand img{width:44px;height:44px}
.brand span{font-family:var(--display);font-size:22px;letter-spacing:.03em;line-height:1}
.nav .cta{display:none}
.burger{background:none;border:1.5px solid var(--chalk-45);color:var(--chalk);border-radius:4px;width:44px;height:44px;font-size:22px}
.menu{display:none;position:absolute;left:0;right:0;top:64px;flex-direction:column;align-items:stretch;background:rgba(13,15,24,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:14px 0 22px;color:var(--chalk)}
.menu.open{display:flex}
.menu>a{display:block;padding:12px var(--gutter);text-align:center;font-family:var(--display);font-size:32px;letter-spacing:.04em;text-transform:uppercase;line-height:1}
.menu>a:hover{color:var(--cyan)}
.menu>.menu-cta{display:inline-flex;margin:10px var(--gutter) 0;padding:0 20px;align-self:center;min-width:220px;font-family:var(--body);font-size:16px;letter-spacing:.04em}
.menu>.menu-cta:hover{color:var(--iron)}
.menu>.m-only{color:var(--blue);-webkit-text-stroke:.6px var(--blue)}   /* Schedule: phone menu only, sits above the Drop-In pill in the pill's blue, no pill (Phedias, 2026-10-27) */

/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;background:var(--iron);overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 45%;opacity:.85}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,24,.2) 0%,rgba(13,15,24,.45) 45%,rgba(13,15,24,.94) 100%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-top:96px;padding-bottom:36px}
.hero .eyebrow.amen{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-45);margin:18px 0 0;text-shadow:0 2px 14px rgba(13,15,24,1),0 0 2px rgba(13,15,24,1)}
/* the services are links since 2026-10-27 (Phedias): white, heavier, a faint rule under each so they read as clickable; the dots between stay dim */
.hero .amen a{color:#fff;text-decoration:none;border-bottom:1.5px solid rgba(225,225,225,.4);padding-bottom:2px;transition:color .15s,border-color .15s}
.hero .amen a:hover,.hero .amen a:focus-visible{color:var(--cyan);border-color:var(--cyan)}/* amenities line under the headline, chalk and heavier (Phedias, 2026-10-23: "doesn't read easily") */
.hero h1{letter-spacing:.03em}
.hero h1 em{font-style:normal;color:var(--blue)}
.hero .lede{margin:16px 0 24px}
.hero .actions{display:flex;flex-direction:column;gap:12px}
.hero .actions .btn{width:100%}
.hero .loc{margin-top:28px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.hero-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;margin-left:-12px;--soc-size:46px}/* outline brand icons under the hero buttons (Phedias, 2026-10-23) */

/* stats band */
.stats-band{position:relative;background:var(--iron);overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats-band .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;align-items:start;padding-top:36px;padding-bottom:36px}
.st b{display:block;font-family:var(--display);font-weight:400;font-size:44px;line-height:1;letter-spacing:.06em;color:var(--cyan);font-variant-numeric:tabular-nums;min-height:1em}
.st span{display:block;margin-top:6px;font-size:14px;color:var(--chalk-70)}
.st.aff{grid-column:1/-1}.st.aff img{width:140px;height:auto;aspect-ratio:600/267;opacity:.95}.st.aff span{font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.aff-foot{display:inline-flex;align-items:center;gap:10px}.aff-foot img{height:30px;width:30px;opacity:.95}

/* trial */
.trial{position:relative;background:var(--iron);overflow:hidden}
.trial>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:22% 68%;opacity:.24}/* phones: the rowers sit in the left third of the frame (Phedias, 2026-10-23) */
.trial::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,15,24,.9),rgba(13,15,24,.6))}
.trial .wrap{position:relative;display:grid;grid-template-columns:1fr;gap:28px}
.trial-price{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;order:-1;line-height:1}
.trial-price .cur{font-family:var(--display);font-size:56px;color:var(--cyan)}
.trial-price .amt{font-family:var(--display);font-size:140px;color:var(--cyan);letter-spacing:-.02em}
.trial-price .tag{width:100%;font-family:var(--mono);font-size:13px;color:var(--chalk-70);margin-top:4px}
.trial .lede{margin-top:16px}
.trial.section{padding:40px 0}
.open-all.section{padding:40px 0 8px}
.open-all .lede{margin-top:16px}
.ticks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px}
.ticks li{padding-left:28px;position:relative;color:var(--chalk)}
.ticks li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;border-left:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);transform:rotate(-45deg)}
.trial .actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.trial .actions .btn{width:100%}
.btn-big{min-height:56px;font-size:17px}
.trial .small{margin-top:14px;font-size:13px;color:var(--chalk-45)}

/* services */
.services .grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
.tile{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:var(--elev)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tile:hover img{transform:scale(1.03)}
.tile-main{position:absolute;inset:0;display:block}
.tile .cap{pointer-events:none}.tile .cap a{pointer-events:auto}
.tile-title{display:block;color:inherit}.tile-title:hover h3{color:var(--cyan)}
.tile .cap{position:absolute;inset:auto 0 0 0;padding:18px;background:linear-gradient(180deg,rgba(13,15,24,0),rgba(13,15,24,.9))}
.tile h3{font-size:30px}
.tile p{color:var(--chalk-70);font-size:14px;margin-top:4px}
.tile .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tile .chips a{font-family:var(--mono);font-size:12px;padding:4px 8px;border:1px solid var(--chalk-45);border-radius:3px;color:var(--chalk);transition:border-color .15s,color .15s,background .15s}
.tile .chips a:hover,.tile .chips a:focus-visible{border-color:var(--cyan);color:var(--cyan)}


/* schedule */
.sched .head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.sched .head .lede{margin-top:14px}
.sched .head-actions{display:flex;gap:10px;flex-wrap:wrap}
.sched .table{background:var(--elev);border-radius:6px;overflow:hidden;margin-top:22px}
.sched .table.live iframe{display:block;width:100%;height:640px;border:0;background:var(--iron)}
.days{display:flex;border-bottom:1px solid var(--line)}
.days button{flex:1;background:none;border:0;color:var(--chalk-45);font-family:var(--mono);font-size:13px;padding:14px 2px;cursor:pointer;border-bottom:2px solid transparent}
.days button[aria-selected=true]{color:var(--chalk);border-bottom-color:var(--blue)}
.rows{list-style:none;margin:0;padding:6px 0}
.rows li{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:baseline;padding:11px 16px;border-bottom:1px solid var(--line)}
.rows li:last-child{border-bottom:0}
.rows .t{font-family:var(--mono);font-size:14px;color:var(--cyan)}
.rows .c{font-weight:600}
.rows .k{display:none;font-size:13px;color:var(--chalk-45);text-align:right}
.sched .note{margin-top:12px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}

/* consultation */
/* free-consultation section: the coach photo flows at its own aspect at the top, the copy overlaps its lower part and runs on into navy, same idea as the community section (Phedias, 2026-10-23) */
.consult{position:relative;overflow:hidden;background:var(--iron);padding-top:0}
.consult>picture>img{display:block;width:100%;height:auto;aspect-ratio:2200/1463;opacity:.75}/* reserves the height before the lazy image loads */
.consult>picture{position:relative;display:block}
.consult>picture::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,24,0) 30%,rgba(13,15,24,.6) 62%,rgba(13,15,24,.98) 100%)}
.consult .wrap{position:relative;z-index:1;margin-top:-56px}
.consult .wrap>div>.kicker,.consult .wrap>div>.h-l,.consult .wrap>div>.lede{text-align:center;margin-left:auto;margin-right:auto}
.consult .h-l{max-width:22ch}
.consult .lede{margin-top:16px;max-width:60ch}
.consult .ways{margin-top:28px}
.ways{display:grid;gap:12px;margin-top:22px}
.way{background:var(--elev);border-radius:6px;padding:20px}
.way h3{font-size:24px;margin-bottom:6px}
.way p{color:var(--chalk-70);font-size:15px;margin-bottom:14px}
.way .btn{width:100%}
.form{display:grid;gap:10px}
.form input,.form textarea{width:100%;background:var(--iron);border:1px solid var(--line);border-radius:4px;color:var(--chalk);padding:13px 14px;font:inherit;font-size:16px}
.form textarea{min-height:96px;resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:var(--chalk-45)}

/* community */
.community{position:relative;background:var(--iron);overflow:hidden}
.community>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.community .wrap{position:relative}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}
.stat b{display:block;font-family:var(--display);font-size:40px;line-height:1;font-weight:400}
.stat span{color:var(--chalk-70);font-size:14px}
.stat b.stars{color:var(--cyan);letter-spacing:.06em;font-family:var(--body);font-size:34px;line-height:1.3}
.stat a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.g-stars{color:#FBBC05;font-size:22px;letter-spacing:.04em;line-height:1}

/* faq */
.faq .list{margin-top:24px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:16px 0;font-weight:600;font-size:17px;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--cyan);flex:none}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 18px;color:var(--chalk-70);max-width:70ch}
.faq details a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}

/* stories */
/* reviews carousel (Google reviews, verbatim; cards are static HTML, js/main.js adds the controls) */
.reviews .head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.rv-summary{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:var(--elev);border:1px solid var(--line);transition:border-color .15s}
.rv-summary:hover{border-color:var(--cyan)}
.rv-summary .g-logo{width:28px;height:28px;flex:none}
.rv-summary b{font-family:var(--display);font-weight:400;font-size:32px;line-height:1;color:var(--chalk)}
.rv-summary .g-stars{font-size:18px}
.rv-summary small{font-family:var(--mono);font-size:12px;color:var(--chalk-70)}
.rv-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:24px;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rv-track::-webkit-scrollbar{display:none}
.rv-card{flex:0 0 86%;scroll-snap-align:start;background:var(--elev);border:1px solid var(--line);border-radius:10px;padding:20px;display:grid;gap:12px;align-content:start;grid-template-rows:auto 1fr auto auto}
.rv-card .g-stars{font-size:18px}
.rv-card blockquote{margin:0;font-size:15px;line-height:1.5;color:var(--chalk);display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;align-self:start}
.rv-card cite{font-style:normal;font-size:14px;color:var(--chalk-70)}
.rv-card cite b{color:var(--chalk);font-weight:600}
.rv-more{font-family:var(--mono);font-size:12px;color:var(--cyan);text-decoration:underline;text-underline-offset:3px;justify-self:start}
.rv-nav{display:flex;align-items:center;gap:14px;margin-top:16px}
.rv-prev,.rv-next{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--chalk-45);background:none;color:var(--chalk);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:border-color .15s,color .15s}
.rv-prev:hover,.rv-next:hover{border-color:var(--cyan);color:var(--cyan)}
.rv-dots{display:flex;gap:7px;flex-wrap:wrap}
.rv-dots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--chalk-45);padding:0;cursor:pointer}
.rv-dots button[aria-current=true]{background:var(--cyan)}
.reviews .note{margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.reviews .note a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}

/* footer */
footer{background:var(--iron);border-top:1px solid var(--line);padding:48px 0 24px}
footer .cols{display:grid;grid-template-columns:1fr;gap:32px}
footer h3{font-size:22px;margin-bottom:12px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px;color:var(--chalk-70)}
footer ul a:hover{color:var(--chalk)}
.signup{display:flex;gap:8px;margin-top:14px;max-width:420px}
.signup input{flex:1;min-width:0;background:var(--navy);border:1px solid var(--line);border-radius:4px;color:var(--chalk);padding:12px 14px;font:inherit;font-size:16px}
.signup .btn{min-height:46px;padding:0 16px;font-size:15px}
footer .contact{display:grid;gap:6px;font-size:15px;color:var(--chalk-70);justify-items:start}
.foot-wa{margin-top:6px;min-height:46px;white-space:nowrap;padding:0 18px;font-size:15px}
.foot-num{font-family:var(--mono);font-size:13px;color:var(--chalk-45)}
.foot-link{color:var(--cyan);text-decoration:underline;text-underline-offset:3px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
footer .legal{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}


/* ===== classes page ===== */
/* page hero: shorter than the home hero, same photo treatment */
.page-hero{position:relative;background:var(--iron);overflow:hidden;display:flex;align-items:flex-end;min-height:52vh}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.55}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,24,.35) 0%,rgba(13,15,24,.7) 50%,rgba(13,15,24,.96) 100%)}
.page-hero .wrap{position:relative;z-index:1;width:100%;padding-top:72px;padding-bottom:28px}
.page-hero .eyebrow{font-family:var(--mono);font-weight:500;font-size:17px;letter-spacing:.22em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;text-shadow:0 2px 12px rgba(13,15,24,.7)}
.page-hero .lede{margin-top:16px}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.jump a,.jump span{font-family:var(--display);font-size:18px;letter-spacing:.06em;text-transform:uppercase;min-height:40px;padding:0 16px;border-radius:6px;border:1.5px solid var(--chalk-45);color:var(--chalk);background:none;display:inline-flex;align-items:center;gap:8px;transition:background .15s,color .15s,border-color .15s}
.jump a:hover,.jump a:focus-visible{background:var(--blue);border-color:var(--blue);color:var(--iron)}
.jump span{color:var(--chalk-45);border-style:dashed}
.jump span small{font-family:var(--mono);font-size:11px;letter-spacing:.08em}

/* kids, pre-teens and teens section (layout from the Kids Timetable Template: cards, blue edge, age chip) */
.kids{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--navy) 0%,var(--iron) 100%)}
.kids .bolt{position:absolute;right:-70px;top:-30px;width:280px;opacity:.07;pointer-events:none}
.kids .wrap{position:relative}
.kids-head .lede{margin-top:16px}
.kids h2 .script{display:block;font-family:'Gochi Hand',cursive;text-transform:none;letter-spacing:0;font-size:.92em;line-height:1.05;margin-top:6px;background:linear-gradient(90deg,var(--blue),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent;position:relative;padding-right:.2em;width:max-content;max-width:100%}
.kids h2 .script::after{content:"";position:absolute;left:4%;right:10%;bottom:-4px;height:12px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 30" preserveAspectRatio="none"><path d="M6 18 C 90 6, 200 22, 394 12" fill="none" stroke="%235DDFF4" stroke-width="9" stroke-linecap="round"/></svg>') no-repeat center/100% 100%}
.kids-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-top:40px}
.kids-head{text-align:center}
.kids-head .lede{margin-left:auto;margin-right:auto}
.kids-title{letter-spacing:.02em;font-size:60px}
.kids h2 .script{font-size:.8em;white-space:nowrap}
.kids h2 .script{margin-left:auto;margin-right:auto}
.timetable{display:grid;gap:8px;align-content:start;max-width:820px;margin:36px auto 0}
.tnote{text-align:center}
.kids-cta{justify-content:center}
.kids .small.kids-note{text-align:center;max-width:60ch;margin:12px auto 0}
.kids-media{display:grid;grid-template-columns:1fr;gap:16px;margin-top:40px}
.kids-media .kids-photo{margin-top:0;border-radius:18px;order:-1}/* phones: photo above the video (Phedias, 2026-10-27) */
.kids-grid>*{min-width:0}
.trow{position:relative;overflow:hidden;background:var(--elev);border-radius:10px;padding:10px 14px 10px 18px;display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}
.trow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--blue),var(--cyan))}
.tgroup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tgroup b{display:block;font-family:var(--display);font-weight:400;font-size:24px;line-height:1;text-transform:uppercase}
.tgroup .age{display:inline-block;background:var(--blue);color:var(--iron);font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px 3px;border-radius:999px}
.twhen{text-align:right}
.twhen .time{display:block;font-family:var(--mono);font-weight:500;font-size:15px;line-height:1;font-variant-numeric:tabular-nums}
.twhen .days{display:block;margin-top:4px;font-family:var(--display);font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:var(--cyan)}
.tnote{font-family:var(--mono);font-size:12px;color:var(--chalk-45);margin-top:4px}
.kids-video{display:grid;justify-items:center;gap:10px}
.video-frame{width:100%;max-width:340px;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:var(--iron);border:1px solid var(--line)}
.video-frame iframe{display:block;width:100%;height:100%;border:0}
.video-cap{font-family:var(--mono);font-size:12px;color:var(--chalk-45);text-align:center}
.kids-photo{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 8%;border-radius:10px;margin-top:24px}/* portrait photo: phones show the top of the frame, bar and face (Phedias, 2026-10-27) */
.kids-copy h3{margin-bottom:14px}
.steps{margin:0;padding:0;list-style:none;counter-reset:step;display:grid;gap:12px}
.steps li{position:relative;padding-left:40px;color:var(--chalk-70);counter-increment:step}
.steps li b{color:var(--chalk);font-weight:600}
.steps li::before{content:counter(step);position:absolute;left:0;top:1px;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--cyan);color:var(--cyan);font-family:var(--mono);font-size:13px;display:flex;align-items:center;justify-content:center}
.kids .why{margin-top:20px;color:var(--chalk);font-size:17px;max-width:52ch}
.kids .actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.kids .actions .btn{width:100%;text-align:center}
.contact-line{margin-top:14px;font-family:var(--mono);font-size:13px;color:var(--chalk-70)}
.contact-line b{font-weight:500;color:var(--chalk)}
.contact-line a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.kids .small{margin-top:10px;font-size:13px;color:var(--chalk-45)}
.kids-faq{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}
.kids-faq h3{margin-bottom:4px}


/* ===== recover page ===== */
.coach-hero img{object-position:center 45%;opacity:.7}
.recover-hero{min-height:64vh}
.recover-hero img{object-position:center 55%;opacity:1}
.recover-hero::after{background:linear-gradient(180deg,rgba(13,15,24,0) 55%,rgba(13,15,24,.55) 100%)}
.recover-hero .wrap{padding-bottom:24px}
.recover-hero h1,.recover-hero .eyebrow{text-shadow:0 2px 14px rgba(13,15,24,.6)}
.page-hero .actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.recover-hero .actions .btn{text-shadow:none}
.recover-hero .btn-ghost{background:rgba(13,15,24,.45);border-color:var(--chalk)}
.page-hero .actions .btn{width:100%}
/* recover: the loop, four numbered steps (Phedias, 2026-10-28: "a quick guide through your session") */
.how .lede{margin-top:12px;max-width:640px}
.loop{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr;gap:14px;counter-reset:none}
.loop-step{position:relative;padding:22px 22px 24px;background:var(--elev);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:6px}
.loop-step:nth-child(3){border-top-color:var(--cyan)}
.loop-tag{font-family:var(--mono);font-size:13px;color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.loop-n{color:var(--chalk-45)}
.loop-step h3{font-family:var(--display);font-weight:400;font-size:30px;line-height:1;text-transform:uppercase;letter-spacing:.02em;margin:14px 0 10px;color:var(--chalk)}
.loop-step p:last-child{color:var(--chalk-70);font-size:15px;line-height:1.55}
.bring{margin-top:24px;font-size:16px;color:var(--chalk-70)}
.bring b{color:var(--chalk);font-weight:600}
.ways{background:var(--iron)}
.ways-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
.small-mail{margin-top:10px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.gallery{padding-top:0}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}
.gallery-grid picture:first-child img{grid-column:1/-1;aspect-ratio:16/10}
.book{background:var(--iron);text-align:left}
.book .actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.book .actions .btn{width:100%}


/* ===== 1-1 coaching page ===== */
.svc.alt{background:var(--iron)}
.svc-wrap{display:grid;grid-template-columns:1fr;gap:28px;align-items:center}
.svc-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;order:-1;display:block;background:var(--iron)}
.svc-video{aspect-ratio:1}
.svc-compete{object-position:center 42%}/* 9:16 source: keeps face, bar and plates in the 4:3 phone crop */
.svc .lede{margin-top:16px}
.svc .actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.svc .actions .btn{width:100%}
.pull{margin:22px 0 0;padding:0 0 0 18px;border-left:3px solid var(--blue)}
.pull p{font-family:var(--display);font-size:30px;line-height:.95;text-transform:uppercase;letter-spacing:.01em}
.pull footer{margin-top:8px;color:var(--chalk-70);font-size:15px;background:none;border:0;padding:0}
.tiers{display:grid;gap:12px;margin-top:22px}
.tier{background:var(--elev);border-radius:10px;padding:18px 20px;border:1px solid var(--line)}
.tier.featured{border-color:var(--blue)}
.tier h3{font-size:24px;margin-bottom:6px}
.tier p{color:var(--chalk-70);font-size:15px}
.tier.featured h3::after{content:"Recommended";font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--iron);background:var(--blue);padding:3px 8px;border-radius:999px;margin-left:10px;vertical-align:middle}


/* ===== contact page ===== */
.contact-hero{padding-top:48px;padding-bottom:24px}
.contact-hero .lede{margin-top:16px}
.cg{display:grid;grid-template-columns:1fr;gap:28px}
.cg-details{display:grid;gap:18px}
.cd{background:var(--elev);border-radius:10px;padding:18px 20px;display:grid;gap:8px;justify-items:start}
.cd h3{font-size:22px}
.cd p{color:var(--chalk-70);font-size:15px}
.cd .foot-link{text-transform:none;letter-spacing:0}/* lower case on the contact cards (Phedias, 2026-10-23) */
.cd-social{margin-top:2px}
.cg-hours h3{font-size:22px;margin-bottom:10px}
.hours-table{width:100%;border-collapse:collapse;font-size:15px}
.hours-table th,.hours-table td{text-align:left;padding:10px 0;border-bottom:1px solid var(--line);font-weight:500}
.hours-table th{color:var(--chalk);font-weight:600}
.hours-table td{font-family:var(--mono);color:var(--cyan);text-align:right}
.cg-hours .small{margin-top:12px;font-size:13px;color:var(--chalk-45)}
.cg-hours .small a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.contact-form{background:var(--iron)}
.cf{display:grid;grid-template-columns:1fr;gap:24px}
.cf .lede{margin-top:16px}
.form select{width:100%;background:var(--iron);border:1px solid var(--line);border-radius:4px;color:var(--chalk);padding:13px 14px;font:inherit;font-size:16px;appearance:none;-webkit-appearance:none}
.form select:invalid{color:var(--chalk-45)}
.contact-form .form select,.careers-form .form select{background:var(--navy)}
.contact-form .form input,.contact-form .form textarea{background:var(--navy)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--chalk-70);line-height:1.4}
.check input{margin-top:3px;accent-color:var(--blue);width:auto;flex:none}
.check a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.radios{border:1px solid var(--line);border-radius:4px;padding:10px 14px;margin:0;display:flex;gap:18px;flex-wrap:wrap;font-size:15px;color:var(--chalk-70)}
.radios legend{font-family:var(--mono);font-size:12px;color:var(--chalk-45);padding:0 6px}
.radios label{display:flex;gap:8px;align-items:center}
.radios input{accent-color:var(--blue);width:auto}
.radios label{white-space:nowrap}
.file{display:grid;gap:8px;font-size:14px;color:var(--chalk-70)}
.file input{font-size:14px;color:var(--chalk)}
.file input::file-selector-button{background:var(--elev);color:var(--chalk);border:1px solid var(--chalk-45);border-radius:4px;padding:8px 12px;font:inherit;margin-right:10px;cursor:pointer}
.why-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
.why{background:var(--elev);border-radius:10px;padding:20px}
.why h3{font-size:24px;margin-bottom:6px}
.why p{color:var(--chalk-70);font-size:15px}
.careers-form{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}


/* ===== legal pages ===== */
.legal-wrap{max-width:760px}
.legal-page .lede{margin-top:16px}
.legal-page .meta{margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.legal-page h2{font-size:30px;margin-top:40px;margin-bottom:10px}
.legal-page h3{font-family:var(--body);font-weight:600;font-size:17px;text-transform:none;letter-spacing:0;line-height:1.3;margin-top:22px;margin-bottom:6px}
.legal-page p{color:var(--chalk-70);margin-bottom:12px;max-width:68ch}
.legal-page p strong{color:var(--chalk)}
.legal-page ul{color:var(--chalk-70);padding-left:20px;display:grid;gap:8px;margin:0 0 12px}
.legal-page a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}


/* ===== thank-you page ===== */
.thanks{position:relative;overflow:hidden;min-height:70vh;background:linear-gradient(180deg,var(--navy),var(--iron))}
.thanks .bolt{position:absolute;right:-60px;top:-20px;width:260px;opacity:.08;pointer-events:none}
.thanks .wrap{position:relative}
.thanks h1 em{font-style:normal;color:var(--blue)}
.thanks .lede{margin-top:18px}
.thanks .next{margin-top:32px}
.thanks .next h2{margin-bottom:12px}
.thanks .ticks a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.thanks .actions{display:flex;flex-direction:column;gap:12px;margin-top:28px}
.thanks .actions .btn{width:100%}
.thanks .small{margin-top:18px;font-size:13px;color:var(--chalk-45)}
.thanks .small a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}

/* ---------- tablet, 640px and up ---------- */
@media(min-width:640px){
  :root{--gutter:32px}
  .h-xl{font-size:72px}.h-l{font-size:54px}.h-m{font-size:36px}
  .kids-band h2{font-size:68px}
  .hero .actions{flex-direction:row;flex-wrap:wrap}.hero .actions .btn{width:auto}
  .stats-band .wrap{gap:28px}
  .st b{font-size:56px}
  .services .grid{grid-template-columns:1fr 1fr}
  .way .btn{width:auto}
  .stats{grid-template-columns:repeat(3,auto);gap:40px;justify-content:start}
  footer .cols{grid-template-columns:1fr 1fr}
  .rv-card{flex-basis:calc((100% - 12px)/2)}
  .page-hero{min-height:48vh}
  .kids .actions{flex-direction:row;flex-wrap:wrap}.kids .actions .btn{width:auto}
  .trow{padding:12px 18px 12px 22px;border-radius:12px}
  .tgroup b{font-size:28px}
  .twhen .time{font-size:17px}
  .twhen .days{font-size:15px}
  .page-hero .actions{flex-direction:row;flex-wrap:wrap}.page-hero .actions .btn{width:auto}
  .kids-title{font-size:96px}
  .kids h2 .script{font-size:.92em}
  .loop{grid-template-columns:repeat(2,1fr);gap:16px}
  .ways-grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid picture:first-child img{grid-column:auto;aspect-ratio:1}
  .book .actions{flex-direction:row;flex-wrap:wrap}.book .actions .btn{width:auto}
  .svc .actions{flex-direction:row;flex-wrap:wrap}.svc .actions .btn{width:auto}
  .cg-details{grid-template-columns:1fr 1fr}
  .cd-follow{grid-column:1/-1}
  .thanks .actions{flex-direction:row;flex-wrap:wrap}.thanks .actions .btn{width:auto}
  .why-grid{grid-template-columns:repeat(3,1fr)}
}

/* ---------- desktop, 980px and up ---------- */
@media(min-width:980px){
  :root{--gutter:56px}
  body{font-size:17px}
  .section{padding:112px 0}
  .h-xl{font-size:104px}.h-l{font-size:72px}.h-m{font-size:44px}
  .lede{font-size:20px}
  .btn{min-height:52px;padding:0 26px;font-size:16px}
  .nav .wrap{gap:28px;min-height:76px}
  .brand img{width:52px;height:52px}.brand span{font-size:26px}
  .burger{display:none}
  .nav .cta{display:inline-flex;min-height:44px;padding:0 18px;font-size:15px}
  .menu{display:flex;position:static;flex-direction:row;align-items:center;background:none;border:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--chalk-70)}
  .menu>a{padding:0;font-family:var(--display);font-size:22px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;line-height:1;text-align:left;white-space:nowrap;color:var(--chalk-70);transition:color .15s}
  .brand span,.nav .cta{white-space:nowrap}
  .menu{gap:22px}
  .menu>.m-only{display:none}   /* Schedule: phone menu only, quick access (Phedias, 2026-10-27) */
  .menu>a:hover,.menu>a:focus-visible{color:var(--cyan)}
  .menu>.menu-cta{display:none}
  @media(min-width:1200px){.menu{gap:28px}}
  @media(max-width:1199px){.brand span{display:none}.menu{gap:18px}.menu>a{font-size:19px}.nav .cta{padding:0 14px;font-size:14px}}
  .hero{min-height:min(92vh,860px)}
  .hero .wrap{padding-top:120px;padding-bottom:80px}
  .hero .eyebrow.amen{font-size:18px;letter-spacing:.16em;margin-top:22px}
  .hero h1{max-width:20ch}
  .hero .lede{margin:22px 0 32px}
  .hero-social{gap:10px;margin-top:22px;--soc-size:52px}
  .stats-band .wrap{grid-template-columns:repeat(4,1fr) auto;padding-top:56px;padding-bottom:56px}
  .st b{font-size:72px}.st span{font-size:15px;margin-top:8px}
  .st.aff{grid-column:auto;text-align:right;align-self:center}.st.aff img{width:170px;margin-left:auto}
  .services .grid{grid-template-columns:repeat(6,1fr);gap:14px;margin-top:40px}
  .tile{grid-column:span 2;aspect-ratio:4/5}
  .tile:nth-child(1),.tile:nth-child(2){grid-column:span 3;aspect-ratio:16/10}
  .tile .cap{padding:22px}.tile h3{font-size:34px}
  .sched .table{margin-top:28px}
  .sched .table.live iframe{height:760px}
  .rows li{grid-template-columns:64px 1fr auto;padding:11px 20px}
  .rows .k{display:block}
  .trial.section{padding:64px 0}
  .trial>picture>img{object-position:center 68%}
  .trial h2{font-size:56px}
  .trial .wrap{grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
  .trial-price{order:0;justify-content:flex-end;align-items:baseline}
  .trial-price .amt{font-size:220px}
  .trial-price .cur{font-size:84px}
  .trial-price .tag{text-align:right;font-size:14px}
  .trial .actions{flex-direction:row;flex-wrap:wrap}
  .trial .actions .btn{width:auto}
  /* desktop: the photo stands on the right half, the copy and the two booking cards on the left (Phedias, 2026-10-23, "put the image on the side") */
  .consult{padding:88px 0;min-height:760px}
  .consult>picture{position:absolute;top:0;right:0;width:50%;max-width:860px;aspect-ratio:4/5}
  .consult>picture>img{width:100%;height:100%;object-fit:cover;object-position:center 22%;opacity:.85}
  .consult>picture::after{background:linear-gradient(90deg,rgba(13,15,24,.95) 0%,rgba(13,15,24,.25) 28%,rgba(13,15,24,0) 55%),linear-gradient(180deg,rgba(13,15,24,0) 55%,rgba(13,15,24,1) 100%)}
  .consult .wrap{margin-top:0}
  .consult .wrap>div{max-width:calc(50% - 24px)}
  .consult .wrap>div>.kicker,.consult .wrap>div>.h-l,.consult .wrap>div>.lede{text-align:left;margin-left:0}
  .consult .ways{margin-top:28px;grid-template-columns:1fr;gap:12px}
  .rv-card{flex-basis:calc((100% - 28px)/3);padding:24px}
  .rv-card blockquote{font-size:16px}
  .rv-track{gap:14px;margin-top:32px}
  .rv-summary b{font-size:40px}
  footer .cols{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
  .page-hero{min-height:min(56vh,520px)}
  .page-hero .wrap{padding-top:100px;padding-bottom:48px}
  .page-hero .eyebrow{font-size:24px;letter-spacing:.26em;margin-bottom:16px}
  .jump{margin-top:32px}
  .jump a,.jump span{font-size:20px;min-height:44px;padding:0 20px}
  .kids .bolt{width:520px;right:-120px;top:-60px}
  .kids-media{grid-template-columns:400px 1fr;gap:24px;margin-top:56px;align-items:start}
  .video-frame{max-width:400px}
  .kids-media .kids-photo{aspect-ratio:auto;height:calc(400px * 16 / 9);object-fit:cover;order:0}/* desktop: video left, photo right */
  .kids-head .lede{max-width:64ch}
  .kids-title{font-size:112px}
  .trow{padding:14px 20px 14px 24px;border-radius:12px;gap:16px}
  .tgroup b{font-size:30px}
  .tgroup .age{font-size:11px}
  .twhen .time{font-size:18px}
  .twhen .days{font-size:15px;margin-top:5px}
  .kids-faq{margin-top:64px;padding-top:40px}
  .kids-faq .list{max-width:760px}
  .recover-hero{min-height:min(78vh,720px)}
  .recover-hero .wrap{padding-bottom:40px}
  .loop{grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
  .loop-step{padding:26px 24px 28px}
  .loop-step h3{font-size:34px}
  .ways-grid{gap:16px;margin-top:40px}
  .gallery-grid{gap:14px}
  .svc-wrap{grid-template-columns:1.2fr 1fr;gap:64px}
  .svc-img{order:0;aspect-ratio:4/5}
  .svc-video{aspect-ratio:1;max-width:520px}
  .pull p{font-size:40px}
  .svc.alt .svc-img{order:-1}
  .tiers{gap:14px;margin-top:28px}
  .contact-hero{padding-top:72px;padding-bottom:32px}
  .cg{grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}
  .cf{grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}
  .why-grid{gap:16px;margin-top:40px}
  .careers-form{margin-top:56px;padding-top:48px}
  .thanks .bolt{width:520px;right:-120px}
  .thanks .wrap{max-width:880px}
}


/* ===== crossfit section (classes page) ===== */
/* Same shape as #kids: intro, timetable rows, CTA, photos, FAQ. Phone first; the two @media blocks below are this section's only breakpoints. */
.crossfit{position:relative;overflow:hidden;background:var(--navy);border-top:1px solid var(--line)}
.crossfit .bolt{position:absolute;left:-90px;bottom:-40px;width:280px;opacity:.06;pointer-events:none}
.crossfit .wrap{position:relative}
.cf-band{position:relative;overflow:hidden;background:var(--iron);border-top:1px solid var(--line);padding:72px 0}
.cf-band>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.42}
.cf-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,15,24,.9) 0%,rgba(13,15,24,.6) 55%,rgba(13,15,24,.25) 100%)}
.cf-band .wrap{position:relative;z-index:1}
.cf-band h2,.cf-band .kicker{text-shadow:0 2px 12px rgba(13,15,24,.7)}
.crossfit{border-top:0}
/* kids band: same band as CrossFit; the script word keeps the Gochi Hand treatment inline, the gradient text drops the band's text-shadow */
.kids-band{background:var(--iron)}
.kids-band>picture>img{object-position:center 35%}
.kids-band h2{font-size:48px}/* a quarter up on .h-l at every width: 38/54/72 -> 48/68/90 */
.kids-band h2 .script{display:block;width:auto;max-width:none;margin:4px 0 0;text-align:left;font-size:.95em;white-space:nowrap;text-shadow:none}
.kids-band h2 .script::after{display:none}
.kids-details{border-top:0;padding-top:8px}
.kids-details .timetable{margin-top:16px}
.cf-copy .lede{margin-top:16px}
.cf-lead{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center 40%;border-radius:10px;order:-1;background:var(--iron)}
.cf-timetable{max-width:820px}
.crossfit .trow{grid-template-columns:1fr;gap:8px 12px;padding:12px 14px 12px 18px}
.crossfit .tgroup b{font-size:22px}
.crossfit .twhen.cf-slots{text-align:left;display:flex;flex-wrap:wrap;gap:6px}
.cf-slots span{font-family:var(--mono);font-weight:500;font-size:14px;line-height:1;font-variant-numeric:tabular-nums;color:var(--chalk);background:var(--iron);border:1px solid var(--line);border-radius:6px;padding:7px 9px 6px}
.cf-actions{display:flex;flex-direction:column;gap:12px;margin-top:28px;justify-content:center}
.cf-actions .btn{width:100%;text-align:center}
.crossfit .small.cf-note{margin:12px auto 0;max-width:60ch;text-align:center;font-size:13px;color:var(--chalk-45)}
/* CrossFit photos: a swipe carousel since 2026-10-27 (Phedias), same controls and auto-advance as the review carousel */
.cf-gallery{margin-top:40px}
.cf-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cf-track::-webkit-scrollbar{display:none}
.cf-track picture{display:block;flex:0 0 86%;scroll-snap-align:start}/* display:block: the site's picture{display:contents} would make the img the flex item and leave the picture with no box to measure */
.cf-track img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:10px;background:var(--iron);display:block}
.cf-nav{display:flex;align-items:center;gap:14px;margin-top:16px}
.cf-prev,.cf-next{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--chalk-45);background:none;color:var(--chalk);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:border-color .15s,color .15s}
.cf-prev:hover,.cf-next:hover{border-color:var(--cyan);color:var(--cyan)}
.cf-dots{display:flex;gap:7px}
.cf-dots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--chalk-45);padding:0;cursor:pointer}
.cf-dots button[aria-current=true]{background:var(--cyan)}
.cf-faq{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}
.cf-faq h3{margin-bottom:4px}

@media(min-width:640px){
  .crossfit .trow{grid-template-columns:150px 1fr;padding:12px 18px 12px 22px}
  .crossfit .tgroup b{font-size:26px}
  .cf-slots span{font-size:15px}
  .cf-actions{flex-direction:row;flex-wrap:wrap}.cf-actions .btn{width:auto}
  .cf-track{gap:14px}
  .cf-track picture{flex-basis:46%}
  .cf-track img{aspect-ratio:3/4}
}

@media(min-width:980px){
  .crossfit .bolt{width:520px;left:-160px;bottom:-80px}
  .cf-band{padding:120px 0}
  .kids-band{padding:96px 0}
  .kids-band h2{font-size:90px}
  .kids-details{padding-top:16px}
  .cf-band .cf-copy{max-width:640px}
  .cf-copy .lede{max-width:48ch}
  .crossfit .trow{grid-template-columns:180px 1fr;padding:14px 20px 14px 24px;gap:16px}
  .crossfit .tgroup b{font-size:30px}
  .cf-slots span{font-size:16px;padding:8px 11px 7px}
  .cf-gallery{margin-top:56px}
  .cf-track{gap:18px}
  .cf-track picture{flex-basis:32%}
  .cf-track img{aspect-ratio:4/5}
  .cf-track picture:last-child img{object-position:center 45%}
  .cf-faq{margin-top:64px;padding-top:40px}
  .cf-faq .list{max-width:760px}
}

/* ===== blog (web/blog/, generated by projects/content-system/website-blog/build_blog.py) ===== */
.post-head{background:linear-gradient(180deg,var(--iron) 0%,var(--navy) 100%);border-bottom:1px solid var(--line)}
.post-head .wrap{padding-top:40px;padding-bottom:28px;max-width:820px}
.blog-head .wrap{padding-top:48px;padding-bottom:36px;max-width:var(--max)}
.post-head .eyebrow{font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.post-head .eyebrow a:hover{color:var(--cyan)}
.post-head h1{letter-spacing:.02em}
.post-meta{font-family:var(--mono);font-size:13px;color:var(--chalk-45);margin-top:14px}
.post-draft,.post-draft-chip{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--iron);background:var(--cyan);display:inline-block;padding:3px 8px;border-radius:3px}
.post-draft{margin-top:14px}
.post-hero{margin:0}
.post-hero img{width:100%;max-height:60vh;object-fit:cover}
.post-body{max-width:820px;padding-top:36px;padding-bottom:12px;font-size:18px;line-height:1.6}
.post-body>*+*{margin-top:1.1em}
.post-body h2{font-size:32px;margin-top:1.7em;letter-spacing:.02em}
.post-body h3{font-size:24px;margin-top:1.4em}
.post-body a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.post-body ul,.post-body ol{padding-left:1.3em}
.post-body li+li{margin-top:.4em}
.post-body blockquote{margin:1.4em 0;padding:0 0 0 18px;border-left:3px solid var(--blue);color:var(--chalk-70)}
.post-body figure{margin:1.6em 0}
.post-body figure img{width:100%;border-radius:6px}
.post-body figcaption{font-family:var(--mono);font-size:12px;color:var(--chalk-45);margin-top:8px}
.post-body .video-wide{max-width:none;aspect-ratio:16/9;border-radius:8px}
.post-sign{font-family:var(--display);font-size:26px;letter-spacing:.04em;text-transform:uppercase;color:var(--cyan);margin-top:1.8em}
.post-cta{border-top:1px solid var(--line);margin-top:40px}
.post-cta .wrap{max-width:820px;padding-top:36px;padding-bottom:48px}
.post-cta .lede{margin-top:12px}
.post-cta .actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.post-cta .actions .btn{width:100%}
.post-more{background:var(--iron);padding:40px 0 48px}
.post-more ul{list-style:none;padding:0;margin:20px 0 0;border-top:1px solid var(--line)}
.post-more li a{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.post-more li a:hover .post-more-title{color:var(--cyan)}
.post-more-date{font-family:var(--mono);font-size:12px;color:var(--chalk-45)}
.post-more-title{font-weight:600}
.post-back{display:inline-block;margin-top:18px;font-family:var(--mono);font-size:13px;color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.post-cards{list-style:none;padding:0;margin:0;display:grid;gap:16px}
/* listing cards: the post's photo beside the teaser (Phedias, 2026-10-28: "a photo next to each post"); stacked on phones, photo left from 760px */
.post-card a{display:flex;flex-direction:column;height:100%;background:var(--elev);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:6px;overflow:hidden;transition:border-color .15s}
.post-card a:hover{border-color:var(--cyan)}
.post-card .post-photo{display:block;position:relative;aspect-ratio:16/9;background:var(--iron)}
.post-card .post-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block}/* absolute so a portrait photo never sets the card's height */
.post-card .post-text{display:flex;flex-direction:column;gap:10px;flex:1;padding:22px}
.post-card .post-meta{margin-top:0}
.post-card p{color:var(--chalk-70)}
.post-read{margin-top:auto;font-family:var(--mono);font-size:13px;color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
@media(min-width:720px){
  .post-cta .actions{flex-direction:row}
  .post-cta .actions .btn{width:auto;min-width:220px}
  .post-card a{flex-direction:row}
  .post-card .post-photo{flex:0 0 42%;aspect-ratio:auto;align-self:stretch;min-height:240px}
  .post-head .wrap{padding-top:56px}
  .post-body h2{font-size:36px}
}
@media(min-width:1024px){
  .post-card .post-photo{flex-basis:360px}
}
/* blog: SEO/AEO pass 2026-10-23 (breadcrumb, summary, author box, questions, author pages) */
.crumbs{font-family:var(--mono);font-size:12px;color:var(--chalk-45);margin-bottom:14px;letter-spacing:.04em}
.crumbs a:hover{color:var(--cyan)}
.crumbs span{margin:0 6px}
.post-summary{margin-top:18px;padding:16px 18px;border-left:3px solid var(--blue);background:rgba(29,152,248,.08);border-radius:0 6px 6px 0;font-size:17px;line-height:1.55;color:var(--chalk)}
.post-summary strong{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:6px}
.post-faq{margin-top:2.2em;padding-top:1.4em;border-top:1px solid var(--line)}
.post-faq h2{margin-top:0}
.post-faq h3{font-family:var(--body);font-weight:600;font-size:18px;text-transform:none;letter-spacing:0;line-height:1.35;margin-top:1.3em}
.post-faq h3+p{margin-top:.5em;color:var(--chalk-70)}
.post-author{margin-top:2.4em;padding:20px;background:var(--elev);border:1px solid var(--line);border-radius:6px;font-size:16px}
.post-author .who{font-family:var(--display);font-size:24px;letter-spacing:.03em;text-transform:uppercase}
.post-author .who a:hover{color:var(--cyan)}
.post-author .role{font-family:var(--mono);font-size:12px;color:var(--cyan);letter-spacing:.06em;margin-top:2px}
.post-author p{margin-top:10px;color:var(--chalk-70)}
.author-head .wrap{max-width:820px}
.author-head .creds{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.author-head .creds li{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--chalk);border:1px solid var(--chalk-45);border-radius:4px;padding:5px 10px}
.author-list{margin-top:28px;display:grid;gap:12px}
.author-list a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:var(--elev);border:1px solid var(--line);border-radius:6px}
.author-list a:hover{border-color:var(--cyan)}
.author-list .who{font-family:var(--display);font-size:22px;letter-spacing:.03em;text-transform:uppercase}
@media(min-width:720px){.author-list{grid-template-columns:1fr 1fr}}

/* social links as text in each platform's colour, hero and footer (Phedias, 2026-10-23, third pass: "just use writing but in their respective brand colours") */
.soc{display:inline-flex;align-items:center;justify-content:center;width:var(--soc-size,44px);height:var(--soc-size,44px);border-radius:50%;line-height:0;transition:transform .15s ease,filter .15s ease}
.soc svg{width:calc(var(--soc-size,44px) * .58);height:calc(var(--soc-size,44px) * .58);display:block}
.soc:hover,.soc:focus-visible{transform:translateY(-2px);filter:brightness(1.25)}
.soc:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.soc{color:var(--chalk-70)}.soc:hover,.soc:focus-visible{color:var(--cyan)}/* monochrome (Phedias, 2026-10-23) */
.foot-social{display:flex;flex-wrap:wrap;gap:4px;margin-top:14px;margin-left:-10px}
@media(prefers-reduced-motion:reduce){.soc{transition:none}.soc:hover{transform:none}}

/* blog author photos (Phedias, 2026-10-23) */
.avatar{display:block;flex:0 0 auto;border-radius:50%;background:var(--navy)}
.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid var(--blue);box-sizing:border-box}
.avatar-box{width:72px;height:72px}
.avatar-list{width:56px;height:56px}
.avatar-page{width:160px;height:160px;margin:20px 0 22px}
.post-author.has-photo{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start}
.post-author.has-photo .who{margin-top:4px}
.author-list a.has-photo{flex-direction:row;align-items:center;gap:14px}
.author-list .author-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.author-list a:hover .avatar img{border-color:var(--cyan)}

/* coaches grid on coaching.html, WhatsApp community block on the home page, new photos (Phedias, 2026-10-23) */
.svc-online{object-position:center 38%}/* 9:16 source: lockout, both faces and the judge's fist in the 4:3 and 4:5 crops */
.coach-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;margin-top:28px}
.coach-card{display:block;color:inherit}
.coach-card picture{display:block;aspect-ratio:1;overflow:hidden;border-radius:10px;background:var(--elev)}
.coach-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.coach-card:hover img{transform:scale(1.03)}
.coach-card h3{font-size:26px;margin-top:12px;line-height:1.05}
.coach-card .role{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-top:4px}
.coach-card p:not(.role){color:var(--chalk-70);font-size:14px;margin-top:6px}
.wa-cta{margin-top:12px;max-width:58ch}
.wa-cta p{color:var(--chalk-70);font-size:16px;margin-bottom:18px}
.wa-join{font-size:18px;min-height:60px;padding:0 28px;gap:.6em}
.wa-join svg{width:28px;height:28px;flex:none}
@media (min-width:980px){
  .coach-grid{grid-template-columns:repeat(5,1fr);gap:28px 20px}
  .coach-card h3{font-size:26px}
}

/* IRON83 section on the home page, before the footer: the MailerLite form alone on plain navy (Phedias, 2026-10-23: "remove background, keep it simple") */
.iron83{background:var(--navy);border-top:1px solid var(--line)}
.iron83-form{max-width:560px;margin:0 auto;min-height:220px}
.iron83-form .ml-embedded{min-height:180px}

/* CrossFit section without the timetable: one line of times + schedule button (Phedias, 2026-10-23) */


/* community section centred (Phedias, 2026-10-23: "looks better centered to make it stand out") */
.community .wrap{text-align:center}
.community .stats{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;justify-items:center}
@media (min-width:980px){.community .stats{display:flex;justify-content:center;gap:40px 64px}}
.community .h-l{margin-left:auto;margin-right:auto;max-width:22ch}
.wa-cta{margin-left:auto;margin-right:auto}
.wa-cta p{margin-left:auto;margin-right:auto}

/* community section: copy below the faces (Phedias, 2026-10-23, "the writing hides the faces") */
/* the photo flows at its own aspect (never zoomed), the copy overlaps its lower part and runs on into navy; same idea on phones (Phedias, 2026-10-23) */
.community{padding-top:0}
.community>picture>img{position:static;display:block;width:100%;height:auto;opacity:.7}
.community::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,24,0) 8%,rgba(13,15,24,.6) 18%,rgba(13,15,24,.97) 30%)}
.community .wrap{z-index:1;margin-top:-48px;padding-bottom:56px}
@media (min-width:980px){
  .community::after{background:linear-gradient(180deg,rgba(13,15,24,0) 45%,rgba(13,15,24,.55) 62%,rgba(13,15,24,.97) 78%)}
  .community .wrap{margin-top:-210px;padding-bottom:72px}
}

/* service-tile titles: cyan outline so they stand off the photo (Phedias, 2026-10-23) */
.tile h3{-webkit-text-stroke:1.2px var(--cyan);paint-order:stroke fill;letter-spacing:.04em;text-shadow:0 2px 14px rgba(13,15,24,.85)}
.tile .cap{background:linear-gradient(180deg,rgba(13,15,24,0),rgba(13,15,24,.55) 35%,rgba(13,15,24,.94))}

/* contact page: community card beside Talk to us (Phedias, 2026-10-23, "let them join the community but also message us, make each explicit") */
.wa-join-sm{gap:.5em}.wa-join-sm svg{width:22px;height:22px;flex:none}
.cd-links{display:flex;flex-wrap:wrap;gap:10px}/* Visit card: directions + drop-in side by side (Phedias, 2026-10-23) */
.cg-aff{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-family:var(--mono);font-size:12px;color:var(--chalk-45)}.cg-aff img{width:26px;height:26px;opacity:.9}/* small affiliate mark on the contact page (Phedias, 2026-10-23) */

/* careers: the application form lives on careers.html; contact.html keeps the three cards and a button (Phedias, 2026-10-23) */
.careers-cta{margin-top:28px;display:grid;gap:16px;justify-items:start}
.careers-cta .lede{max-width:52ch}
.careers-page .careers-form{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}

/* side overlay for a service section (Phedias, 2026-10-23, Personal Training first): phone = photo on top, copy overlapping its lower part; desktop = photo on the right half bleeding to the edge, fading into the section colour; same idea as the free-consultation section */
.svc-side{position:relative;overflow:hidden;padding-top:0}
.svc-side>picture{position:relative;display:block}
.svc-side>picture>img{display:block;width:100%;height:auto;opacity:.8}
.svc-side>picture::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,32,45,0) 35%,rgba(28,32,45,.6) 65%,rgba(28,32,45,1) 100%)}
.svc-side .svc-wrap{position:relative;z-index:1;display:block;margin-top:-56px}
@media (min-width:980px){
  .svc-side{padding:88px 0;min-height:640px}
  .svc-side>picture{position:absolute;top:0;right:0;width:50%;max-width:860px;aspect-ratio:4/5}
  .svc-side>picture>img{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.9}
  .svc-side>picture::after{background:linear-gradient(90deg,rgba(28,32,45,1) 0%,rgba(28,32,45,.3) 28%,rgba(28,32,45,0) 55%),linear-gradient(180deg,rgba(28,32,45,0) 60%,rgba(28,32,45,1) 100%)}
  .svc-side .svc-wrap{margin-top:0}
  .svc-side .svc-copy{max-width:calc(50% - 24px)}
}

/* footer: Google review link under Visit, with the G and five stars (Phedias, 2026-10-23) */
.foot-review{display:inline-flex;align-items:center;gap:10px;margin-top:6px;padding:8px 12px 8px 10px;white-space:nowrap;border:1px solid var(--line);border-radius:8px;background:var(--elev);color:var(--chalk);font-size:14px;font-weight:600;transition:border-color .15s}
.foot-review:hover,.foot-review:focus-visible{border-color:var(--cyan);color:var(--chalk)}
.foot-review .g-logo{width:22px;height:22px;flex:none}
.foot-review .g-stars{font-size:16px;letter-spacing:.04em;line-height:1;color:var(--blue)}/* brand blue in the footer (Phedias, 2026-10-23) */
.cd .addr{color:var(--chalk-70)}.cd .addr:hover{color:var(--cyan)}/* address links open the Google listing for directions (Phedias, 2026-10-23) */
.hero .loc a{color:inherit;text-decoration:underline;text-decoration-color:var(--chalk-45);text-underline-offset:3px}.hero .loc a:hover{color:var(--cyan);text-decoration-color:var(--cyan)}/* hero address opens the Google listing (Phedias, 2026-10-23) */

/* hero: the 7-day trial is the primary button, the consultation the outline (Phedias, 2026-10-23, "make Try 7 days more attractive, highlighted, bolder") */
.btn-hero{min-height:56px;padding:0 26px;font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.04em;line-height:1;box-shadow:0 8px 28px rgba(29,152,248,.35)}
.btn-hero:hover,.btn-hero:focus-visible{box-shadow:0 10px 32px rgba(93,223,244,.45)}
@media (min-width:980px){.btn-hero{min-height:58px;padding:0 30px;font-size:24px}.hero .actions{align-items:center}}

/* weekly schedule section (home page, above the trial): grid on desktop, day tabs on phones; the markup between the
   schedule-grid markers is generated by the flyer script (Phedias, 2026-10-27). Live Wodify embed folded under a details. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sched-grid{margin-top:22px}
.sg-grid{display:none}
.sg-list{background:var(--elev);border-radius:6px;overflow:hidden}
.sg-list .rows .c{display:flex;flex-wrap:wrap;gap:0 .4em}
.cl-k{color:var(--cyan)}.cl-s{color:var(--blue)}.cl-o{color:var(--chalk-45)}
.live-wrap{margin-top:18px}
.live-wrap>summary{cursor:pointer;font-family:var(--mono);font-size:13px;color:var(--chalk-70);padding:10px 0}
.live-wrap>summary:hover{color:var(--chalk)}
.live-wrap .table{margin-top:10px}
.inline-link{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}.inline-link:hover{color:var(--chalk)}
@media(min-width:980px){
  .sched-grid{margin-top:28px}
  .sg-list{display:none}
  .sg-grid{display:block;font-size:16px}
  .sg-row{display:grid;grid-template-columns:84px repeat(7,1fr);gap:4px;margin-bottom:4px}
  .sg-row>div{background:var(--elev);border-radius:4px;min-height:66px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:6px 4px;line-height:1.2;font-weight:600}
  .sg-head>div{background:transparent;min-height:0;font-family:var(--mono);font-weight:400;color:var(--blue);letter-spacing:.08em;text-transform:uppercase;padding:0 0 4px}
  .sg-head abbr{text-decoration:none}
  .sg-t{font-family:var(--mono);font-weight:400;color:var(--blue)}
  .sg-cell .sub{font-size:13px}
}
/* contact page: full-schedule button under the opening hours (Phedias, 2026-10-27) */
.hours-btn{margin-top:18px}
/* hero: the one-line pointer to the consultation under the buttons (Phedias, 2026-10-27) */
.hero-start{margin-top:16px;font-size:17px;font-weight:600;color:var(--chalk)}
.hero-start a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}.hero-start a:hover{color:var(--chalk)}
/* hero: the paragraph under the services line is gone (Phedias, 2026-10-27), so the buttons take a little air of their own */
.hero .amen+.actions{margin-top:28px}
/* phones (Phedias, 2026-10-27): bigger headline, the services as a short-label row under it, no Health Store;
   640px and up keeps the full labels in one line with Health Store and a single Sauna & Cold Plunge */
.hero .amen .short,.hero .amen .phone-only{display:none}
.hero .amen .dot:has(+.phone-only){display:none}
@media(max-width:639px){
  .hero{min-height:72vh}
  .hero .wrap{padding-top:56px}
  .hero h1{font-size:64px}
  .hero .eyebrow.amen{font-size:14px;letter-spacing:.1em;line-height:2.1;margin-top:14px;color:#fff}
  .hero .amen .full,.hero .amen .desk-only{display:none}
  .hero .amen .short,.hero .amen .phone-only{display:inline}
  .hero .amen .dot:has(+.phone-only){display:inline}
  .hero .amen .dot:has(+.desk-only){display:none}
  .hero .amen a{border-bottom-width:1px;padding-bottom:1px;white-space:nowrap}
}
}
