/* Rev Barbell Club website (revbbc.com.au). Built 22 Oct 2026.
   Look: rubber-floor charcoal, chalk-white type, Rev lime only for actions. One family (Archivo): condensed for
   display, normal width for reading. The logo's barbell line is the one decorative device, used once (.bar). */
@font-face{font-family:"Rev Serif";src:url(fonts/serif.woff2) format("woff2-variations"),url(fonts/serif.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Rev Serif";src:url(fonts/serif-italic.woff2) format("woff2-variations"),url(fonts/serif-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:Archivo;src:url(fonts/archivo.woff2) format("woff2-variations"),url(fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{
  --floor:#1b1b1a;      /* page */
  --rubber:#242422;     /* raised surfaces */
  --line:#383835;       /* rules */
  --chalk:#ecebe6;      /* text */
  --steel:#a3a29b;      /* secondary text (5.9:1 on floor) */
  --lime:#bdd255;       /* actions only */
  --lime-ink:#141413;   /* text on lime */
  --sans:Archivo,system-ui,sans-serif;
  --serif:"Rev Serif",Georgia,serif;
  --max:1180px;
  --gut:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* Reading text is serif (a coach talking); interface, headings and numbers are Archivo */
body{margin:0;background:var(--floor);color:var(--chalk);font:400 18px/1.6 var(--serif);font-optical-sizing:auto}
.top,.strip,.btn,.tabs,.week,.tt-key,.plan .ph,.plan .amt,.plan .per,.plan .badge,.item,.buy,.fineprint,footer,.where,.hero .price,.levels dt,.cp-steps b,.faq summary,.visit .link,.small,.order dl,.trial-how{font-family:var(--sans)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* Display type */
h1,h2,h3,.display{font-family:Archivo,sans-serif;font-stretch:68%;font-weight:800;letter-spacing:-.005em;margin:0}
h1{font-size:clamp(50px,8.4vw,116px);line-height:.92;max-width:12.5em}
h2{font-size:clamp(40px,6vw,72px);line-height:.95}
h3{font-size:26px;line-height:1.1;font-stretch:80%;font-weight:700}
p{margin:0}
.lead{font-size:clamp(19px,2.1vw,22px);line-height:1.55;color:#c4c3bc;max-width:34em}
.muted{color:var(--steel)}
.small{font-size:15px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:3px;border:2px solid transparent;
  font:700 16px/1 Archivo,sans-serif;font-stretch:100%;text-decoration:none;cursor:pointer;background:none;color:inherit}
.btn.go{background:var(--lime);color:var(--lime-ink)}
.btn.go:hover{background:#cadd6c}
.btn.line{border-color:var(--chalk)}
.btn.line:hover{background:var(--chalk);color:var(--floor)}
.btn.ink{background:var(--lime-ink);color:var(--chalk)}
.btn.ink:hover{background:#000}
.btn.big{min-height:58px;padding:16px 30px;font-size:18px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.link{font-weight:700;text-decoration:underline;text-decoration-color:var(--lime);text-decoration-thickness:2px;text-underline-offset:5px}

/* Banner strip */
.strip{background:var(--lime);color:var(--lime-ink)}
.strip .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 16px;padding-top:10px;padding-bottom:10px;text-align:center;font-weight:600;font-size:15px}
.strip a{font-weight:800}

/* Header */
.top{position:sticky;top:0;z-index:20;background:rgba(27,27,26,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.logo img{height:30px;width:auto}
.nav{display:flex;align-items:center;gap:28px;font-weight:600;font-size:15px}
.nav a{text-decoration:none}
.nav a:not(.btn):hover{color:var(--lime)}
.menu-btn{display:none}
@media (max-width:900px){
  .nav a:not(.btn){display:none}
  .menu-btn{display:inline-flex;min-height:48px;min-width:48px;align-items:center;justify-content:center;background:none;border:0;color:var(--chalk);cursor:pointer}
  .nav.open{position:fixed;inset:72px 0 auto 0;background:var(--floor);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gut) 24px;border-bottom:1px solid var(--line)}
  .nav.open a:not(.btn){display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:18px}
  .nav.open .btn{margin-top:16px}
}
@media (max-width:520px){
  .top .wrap{min-height:64px;gap:10px}
  .logo img{height:24px;width:auto}
  .nav>.btn{min-height:42px;padding:9px 14px;font-size:14px;white-space:nowrap}
  .nav.open{inset:64px 0 auto 0}
  .strip .wrap{font-size:14px;gap:2px 10px;padding-top:9px;padding-bottom:9px}
  .facts{gap:24px 20px}
  .facts b{font-size:22px}
}

/* Hero */
.hero{padding:clamp(48px,9vw,120px) 0 clamp(40px,6vw,72px)}
.hero .where{color:var(--steel);font-weight:600;margin-bottom:28px}
.hero .lead{margin-top:32px}
.hero .act{margin-top:40px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.hero .price{color:var(--steel)}
.hero .price b{color:var(--chalk)}
.hero-photo{margin-top:clamp(40px,6vw,72px);aspect-ratio:16/8;width:100%;object-fit:cover;border-radius:2px;background:var(--rubber)}
@media (max-width:640px){.hero-photo{aspect-ratio:4/3}}

/* The bar: the logo's barbell, once, between the hero and everything else */
.bar{position:relative;height:28px;margin:0 0 clamp(56px,8vw,96px)}
.bar::before{content:"";position:absolute;left:0;right:0;top:12px;height:4px;background:var(--chalk)}
.bar i{position:absolute;top:2px;width:22px;height:24px;background:var(--chalk)}
.bar i:first-child{left:14%}.bar i:last-child{right:14%}

/* Facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.facts b{display:block;font-stretch:72%;font-weight:800;font-size:26px;line-height:1.05;margin-bottom:6px}
.facts span{color:var(--steel);font-size:15px}
@media (max-width:900px){.facts{grid-template-columns:repeat(2,1fr)}}

/* Sections */
section{scroll-margin-top:80px}
.sec{padding:clamp(72px,10vw,128px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;align-items:end;margin-bottom:clamp(36px,5vw,56px)}
.sec-head .lead{justify-self:start}
@media (max-width:800px){.sec-head{grid-template-columns:1fr}}

/* Free week band */
.trial{background:var(--lime);color:var(--lime-ink)}
.trial .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;padding-top:clamp(72px,9vw,112px);padding-bottom:clamp(72px,9vw,112px)}
.trial .lead{color:#2c2f1b;margin:20px 0 36px}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:48px 1fr;gap:4px 12px;padding:22px 0;border-top:2px solid var(--lime-ink)}
.steps li:last-child{border-bottom:2px solid var(--lime-ink)}
.steps li::before{content:counter(s);grid-row:span 2;font-stretch:68%;font-weight:800;font-size:34px;line-height:1}
.steps b{font-size:20px}
@media (max-width:800px){.trial .wrap{grid-template-columns:1fr}}

/* Memberships */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}
.plan{border:1px solid var(--line);padding:32px;display:flex;flex-direction:column;gap:18px;border-radius:2px}
.plan.pick{background:var(--chalk);color:var(--floor);border-color:var(--chalk)}
.plan.pick .muted,.plan.pick li{color:#55554f}
.plan .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.plan .badge{font-size:14px;font-weight:700}
.plan .amt{font-stretch:68%;font-weight:800;font-size:64px;line-height:.9}
.plan .per{font-size:15px;color:var(--steel);margin-top:6px}
.plan.pick .per{color:#55554f}
.plan ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.plan li{padding-left:22px;position:relative;color:var(--steel)}
.plan li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:2px;background:currentColor}
.plan .btn{margin-top:auto}
.plan.pick .btn.line{border-color:var(--floor)}
.plan.pick .btn.line:hover{background:var(--floor);color:var(--chalk)}
.fineprint{margin-top:24px;color:var(--steel);font-size:15px}

/* Timetable */
.tabs{display:flex;gap:8px;margin-bottom:28px}
.tabs button{min-height:44px;padding:10px 18px;border:1px solid var(--line);background:none;color:var(--chalk);border-radius:3px;font:600 15px Archivo,sans-serif;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--chalk);color:var(--floor);border-color:var(--chalk)}
/* Week timetable: days across, time down, quiet hours folded away. --ppm = pixels per minute */
.week{--ppm:1.15px;--tcol:52px;border-top:1px solid var(--line)}
.tt-head,.band{display:grid;grid-template-columns:var(--tcol) repeat(6,minmax(0,1fr))}
.tt-head{position:sticky;top:72px;z-index:2;background:var(--floor);border-bottom:1px solid var(--line)}
.tt-head div{padding:12px 8px;font-stretch:80%;font-weight:700;font-size:18px}
.tt-head .sh{display:none}
.band{position:relative}
.band .hrs{position:relative}
.band .hrs span{position:absolute;right:10px;transform:translateY(-50%);font-size:13px;color:var(--steel);white-space:nowrap}
.band .hrs span.first{transform:translateY(2px)}.band .hrs span.last{transform:translateY(-100%)}
.tt-swipe{display:none}
.band .col{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px calc(var(--ppm)*60))}
.fold{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:10px 0 10px var(--tcol);color:var(--steel);font-size:14px}
.fold::before,.fold::after{content:"";flex:1;border-top:1px dashed var(--line)}
.fold::before{flex:0 0 12px}
.blk{position:absolute;margin:0;padding:6px 8px;border-radius:3px;overflow:hidden;line-height:1.2;font-size:13px}
.blk b{display:block;font-size:14px;font-weight:700}
.blk span{display:block}
.blk.barbell{background:var(--lime);color:var(--lime-ink)}
.blk.fndn{background:var(--rubber);color:var(--chalk);border:1.5px solid var(--chalk)}
.blk.fndn span{color:var(--steel)}
.tt-key{display:flex;gap:24px;margin-top:16px;font-size:14px;color:var(--steel)}
.tt-key i{display:inline-block;width:14px;height:14px;border-radius:2px;margin-right:8px;vertical-align:-2px}
.k-b{background:var(--lime)}.k-f{background:var(--rubber);border:1.5px solid var(--chalk)}
.tt-empty{padding:32px 0;color:var(--steel)}
@media (max-width:760px){
  /* Phones: the same week, swiped sideways, times pinned on the left */
  .week{--ppm:.9px;--tcol:40px;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0 calc(var(--gut) * -1);padding:0 var(--gut)}
  .tt-in{min-width:calc(var(--tcol) + 6 * 124px)}
  .tt-head{position:static}
  .tt-head div{padding:10px 6px;font-size:16px}
  .tt-head .lg{display:none}.tt-head .sh{display:inline}
  .tt-head>div:first-child,.band .hrs{position:sticky;left:calc(var(--gut) * -1);z-index:1;background:var(--floor)}
  .band .hrs span{right:6px;font-size:11px}
  .blk{padding:5px 6px;font-size:11px}
  .blk b{font-size:12px}
  .fold{font-size:13px;padding-left:0;position:sticky;left:0;width:calc(100vw - 2 * var(--gut))}
  .tt-swipe{display:block;margin-top:10px;font-size:13px;color:var(--steel)}
}

/* Shop */
.shop-group+.shop-group{margin-top:64px}
.shop-group>h3{font-size:30px;margin-bottom:24px}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.item{background:var(--rubber);border-radius:2px;display:flex;flex-direction:column;overflow:hidden}
.item img{aspect-ratio:4/3;width:100%;object-fit:cover;background:#2e2e2b}
.item .ib{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.item .when{font-weight:700;color:var(--chalk)}
.item p{color:var(--steel)}
.item .foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.item .amt{font-stretch:72%;font-weight:800;font-size:30px}
.item .left{font-size:14px;font-weight:700;color:var(--lime)}
.empty-note{color:var(--steel);border-top:1px solid var(--line);padding-top:24px}

/* Coaches */
.head-coach{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,5vw,64px);align-items:center}
.head-coach.solo{grid-template-columns:1fr;max-width:760px}
.head-coach img{aspect-ratio:4/5;object-fit:cover;width:100%;border-radius:2px;background:var(--rubber)}
.head-coach .role{color:var(--steel);font-weight:600;margin:14px 0 20px}
.head-coach p+p{margin-top:16px}
.team{margin-top:64px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px}
.team img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:2px;margin-bottom:14px;background:var(--rubber)}
.team b{display:block;font-size:19px}
.team span{color:var(--steel);font-size:15px}
.team p{margin-top:8px;color:var(--steel);font-size:15px}
@media (max-width:800px){.head-coach{grid-template-columns:1fr}}

/* Story */
.story{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:center}
.story blockquote{margin:0;font-stretch:80%;font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.15}
.story .who{margin-top:20px;color:var(--steel)}
.yt{position:relative;aspect-ratio:16/9;background:var(--rubber);border:0;padding:0;width:100%;cursor:pointer;border-radius:2px;overflow:hidden}
.yt img{width:100%;height:100%;object-fit:cover;opacity:.85}
.yt span{position:absolute;inset:auto auto 20px 20px}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:800px){.story{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;grid-template-columns:1fr 2fr;gap:48px}
.faq details{border-top:1px solid var(--line);padding:22px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-size:19px;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:26px;line-height:.9;color:var(--steel)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin-top:12px;color:var(--steel);max-width:38em}
@media (max-width:800px){.faq{grid-template-columns:1fr}}

/* Visit */
.visit{border-top:1px solid var(--line)}
.visit .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:end}
.visit address{font-style:normal;color:var(--steel);margin:24px 0 32px;line-height:1.8}
.visit address a{color:var(--chalk)}
@media (max-width:800px){.visit .wrap{grid-template-columns:1fr}}

footer{border-top:1px solid var(--line);padding:32px 0 48px;color:var(--steel);font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}
footer nav{display:flex;flex-wrap:wrap;gap:24px}

/* Buy dialog */
dialog.buy{border:1px solid var(--line);padding:0;background:var(--floor);color:var(--chalk);width:min(520px,calc(100% - 24px));max-height:calc(100% - 24px);border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
dialog.buy::backdrop{background:rgba(10,10,9,.7)}
.buy form{padding:28px;display:flex;flex-direction:column;gap:18px}
.buy .bh{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.buy .x{min-width:44px;min-height:44px;background:none;border:0;color:var(--chalk);font-size:28px;cursor:pointer;margin:-10px -10px 0 0}
.buy h3{font-size:30px}
.buy label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
.buy input{min-width:0;width:100%;min-height:48px;padding:10px 14px;background:var(--rubber);border:1px solid var(--line);color:var(--chalk);border-radius:3px;font:400 17px Archivo,sans-serif}
.buy input:focus{border-color:var(--lime);outline:none}
.opts{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0}
.opts legend{font-weight:600;font-size:15px;margin-bottom:8px;padding:0}
.opts label{flex-direction:row;align-items:center}
.opts input{position:absolute;opacity:0;pointer-events:none}
.opts span{min-width:52px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:3px;text-align:center;cursor:pointer}
.opts input:checked+span{background:var(--chalk);color:var(--floor);border-color:var(--chalk)}
.opts input:focus-visible+span{outline:3px solid var(--lime);outline-offset:2px}
.qty{display:flex;align-items:center;gap:0}
.qty button{min-width:48px;min-height:48px;border:1px solid var(--line);background:var(--rubber);color:var(--chalk);font-size:22px;cursor:pointer}
.qty output{min-width:56px;text-align:center;font-weight:700;font-size:19px}
.buy .total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:16px;font-weight:700}
.buy .total b{font-stretch:72%;font-size:32px}
.buy .note{color:var(--steel);font-size:15px}
.buy .err{color:#ff9b8a;font-weight:600;font-size:15px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.row2{grid-template-columns:1fr}}

/* Order page and loading */
.order{min-height:60vh;padding:clamp(56px,9vw,120px) 0}
.order .card{max-width:640px}
.order dl{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;margin:32px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.order dt{color:var(--steel)}
.order dd{margin:0;font-weight:600}
.skeleton{color:var(--steel)}

/* ---- 22 Oct redesign: sections only Rev has ---- */
/* The moment: one real story, chalk-white, set large */
.moment{background:var(--chalk);color:#1b1b1a}
.moment .wrap{padding-top:clamp(72px,10vw,136px);padding-bottom:clamp(72px,10vw,136px)}
.moment figure{margin:0;max-width:940px}
.moment blockquote{margin:0;font:italic 400 clamp(28px,3.6vw,46px)/1.22 var(--serif);letter-spacing:-.01em;text-indent:-.42em}
.moment figcaption{margin-top:28px;font:600 16px var(--sans);color:#55554f}

/* Who trains here: plain rows, not cards */
.who-head{display:grid;grid-template-columns:7fr 5fr;gap:24px 48px;align-items:end;margin-bottom:40px}
.levels{margin:0;border-top:1px solid var(--line)}
.levels>div{display:grid;grid-template-columns:5fr 7fr;gap:8px 48px;padding:26px 0;border-bottom:1px solid var(--line)}
.levels dt{font-stretch:75%;font-weight:800;font-size:clamp(26px,3vw,36px);line-height:1.05}
.levels dd{margin:0;color:#c4c3bc;max-width:32em}
@media (max-width:800px){.who-head,.levels>div{grid-template-columns:1fr}}

/* Free week band: no steps list, just the ask */
.trial .wrap{grid-template-columns:1fr 1fr;align-items:end}
.trial h2{font-size:clamp(46px,7vw,88px)}
.trial .lead{color:#2c2f1b;margin:0 0 14px}
.trial-how{margin:0 0 30px;font-size:16px;font-weight:600;color:#2c2f1b}
@media (max-width:800px){.trial .wrap{grid-template-columns:1fr;gap:24px}}

/* Competing: the real sequence, numbered because it is one */
.compete{border-top:1px solid var(--line)}
.cp-steps{list-style:none;margin:0;padding:0;counter-reset:c;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.cp-steps li{counter-increment:c;border-top:3px solid var(--lime);padding-top:20px}
.cp-steps li::before{content:counter(c);display:block;font:800 52px/1 var(--sans);font-stretch:68%;color:var(--lime);margin-bottom:14px}
.cp-steps b{display:block;font-size:22px;font-weight:700;margin-bottom:8px}
.cp-steps p{color:#c4c3bc}
.cp-proof{margin-top:40px;font-size:clamp(19px,2vw,22px);max-width:36em}
@media (max-width:800px){.cp-steps{grid-template-columns:1fr}}

/* Head coach: story first, credentials as a quiet list */
.creds{list-style:none;margin:28px 0 0;padding:20px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:14px 28px}
.creds b{display:block;font:700 16px var(--sans)}
.creds span{display:block;color:var(--steel);font:400 15px var(--sans)}
.head-coach.solo{max-width:820px}
.bio p{font-size:clamp(18px,1.9vw,20px);line-height:1.62;color:#d6d5ce}
.bio p+p{margin-top:18px}
@media (max-width:600px){.creds{grid-template-columns:1fr}}
#shop{background:#20201f}

/* Draft preview (REV Admin link) */
.pv-bar{background:#f5a623;color:#141413;font:700 14px/1.4 var(--sans);text-align:center;padding:8px 16px}
.draft-tag{display:inline-block;vertical-align:middle;margin-left:8px;padding:3px 8px;border-radius:3px;background:#f5a623;color:#141413;font:700 12px var(--sans);letter-spacing:.02em}

/* Contact page */
.ct-grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(40px,6vw,96px);align-items:start}
.ct-h{font-size:clamp(52px,7vw,96px)}
.cform{margin-top:40px;display:flex;flex-direction:column;gap:18px;max-width:640px;font-family:var(--sans)}
.cform label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
.cform input,.cform select,.cform textarea{min-width:0;width:100%;min-height:50px;padding:12px 14px;background:var(--rubber);border:1px solid var(--line);color:var(--chalk);border-radius:3px;font:400 17px var(--sans)}
.cform textarea{min-height:150px;resize:vertical;line-height:1.5}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--lime);outline:none}
.cform .err{color:#ff9b8a;font-weight:600;font-size:15px}
.cform .btn{align-self:flex-start}
.ct-info{display:flex;flex-direction:column;gap:28px;padding-top:12px}
.ct-info p{color:#c4c3bc}
.ct-info a:not(.btn){color:var(--chalk)}
.ct-k{font:700 15px var(--sans);color:var(--steel);margin-bottom:6px}
.ct-try{border-top:1px solid var(--line);padding-top:24px}
.ct-try p{margin-bottom:14px}
@media (max-width:860px){.ct-grid{grid-template-columns:1fr}}

/* Why Rev exists: about the gym, then the team */
.why{max-width:820px}
.why .bio{margin-top:28px}
.team-h{margin-top:80px;font-size:30px}
.team{margin-top:28px}
.pt-line{margin-top:48px;max-width:46em;border-top:1px solid var(--line);padding-top:24px}
.pt-line .link{margin-left:6px;font-family:var(--sans)}
.team b,.team span{font-family:var(--sans)}

/* Photos (22 Oct) */
.moment.has-img .moment-in{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.moment-img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.wide-img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:2px;margin-bottom:40px;background:var(--rubber)}
.cp-imgs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:48px}
.cp-imgs img{width:100%;aspect-ratio:6/5;object-fit:cover;border-radius:2px;background:var(--rubber)}
.why-wrap.has-img{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,72px);align-items:start}
.why-img{width:100%;aspect-ratio:6/5;object-fit:cover;border-radius:2px;margin-top:8px;background:var(--rubber)}
@media (max-width:800px){.moment.has-img .moment-in,.why-wrap.has-img{grid-template-columns:1fr}.moment-img{aspect-ratio:4/3}.wide-img{aspect-ratio:4/3}}
@media (max-width:560px){.cp-imgs{grid-template-columns:1fr}}

/* Competing: two paths (23 Oct) */
.cp-paths{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cp-path{border:1px solid var(--line);border-top:3px solid var(--chalk);padding:32px;border-radius:2px}
.cp-path.elite{border-top-color:var(--lime);background:#212120}
.cp-path h3{font-size:clamp(28px,3vw,36px)}
.cp-lead{margin-top:10px;color:#c4c3bc}
.cp-path .cp-steps{display:flex;flex-direction:column;gap:0;margin-top:20px}
.cp-path .cp-steps li{display:grid;grid-template-columns:40px 1fr;gap:2px 8px;border-top:1px solid var(--line);padding:16px 0 0;margin-top:16px}
.cp-path .cp-steps li::before{grid-row:span 2;font-size:30px;margin:0;color:var(--chalk)}
.cp-path .cp-steps b{font-size:18px;margin:0}
.cp-list{list-style:none;margin:20px 0 0;padding:0}
.cp-list li{border-top:1px solid var(--line);padding:16px 0 0 22px;margin-top:16px;position:relative}
.cp-list li::before{content:"";position:absolute;left:0;top:26px;width:10px;height:3px;background:var(--lime)}
.cp-list b{display:block;font:700 18px var(--sans);margin-bottom:4px}
.cp-list p{color:#c4c3bc}
@media (max-width:860px){.cp-paths{grid-template-columns:1fr}}

/* Legal pages */
.legal .wrap{max-width:760px}
.legal h1{font-size:clamp(46px,6vw,80px)}
.legal-meta{margin:14px 0 28px;font:600 15px var(--sans);color:var(--steel)}
.legal .lead{margin-bottom:20px}
.legal h2{font-size:clamp(28px,3vw,36px);margin:52px 0 14px}
.legal h3{font:700 18px var(--sans);margin:24px 0 8px}
.legal p,.legal li{color:#d6d5ce;line-height:1.65}
.legal p+p{margin-top:14px}
.legal ul{padding-left:20px;margin:10px 0 0}
.legal li+li{margin-top:8px}
.legal a{color:var(--chalk);text-decoration-color:var(--lime);text-underline-offset:3px}
.legal-table{overflow-x:auto;margin:16px 0}
.legal table{border-collapse:collapse;width:100%;min-width:520px;font:15px/1.45 var(--sans)}
.legal th,.legal td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}
.legal th{color:var(--steel);font-weight:600}
@media (max-width:640px){
  .legal table{min-width:0}
  .legal thead{display:none}
  .legal tr{display:block;border-bottom:1px solid var(--line);padding:12px 0}
  .legal td{display:block;border:0;padding:2px 0}
  .legal td:first-child{font-weight:700;color:var(--chalk)}
  .legal td:nth-child(3){color:var(--steel)}
  .legal td:nth-child(3)::before{content:"Held: "}
}

/* Athlete quote (social proof) */
.story{grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,88px)}
.story figure{margin:0}
.story-img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:2px;background:var(--rubber)}
.story blockquote{font:italic 400 clamp(26px,3.2vw,40px)/1.25 var(--serif);font-stretch:100%;letter-spacing:-.01em;text-indent:-.42em}
.story .who{margin-top:24px;font:600 16px var(--sans);color:var(--steel)}
@media (max-width:800px){.story{grid-template-columns:1fr}.story-img{aspect-ratio:4/3}}

/* Several athlete quotes: alternate sides */
.stories{display:flex;flex-direction:column;gap:clamp(56px,8vw,104px)}
.stories.many .story{grid-template-columns:4fr 7fr}
.stories.many .story:nth-child(even){grid-template-columns:7fr 4fr}
.stories.many .story:nth-child(even)>:first-child{order:2}
.stories.many blockquote{font-size:clamp(24px,2.8vw,34px)}
@media (max-width:800px){.stories.many .story,.stories.many .story:nth-child(even){grid-template-columns:1fr}.stories.many .story:nth-child(even)>:first-child{order:0}}
@media (max-width:800px){.stories .story-img{aspect-ratio:1/1;object-position:50% 62%}}
