/* Booking follows one vertical path at every viewport width. */
body[data-booking-page] .booking-intro{max-width:1000px}
body[data-booking-page] .booking-layout{display:grid;grid-template-columns:minmax(0,1fr);max-width:1000px;gap:26px;scroll-margin-top:24px}
body[data-booking-page] .booking-config{position:static;top:auto}
.booking-request-flow,.booking-request-flow #request-form{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;min-width:0}
.booking-stage{min-width:0;padding:34px;border-radius:12px;scroll-margin-top:24px}
.booking-stage .booking-step{margin-bottom:14px;gap:14px}
.booking-stage .booking-step>span{width:36px;height:36px;font-size:12px}
.booking-stage .booking-step h2{font-size:28px;line-height:1.25}
.booking-stage-intro{font-size:14px;line-height:1.75;margin:0 0 24px;max-width:680px}
.booking-stage .input-grid{grid-template-columns:minmax(0,1fr);gap:0}
.booking-stage label,.booking-stage .extras legend{font-size:13px}
.booking-stage input:not([type=checkbox]):not([type=radio]),.booking-stage select,.booking-stage textarea{font-size:14px;min-height:48px;padding:13px}
.booking-stage .extras label{font-size:13px;margin:14px 0}
.booking-stage .extras label span{font-size:11px}
.booking-stage .switch{margin-top:0;margin-bottom:25px}
.booking-stage .switch button{font-size:14px;padding:14px 12px}
.booking-stage .price-output{margin-top:26px;padding-top:23px}
.booking-stage .price-output strong{font-size:48px}
.booking-stage .price-output strong.custom{font-size:32px}
.booking-stage .breakdown{font-size:12px;line-height:1.8;margin-top:10px}
.booking-stage .small-note{font-size:12px;line-height:1.8}
.booking-stage .booking-continue{font-size:14px;margin-top:24px;min-height:50px}
.booking-stage .booking-calendar{max-width:none;padding:22px}
.booking-stage .calendar-header h3{font-size:20px}
.booking-stage .calendar-day{min-height:48px;font-size:14px}
.booking-stage .calendar-legend,.booking-stage .calendar-selected,.booking-stage .calendar-status{font-size:12px}
.booking-stage .booking-time-slots legend{font-size:13px}
.booking-stage .booking-time-option span{font-size:14px;min-height:78px}
.booking-stage .booking-time-option small{font-size:11px}
.booking-stage .field-help,.booking-stage .booking-time-note{font-size:12px;line-height:1.75}
.booking-stage .request-summary{font-size:14px;padding:17px 20px;margin-bottom:25px}
.booking-stage .request-summary span{font-size:12px}
.booking-stage .booking-privacy-reminder{margin:-12px 0 23px}
.booking-payment-note{border:1px solid #ead9c9;background:#f8eee4;border-radius:8px;padding:20px;margin:25px 0}
.booking-payment-note h3{font-family:var(--sans);font-size:16px;letter-spacing:0;line-height:1.4;margin-bottom:8px}
.booking-payment-note p{font-size:13px;line-height:1.8}
.booking-stage .consent-label{font-size:12px}
.booking-stage .form-footnote{font-size:11px;line-height:1.7}
.booking-flow-title{font-size:28px;line-height:1.3;margin:0}
.booking-request-flow>.request-error{margin:0}
.booking-request-flow #request-review,.booking-request-flow #request-result{padding:34px;scroll-margin-top:24px}
.booking-details-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-bottom:22px}
.booking-details-column{min-width:0}
.booking-details-column>label{display:block}
.booking-stage .bond-time-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.booking-stage .bond-time-options .booking-time-option span{font-size:13px;min-height:74px;padding:10px 4px}
.booking-stage .bond-time-options .booking-time-option small{font-size:10px}
.bond-time-clear{border:0;background:none;padding:8px 0;color:var(--green);font-size:12px;text-decoration:underline;margin-top:7px}
.bond-time-clear:disabled{color:var(--muted);opacity:.55;cursor:default;text-decoration:none}
@media(max-width:760px){
  .booking-details-columns{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:15px}
  .booking-stage .bond-time-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-booking-page] .booking-layout{gap:20px}
  .booking-request-flow,.booking-request-flow #request-form{gap:20px}
  .booking-stage,.booking-request-flow #request-review,.booking-request-flow #request-result{padding:23px 20px}
  .booking-stage .booking-step{align-items:flex-start;gap:11px}
  .booking-stage .booking-step>span{width:32px;height:32px;margin-top:1px}
  .booking-stage .booking-step h2{font-size:24px}
  .booking-stage-intro{font-size:13px;margin-bottom:22px}
  .booking-stage .switch button{font-size:12px;padding:13px 8px}
  .booking-stage input:not([type=checkbox]):not([type=radio]),.booking-stage select,.booking-stage textarea{font-size:16px}
  .booking-stage .extras label{font-size:12px}
  .booking-stage .extras label span{font-size:10px}
  .booking-stage .price-output{gap:12px;align-items:flex-start}
  .booking-stage .price-output strong{font-size:44px}
  .booking-stage .price-output strong.custom{font-size:28px}
  .booking-stage .price-tag{font-size:10px;max-width:125px;margin-top:8px}
  .booking-stage .booking-calendar{padding:12px}
  .booking-stage .calendar-header h3{font-size:17px}
  .booking-stage .calendar-day{min-height:38px;font-size:12px}
  .booking-stage .calendar-legend,.booking-stage .calendar-selected,.booking-stage .calendar-status{font-size:10px}
  .booking-stage .booking-time-option span{font-size:11px;min-height:74px}
  .booking-stage .booking-time-option small{font-size:9px}
  .booking-stage .field-help,.booking-stage .booking-time-note{font-size:11px}
  .booking-stage .request-summary{padding:15px;font-size:13px}
  .booking-payment-note{padding:17px}
  .booking-payment-note p{font-size:12px}
}
