/* Qualification uses the existing Northbridge tokens and a single primary action. */
.booking-wrap { max-width: 900px; padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.booking-wrap h1 { max-width: 25ch; font-size: clamp(2.1rem, 4vw, 3rem); }
.booking-preview-note { border-left: 2px solid var(--orange-line); padding-left: .9rem; color: var(--muted); font-size: .9rem; margin-bottom: 2rem; }
.booking-price { padding-block: 1rem; border-block: 1px solid var(--hairline); font-size: 1rem; margin-block: 1rem 1.25rem; }
#qualification-form { max-width: 680px; }
.booking-progress-label { font-size: .9rem; color: var(--muted); margin-bottom: .5rem; }
#booking-progress { width: 100%; height: 5px; appearance: none; border: none; background: var(--hairline); margin-bottom: 2rem; }
#booking-progress::-webkit-progress-bar { background: var(--hairline); }
#booking-progress::-webkit-progress-value { background: var(--navy); }
#booking-progress::-moz-progress-bar { background: var(--navy); }
.booking-step { margin: 0; padding: 0; border: 0; min-width: 0; }
.booking-step legend { padding: 0; margin-bottom: 1.5rem; font-family: var(--serif); font-weight: 600; font-size: clamp(1.6rem, 3vw, 2rem); line-height: 1.2; color: var(--navy); scroll-margin-top: 10rem; }
.booking-step legend:focus, .booking-status:focus, .booking-result:focus { outline: 2px solid var(--orange); outline-offset: 5px; }
.booking-choices { display: grid; gap: .7rem; }
.booking-choice { display: flex; align-items: center; gap: .85rem; border: 1px solid var(--hairline); border-radius: 4px; padding: .85rem 1rem; min-height: 52px; cursor: pointer; background: var(--paper); }
.booking-choice[data-selected="true"] { border-color: var(--navy); background: var(--cream-deep); }
.booking-choice input { accent-color: var(--navy); width: 1.15rem; height: 1.15rem; flex: none; margin: 0; }
.booking-field { margin-bottom: 1.25rem; }
.booking-field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.booking-field input { width: 100%; max-width: 100%; box-sizing: border-box; background: var(--paper); color: var(--ink); border: 1px solid var(--hairline); border-radius: 4px; padding: .8rem; font: inherit; }
.booking-field input[aria-invalid="true"] { border-color: #A02626; }
.booking-contact-intro, .booking-privacy, .booking-result > p { font-size: 1rem; }
.booking-error { color: #A02626; font-size: .95rem; margin-top: .5rem; margin-bottom: 0; }
.booking-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 2rem; }
.booking-actions .btn { font-family: var(--sans); cursor: pointer; }
.booking-actions button:disabled { cursor: wait; opacity: .65; }
.booking-status { border-left: 2px solid var(--orange-line); padding: .8rem 1rem; margin-top: 1.5rem; background: var(--cream-deep); }
.booking-answer-details { margin-block: 1.8rem; border-block: 1px solid var(--hairline); padding-block: 1rem; }
.booking-answer-details summary { cursor: pointer; color: var(--navy); text-decoration: underline; text-decoration-color: var(--orange-line); text-underline-offset: 3px; }
#booking-answer-summary dt { font-weight: 600; font-size: .95rem; margin-top: .8rem; }
#booking-answer-summary dd { margin: .15rem 0 0; }
.booking-result { padding-block: 1rem 2rem; }
#booking-calendar { margin-bottom: 1rem; }
.booking-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.booking-page [id] { scroll-margin-top: 10rem; }
@media (max-width: 640px) {
  .booking-page [id], .booking-step legend { scroll-margin-top: 1.5rem; }
}
@media (max-width: 540px) {
  .booking-wrap { padding-top: 1.5rem; }
  .booking-choice { padding: .8rem; }
  .booking-actions { gap: .7rem; }
  .booking-actions .btn { max-width: 100%; white-space: normal; }
}

/* Same choice rows, now explicit choose-and-continue actions. */
.booking-choice { width: 100%; font: inherit; color: var(--ink); text-align: left; justify-content: space-between; }
.booking-choice:hover { border-color: var(--navy); }
.booking-choice:focus-visible, .booking-change:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.booking-choice-arrow { color: var(--navy); flex: none; }
.booking-step > input[hidden] { display: none; }
.booking-journey { color: var(--muted); font-size: .9rem; margin-bottom: 1rem; }
.booking-choice-hint { color: var(--muted); font-size: .9rem; margin-bottom: 1rem; }
#booking-progress { margin-bottom: .75rem; }
#booking-answer-summary dd { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.booking-change { border: 0; padding: .5rem; background: transparent; color: var(--navy); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 44px; flex: none; }
@media (max-width: 540px) {
  .booking-wrap { padding-top: 1rem; }
  .booking-price { padding-block: .6rem; margin-block: .75rem 1rem; }
  .booking-journey { margin-bottom: .6rem; }
  .booking-choice-hint { margin-bottom: .75rem; }
  .booking-step legend { margin-bottom: 1rem; }
}
