/* Kiln Athletic Club: the inner pages (Classes, Trainers, Membership, Visit, Privacy, 404). Plain working pages. */
.ph { max-width: var(--maxw); margin: 0 auto; padding: clamp(40px, 6vw, 90px) var(--pad) clamp(28px, 4vw, 56px); }
.ph__h { font-size: clamp(3.6rem, 9vw, 9rem); line-height: .86; margin-bottom: 22px; }
.split { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(28px, 4vw, 64px); max-width: var(--maxw); margin: 0 auto; padding: clamp(56px, 8vw, 110px) var(--pad); align-items: start; }
.strip { background: var(--accent); color: var(--on-accent); padding: clamp(40px, 6vw, 80px) var(--pad); display: flex; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; }
.strip__h { font-size: clamp(2.6rem, 5vw, 5rem); line-height: .9; }
.strip .btn { background: var(--on-accent); color: var(--accent); border-color: var(--on-accent); }
.strip .btn--ghost { background: transparent; color: var(--on-accent); }
.booking { max-width: 760px; margin: 0 auto; padding: 0 var(--pad) clamp(56px, 8vw, 110px); scroll-margin-top: calc(var(--bar-h) + 10px); }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: s; border-top: 1px solid var(--line-strong); }
.steps li { counter-increment: s; position: relative; padding: 18px 0 18px 56px; border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(s); position: absolute; left: 0; top: 14px; font: 900 2.4rem/1 var(--display); color: var(--accent-text); }

/* classes */
.week { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(40px, 6vw, 80px); }
.week__head { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; }
.week__h { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.filter { display: flex; flex-wrap: wrap; gap: 8px; }
.filter button, .daybar button { padding: 11px 16px; min-height: 44px; background: transparent; color: var(--ink); border: 2px solid var(--line-strong); font: 700 .8rem var(--text); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.filter button[aria-pressed="true"], .daybar button[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.wk { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; align-items: start; }
.wk__day h3 { font-size: 1.7rem; padding: 8px 0; border-bottom: 3px solid var(--ink); line-height: 1; }
.wk__day.is-today h3 { border-bottom-color: var(--accent-text); }
.wk__day.is-today h3::after { content: "today"; font: 700 .75rem var(--text); letter-spacing: .1em; color: var(--on-accent); background: var(--accent); padding: 2px 6px; vertical-align: middle; margin-left: 8px; }
.slot { display: grid; gap: 1px; margin-top: 8px; padding: 10px 10px 10px 12px; background: var(--surface); border-left: 4px solid var(--accent-text); color: var(--ink); text-decoration: none; transition: background .15s, opacity .2s; }
.slot b { font: 700 1.05rem var(--text); }
.slot span { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .92rem; }
.slot small { color: var(--soft); font-size: .78rem; }
.slot:hover { background: var(--surface2); }
.slot.is-dim { opacity: .22; }
.daybar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.descs { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.cls { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(28px, 4vw, 56px) 0; border-top: 1px solid var(--line-strong); scroll-margin-top: calc(var(--bar-h) + 10px); }
.cls:nth-child(even) .cls__ph { order: 2; }
.cls__ph img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cls__n { font-size: clamp(3rem, 6vw, 5.6rem); line-height: .88; margin-bottom: 14px; }

/* trainers */
.roster--page { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(28px, 4vw, 56px); align-items: start; }
.tc { scroll-margin-top: calc(var(--bar-h) + 10px); }

/* membership */
.visually-lead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.compare { max-width: var(--maxw); margin: 0 auto; padding: clamp(40px, 6vw, 80px) var(--pad); }
.compare .big { margin-bottom: 28px; }
.cmp { width: 100%; border-collapse: collapse; }
.cmp th, .cmp td { text-align: left; padding: 14px 16px 14px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.cmp thead th { font: 900 1.8rem/1 var(--display); text-transform: uppercase; padding-bottom: 14px; border-bottom: 3px solid var(--ink); }
.cmp tbody th { font-weight: 700; width: 28%; }
.join-sec { max-width: var(--maxw); margin: 0 auto; padding: clamp(40px, 6vw, 80px) var(--pad); scroll-margin-top: calc(var(--bar-h) + 10px); }
.join-sec__head { margin-bottom: 28px; }
.jn1__grid { display: grid; grid-template-columns: 1.35fr .75fr; gap: clamp(28px, 4vw, 56px); align-items: start; }

/* visit */
.passgrid { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(40px, 6vw, 80px); display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 4vw, 48px); align-items: start; scroll-margin-top: calc(var(--bar-h) + 10px); }
.two { max-width: var(--maxw); margin: 0 auto; padding: clamp(24px, 4vw, 56px) var(--pad); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.hrs, .find { scroll-margin-top: calc(var(--bar-h) + 10px); }
.find .btn { margin-top: 6px; }

/* privacy */
.doc { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(56px, 8vw, 110px); }
.doc-date { margin: 14px 0 0; color: var(--soft); font-size: .92rem; }
.doc-note { max-width: var(--maxw); margin: 0 auto 24px; padding: 0 var(--pad); }
.doc-note p { margin: 0; padding: 16px 20px; background: var(--surface); border-left: 5px solid var(--accent-text); max-width: 70ch; }
.doc-sec { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(20px, 4vw, 56px); padding: 28px 0; border-top: 1px solid var(--line-strong); scroll-margin-top: calc(var(--bar-h) + 10px); }
.doc-h { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: .95; }
.doc-sec p { margin: 0 0 14px; max-width: 64ch; }
.credits { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 14px; }
.credit__what { margin: 0 !important; font-weight: 600; }
.credit__by { margin: 2px 0 0 !important; color: var(--soft); font-size: .9rem; }

/* 404 */
.nf { max-width: var(--maxw); margin: 0 auto; padding: clamp(60px, 10vw, 140px) var(--pad); }
.nf__h { font-size: clamp(5rem, 18vw, 16rem); line-height: .8; margin: 0 0 24px; }
.nf .hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }

@media (max-width: 1099px) {
  .split, .passgrid, .two, .jn1__grid, .doc-sec { grid-template-columns: 1fr; }
  .wk { grid-template-columns: 1fr; }
  .js .wk__day { display: none; }
  .js .wk__day.is-shown { display: block; }
  .js .wk__day h3 { display: none; }
  .wk__day .slot { grid-template-columns: 90px 1fr auto; align-items: center; gap: 4px 16px; padding: 14px 16px; }
  .wk__day .slot small { grid-column: 3; text-align: right; }
  .cls { grid-template-columns: 1fr; }
  .cls:nth-child(even) .cls__ph { order: 0; }
  .cmp thead th { font-size: 1.4rem; }
}
@media (min-width: 1100px) { .daybar { display: none; } }
@media (max-width: 640px) {
  .wk__day .slot { grid-template-columns: 70px 1fr; }
  .wk__day .slot small { grid-column: 2; text-align: left; }
  .cmp thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cmp, .cmp tbody, .cmp tr, .cmp th, .cmp td { display: block; width: 100%; }
  .cmp tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .cmp tbody th { width: 100%; border: 0; padding: 0 0 6px; font-size: 1.05rem; }
  .cmp td { display: flex; justify-content: space-between; gap: 16px; border: 0; padding: 4px 0; }
  .cmp td::before { content: attr(data-label); font-weight: 700; color: var(--soft); }
  .strip .hero__cta { width: 100%; }
  .strip .hero__cta .btn { flex: 1 1 100%; }
  .ph__h { font-size: clamp(3.4rem, 16vw, 5rem); }
}
