/* Ironhouse Strength. A printed record book in a sport-catalog system: Anton capitals, Barlow text,
   white sheet, black ink, competition-plate blue on the action. One axis at 42%. Pill buttons only. */
.b-gyms {
  --b-bg: #ffffff; --b-ink: #111111; --b-acc: #1846d8; --b-soft: #f2f2f0; --b-on: #ffffff;
  --b-d: "Anton", "Arial Narrow", sans-serif; --b-t: "Barlow", system-ui, sans-serif;
  --gy-bg: #ffffff; --gy-ink: #111111; --gy-mut: #5a5a5a; --gy-sur: #f2f2f0; --gy-sur2: #e6e6e3;
  --gy-acc: #1846d8; --gy-acc2: #1137b0; --gy-blk: #111111; --gy-blk2: #1d1d1d; --gy-onblk: #bdbdbd;
  --gy-m: clamp(20px, 3.4vw, 48px);
  --gy-axis: calc(42vw - var(--gy-m));
  --gy-s1: clamp(46px, 8.2vw, 132px);
  --gy-s2: clamp(34px, 4.4vw, 64px);
  --gy-s3: clamp(22px, 1.4vw + 9px, 30px);
  --gy-s4: clamp(17px, 0.25vw + 16px, 19px);
  --gy-s5: 14px;
  --gy-gap: clamp(88px, 10vw, 160px);
  --gy-ease: cubic-bezier(.16, 1, .3, 1);
}
body.b-gyms { background: var(--gy-bg); color: var(--gy-ink); font: 400 var(--gy-s4)/1.5 var(--b-t); font-variant-numeric: tabular-nums; caret-color: var(--gy-acc); scrollbar-color: var(--gy-ink) var(--gy-sur); }
.b-gyms ::selection { background: var(--gy-acc); color: #fff; }
.b-gyms :focus-visible { outline: 3px solid var(--gy-acc); outline-offset: 3px; }
.b-gyms a { text-underline-offset: .2em; text-decoration-thickness: 1.5px; }
.b-gyms h1, .b-gyms h2, .b-gyms h3 { font-family: var(--b-d); font-weight: 400; text-transform: uppercase; letter-spacing: -.005em; line-height: .9; margin: 0; text-wrap: balance; }
.b-gyms h2 { font-size: var(--gy-s2); }
.b-gyms h3 { font-size: var(--gy-s2); }
.b-gyms p { margin: 0; text-wrap: pretty; }
.b-gyms .gy-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.b-gyms .gy-lead { font-size: var(--gy-s3); line-height: 1.25; font-weight: 500; max-width: 34ch; }
.b-gyms .gy-note { color: var(--gy-mut); max-width: 32ch; }
.b-gyms img { display: block; width: 100%; height: 100%; object-fit: cover; background: var(--gy-sur2); }

/* ---------- buttons: one pill shape */
.b-gyms .gy-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 0; border-radius: 999px; background: var(--gy-acc); color: #fff; font: 500 16px/1 var(--b-t); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .2s, transform .2s var(--gy-ease); }
.b-gyms .gy-btn:hover { background: var(--gy-acc2); } .b-gyms .gy-btn:active { transform: scale(.97); } .b-gyms .gy-btn:disabled { background: var(--gy-mut); cursor: progress; }
.b-gyms .gy-btn--inv { background: #fff; color: var(--gy-ink); } .b-gyms .gy-btn--inv:hover { background: var(--gy-sur); }
.b-gyms .gy-btn--big { min-height: 56px; font-size: 18px; padding: 0 34px; }

/* ---------- header */
.b-gyms .gy-top { display: grid; grid-template-columns: var(--gy-axis) 1fr auto; align-items: center; gap: 16px; padding: 18px var(--gy-m); background: var(--gy-bg); position: relative; z-index: 15; }
.b-gyms .gy-top__mark, .b-gyms .gy-foot__mark { color: inherit; text-decoration: none; justify-self: start; }
.b-gyms .gy-logo, .b-gyms .gy-top__mark, .b-gyms .gy-foot__mark { display: inline-flex; align-items: center; gap: 10px; }
.b-gyms .gy-logo__m { width: 40px; height: 28px; flex: none; }
.b-gyms .gy-logo__w { font: 400 26px/1 var(--b-d); text-transform: uppercase; letter-spacing: .01em; }
.b-gyms .gy-top__nav { display: flex; flex-wrap: wrap; gap: 6px 28px; }
.b-gyms .gy-top__nav a:not(.gy-btn) { font-weight: 500; font-size: 16px; text-decoration: none; padding: 10px 0; }
.b-gyms .gy-top__nav a[aria-current] { text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 2px; }
.b-gyms .gy-top__nav a:not(.gy-btn):hover { text-decoration: underline; text-underline-offset: 8px; }
.b-gyms .gy-top__drawerbtn, .b-gyms .gy-top__menu { display: none; }

/* ---------- masthead: a gutterless mosaic band, then the title on the axis */
.b-gyms .gy-mosaic { display: grid; grid-template-columns: 1fr 1fr 2.1fr 1.1fr; height: clamp(280px, 44svh, 470px); overflow: hidden; }
.b-gyms .gy-mosaic > div { overflow: hidden; }
.b-gyms .gy-mosaic__c img { transform-origin: 60% 50%; }
@media (prefers-reduced-motion: no-preference) { .b-gyms .gy-mosaic__c img, .b-gyms .gy-ph__img img { animation: gy-drift 26s ease-in-out infinite alternate; } }
@keyframes gy-drift { from { transform: scale(1); } to { transform: scale(1.07) translateX(-1.5%); } }
.b-gyms .gy-mosaic__d { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: clamp(18px, 2vw, 30px); background: var(--gy-acc); color: #fff; text-decoration: none; transition: background-color .25s; }
.b-gyms .gy-mosaic__d:hover { background: var(--gy-acc2); }
.b-gyms .gy-mosaic__k { font-size: var(--gy-s4); }
.b-gyms .gy-mosaic__d b { font: 400 var(--gy-s3)/1.05 var(--b-d); text-transform: uppercase; letter-spacing: .01em; }
.b-gyms .gy-mosaic__d > span:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: var(--gy-s4); }
.b-gyms .gy-mast__t { display: grid; grid-template-columns: var(--gy-axis) 1fr; align-items: end; padding: clamp(28px, 4vw, 56px) var(--gy-m) clamp(48px, 5.5vw, 80px); }
.b-gyms .gy-mast__side { display: grid; gap: 22px; justify-items: start; padding-right: 40px; padding-bottom: .4em; }
.b-gyms .gy-mast__side p { max-width: 32ch; }
.b-gyms .gy-lines { font-size: var(--gy-s1); line-height: .9; letter-spacing: -.01em; }
.b-gyms .gy-line { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.b-gyms .gy-line > span { display: block; }
@media (prefers-reduced-motion: no-preference) {
  .b-gyms .gy-line > span { animation: gy-up 900ms var(--gy-ease) both; animation-delay: calc(var(--i) * 110ms + 120ms); }
  .b-gyms .gy-mast__side { animation: gy-fade 700ms var(--gy-ease) 520ms both; }
}
@keyframes gy-up { from { transform: translateY(105%); } to { transform: none; } }
@keyframes gy-fade { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* page heads */
.b-gyms .gy-ph__img { height: clamp(240px, 40svh, 440px); overflow: hidden; }
.b-gyms .gy-ph--book .gy-ph__t { padding-top: clamp(40px, 7vw, 110px); }

/* ---------- section scaffolding */
.b-gyms .gy-sec { padding: var(--gy-gap) var(--gy-m); }
.b-gyms .gy-ax { display: grid; grid-template-columns: var(--gy-axis) 1fr; align-items: start; }
.b-gyms .gy-ax__l { padding-right: 40px; }
.b-gyms .gy-ax > .gy-ax__l .gy-note { padding-top: .3em; }
.b-gyms .gy-ax__r > h2 + * { margin-top: 28px; }
.b-gyms .gy-sec--first { padding-top: 24px; }

/* ---------- signature: the program match */
.b-gyms .gy-sig-wrap { margin-top: clamp(32px, 4vw, 56px); }
.b-gyms .gy-match { background: var(--gy-sur); padding: clamp(20px, 3.4vw, 48px); color: var(--gy-ink); font-family: var(--b-t); font-size: var(--gy-s4); line-height: 1.5; }
.b-gyms .gy-fallback { margin: 0; }
.b-gyms .gy-m-prog { list-style: none; margin: clamp(24px, 3vw, 36px) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: var(--gy-s5); color: var(--gy-mut); }
.b-gyms .gy-m-prog li { display: inline-flex; align-items: center; gap: 8px; }
.b-gyms .gy-m-prog li::before { content: ""; width: 12px; height: 12px; background: var(--gy-sur2); }
.b-gyms .gy-m-prog li.is-done::before { background: var(--gy-ink); }
.b-gyms .gy-m-prog li.is-now { color: var(--gy-ink); font-weight: 600; } .b-gyms .gy-m-prog li.is-now::before { background: var(--gy-acc); }
.b-gyms .gy-m-q { font: 600 var(--gy-s3)/1.2 var(--b-t); margin-bottom: 20px; outline: none; }
.b-gyms .gy-m-opts { display: grid; gap: 2px; max-width: 980px; }
.b-gyms .gy-opt { display: grid; grid-template-columns: 18px minmax(0, 19ch) minmax(0, 1fr); align-items: baseline; column-gap: 20px; min-height: 64px; padding: 16px 20px; text-align: left; border: 0; border-radius: 0; background: transparent; color: var(--gy-ink); font: inherit; cursor: pointer; transition: background-color .2s, color .2s, transform .25s var(--gy-ease); }
.b-gyms .gy-opt::before { content: ""; width: 14px; height: 14px; background: var(--gy-ink); transition: background-color .2s, transform .25s var(--gy-ease); }
.b-gyms .gy-opt:hover { background: var(--gy-bg); }
.b-gyms .gy-opt:hover::before { background: var(--gy-acc); transform: scale(1.15); }
.b-gyms .gy-opt:active { transform: scale(.99); }
.b-gyms .gy-opt[aria-pressed="true"] { background: var(--gy-acc); color: #fff; } .b-gyms .gy-opt[aria-pressed="true"]::before { background: #fff; }
.b-gyms .gy-opt__t { font: 600 var(--gy-s3)/1.15 var(--b-t); }
.b-gyms .gy-opt__d { font-size: var(--gy-s4); line-height: 1.35; }
.b-gyms .gy-m-back, .b-gyms .gy-m-all { margin-top: 18px; min-height: 44px; padding: 0; border: 0; background: none; color: var(--gy-ink); font: 500 16px var(--b-t); text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.b-gyms .gy-m-back:hover, .b-gyms .gy-m-all:hover { color: var(--gy-acc); }
.b-gyms .gy-m-step { animation: gy-fade .45s var(--gy-ease) both; }
.b-gyms .gy-m-res { display: grid; gap: 10px; justify-items: start; padding-bottom: clamp(28px, 3vw, 44px); }
.b-gyms .gy-m-res__n { font: 400 var(--gy-s2)/.92 var(--b-d); text-transform: uppercase; outline: none; text-wrap: balance; }
.b-gyms .gy-m-res__c { font-weight: 600; }
.b-gyms .gy-m-res__w, .b-gyms .gy-m-res__p { max-width: 62ch; }
.b-gyms .gy-m-pick .gy-m-q { margin-bottom: 14px; }
.b-gyms .gy-m-form { margin-top: clamp(28px, 3vw, 44px); padding-top: clamp(24px, 3vw, 40px); scroll-margin-top: 24px; }
.b-gyms .gy-m-form .gy-m-q { margin-bottom: 4px; }
.b-gyms .gy-m-form__s { color: var(--gy-mut); max-width: 62ch; }
.b-gyms .gy-m-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 10px; margin-top: 22px; align-items: start; }
.b-gyms .gy-in { display: grid; gap: 6px; font-weight: 500; font-size: 16px; }
.b-gyms .gy-in input { font: 400 18px var(--b-t); min-height: 52px; padding: 0 16px; border: 0; border-radius: 0; background: var(--gy-bg); color: var(--gy-ink); border-bottom: 2px solid var(--gy-ink); }
.b-gyms .gy-in input:focus { outline: none; border-bottom-color: var(--gy-acc); background: #fbfbff; }
.b-gyms .gy-in input[aria-invalid="true"] { border-bottom-color: #b3261e; }
.b-gyms .gy-in__err { color: #a1221b; font-size: var(--gy-s5); min-height: 0; }
.b-gyms .gy-in__err:empty { display: none; }
.b-gyms .gy-ck { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; font-size: 16px; max-width: 70ch; cursor: pointer; }
.b-gyms .gy-ck input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--gy-acc); flex: none; }
.b-gyms .gy-m-fields > .gy-m-form__s { grid-column: 1 / -1; }
.b-gyms .gy-m-fields > .gy-btn { grid-column: 1 / -1; justify-self: start; margin-top: 6px; }
.b-gyms .gy-m-next { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; max-width: 64ch; }
.b-gyms .gy-m-next li { display: grid; grid-template-columns: 14px 1fr; gap: 14px; align-items: baseline; }
.b-gyms .gy-m-next li::before { content: ""; width: 12px; height: 12px; background: var(--gy-acc); transform: translateY(1px); }
.b-gyms .gy-m-row { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; margin: 26px 0 16px; }
.b-gyms .gy-m-row .gy-m-back { margin: 0; }

/* six squares: six racks */
.b-gyms .gy-sq { display: inline-grid; grid-template-columns: repeat(6, 10px); gap: 3px; vertical-align: middle; }
.b-gyms .gy-sq i { width: 10px; height: 10px; background: var(--gy-sur2); }
.b-gyms .gy-sq i.on { background: var(--gy-ink); }
.b-gyms .gy-sq--on-acc i { background: rgba(255, 255, 255, .34); } .b-gyms .gy-sq--on-acc i.on { background: #fff; }

/* the week grid (match and timetable) */
.b-gyms .gy-grid__days { display: none; }
.b-gyms .gy-grid__cols { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; align-items: start; }
.b-gyms .gy-grid__col { display: grid; gap: 6px; }
.b-gyms .gy-grid__h { font-weight: 600; padding: 4px 0 6px; }
.b-gyms .gy-grid__none { color: var(--gy-mut); font-size: var(--gy-s5); }
.b-gyms .gy-cls { display: grid; gap: 2px; justify-items: start; min-height: 44px; padding: 12px 12px 14px; border: 0; border-radius: 0; background: var(--gy-bg); color: var(--gy-ink); font: inherit; font-size: 16px; line-height: 1.3; text-align: left; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, transform .2s var(--gy-ease); }
.b-gyms .gy-cls__t { font: 400 var(--gy-s4)/1.1 var(--b-d); letter-spacing: .02em; }
.b-gyms .gy-cls__p { font-weight: 600; }
.b-gyms .gy-cls .gy-sq { margin: 8px 0 2px; }
.b-gyms .gy-cls__l { font-size: var(--gy-s5); }
.b-gyms .gy-cls:not(.is-full):hover { background: var(--gy-ink); color: #fff; }
.b-gyms .gy-cls:not(.is-full):hover .gy-sq i { background: #4a4a4a; } .b-gyms .gy-cls:not(.is-full):hover .gy-sq i.on { background: #fff; }
.b-gyms .gy-cls:active { transform: scale(.98); }
.b-gyms .gy-cls[aria-pressed="true"] { background: var(--gy-acc); color: #fff; }
.b-gyms .gy-cls[aria-pressed="true"] .gy-sq i { background: rgba(255, 255, 255, .34); } .b-gyms .gy-cls[aria-pressed="true"] .gy-sq i.on { background: #fff; }
.b-gyms .gy-cls.is-full { background: var(--gy-sur2); color: var(--gy-mut); cursor: not-allowed; }
.b-gyms .gy-cls.is-full .gy-cls__p, .b-gyms .gy-cls.is-full .gy-cls__t { color: #4a4a4a; }
.b-gyms .gy-cls.is-full .gy-sq i.on { background: #6a6a6a; }

/* timetable page */
.b-gyms .gy-sched { margin-top: clamp(32px, 4vw, 56px); background: var(--gy-sur); padding: clamp(18px, 2.6vw, 36px); }
.b-gyms .gy-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.b-gyms .gy-chip { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--gy-bg); color: var(--gy-ink); font: 500 16px var(--b-t); cursor: pointer; transition: background-color .2s, color .2s; }
.b-gyms .gy-chip:hover { background: var(--gy-sur2); }
.b-gyms .gy-chip[aria-pressed="true"] { background: var(--gy-ink); color: #fff; }

/* ---------- the record book: a whole black page */
.b-gyms .gy-book { background: var(--gy-blk); color: #fff; }
.b-gyms .gy-book .gy-note { color: var(--gy-onblk); }
.b-gyms .gy-book__t { margin-top: clamp(40px, 5vw, 72px); }
.b-gyms .gy-book table { width: 100%; border-collapse: collapse; font-size: var(--gy-s4); }
.b-gyms .gy-book thead th { text-align: left; font-weight: 500; color: var(--gy-onblk); padding: 0 16px 14px; }
.b-gyms .gy-book tbody tr:nth-child(odd) { background: var(--gy-blk2); }
.b-gyms .gy-book tbody th, .b-gyms .gy-book td { padding: 18px 16px; text-align: left; vertical-align: baseline; font-weight: 400; }
.b-gyms .gy-book tbody th { font: 400 var(--gy-s3)/1 var(--b-d); letter-spacing: .02em; white-space: nowrap; }
.b-gyms .gy-book__p, .b-gyms .gy-book__w { color: var(--gy-onblk); }
.b-gyms .gy-num { white-space: nowrap; }
.b-gyms .gy-num--big { font: 400 var(--gy-s2)/.9 var(--b-d); color: #fff; }
.b-gyms .gy-book__foot { margin-top: clamp(56px, 6vw, 96px); align-items: end; }
.b-gyms .gy-book__foot .gy-ax__l img { aspect-ratio: 3 / 2; height: auto; }
.b-gyms .gy-book__foot .gy-ax__r { display: grid; gap: 18px; max-width: 64ch; }
.b-gyms .gy-book__foot .gy-ax__r p:not(.gy-lead) { color: var(--gy-onblk); }

/* ---------- programs showcase: square plate, spare text */
.b-gyms .gy-show { display: grid; grid-template-columns: 1fr 1fr; gap: 0; min-height: min(88svh, 860px); padding-block: 0; padding-inline: 0; background: var(--gy-bg); }
.b-gyms .gy-show__l { padding: 40px; display: grid; place-items: center; background: var(--gy-sur); }
.b-gyms .gy-show__img { width: 100%; aspect-ratio: 1; overflow: hidden; }
.b-gyms .gy-show__img[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) { .b-gyms .gy-show__img:not([hidden]) img { animation: gy-shut .8s var(--gy-ease) both; } }
@keyframes gy-shut { from { clip-path: inset(0 0 100% 0); transform: scale(1.08); } to { clip-path: inset(0); transform: none; } }
.b-gyms .gy-show__r { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding: clamp(40px, 5vw, 72px) var(--gy-m) clamp(40px, 5vw, 72px) clamp(32px, 4vw, 64px); }
.b-gyms .gy-show__tabs { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.b-gyms .gy-tab { min-height: 44px; padding: 0; border: 0; background: none; color: var(--gy-mut); font: 500 var(--gy-s4) var(--b-t); cursor: pointer; transition: color .2s; }
.b-gyms .gy-tab:hover { color: var(--gy-ink); }
.b-gyms .gy-tab[aria-selected="true"] { color: var(--gy-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 2px; }
.b-gyms .gy-show__pane { display: grid; gap: 28px; max-width: 40ch; }
.b-gyms .gy-show__pane[hidden] { display: none; }
.b-gyms .gy-show__pane h3 { font-size: var(--gy-s2); }
.b-gyms .gy-show__pane p:first-of-type { font-size: var(--gy-s3); line-height: 1.25; font-weight: 500; }
.b-gyms .gy-show__by { color: var(--gy-mut); }
.b-gyms .gy-show__acts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.b-gyms .gy-cell { display: flex; align-items: center; justify-content: center; min-height: 60px; padding: 0 16px; border-radius: 999px; background: var(--gy-sur); color: var(--gy-ink); font: 500 16px var(--b-t); text-decoration: none; text-align: center; transition: background-color .2s, transform .2s var(--gy-ease); }
.b-gyms .gy-cell:hover { background: var(--gy-sur2); } .b-gyms .gy-cell:active { transform: scale(.98); }
.b-gyms .gy-cell--ink { background: var(--gy-acc); color: #fff; } .b-gyms .gy-cell--ink:hover { background: var(--gy-acc2); }

/* ---------- cost of a coached hour */
.b-gyms .gy-cost { background: var(--gy-sur); }
.b-gyms .gy-cost__box { display: grid; grid-template-columns: var(--gy-axis) 1fr; margin-top: clamp(40px, 5vw, 72px); row-gap: 32px; }
.b-gyms .gy-cost__in { display: grid; gap: 30px; align-content: start; padding-right: 40px; }
.b-gyms .gy-field { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: center; font-weight: 500; }
.b-gyms .gy-field span { grid-column: 1 / -1; }
.b-gyms .gy-field output { font: 600 var(--gy-s4)/1 var(--b-t); min-width: 3ch; text-align: right; }
.b-gyms .gy-field input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 44px; margin: 0; background: transparent; cursor: pointer; --fill: 50%; }
.b-gyms .gy-field input[type="range"]::-webkit-slider-runnable-track { height: 6px; background: var(--gy-sur2); }
.b-gyms .gy-field input[type="range"]::-moz-range-track { height: 6px; background: var(--gy-sur2); }
.b-gyms .gy-field input[type="range"]::-moz-range-progress { height: 6px; background: var(--gy-ink); }
.b-gyms .gy-field input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; background: var(--gy-ink); border: 0; transition: transform .2s var(--gy-ease); }
.b-gyms .gy-field input[type="range"]::-moz-range-thumb { width: 28px; height: 28px; border-radius: 50%; background: var(--gy-ink); border: 0; }
.b-gyms .gy-field input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.15); }
.b-gyms .gy-cost__bars { display: grid; gap: 34px; }
.b-gyms .gy-bar { display: grid; gap: 10px; }
.b-gyms .gy-bar__l { font-weight: 600; }
.b-gyms .gy-bar__track { height: clamp(40px, 4vw, 64px); background: var(--gy-bg); }
.b-gyms .gy-bar__track i { display: block; height: 100%; background: var(--gy-ink); transform-origin: left; transition: transform .6s var(--gy-ease); }
.b-gyms .gy-bar--acc .gy-bar__track i { background: var(--gy-acc); }
.b-gyms .gy-bar__big { font: 400 var(--gy-s2)/1 var(--b-d); }
.b-gyms .gy-bar__v { font-weight: 500; max-width: 52ch; }
.b-gyms .gy-cost__sum { font-size: var(--gy-s3); font-weight: 600; line-height: 1.25; }
.b-gyms .gy-cost__how { grid-column: 2; color: var(--gy-mut); font-size: var(--gy-s5); max-width: 70ch; }

/* ---------- coach as drop cap */
.b-gyms .gy-drop { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; padding: clamp(96px, 10vw, 140px) var(--gy-m); scroll-margin-top: 20px; }
.b-gyms .gy-drops { padding: 0; }
.b-gyms .gy-drops .gy-drop:nth-child(odd of .gy-drop) { background: var(--gy-sur); }
.b-gyms .gy-drop__facts { grid-column: 1 / 3; margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; align-content: start; font-size: var(--gy-s5); font-weight: 500; padding-top: .5em; }
.b-gyms .gy-drop__txt { grid-column: 3 / 13; display: grid; gap: 1.2em; font-size: var(--gy-s3); line-height: 1.22; }
.b-gyms .gy-drop__txt > p:first-child { max-width: 44ch; }
.b-gyms .gy-drop__img { float: left; width: 3.66em; height: 3.66em; margin: .12em .5em 0 0; }
.b-gyms .gy-drop__txt b { font-weight: 600; }
.b-gyms .gy-drop__more { color: var(--gy-mut); max-width: 44ch; }

/* ---------- plain names in columns */
.b-gyms .gy-names { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.b-gyms .gy-names h2 { grid-column: 1 / 4; font-size: var(--gy-s3); font-family: var(--b-t); text-transform: none; font-weight: 600; line-height: 1.2; letter-spacing: 0; }
.b-gyms .gy-names__c { grid-column: 5 / 13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.b-gyms .gy-names ul { margin: 0; padding: 0; list-style: none; font-size: var(--gy-s3); line-height: 1.5; font-weight: 500; }
.b-gyms .gy-names li { font-size: var(--gy-s4); line-height: 1.6; }
.b-gyms .gy-names__k { color: var(--gy-mut); }

/* ---------- first month: many into one */
.b-gyms .gy-dia { background: var(--gy-sur); }
.b-gyms .gy-dia__h { display: grid; gap: 24px; max-width: 34ch; }
.b-gyms .gy-dia__fig { margin-top: clamp(40px, 5vw, 72px); }
.b-gyms .gy-dia svg { display: block; width: 100%; height: auto; }
.b-gyms .gy-dia rect.a { fill: #c9c9c5; } .b-gyms .gy-dia rect.b { fill: #a9a9a4; } .b-gyms .gy-dia rect.c { fill: var(--gy-ink); } .b-gyms .gy-dia rect.d { fill: var(--gy-acc); }
.b-gyms .gy-dia__t { display: none !important; }
.b-gyms .gy-dia__s { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.b-gyms .gy-dia__s li { display: grid; gap: 8px; max-width: 34ch; }
.b-gyms .gy-dia__s b { font: 400 var(--gy-s4)/1.1 var(--b-d); text-transform: uppercase; letter-spacing: .04em; }

/* ---------- large questions, answers beside */
.b-gyms .gy-faq { display: grid; gap: clamp(56px, 6vw, 84px); }
.b-gyms .gy-faq__r { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: baseline; }
.b-gyms .gy-faq__q { grid-column: 1 / 7; font: 500 var(--gy-s3)/1.15 var(--b-t); text-transform: none; letter-spacing: 0; max-width: 26ch; }
.b-gyms .gy-faq__r--h .gy-faq__q { color: var(--gy-mut); }
.b-gyms .gy-faq__a { grid-column: 8 / 13; max-width: 42ch; }

/* ---------- programs page */
.b-gyms .gy-prog { scroll-margin-top: 10px; }
.b-gyms .gy-prog--alt { background: var(--gy-sur); }
.b-gyms .gy-prog__meta { display: grid; gap: 18px; padding-top: .4em; }
.b-gyms .gy-prog__meta b { display: block; font-weight: 600; }
.b-gyms .gy-prog .gy-ax__r { display: grid; gap: 28px; justify-items: start; }
.b-gyms .gy-prog .gy-ax__r > h2 + * { margin-top: 0; }
.b-gyms .gy-prog__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 38ch)); gap: 40px; }
.b-gyms .gy-prog__cols > div { display: grid; gap: 14px; align-content: start; }
.b-gyms .gy-prog__k { font-weight: 600; }
.b-gyms .gy-prog__sess { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.b-gyms .gy-prog__sess li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 14px; background: var(--gy-sur); }
.b-gyms .gy-prog--alt .gy-prog__sess li { background: var(--gy-bg); }
.b-gyms .gy-bleed { height: min(80svh, 66vw); overflow: hidden; }
.b-gyms .gy-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.b-gyms .gy-strip > div { aspect-ratio: 4 / 5; overflow: hidden; }

/* ---------- pricing as a large table */
.b-gyms .gy-pt__t { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: var(--gy-s4); }
.b-gyms .gy-pt__t th, .b-gyms .gy-pt__t td { padding: 20px 18px; text-align: left; vertical-align: top; font-weight: 400; }
.b-gyms .gy-pt__t thead th { vertical-align: bottom; padding-bottom: 28px; }
.b-gyms .gy-pt__t tbody tr:nth-child(odd) { background: var(--gy-sur); }
.b-gyms .gy-pt__t tbody th { font-weight: 600; width: 26%; }
.b-gyms .gy-pt__corner { font: 600 var(--gy-s3)/1.2 var(--b-t) !important; }
.b-gyms .gy-pt__nrow th { font: 600 var(--gy-s3)/1.2 var(--b-t); padding-bottom: 6px; }
.b-gyms .gy-pt__prow td { font: 400 var(--gy-s2)/.95 var(--b-d); padding-top: 4px; padding-bottom: 26px; }
.b-gyms .gy-pt__t .gy-pt__rec { background: var(--gy-acc); color: #fff; }
.b-gyms .gy-pt__t tbody tr:nth-child(odd) .gy-pt__rec { background: #1a40c4; }
.b-gyms .gy-pt__go td { background: transparent; }
.b-gyms .gy-pt__go .gy-btn { white-space: normal; text-align: center; line-height: 1.15; padding: 10px 18px; }
.b-gyms .gy-pt__phone { display: none; }
.b-gyms .gy-pt__fine { margin-top: 24px; color: var(--gy-mut); font-size: var(--gy-s5); }

/* ---------- new here */
.b-gyms .gy-tl__img { aspect-ratio: 4 / 5; overflow: hidden; max-width: 420px; }
.b-gyms .gy-tl__l { list-style: none; margin: 40px 0 0; padding: 0; display: grid; gap: 36px; max-width: 60ch; }
.b-gyms .gy-tl__l li { display: grid; grid-template-columns: 4.2ch 1fr; column-gap: 24px; row-gap: 6px; }
.b-gyms .gy-tl__t { grid-row: span 2; font: 400 var(--gy-s4)/1.3 var(--b-d); letter-spacing: .03em; color: var(--gy-acc); }
.b-gyms .gy-tl__h { font-weight: 600; font-size: var(--gy-s4); }
.b-gyms .gy-bring { display: grid; grid-template-columns: 5fr 7fr; padding: 0; background: var(--gy-blk); color: #fff; }
.b-gyms .gy-bring__img { min-height: 520px; overflow: hidden; }
.b-gyms .gy-bring__t { display: grid; gap: 32px; align-content: center; justify-items: start; padding: var(--gy-gap) var(--gy-m); }
.b-gyms .gy-bring ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; font-size: var(--gy-s3); line-height: 1.25; font-weight: 500; }
.b-gyms .gy-bring li { display: grid; grid-template-columns: 16px 1fr; gap: 16px; align-items: baseline; }
.b-gyms .gy-bring li::before { content: ""; width: 14px; height: 14px; background: var(--gy-acc); }

/* ---------- book page: after you book */
.b-gyms .gy-after { display: grid; grid-template-columns: var(--gy-axis) 1fr; align-items: start; }
.b-gyms .gy-after__img { aspect-ratio: 4 / 5; overflow: hidden; margin-right: 40px; }
.b-gyms .gy-after__t { display: grid; gap: 32px; max-width: 62ch; }
.b-gyms .gy-after ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 22px; }
.b-gyms .gy-after li { display: grid; gap: 4px; padding: 20px 22px; background: var(--gy-sur); }
.b-gyms .gy-after li b { font: 400 var(--gy-s4)/1.2 var(--b-d); text-transform: uppercase; letter-spacing: .04em; }

/* ---------- footer: the phone number is the headline */
.b-gyms .gy-foot { display: flex; flex-direction: column; justify-content: space-between; gap: 56px; min-height: 86svh; padding: 40px var(--gy-m) 32px; background: var(--gy-acc); color: #fff; }
.b-gyms .gy-foot a { color: #fff; }
.b-gyms .gy-foot__top { display: grid; grid-template-columns: auto repeat(3, minmax(0, 26ch)) 1fr; gap: 24px 40px; align-items: start; font-size: var(--gy-s5); }
.b-gyms .gy-foot__up { justify-self: end; font-weight: 500; padding: 4px 0; }
.b-gyms .gy-foot__big { display: grid; gap: 8px; }
.b-gyms .gy-foot__big p { position: relative; z-index: 1; font-size: var(--gy-s3); font-weight: 500; }
.b-gyms .gy-foot__big a { font: 400 min(13vw, 15.5vw - 8px)/1.12 var(--b-d); text-decoration: none; letter-spacing: -.01em; white-space: nowrap; transition: opacity .2s; justify-self: start; display: inline-block; overflow: hidden; }
.b-gyms .gy-foot__big a:hover { opacity: .85; }
.b-gyms .gy-foot__meta { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 16px 32px; align-items: end; font-size: var(--gy-s5); }
.b-gyms .gy-foot__meta nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.b-gyms .gy-foot__meta nav a { padding: 8px 0; }
.b-gyms .gy-foot__meta p:last-child { text-align: right; }
body.b-gyms .dm-chatbtn > button { background: var(--gy-ink); color: #fff; font-size: 16px; box-shadow: none; outline: 2px solid #fff; outline-offset: -2px; }

/* ---------- tablet */
@media (max-width: 1100px) {
  .b-gyms .gy-grid__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .b-gyms .gy-foot__top { grid-template-columns: repeat(3, minmax(0, 1fr)); } .b-gyms .gy-foot__mark { grid-column: 1 / -1; } .b-gyms .gy-foot__up { grid-column: 3; grid-row: 1; }
}
@media (max-width: 900px) {
  .b-gyms { --gy-axis: 100%; }
  .b-gyms .gy-top { grid-template-columns: 1fr auto auto; }
  .b-gyms .gy-top__nav { display: none; }
  .b-gyms .gy-top__menu { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--gy-ink); font: 500 16px var(--b-t); cursor: pointer; text-decoration: underline; text-underline-offset: .25em; }
  .b-gyms .gy-top.is-open .gy-top__nav { display: grid; gap: 0; position: absolute; left: 0; right: 0; top: 100%; padding: 8px var(--gy-m) 24px; background: var(--gy-bg); box-shadow: 0 18px 30px -12px rgba(0, 0, 0, .18); } /* taste-skill-ignore: the open menu floats */
  .b-gyms .gy-top.is-open .gy-top__nav a:not(.gy-btn) { padding: 14px 0; font-size: var(--gy-s3); font-weight: 500; }
  .b-gyms .gy-top.is-open .gy-top__drawerbtn { display: inline-flex; justify-self: start; margin-top: 14px; }
  .b-gyms .gy-ax, .b-gyms .gy-mast__t, .b-gyms .gy-cost__box, .b-gyms .gy-after { grid-template-columns: 1fr; }
  .b-gyms .gy-ax__l, .b-gyms .gy-cost__in, .b-gyms .gy-mast__side { padding-right: 0; }
  .b-gyms .gy-ax > .gy-ax__l { order: 2; margin-top: 18px; }
  .b-gyms .gy-ax > .gy-ax__r { order: 1; }
  .b-gyms .gy-mast__t { gap: 22px; }
  .b-gyms .gy-mast__h { order: 1; } .b-gyms .gy-mast__side { order: 2; padding-bottom: 0; }
  .b-gyms .gy-lines { font-size: clamp(44px, 12.4vw, 96px); }
  .b-gyms .gy-mosaic { grid-template-columns: 1fr 1.4fr; grid-template-rows: 1fr auto; height: auto; }
  .b-gyms .gy-mosaic__a { display: none; }
  .b-gyms .gy-mosaic__b, .b-gyms .gy-mosaic__c { height: clamp(180px, 29svh, 380px); }
  .b-gyms .gy-mosaic__d { order: -1; grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 14px var(--gy-m); }
  .b-gyms .gy-mosaic__k { flex-basis: 100%; font-size: var(--gy-s5); }
  .b-gyms .gy-show { grid-template-columns: 1fr; min-height: 0; }
  .b-gyms .gy-show__l { padding: 16px; }
  .b-gyms .gy-show__r { padding: 32px var(--gy-m) var(--gy-gap); gap: 28px; }
  .b-gyms .gy-cost__how { grid-column: 1; }
  .b-gyms .gy-names { grid-template-columns: 1fr; row-gap: 28px; }
  .b-gyms .gy-names h2, .b-gyms .gy-names__c { grid-column: 1; }
  .b-gyms .gy-names__c { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .b-gyms .gy-drop__facts { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 8px 20px; padding-top: 28px; font-size: 14px; }
  .b-gyms .gy-drop__txt { grid-column: 1 / -1; font-size: 22px; line-height: 1.25; }
  .b-gyms .gy-drop__img { width: 5em; height: 5em; }
  .b-gyms .gy-faq__q, .b-gyms .gy-faq__a { grid-column: 1 / -1; }
  .b-gyms .gy-faq__a { margin-top: 12px; }
  .b-gyms .gy-prog__cols { grid-template-columns: 1fr; gap: 28px; }
  .b-gyms .gy-pt__t { display: none; }
  .b-gyms .gy-pt__phone { display: grid; gap: 6px; }
  .b-gyms .gy-pb { display: grid; gap: 8px; padding: 24px 20px; background: var(--gy-sur); justify-items: start; }
  .b-gyms .gy-pb--rec { background: var(--gy-acc); color: #fff; }
  .b-gyms .gy-pb__n { font-weight: 600; font-size: var(--gy-s3); }
  .b-gyms .gy-pb__p { font: 400 var(--gy-s2)/.9 var(--b-d); }
  .b-gyms .gy-pb dl { margin: 12px 0 14px; display: grid; gap: 2px; }
  .b-gyms .gy-pb dt { color: var(--gy-mut); font-size: 16px; margin-top: 10px; } .b-gyms .gy-pb--rec dt { color: #dfe6ff; }
  .b-gyms .gy-pb dd { margin: 0; font-size: 17px; }
  .b-gyms .gy-bring { grid-template-columns: 1fr; }
  .b-gyms .gy-bring__img { min-height: 0; aspect-ratio: 4 / 3; }
  .b-gyms .gy-after__img { margin: 0 0 32px; max-width: 360px; }
  .b-gyms .gy-tl__img { max-width: 300px; }
  .b-gyms .gy-ax > .gy-ax__l .gy-tl__img { margin-top: 12px; }
  .b-gyms .gy-dia__w { display: none !important; } .b-gyms .gy-dia__t { display: block !important; }
  .b-gyms .gy-dia__fig { display: grid; grid-template-columns: 1fr 42vw; gap: 20px; align-items: stretch; }
  .b-gyms .gy-dia__s { margin: 0; grid-template-columns: 1fr; align-content: space-between; gap: 18px; }
  .b-gyms .gy-dia__s span { font-size: 16px; }
  .b-gyms .gy-foot { min-height: 0; gap: 64px; }
  .b-gyms .gy-foot__big a { font-size: 15vw; }
  .b-gyms .gy-foot__meta { grid-template-columns: 1fr; } .b-gyms .gy-foot__meta p:last-child { text-align: left; }
}
/* phone */
@media (max-width: 760px) {
  .b-gyms .gy-grid__days { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin-bottom: 8px; }
  .b-gyms .gy-grid__day { display: grid; place-items: center; gap: 0; min-height: 54px; padding: 4px 0; border: 0; background: var(--gy-bg); color: var(--gy-ink); font: 500 15px/1.15 var(--b-t); cursor: pointer; }
  .b-gyms .gy-grid__day b { font-weight: 600; }
  .b-gyms .gy-grid__day[aria-pressed="true"] { background: var(--gy-ink); color: #fff; }
  .b-gyms .gy-grid__cols { grid-template-columns: 1fr; }
  .b-gyms .gy-grid__col:not(.is-day) { display: none; }
  .b-gyms .gy-grid__h { display: none; }
  .b-gyms .gy-cls { grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; padding: 14px 16px; }
  .b-gyms .gy-cls__t { grid-row: span 2; }
  .b-gyms .gy-cls .gy-sq { grid-column: 1; margin: 6px 0 0; }
  .b-gyms .gy-cls__l { grid-column: 2; align-self: end; }
  .b-gyms .gy-cls__c { grid-column: 2; }
  .b-gyms .gy-cls__p { grid-column: 2; }
  .b-gyms .gy-opt { grid-template-columns: 18px 1fr; row-gap: 4px; padding: 14px 16px; }
  .b-gyms .gy-opt__t { font-size: var(--gy-s4); } .b-gyms .gy-opt__d { grid-column: 2; font-size: 16px; }
  .b-gyms .gy-m-fields { grid-template-columns: 1fr; }
  .b-gyms .gy-m-fields > .gy-btn { justify-self: stretch; }
  .b-gyms .gy-book thead { display: none; }
  .b-gyms .gy-book table, .b-gyms .gy-book tbody, .b-gyms .gy-book tr { display: block; }
  .b-gyms .gy-book tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 16px; }
  .b-gyms .gy-book tbody th, .b-gyms .gy-book td { padding: 0; }
  .b-gyms .gy-book tbody th { grid-column: 1; }
  .b-gyms .gy-book__p, .b-gyms .gy-book__l, .b-gyms .gy-book__f { grid-column: 1; font-size: 16px; }
  .b-gyms .gy-book__f { color: var(--gy-onblk); } .b-gyms .gy-book__f::before { content: "First logged "; }
  .b-gyms .gy-book td.gy-num--big { grid-column: 2; grid-row: 1 / span 3; align-self: center; text-align: right; }
  .b-gyms .gy-book__w { grid-column: 2; grid-row: 4; text-align: right; font-size: 16px; }
  .b-gyms .gy-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .b-gyms .gy-strip > div { aspect-ratio: 3 / 4; }
  .b-gyms .gy-show__acts { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .b-gyms .gy-logo__w { font-size: 22px; } .b-gyms .gy-logo__m { width: 34px; height: 24px; }
  .b-gyms .gy-top .gy-top__btn { padding: 0 16px; font-size: 15px; }
  .b-gyms .gy-names__c { grid-template-columns: 1fr; }
  .b-gyms .gy-foot__top { grid-template-columns: 1fr; } .b-gyms .gy-foot__mark, .b-gyms .gy-foot__up { grid-column: 1; grid-row: auto; justify-self: start; }
}
@media (max-width: 520px) { .b-gyms .gy-top .gy-top__btn { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .b-gyms *, .b-gyms *::before, .b-gyms *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
