/* ROUND — unified visual system inspired by the approved advantages reference */
:root{
  --paper:#f3f3f1;
  --paper-2:#ececea;
  --ink:#0b0b0b;
  --accent:#d71920;
  --muted-2:#686868;
  --rule:rgba(11,11,11,.14);
  --section-space:clamp(56px,7vw,96px);
}

body{
  background:var(--paper);
  color:var(--ink);
}

.wrap{
  width:min(1280px,calc(100% - clamp(32px,7vw,96px)));
}

.h2,
.philosophy__title,
.directions__title,
.legacy__title,
.why__title,
.lead__h2,
.results__title{
  font-style:italic;
  letter-spacing:0;
}

.kicker,
.directions__kicker,
.legacy__kicker,
.why__kicker,
.find__kicker{
  letter-spacing:.18em;
}

.btn,
.legacy__btn,
.leadForm__btn,
.leadForm__tab,
.leadField input,
.leadField textarea,
.find__mapWrap,
.find__card,
.cookieBanner,
.cookieBanner__btn{
  border-radius:0;
}

.btn,
.legacy__btn,
.leadForm__btn{
  min-height:52px;
  padding-inline:24px;
  box-shadow:none;
}

/* Header */
.header{
  --header-h:82px;
  --header-slant:14px;
}
.header::before{
  box-shadow:0 8px 26px rgba(0,0,0,.09);
}
.header__in{
  padding-bottom:4px;
  gap:20px;
}
.brand{gap:12px}
.brand__logo{
  width:92px;
  height:92px;
  margin-bottom:-20px;
  padding:5px;
  box-shadow:0 0 0 2px #fff,0 8px 22px rgba(0,0,0,.17);
}
.brand__text{padding-top:4px}
.brand__line1{font-size:25px}
.brand__line2{font-size:11px}
.brand__honor{margin-top:6px;font-size:9px}
.nav{gap:clamp(12px,1.3vw,22px)}
.nav a{
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:13px;
}
.anthem__label{font-size:10px}
.burger{border-color:var(--rule)}
.drawer{top:var(--header-h);box-shadow:0 16px 24px rgba(0,0,0,.1)}

/* Hero */
.hero{
  --hero-h:calc(100svh - 82px);
  min-height:min(var(--hero-h),760px);
  max-height:760px;
}
.hero__content{
  padding:clamp(88px,9vw,124px) clamp(32px,6vw,88px) clamp(48px,6vw,72px);
}
.hero--spar .hero__left{max-width:590px}
.hero--spar .hero__eyebrow{
  margin-bottom:14px;
  font-size:12px;
  letter-spacing:.18em;
}
.hero--spar .hero__h1{
  font-style:italic;
  font-size:clamp(48px,6vw,74px);
  line-height:.91;
  letter-spacing:0;
}
.hero--spar .hero__lead{
  margin-top:20px;
  max-width:40ch;
  font-size:17px;
}
.hero--spar .hero__ctaRow{margin-top:28px}
.hero--spar .hero__offer{
  border-left:2px solid var(--accent);
  background:rgba(0,0,0,.38);
}

/* Shared paper sections */
.philosophy,
.directions,
.coaches,
.faq,
.galleryPage,
.schedulePage,
.dirHub,
.coachesHub,
.legal,
.dirPage,
.coachPage,
.gusIntro{
  background-color:var(--paper);
  background-image:url("../images/paper-grunge.jpg");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
}

.philosophy,
.directions,
.coaches,
.faq{
  padding:var(--section-space) 0;
  margin:0;
  border-top:0;
}

.paper-flow{
  background-color:var(--paper);
  background-image:url("../images/paper-grunge.jpg");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
}
.paper-flow .philosophy,
.paper-flow .directions,
.paper-flow .legacy--live{
  background:transparent;
}
.paper-flow .philosophy{
  padding-bottom:clamp(30px,3vw,44px);
}
.paper-flow .directions{
  padding-top:clamp(30px,3vw,44px);
  border-top:0;
}

.philosophy::before,
.directions::before{
  display:none;
}

/* Philosophy */
.philosophy__grid{
  grid-template-columns:minmax(230px,.85fr) minmax(260px,1fr) minmax(300px,1.15fr);
  gap:clamp(28px,4vw,56px);
}
.philosophy__visual{
  width:min(100%,310px);
  margin:24px auto 0;
  padding-top:26px;
}
.philosophy__frame{box-shadow:14px 16px 0 rgba(11,11,11,.08)}
.philosophy__img{filter:grayscale(.35) contrast(1.08)}
.philosophy__accent{
  width:7px;
  box-shadow:none;
}
.philosophy__quote{font-size:clamp(21px,2.2vw,29px)}
.philosophy__title{
  font-size:clamp(38px,5vw,62px);
  line-height:.9;
}
.philosophy__lead{font-size:15px}
.philosophy__values{
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.philosophy__value{padding:17px 0}
.philosophy__icon{width:38px;height:38px}
.philosophy__value strong{font-size:15px}
.philosophy__value > div span{font-size:12px}

/* Directions */
.directions__inner{gap:34px}
.directions__inner::before{display:none}
.directions__head{
  grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);
  padding-top:0;
  border-top:0;
}
.directions__title{
  font-size:clamp(42px,5.5vw,68px);
  line-height:.9;
}
.directions__lead{font-size:15px}
.directions__all,
.legacy__btn{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.dirTiles{
  width:100%;
  max-width:none;
  gap:12px;
}
.dirTile--portrait{
  grid-column:span 3;
  aspect-ratio:3/4;
}
.dirTile--wide{
  grid-column:span 12;
  aspect-ratio:4/1;
  min-height:200px;
}
.dirTile__body{padding:20px}
.dirTile__age{padding:5px 9px}
.dirTile__title{font-size:clamp(21px,2vw,28px)}
.dirTile__text{font-size:13px}

/* Legacy and history */
.legacy--live{
  padding:var(--section-space) 0;
  background-color:var(--paper);
  background-image:url("../images/paper-grunge.jpg");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
  color:var(--ink);
}
.legacyLive{
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);
  gap:clamp(32px,5vw,72px);
  align-items:stretch;
}
.legacyLive__portrait{
  position:relative;
  min-height:690px;
  margin:0;
  overflow:hidden;
  border-bottom:6px solid var(--accent);
  background:#ddd;
  box-shadow:18px 18px 0 rgba(11,11,11,.08);
}
.legacyLive__portrait > img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.legacyLive__portrait figcaption{
  position:absolute;
  left:22px;
  right:22px;
  bottom:22px;
  display:grid;
  gap:5px;
  padding:17px 18px;
  border-left:4px solid var(--accent);
  background:rgba(255,255,255,.94);
  color:var(--ink);
}
.legacyLive__portrait figcaption strong{
  font-family:var(--font-display);
  font-size:19px;
}
.legacyLive__portrait figcaption span{
  color:var(--muted-2);
  font-size:12px;
}
.legacyLive__active{
  position:absolute;
  top:22px;
  right:0;
  padding:10px 16px;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
}
.legacyLive__content{
  align-self:center;
  min-width:0;
}
.legacyLive__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
}
.legacyLive__title{
  max-width:720px;
  font-family:var(--font-display);
  font-size:clamp(42px,5vw,68px);
  font-style:italic;
  line-height:.88;
}
.legacyLive__title span{color:var(--accent)}
.legacyLive__lead{
  max-width:680px;
  margin:22px 0 0;
  color:#4f4f4f;
  font-size:15px;
  line-height:1.62;
}
.legacyLive__facts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin:28px 0 0;
  padding:0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  list-style:none;
}
.legacyLive__facts li{
  display:grid;
  align-content:start;
  gap:6px;
  min-height:108px;
  padding:18px;
  border-left:1px solid var(--rule);
}
.legacyLive__facts li:first-child{border-left:0}
.legacyLive__facts strong{
  color:var(--accent);
  font-family:var(--font-display);
  font-size:21px;
  line-height:1;
  text-transform:uppercase;
}
.legacyLive__facts span{
  color:var(--muted-2);
  font-size:11px;
  line-height:1.4;
}
.legacyLive__actions{
  display:flex;
  gap:24px;
  align-items:center;
  margin-top:24px;
}
.legacyLive__actions p{
  margin:0;
  color:#333;
  font-family:"Segoe Script","Comic Sans MS",cursive;
  font-size:17px;
  line-height:1.18;
  transform:rotate(-2deg);
}
.legacyLive__today{
  display:grid;
  grid-template-columns:minmax(240px,.9fr) minmax(240px,1.1fr);
  min-height:170px;
  margin:26px 0 0;
  overflow:hidden;
  border-bottom:4px solid var(--accent);
  background:#111;
  color:#fff;
}
.legacyLive__today picture,
.legacyLive__today img{
  width:100%;
  height:100%;
}
.legacyLive__today img{
  display:block;
  min-height:170px;
  object-fit:cover;
  object-position:center;
}
.legacyLive__today figcaption{
  display:grid;
  align-content:center;
  gap:8px;
  padding:22px;
}
.legacyLive__today figcaption strong{
  color:var(--accent);
  font-family:var(--font-display);
  font-size:17px;
}
.legacyLive__today figcaption span{
  color:rgba(255,255,255,.72);
  font-size:12px;
  line-height:1.45;
}
.history{
  padding:var(--section-space) 0;
  background:
    linear-gradient(105deg,rgba(215,25,32,.08),transparent 32%),
    #0b0b0b;
}
.history__grid{gap:clamp(28px,4vw,52px)}
.timeline__item time{font-size:21px}
.timeline__item p{font-size:12px}

/* Advantages: preserve supplied composite background */
.why{
  background:#f4f4f4 url("../images/why-background.jpg") center top / 100% 100% no-repeat;
}
.why__title{font-style:italic}

/* Coaches */
.coaches{
  position:relative;
  background:#fff url("../images/paper-grunge.jpg") center / 100% 100% no-repeat;
}
.coaches__head{
  display:block;
  margin-bottom:28px;
}
.coaches__heading{
  padding:0;
}
.coaches__heading .kicker{margin-bottom:12px}
.coaches__title{
  max-width:760px;
  font-family:var(--font-display);
  font-size:clamp(40px,3.8vw,50px);
  font-style:italic;
  font-weight:700;
  line-height:.9;
  letter-spacing:.005em;
}
.coaches__title span{color:var(--accent)}
.coaches__lead{
  max-width:720px;
  margin-top:18px;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.55;
}
.coaches__gym{
  position:relative;
  height:230px;
  margin:0;
  overflow:hidden;
  border-bottom:4px solid var(--accent);
  background:#111;
}
.coaches__gym::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 48%,rgba(0,0,0,.5));
}
.coaches__gym img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:68% 50%;
  filter:saturate(.85) contrast(1.08);
}
.coaches__gym figcaption{
  position:absolute;
  z-index:1;
  right:24px;
  bottom:22px;
  max-width:180px;
  color:#fff;
  font-family:"Segoe Script","Comic Sans MS",cursive;
  font-size:21px;
  line-height:1.15;
  text-align:right;
  transform:rotate(-5deg);
}
.coaches__grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.coachCard{
  display:flex;
  min-width:0;
  flex-direction:column;
  border:1px solid rgba(11,11,11,.12);
  background:#fff;
  box-shadow:none;
}
.coachCard:hover{
  border-color:rgba(215,25,32,.45);
  box-shadow:0 14px 30px rgba(0,0,0,.08);
}
.coachCard__img{
  height:clamp(230px,20vw,280px);
  background:#171717;
}
.coachCard__img img{
  object-position:50% 20%;
  filter:saturate(.88) contrast(1.05);
}
.coachCard__body{
  flex:1;
  min-height:200px;
  padding:18px 18px 54px;
  border-top:3px solid var(--accent);
  background:rgba(255,255,255,.94);
}
.coachCard__name{
  min-height:42px;
  font-size:20px;
  line-height:1.02;
}
.coachCard__role{
  margin-top:8px;
  font-size:11px;
}
.coachCard__facts{
  display:grid;
  gap:7px;
  margin:16px 0 0;
  padding:0;
  list-style:none;
  color:#5e5e5e;
  font-size:12px;
  line-height:1.35;
}
.coachCard__facts li{
  position:relative;
  padding-left:17px;
}
.coachCard__facts li::before{
  content:"//";
  position:absolute;
  left:0;
  color:var(--accent);
  font-family:var(--font-display);
  font-weight:700;
}
.coachCard__arrow{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  right:16px;
  bottom:14px;
  border:1px solid var(--accent);
  border-radius:50%;
  font-size:17px;
}
.coaches__foot{
  display:grid;
  grid-template-columns:minmax(300px,1.15fr) minmax(420px,1.85fr);
  gap:clamp(24px,4vw,56px);
  align-items:center;
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid var(--rule);
}
.coaches__foot > p{
  display:grid;
  gap:5px;
  padding-left:18px;
  border-left:4px solid var(--accent);
}
.coaches__foot > p strong{
  font-family:var(--font-display);
  font-size:18px;
  line-height:1.05;
}
.coaches__foot > p span{
  color:var(--muted-2);
  font-size:12px;
}
.coaches__foot ul{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin:0;
  padding:0;
  list-style:none;
}
.coaches__foot li{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:10px;
  align-items:center;
  min-height:64px;
  padding:0 18px;
  border-left:1px solid var(--rule);
}
.coaches__foot li img{
  width:44px;
  height:44px;
  object-fit:contain;
}
.coaches__foot li span{
  display:grid;
  gap:3px;
  color:var(--muted-2);
  font-size:11px;
  line-height:1.25;
}
.coaches__foot li b{
  color:var(--ink);
  font-family:var(--font-display);
  font-size:14px;
  text-transform:uppercase;
}

/* Results */
.results{
  padding:clamp(40px,5vw,64px) 0;
  background:
    linear-gradient(100deg,rgba(215,25,32,.12),transparent 38%),
    #0b0b0b;
}
.results__bar{
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(28px,4vw,56px);
  align-items:center;
}
.results__title{
  font-size:clamp(30px,3.5vw,44px);
  line-height:.95;
}
.results__icons{gap:18px}
.results__icons li{font-size:12px}
.results__ico{width:64px;height:64px}

/* Trial form */
.lead{
  padding:var(--section-space) 0;
  background:#d71920;
}
.lead::before{
  background:
    linear-gradient(118deg,rgba(0,0,0,.28),transparent 44%),
    repeating-linear-gradient(-18deg,transparent 0 26px,rgba(255,255,255,.025) 26px 28px);
}
.lead__grid{align-items:start}
.lead__h2{
  font-size:clamp(38px,4.8vw,58px);
  line-height:.92;
}
.leadForm{gap:12px}
.leadForm__who{
  padding:0;
  gap:1px;
  background:rgba(0,0,0,.25);
}
.leadForm__tab{
  border:1px solid rgba(255,255,255,.24);
}
.leadField input,
.leadField textarea{
  border:1px solid rgba(0,0,0,.1);
  box-shadow:none;
}
.leadForm__btn{
  background:#0b0b0b;
}

/* FAQ */
.faq .wrap{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  column-gap:clamp(32px,6vw,88px);
  align-items:start;
}
.faq .kicker{grid-column:1}
.faq .h2{grid-column:1;font-size:clamp(36px,4.4vw,54px);line-height:.94}
.faq__lead{grid-column:1}
.faq__list{
  grid-column:2;
  grid-row:1 / span 3;
  margin-top:0;
  max-width:none;
  gap:0;
  border-top:1px solid var(--rule);
}
.faq__item{
  border:0;
  border-bottom:1px solid var(--rule);
  background:transparent;
}
.faq__item summary{
  padding:20px 4px;
  font-size:15px;
}
.faq__item p{padding:0 4px 20px}

/* Contacts */
.find{
  padding:var(--section-space) 0;
  background:#0b0b0b;
}
.find__head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:16px 24px;
}
.find__titleRow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 18px;
  min-width:0;
}
.find__titleRow .find__kicker{margin:0}
.find__videoBtn{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border:1px solid var(--accent);
  background:transparent;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.find__videoBtn:hover{
  background:var(--accent);
  color:#fff;
}
.find__mapWrap{
  min-height:440px;
  border-color:rgba(255,255,255,.14);
  box-shadow:none;
}
.find__card{
  border:0;
  border-left:4px solid var(--accent);
  background:rgba(11,11,11,.92);
  backdrop-filter:none;
}

/* Footer */
.footer__top{align-items:start}
.footer__nav{gap:14px 24px}
.footer__nav a{
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:12px;
}
.footer__bar{align-items:flex-start}

.find__phone,
.find__route,
.footer__legal a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}

.leadConsent{
  min-height:44px;
}

/* Directions hub page */
.dirsPage{
  background-color:var(--paper);
  background-image:url("../images/paper-grunge.jpg");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
}
.dirsHero{
  padding:clamp(40px,6vw,72px) 0 clamp(28px,4vw,40px);
}
.dirsHero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(220px,.7fr);
  gap:clamp(28px,5vw,64px);
  align-items:center;
}
.dirsHero__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.dirsHero__kicker span{margin-right:6px}
.dirsHero__title{
  margin:0;
  max-width:14ch;
  font-family:var(--font-display);
  font-size:clamp(40px,5.4vw,68px);
  font-style:italic;
  font-weight:700;
  line-height:.9;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.dirsHero__title span{color:var(--accent)}
.dirsHero__lead{
  max-width:42ch;
  margin:18px 0 28px;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.55;
}
.dirsHero__media{
  position:relative;
  min-width:0;
  width:min(100%,380px);
  justify-self:end;
}
.dirsHero__photo{
  margin:0;
  overflow:hidden;
  border-bottom:5px solid var(--accent);
  background:#111;
  aspect-ratio:4/5;
  max-height:min(460px,58vh);
}
.dirsHero__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.dirsHero__badge{
  position:absolute;
  right:14px;
  bottom:18px;
  z-index:1;
  margin:0;
  padding:12px 14px;
  border-left:4px solid var(--accent);
  background:rgba(255,255,255,.96);
  color:var(--ink);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.25;
  text-transform:uppercase;
}
.dirsHero__badge strong{color:var(--accent)}

.dirsGridSec{padding:12px 0 clamp(48px,6vw,80px)}
.dirsGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.dirsCard{
  display:flex;
  min-width:0;
  flex-direction:column;
  border:1px solid rgba(11,11,11,.12);
  background:#fff;
  color:inherit;
  text-decoration:none;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.dirsCard:hover{
  border-color:rgba(215,25,32,.45);
  box-shadow:0 14px 28px rgba(0,0,0,.08);
  transform:translateY(-2px);
}
.dirsCard__img{
  overflow:hidden;
  aspect-ratio:3/4;
  background:#171717;
}
.dirsCard__img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 18%;
  filter:saturate(.9) contrast(1.05);
  transition:transform .35s ease;
}
.dirsCard:hover .dirsCard__img img{transform:scale(1.03)}
.dirsCard__body{
  position:relative;
  display:grid;
  gap:8px;
  flex:1;
  padding:16px 16px 48px;
  border-top:3px solid var(--accent);
}
.dirsCard__age{
  color:var(--accent);
  font-family:var(--font-display);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.dirsCard__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(20px,1.6vw,24px);
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.dirsCard__text{
  margin:0;
  color:#5e5e5e;
  font-size:13px;
  line-height:1.4;
}
.dirsCard__arrow{
  position:absolute;
  right:14px;
  bottom:14px;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border:1px solid var(--accent);
  border-radius:50%;
  color:var(--accent);
  font-size:17px;
}

.dirsHow{
  padding:clamp(40px,5vw,72px) 0;
  background:#0b0b0b;
  color:#fff;
}
.dirsHow__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,1fr);
  gap:clamp(28px,5vw,56px);
  align-items:center;
}
.dirsHow__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.dirsHow__title{
  margin:0 0 28px;
  font-family:var(--font-display);
  font-size:clamp(34px,4.2vw,52px);
  font-style:italic;
  font-weight:700;
  line-height:.92;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.dirsHow__steps{
  display:grid;
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}
.dirsHow__steps li{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.14);
}
.dirsHow__num{
  color:var(--accent);
  font-family:var(--font-display);
  font-size:22px;
  font-weight:700;
  line-height:1;
}
.dirsHow__steps strong{
  display:block;
  margin-bottom:6px;
  font-family:var(--font-display);
  font-size:16px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.dirsHow__steps p{
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:14px;
  line-height:1.45;
}
.dirsHow__photo{
  margin:0;
  overflow:hidden;
  aspect-ratio:4/5;
  max-height:min(560px,70vh);
  border-bottom:5px solid var(--accent);
  background:#111;
}
.dirsHow__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 30%;
}

.dirsCta{
  padding:clamp(36px,5vw,56px) 0;
  background:var(--accent);
  color:#fff;
}
.dirsCta__in{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center;
  justify-content:space-between;
}
.dirsCta__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(28px,3.6vw,42px);
  font-style:italic;
  font-weight:700;
  line-height:.95;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.dirsCta__lead{
  margin:10px 0 0;
  max-width:40ch;
  color:rgba(255,255,255,.88);
  font-size:15px;
  line-height:1.45;
}
.btn--white{
  background:#fff;
  color:var(--accent);
}
.btn--white:hover{
  background:#111;
  color:#fff;
}
.btn--outline{
  background:transparent;
  color:var(--accent);
  border:1px solid var(--accent);
}
.btn--outline:hover{
  background:var(--accent);
  color:#fff;
}

/* Coaches page (hub) */
.coachesPage{
  background-color:var(--paper);
  background-image:url("../images/paper-grunge.jpg");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
}
.coachesHero{
  padding:clamp(40px,6vw,72px) 0 clamp(28px,4vw,40px);
}
.coachesHero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,1.15fr);
  gap:clamp(28px,5vw,56px);
  align-items:center;
}
.coachesHero__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.coachesHero__kicker span{margin-right:6px}
.coachesHero__title{
  margin:0;
  max-width:12ch;
  font-family:var(--font-display);
  font-size:clamp(40px,5.2vw,64px);
  font-style:italic;
  font-weight:700;
  line-height:.9;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.coachesHero__title span{color:var(--accent)}
.coachesHero__lead{
  max-width:42ch;
  margin:18px 0 28px;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.55;
}
.coachesHero__media{
  min-width:0;
  width:100%;
}
.coachesHero__photo{
  margin:0;
  overflow:hidden;
  aspect-ratio:16/11;
  max-height:none;
  border-bottom:5px solid var(--accent);
  background:#111;
}
.coachesHero__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%;
}

.coachesBenefits{
  padding:0 0 clamp(40px,5vw,64px);
}
.coachesBenefits__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  border:1px solid rgba(11,11,11,.12);
  background:rgba(255,255,255,.78);
}
.coachesBenefits__item{
  padding:22px 18px;
  border-left:1px solid rgba(11,11,11,.1);
}
.coachesBenefits__item:first-child{border-left:0}
.coachesBenefits__item img{
  display:block;
  width:36px;
  height:36px;
  margin-bottom:12px;
  object-fit:contain;
}
.coachesBenefits__item h2{
  margin:0 0 8px;
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.2;
  text-transform:uppercase;
}
.coachesBenefits__item p{
  margin:0;
  color:#5e5e5e;
  font-size:13px;
  line-height:1.4;
}

.coachesTeam{padding:clamp(20px,3vw,36px) 0 clamp(48px,6vw,80px)}
.coachesTeam__head{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(200px,.6fr);
  gap:24px;
  align-items:end;
  margin-bottom:clamp(28px,4vw,40px);
}
.coachesTeam__kicker{
  margin:0 0 12px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.coachesTeam__kicker span{margin-right:6px}
.coachesTeam__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(34px,4vw,50px);
  font-style:italic;
  font-weight:700;
  line-height:.92;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.coachesTeam__title span{color:var(--accent)}
.coachesTeam__lead{
  max-width:48ch;
  margin:14px 0 0;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.5;
}
.coachesTeam__aside{
  margin:0;
  max-width:22ch;
  justify-self:end;
  color:var(--ink);
  font-family:var(--font-display);
  font-size:18px;
  font-style:italic;
  font-weight:700;
  line-height:1.25;
  text-align:right;
}
.coachesTeam__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.coachTile{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  border:1px solid rgba(11,11,11,.12);
  background:#fff;
  scroll-margin-top:calc(var(--header-h,88px) + 12px);
}
.coachTile__img{
  overflow:hidden;
  min-height:280px;
  background:#171717;
}
.coachTile__img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
  filter:saturate(.92) contrast(1.04);
}
.coachTile__body{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:22px 20px 20px;
  border-left:3px solid var(--accent);
}
.coachTile__name{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(20px,1.7vw,26px);
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.coachTile__role{
  margin:0;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.coachTile__text{
  margin:0;
  color:#5e5e5e;
  font-size:14px;
  line-height:1.45;
}
.coachTile__dirs{
  margin-top:4px;
  padding-top:12px;
  border-top:1px solid rgba(11,11,11,.1);
}
.coachTile__dirsLabel{
  display:block;
  margin-bottom:8px;
  color:var(--ink);
  font-family:var(--font-display);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.coachTile__dirs ul{
  display:grid;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.coachTile__dirs li{
  position:relative;
  padding-left:16px;
  color:#444;
  font-size:13px;
  line-height:1.35;
}
.coachTile__dirs li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:7px;
  height:7px;
  background:var(--accent);
}
.coachesHow{
  padding:clamp(40px,5vw,72px) 0;
  background:#0b0b0b;
  color:#fff;
}
.coachesHow__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,1fr);
  gap:clamp(28px,5vw,56px);
  align-items:center;
}
.coachesHow__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.coachesHow__kicker span{margin-right:6px}
.coachesHow__title{
  margin:0 0 28px;
  font-family:var(--font-display);
  font-size:clamp(34px,4.2vw,52px);
  font-style:italic;
  font-weight:700;
  line-height:.92;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.coachesHow__steps{
  display:grid;
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}
.coachesHow__steps li{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.14);
}
.coachesHow__num{
  color:var(--accent);
  font-family:var(--font-display);
  font-size:22px;
  font-weight:700;
  line-height:1;
}
.coachesHow__steps strong{
  display:block;
  margin-bottom:6px;
  font-family:var(--font-display);
  font-size:16px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.coachesHow__steps p{
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:14px;
  line-height:1.45;
}
.coachesHow__photo{
  margin:0;
  overflow:hidden;
  aspect-ratio:16/11;
  max-height:none;
  border-bottom:5px solid var(--accent);
  background:#111;
}
.coachesHow__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%;
}

.coachesQuote{
  padding:clamp(40px,5vw,72px) 0;
  background:#111;
  color:#fff;
}
.coachesQuote__in{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.coachesQuote__mark{
  margin:0 0 8px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:72px;
  font-weight:700;
  line-height:.7;
}
.coachesQuote__text{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(22px,3vw,34px);
  font-style:italic;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.coachesQuote__by{
  margin:18px 0 0;
  color:rgba(255,255,255,.55);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.coachesCta{
  padding:clamp(36px,5vw,56px) 0;
  background:var(--accent);
  color:#fff;
}
.coachesCta__in{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center;
  justify-content:space-between;
}
.coachesCta__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(28px,3.6vw,42px);
  font-style:italic;
  font-weight:700;
  line-height:.95;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.coachesCta__lead{
  margin:10px 0 0;
  max-width:40ch;
  color:rgba(255,255,255,.88);
  font-size:15px;
  line-height:1.45;
}

/* Gallery page — structure mockup, photo placeholders */
.galPage{
  background-color:#fff;
}
.galPh,
.galHero__ph{
  display:grid;
  place-items:center;
  margin:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:
    linear-gradient(135deg,rgba(215,25,32,.08),transparent 40%),
    repeating-linear-gradient(-45deg,rgba(11,11,11,.04) 0 8px,transparent 8px 16px),
    #1a1a1a;
  color:rgba(255,255,255,.55);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
button.galPh{cursor:zoom-in;width:100%;height:100%}
.galPh img,
.galHero__ph img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.galPh:has(img) span,
.galHero__ph:has(img) span{display:none}
.galPh--video:has(.galVideo__thumb) .galVideo__play{display:grid}
.galPh--video:has(.galVideo__thumb) .galVideo__time{display:block}

.galHero{
  position:relative;
  min-height:min(78vh,720px);
  color:#fff;
  background:#0b0b0b;
}
.galHero__ph{
  position:absolute;
  inset:0;
}
.galHero__ph span{z-index:1}
.galHero__ph::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.45) 55%,rgba(0,0,0,.55) 100%);
}
.galHero__in{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:32px;
  align-items:end;
  min-height:inherit;
  padding:clamp(72px,10vw,120px) 0 clamp(40px,5vw,64px);
}
.galHero__kicker{
  margin:0 0 16px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}
.galHero__kicker span{margin-right:6px}
.galHero__title{
  margin:0;
  max-width:12ch;
  font-family:var(--font-display);
  font-size:clamp(48px,7vw,84px);
  font-style:italic;
  font-weight:700;
  line-height:.88;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.galHero__title span{color:var(--accent)}
.galHero__lead{
  max-width:42ch;
  margin:18px 0 0;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.55;
}
.galHero__stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  max-width:420px;
  margin:28px 0 0;
  padding:0;
  list-style:none;
}
.galHero__stats li{
  padding:0 16px;
  border-left:1px solid rgba(215,25,32,.85);
}
.galHero__stats li:first-child{padding-left:0;border-left:0}
.galHero__stats b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(22px,2.4vw,28px);
  font-weight:700;
  line-height:1;
}
.galHero__stats span{
  display:block;
  margin-top:6px;
  color:rgba(255,255,255,.62);
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.galHero__vert{
  margin:0;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  color:rgba(255,255,255,.28);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.28em;
  text-transform:uppercase;
}

.galNav{
  position:sticky;
  top:var(--header-h,82px);
  z-index:20;
  padding:16px 0;
  border-bottom:1px solid rgba(11,11,11,.1);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);
}
.galNav__in{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.galNav__pill{
  padding:10px 16px;
  border:1px solid rgba(11,11,11,.14);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-decoration:none;
  text-transform:uppercase;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.galNav__pill:hover,
.galNav__pill.is-active{
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
}

.galSec{
  padding:clamp(48px,6vw,88px) 0;
  scroll-margin-top:calc(var(--header-h,82px) + 72px);
  border-bottom:1px solid rgba(11,11,11,.08);
}
.galSec__layout{
  display:grid;
  grid-template-columns:minmax(200px,.72fr) minmax(0,1.55fr);
  gap:clamp(28px,4vw,56px);
  align-items:start;
}
.galSec__copy{position:relative;padding-top:8px}
.galSec__num{
  display:block;
  margin-bottom:8px;
  color:rgba(11,11,11,.1);
  font-family:var(--font-display);
  font-size:clamp(64px,8vw,96px);
  font-weight:700;
  line-height:.8;
  letter-spacing:-.04em;
}
.galSec__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(28px,3.4vw,42px);
  font-style:italic;
  font-weight:700;
  line-height:.95;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.galSec__lead{
  max-width:30ch;
  margin:14px 0 0;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.5;
}
.galSec__more{
  display:inline-block;
  margin-top:22px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  text-decoration:none;
  text-transform:uppercase;
}
.galSec__more:hover{text-decoration:underline}

.galMosaic{
  display:grid;
  gap:10px;
  min-width:0;
  height:clamp(340px,42vw,520px);
  align-content:stretch;
}
.galMosaic .galPh,
.galMosaic button.galPh{
  position:relative;
  min-height:0;
  width:100%;
  height:100%;
  max-height:100%;
  overflow:hidden;
  align-self:stretch;
}
.galMosaic .galPh img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* 01: tall left + 2×2 */
.galMosaic--train{
  grid-template-columns:1.15fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
}
.galMosaic--train .galPh:nth-child(1){grid-row:1 / span 2}

/* 02: mosaic with wide center */
.galMosaic--comp{
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(3,1fr);
}
.galMosaic--comp .galPh:nth-child(1){grid-column:1;grid-row:1}
.galMosaic--comp .galPh:nth-child(2){grid-column:2 / span 2;grid-row:1 / span 2}
.galMosaic--comp .galPh:nth-child(3){grid-column:1;grid-row:2}
.galMosaic--comp .galPh:nth-child(4){grid-column:1;grid-row:3}
.galMosaic--comp .galPh:nth-child(5){grid-column:2;grid-row:3}
.galMosaic--comp .galPh:nth-child(6){grid-column:3;grid-row:3}

/* 03: six shots — tall portrait + wide team */
.galMosaic--athletes{
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(3,1fr);
}
.galMosaic--athletes .galPh:nth-child(1){grid-column:1;grid-row:1}
.galMosaic--athletes .galPh:nth-child(2){grid-column:2;grid-row:1}
.galMosaic--athletes .galPh:nth-child(3){grid-column:3 / span 2;grid-row:1 / span 2}
.galMosaic--athletes .galPh:nth-child(4){grid-column:1 / span 2;grid-row:2 / span 2}
.galMosaic--athletes .galPh:nth-child(5){grid-column:3;grid-row:3}
.galMosaic--athletes .galPh:nth-child(6){grid-column:4;grid-row:3}
.galMosaic--athletes .galPh:nth-child(1) img{object-position:35% 20%}
.galMosaic--athletes .galPh:nth-child(2) img{object-position:center 12%}
.galMosaic--athletes .galPh:nth-child(3) img{object-position:center 18%}
.galMosaic--athletes .galPh:nth-child(4) img{object-position:center 45%}
.galMosaic--athletes .galPh:nth-child(5) img{object-position:30% 35%}
.galMosaic--athletes .galPh:nth-child(6) img{object-position:center 40%}

/* 04: four portraits */
.galMosaic--coaches{
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:1fr;
  height:clamp(260px,32vw,360px);
}
.galMosaic--coaches .galPh img{object-position:center 18%}

/* 05: tall left + 2×2 (5 shots) */
.galMosaic--hall{
  grid-template-columns:1.35fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
}
.galMosaic--hall .galPh:nth-child(1){grid-row:1 / span 2}
.galMosaic--hall .galPh:nth-child(1) img{object-position:center 55%}
.galMosaic--hall .galPh:nth-child(2) img{object-position:35% 50%}
.galMosaic--hall .galPh:nth-child(3) img{object-position:center 45%}
.galMosaic--hall .galPh:nth-child(4) img{object-position:60% 45%}
.galMosaic--hall .galPh:nth-child(5) img{object-position:55% 40%}

/* 06: three equal */
.galMosaic--life{
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:1fr;
  height:clamp(200px,26vw,280px);
}
.galMosaic--life .galPh:nth-child(1) img{object-position:center 40%}
.galMosaic--life .galPh:nth-child(2) img{object-position:center 35%}
.galMosaic--life .galPh:nth-child(3) img{object-position:center 30%}

.galSec--video{border-bottom:0}
.galVideo__head{margin-bottom:clamp(24px,3vw,36px)}
.galVideo__head .galSec__lead{max-width:48ch}
.galVideo__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.galVideo{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.galVideo__cap{
  margin:10px 0 0;
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.galPh--video,
button.galPh.galPh--video{
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  height:auto;
  aspect-ratio:16 / 10;
  overflow:hidden;
  padding:0;
  border:0;
  background:#121212;
  color:inherit;
  cursor:default;
}
button.galPh.galPh--video{
  cursor:pointer;
}
.galPh--video .galVideo__thumb{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.galVideo__play{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:16px;
  letter-spacing:0;
  pointer-events:none;
}
.galVideo__time{
  position:absolute;
  z-index:1;
  right:10px;
  bottom:10px;
  display:block;
  padding:4px 8px;
  background:rgba(0,0,0,.7);
  color:#fff;
  font-size:11px;
  letter-spacing:.04em;
  pointer-events:none;
}

.galPlayer{
  width:min(920px,calc(100vw - 32px));
  max-width:920px;
  margin:auto;
  padding:0;
  border:0;
  background:#0b0b0b;
  color:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,.55);
}
.galPlayer::backdrop{background:rgba(0,0,0,.88)}
.galPlayer__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  background:#111;
}
.galPlayer__title{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.galPlayer__close{
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.25);
  background:transparent;
  color:#fff;
  font:inherit;
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}
.galPlayer__stage{
  display:grid;
  place-items:center;
  background:#000;
  min-height:min(70vh,640px);
}
.galPlayer__video{
  display:block;
  width:100%;
  max-height:min(70vh,640px);
  background:#000;
}

.galCta__in.lead__grid{
  grid-template-columns:minmax(0,.9fr) minmax(320px,1.15fr);
}
.galCta__title.lead__h2{
  max-width:12em;
  font-style:italic;
}

/* Subpages */
.galleryPage,
.schedulePage,
.dirHub,
.coachesHub,
.legal,
.dirPage,
.coachPage,
.gusIntro{
  padding-top:clamp(44px,6vw,72px);
}
.scheduleCard,
.eventAlbum__stat,
.page404__in,
.dirDeep__list li,
.coachMethod li{
  border-color:var(--rule);
  background:rgba(255,255,255,.72);
}
.scheduleCard,
.eventAlbum__stat{border-top:3px solid var(--accent)}
.dirPage__media,
.coachPage__media,
.eventAlbum__item,
.masonry__item{border-bottom:4px solid var(--accent)}
.dirFact{border-left-width:2px}

@media (max-width:1279px){
  .header{--header-h:76px;--header-slant:12px}
  .brand__logo{width:76px;height:76px;margin-bottom:-14px}
  .brand__line1{font-size:21px}
}

@media (max-width:1100px){
  .dirTile--portrait{grid-column:span 6;aspect-ratio:4/5}
  .dirTile--wide{aspect-ratio:16/6}
  .legacy__stage{grid-template-columns:1fr 1fr}
  .legacyLive{grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);gap:34px}
  .legacyLive__portrait{min-height:610px}
  .legacyLive__facts li{padding:15px 12px}
  .legacyLive__today{grid-template-columns:1fr}
  .legacyLive__today img{height:190px}
  .dirsGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dirsHow__grid{grid-template-columns:1fr}
  .dirsHow__photo{aspect-ratio:16/11;max-height:none}
  .coachesBenefits__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .coachesBenefits__item:nth-child(2n+1){border-left:0}
  .coachesBenefits__item:nth-child(n+3){border-top:1px solid rgba(11,11,11,.1)}
  .coachesTeam__grid{grid-template-columns:1fr}
  .coachesHow__grid{grid-template-columns:1fr}
  .coachesHow__photo{aspect-ratio:16/11;max-height:none}
  .galSec__layout{grid-template-columns:minmax(180px,.65fr) minmax(0,1.55fr);gap:28px}
  .galVideo__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .coaches__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .coaches__foot{grid-template-columns:1fr}
  .faq .wrap{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}
}

@media (max-width:900px){
  .philosophy__grid{
    grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr);
    align-items:start;
  }
  .philosophy__values{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .philosophy__value:nth-child(2){border-top:0}
  .legacy__stage{grid-template-columns:1fr 1fr}
  .legacy__center{grid-column:2;grid-row:1/span 2}
  .legacy__left{grid-column:1;grid-row:1}
  .legacy__right{grid-column:1;grid-row:2}
  .legacyLive{grid-template-columns:1fr}
  .legacyLive__portrait{
    width:min(100%,620px);
    min-height:620px;
    margin-inline:auto;
  }
  .legacyLive__content{width:100%}
  .legacyLive__today{grid-template-columns:minmax(240px,.9fr) minmax(240px,1.1fr)}
  .dirsHero__grid{grid-template-columns:1fr;gap:28px}
  .dirsHero__media{width:min(100%,340px);justify-self:start}
  .dirsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .coachesHero__grid{grid-template-columns:1fr;gap:28px}
  .coachesHero__media{width:100%}
  .coachesHero__photo{aspect-ratio:16/10}
  .coachesTeam__head{grid-template-columns:1fr}
  .coachesTeam__aside{justify-self:start;text-align:left}
  .coachTile{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
  .galHero__in{grid-template-columns:1fr}
  .galHero__vert{display:none}
  .galSec__layout{grid-template-columns:1fr}
  .galMosaic--train,
  .galMosaic--comp,
  .galMosaic--athletes,
  .galMosaic--hall{
    height:auto;
    grid-template-columns:1fr 1fr;
    grid-template-rows:none;
    grid-auto-rows:160px;
  }
  .galMosaic--train .galPh:nth-child(1),
  .galMosaic--comp .galPh:nth-child(2),
  .galMosaic--athletes .galPh:nth-child(3),
  .galMosaic--athletes .galPh:nth-child(4),
  .galMosaic--hall .galPh:nth-child(1){
    grid-column:1 / -1;
    grid-row:auto;
  }
  .galMosaic--coaches{height:auto;grid-template-columns:1fr 1fr;grid-auto-rows:200px}
  .galMosaic--life{height:auto;grid-template-columns:1fr;grid-auto-rows:180px}
  .galCta__in{grid-template-columns:1fr}
  .coaches__head{grid-template-columns:1fr}
  .coaches__gym{height:260px}
  .faq .wrap{grid-template-columns:1fr}
  .faq .kicker,
  .faq .h2,
  .faq__lead,
  .faq__list{grid-column:1;grid-row:auto}
  .faq__list{margin-top:24px}
}

@media (max-width:720px){
  :root{--section-space:48px}
  .wrap{width:min(100% - 32px,1280px)}
  .header{--header-h:70px;--header-slant:10px}
  .header__in{height:70px}
  .brand__logo{width:64px;height:64px;margin-bottom:-10px}
  .brand__line1{font-size:17px}
  .brand__line2{font-size:9px}
  .anthem__disc{width:32px;height:32px}
  .burger{width:42px;height:42px}
  .hero{
    --hero-h:calc(100svh - 70px);
    min-height:min(var(--hero-h),720px);
  }
  .hero__content{padding:82px 18px 44px}
  .hero--spar .hero__h1{font-size:clamp(36px,11vw,50px)}
  .hero--spar .hero__lead{font-size:15px}
  .hero--spar .hero__bg img{object-position:82% 42%}
  .hero--spar .hero__ctaRow{align-items:stretch}
  .hero--spar .hero__ctaRow .btn{width:100%}
  .hero--spar .hero__offer{width:100%;max-width:none}
  .philosophy__grid{grid-template-columns:1fr;gap:28px}
  .philosophy__visual{width:min(80vw,310px);margin-inline:auto}
  .philosophy__copy{text-align:left}
  .philosophy__values{grid-column:1;grid-template-columns:1fr}
  .philosophy__value:nth-child(2){border-top:1px solid var(--rule)}
  .directions__head{grid-template-columns:1fr}
  .directions__title{font-size:clamp(40px,14vw,58px)}
  .dirTile,
  .dirTile--portrait,
  .dirTile--wide{
    grid-column:span 12;
    aspect-ratio:4/3;
    min-height:0;
  }
  .legacy__stage{grid-template-columns:1fr}
  .legacy__left,
  .legacy__center,
  .legacy__right{grid-column:1;grid-row:auto}
  .legacy__center{order:-1}
  .legacy__left{min-height:360px}
  .legacy__right{min-height:330px}
  .legacyLive{gap:32px}
  .legacyLive__portrait{
    width:100%;
    min-height:520px;
    box-shadow:10px 10px 0 rgba(11,11,11,.08);
  }
  .legacyLive__portrait figcaption{left:14px;right:14px;bottom:14px}
  .legacyLive__title{font-size:clamp(40px,13vw,56px)}
  .legacyLive__lead{font-size:14px}
  .legacyLive__facts{grid-template-columns:1fr}
  .legacyLive__facts li{
    min-height:0;
    padding:14px 4px;
    border-top:1px solid var(--rule);
    border-left:0;
  }
  .legacyLive__facts li:first-child{border-top:0}
  .legacyLive__actions{align-items:flex-start;flex-direction:column;gap:18px}
  .legacyLive__today{grid-template-columns:1fr}
  .legacyLive__today img{height:220px}
  .history__grid{gap:28px}
  .timeline{border-left:1px solid rgba(255,255,255,.22);padding-left:20px}
  .timeline__item::before{
    content:"";
    position:absolute;
    left:-24px;
    top:7px;
    width:7px;
    height:7px;
    background:var(--accent);
  }
  .coaches__grid{grid-template-columns:1fr}
  .coachCard__img{height:min(88vw,350px)}
  .coachCard__body{min-height:205px}
  .coaches__foot ul{grid-template-columns:1fr}
  .coaches__foot li{
    padding:12px 0;
    border-left:0;
    border-top:1px solid var(--rule);
  }
  .results__bar{grid-template-columns:1fr}
  .results__icons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dirsHero__title{font-size:clamp(36px,12vw,50px)}
  .dirsHero__media{width:100%}
  .dirsGrid{grid-template-columns:1fr}
  .dirsCard__img{aspect-ratio:16/11}
  .dirsHow__title{font-size:clamp(32px,10vw,44px)}
  .dirsCta__in{align-items:stretch;flex-direction:column}
  .dirsCta .btn{width:100%}
  .coachesHero__title{font-size:clamp(36px,12vw,50px)}
  .coachesHero__media{width:100%}
  .coachesBenefits__grid{grid-template-columns:1fr}
  .coachesBenefits__item{border-left:0;border-top:1px solid rgba(11,11,11,.1)}
  .coachesBenefits__item:first-child{border-top:0}
  .coachTile{grid-template-columns:1fr}
  .coachTile__img{min-height:0;aspect-ratio:16/11}
  .coachTile__body{border-left:0;border-top:3px solid var(--accent)}
  .coachesHow__title{font-size:clamp(32px,10vw,44px)}
  .coachesCta__in{align-items:stretch;flex-direction:column}
  .coachesCta .btn{width:100%}
  .galHero__title{font-size:clamp(40px,12vw,56px)}
  .galHero__stats{grid-template-columns:1fr;gap:12px}
  .galHero__stats li{padding:0;border-left:0;border-top:1px solid rgba(215,25,32,.7);padding-top:10px}
  .galHero__stats li:first-child{border-top:0;padding-top:0}
  .galNav{position:static}
  .galVideo__grid{grid-template-columns:1fr}
  .lead__grid{grid-template-columns:1fr}
  .lead__h2{font-size:clamp(36px,11vw,50px)}
  .faq .h2{font-size:clamp(34px,10vw,46px)}
  .find__head{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .find__mapWrap{min-height:0}
  .footer__top{display:grid}
  .footer__nav{justify-content:flex-start}
  .footer__legal{
    display:grid;
    width:100%;
    gap:0;
  }
}

@media (max-width:420px){
  .hero__eyebrow{font-size:10px}
  .hero--spar .hero__h1{font-size:36px}
  .philosophy__title,
  .directions__title,
  .legacy__title,
  .legacyLive__title,
  .coaches__title{font-size:38px}
  .results__icons{grid-template-columns:1fr 1fr}
  .results__ico{width:54px;height:54px}
  .footer__legal{display:grid;gap:0}
}

/* Guslyakov page */
.guslyakovPage{
  padding:0;
  overflow:clip;
}
.guslyakovPage .gusIntro{
  position:relative;
  padding:clamp(48px,7vw,88px) 0 clamp(36px,5vw,64px);
  overflow:hidden;
}
.guslyakovPage .gusIntro__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.95fr);
  gap:clamp(28px,4.5vw,56px);
  align-items:center;
}
.guslyakovPage .gusIntro__kicker{
  margin:0 0 14px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.guslyakovPage .gusIntro__title{
  margin:0;
  max-width:11ch;
  font-family:var(--font-display);
  font-size:clamp(36px,5.4vw,64px);
  font-weight:700;
  line-height:1.35;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.guslyakovPage .gusIntro__lead{
  margin:18px 0 0;
  max-width:38ch;
  color:var(--muted-2);
  font-size:15px;
  line-height:1.55;
}
.guslyakovPage .gusIntro__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:28px 0 0;
}
.guslyakovPage .gusIntro__media{
  position:relative;
  margin:0;
  overflow:hidden;
  aspect-ratio:1/1;
  width:100%;
  max-width:min(100%,480px);
  margin-inline:auto 0;
  background:#111;
  border-bottom:5px solid var(--accent);
  border-radius:0;
  -webkit-mask-image:none;
  mask-image:none;
  clip-path:none;
}
.guslyakovPage .gusIntro__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 30%;
  -webkit-mask-image:none;
  mask-image:none;
  clip-path:none;
}

.guslyakovPage .gusHistory{
  position:relative;
  overflow:hidden;
  background:#0b0b0b;
  color:#fff;
  padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,80px);
}
.guslyakovPage .gusHistory::before,
.guslyakovPage .gusHistory::after{
  content:"";
  position:absolute;
  left:0;right:0;
  height:18px;
  pointer-events:none;
  z-index:2;
  background:
    radial-gradient(circle at 8% 50%, var(--accent) 0 3px, transparent 4px),
    radial-gradient(circle at 22% 40%, #111 0 5px, transparent 6px),
    radial-gradient(circle at 48% 60%, var(--accent) 0 4px, transparent 5px),
    radial-gradient(circle at 71% 35%, #111 0 6px, transparent 7px),
    radial-gradient(circle at 90% 55%, var(--accent) 0 3px, transparent 4px);
  opacity:.9;
}
.guslyakovPage .gusHistory::before{top:0}
.guslyakovPage .gusHistory::after{bottom:0;transform:scaleY(-1)}
.guslyakovPage .gusHistory__bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.guslyakovPage .gusHistory__bg img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:78% center;
  opacity:.22;
  filter:grayscale(1) contrast(1.15);
  mask-image:linear-gradient(90deg, transparent 0%, transparent 38%, rgba(0,0,0,.55) 62%, rgba(0,0,0,.85) 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, transparent 38%, rgba(0,0,0,.55) 62%, rgba(0,0,0,.85) 100%);
}
.guslyakovPage .gusHistory__grid{
  position:relative;
  z-index:1;
  display:grid;
  gap:clamp(32px,4vw,48px);
}
.guslyakovPage .gusHistory__kicker{
  margin:0 0 12px;
  color:var(--accent);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.guslyakovPage .gusHistory__title{
  margin:0;
  max-width:9em;
  font-family:var(--font-display);
  font-size:clamp(28px,4.2vw,48px);
  font-weight:700;
  line-height:.95;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.guslyakovPage .gusTimeline{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:22px;
  position:relative;
  --rail:40px;
}
.guslyakovPage .gusTimeline__item time{
  display:block;
  margin:0;
  padding-bottom:8px;
  font-family:var(--font-display);
  font-size:18px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--accent);
  text-transform:uppercase;
}
.guslyakovPage .gusTimeline__item p{
  margin:0;
  font-size:13px;
  line-height:1.45;
  color:rgba(255,255,255,.86);
}

.guslyakovPage .gusBanner{
  position:relative;
  overflow:hidden;
  background:var(--accent);
  color:#fff;
  padding:clamp(36px,5vw,64px) 0;
}
.guslyakovPage .gusBanner::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 360px at 10% 0%, rgba(0,0,0,.2), transparent 58%),
    linear-gradient(105deg, rgba(0,0,0,.12) 0%, transparent 46%);
  pointer-events:none;
}
.guslyakovPage .gusBanner__in{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:24px 40px;
}
.guslyakovPage .gusBanner__title{
  margin:0;
  max-width:14em;
  font-family:var(--font-display);
  font-size:clamp(28px,4.2vw,48px);
  font-style:italic;
  font-weight:700;
  line-height:1.02;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.guslyakovPage .gusBanner__btn{
  border-color:#fff;
  color:#fff;
  flex:0 0 auto;
}
.guslyakovPage .gusBanner__btn:hover{
  background:#fff;
  color:var(--accent);
}

@media (min-width:900px){
  .guslyakovPage .gusHistory__grid{
    grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
    align-items:start;
    gap:clamp(36px,4vw,56px);
  }
  .guslyakovPage .gusTimeline{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
  }
  .guslyakovPage .gusTimeline::before{
    content:"";
    position:absolute;
    left:0;right:0;
    top:var(--rail);
    height:2px;
    background:var(--accent);
  }
  .guslyakovPage .gusTimeline__item{
    position:relative;
    padding-right:10px;
  }
  .guslyakovPage .gusTimeline__item::after{
    content:"";
    position:absolute;
    top:calc(var(--rail) - 4px);
    left:0;
    width:8px;height:8px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 3px rgba(196,16,46,.28);
  }
  .guslyakovPage .gusTimeline__item time{padding-bottom:18px}
  .guslyakovPage .gusTimeline__item p{padding-top:18px}
}

@media (max-width:959px){
  .guslyakovPage .gusIntro__grid{grid-template-columns:1fr}
  .guslyakovPage .gusIntro__media{
    max-width:420px;
    margin-inline:auto;
  }
  .guslyakovPage .gusHistory__bg img{
    opacity:.16;
    mask-image:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 40%, rgba(0,0,0,.7) 100%);
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 40%, rgba(0,0,0,.7) 100%);
  }
  .guslyakovPage .gusBanner__in{align-items:flex-start}
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
