/* IN THE RING FITNESS — Book page (Book.dc.html) */

.booking { padding: clamp(32px, 2.7vw, 72px) var(--gutter-x) var(--section-gap); }
.booking__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(24px, 3vw, 80px); align-items: start; }

/* Form */
.book-form { display: grid; border-top: 1px solid var(--ink-800); }
.book-form__row { padding: clamp(18px, 1.05vw, 28px) 0; border-bottom: 1px solid var(--paper-200); }
.book-form__row--fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.book-form__row--last { border-bottom-color: var(--ink-800); }
.field-label {
  display: block; margin-bottom: 14px;
  font-family: var(--font-heading); font-weight: 700; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-800);
}
.choices__row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice {
  font-family: var(--font-heading); font-weight: 700; font-size: 13px; line-height: 1.2;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-800);
  padding: 12px 16px; border: 2px solid var(--ink-800); border-radius: var(--radius-xs); background: transparent;
  transition: background 160ms, color 160ms;
}
.choice[aria-pressed="true"] { background: var(--ink-800); color: #fff; }
.choice--num {
  width: 56px; height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 20px; letter-spacing: 0.04em;
}
.textarea {
  width: 100%; resize: vertical; display: block;
  font-family: var(--font-body); font-size: 16px; line-height: 1.5; padding: 14px;
  border: 2px solid var(--ink-800); border-radius: var(--radius-xs); background: #fff; color: var(--ink-800); outline: none;
}
.textarea::placeholder { color: var(--text-faint); }
.textarea:focus-visible { outline: 2px solid var(--red-500); outline-offset: 2px; }
.book-form__submit { padding-top: 28px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.book-form__note { font-size: 14px; line-height: 1.5; color: var(--steel-500); max-width: 420px; }
.book-form__error { flex-basis: 100%; font-weight: 500; color: var(--red-500); }
.book-form.is-busy .ds-btn { opacity: 0.6; pointer-events: none; }
.ds-field__input:invalid:not(:placeholder-shown) { color: var(--red-600); }

/* Success state */
.book-success { border-top: 1px solid var(--ink-800); padding: 40px 0; }
.book-success__title {
  margin: 18px 0 20px;
  font-family: var(--font-display); font-weight: 700; font-size: clamp(40px, 4.5vw, 120px); line-height: 0.86;
  letter-spacing: -0.02em; text-transform: uppercase; color: var(--ink-800);
}
.book-success__title:focus { outline: none; }
.book-success p:not(.mega-label) { margin-bottom: 28px; max-width: 560px; font-size: clamp(16px, 0.67vw, 18px); line-height: 1.6; color: var(--text-body); text-wrap: pretty; }

/* Sidebar strip */
.book-aside {
  grid-column: 1 / -1; margin-top: clamp(32px, 4vw, 56px);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 1px; background: var(--paper-200); border: 1px solid var(--paper-200);
}
.book-aside__cell { background: var(--paper-050); padding: clamp(18px, 0.97vw, 26px); }
.book-aside__cell--dark { background: var(--ink-800); color: var(--paper-050); padding: clamp(20px, 1.12vw, 30px) clamp(18px, 0.97vw, 26px); }
.next-steps { margin-top: 18px; display: grid; gap: 14px; }
.next-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 10px; font-size: 15px; line-height: 1.5; color: var(--text-on-dark-soft); }
.next-steps b { font-family: var(--font-display); font-weight: 700; font-size: clamp(17px, 0.82vw, 22px); line-height: 1.1; color: #fff; }
.hours { margin-top: 14px; border-top: 1px solid var(--ink-800); }
.hours__row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--paper-200); font-size: 15px; }
.hours__day { font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-800); }
.hours__time { color: var(--text-body); }
.book-aside__small { margin-top: 12px; font-size: 13px; line-height: 1.5; color: var(--steel-500); }
.book-aside__where { margin-top: 12px; font-family: var(--font-display); font-weight: 700; font-size: clamp(20px, 1.05vw, 28px); line-height: 1; text-transform: uppercase; color: var(--ink-800); }
.book-aside__text { margin-top: 10px; font-size: 15px; line-height: 1.6; color: var(--text-body); }

/* FAQ strip */
.book-faq__inner { padding: clamp(48px, 4.5vw, 120px) var(--gutter-x); }
.book-faq__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); column-gap: clamp(24px, 4vw, 64px); }
