.booking-shell { max-width: 850px; }
.booking-header .header-inner { grid-template-columns: minmax(0, 1fr) auto; }
.booking-header .header-cta { display: inline-flex; justify-self: end; }
.booking-shell h1 { font-size: 2rem; line-height: 1.5; }
.booking-shell h2 { font-size: 1.35rem; }
.booking-shell .header-inner, .booking-shell form > * { min-width: 0; }
.booking-notice { padding: 1rem; background: #e7f4f5; border-left: 4px solid var(--teal-dark, #0f7f84); }
.booking-shell fieldset { border: 0; padding: 0; margin: 2rem 0; min-width: 0; }
.booking-shell legend { font-weight: 700; margin-bottom: 1rem; }
.booking-teachers, .booking-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.booking-option { display: flex; align-items: center; gap: .7rem; padding: 1rem; border: 1px solid #b3ceca; border-radius: 8px; background: white; min-width: 0; cursor: pointer; }
.booking-option:has(input:checked) { outline: 3px solid #0f7f84; background: #e7f4f5; }
.booking-option input { width: auto; flex: 0 0 auto; }
.booking-option-text { min-width: 0; line-height: 1.6; }
.booking-timezone { display: inline-block; white-space: nowrap; }
.booking-option img { width: 76px; height: 76px; object-fit: contain; }
.booking-shell label { min-width: 0; }
#customer-fields label { display: grid; gap: .4rem; margin-bottom: 1rem; }
#customer-fields input, #customer-fields select { width: 100%; padding: .8rem; box-sizing: border-box; }
.booking-shell button:disabled { opacity: .6; cursor: not-allowed; }
.booking-shell :focus-visible { outline: 3px solid #0f7f84; outline-offset: 4px; }
.booking-policy { margin:1.5rem 0; padding:1rem; background:#fff; border:1px solid #b3ceca; border-radius:8px; }
.booking-consent { display:flex; align-items:flex-start; gap:.7rem; line-height:1.7; }
.booking-consent input { flex:0 0 18px; width:18px; height:18px; margin-top:.3rem; }
@media (max-width: 640px) { .booking-teachers, .booking-slots { grid-template-columns: 1fr; } .booking-shell .button { width: 100%; white-space: normal; } }
@media (max-width: 640px) {
  .booking-header .header-inner { grid-template-columns: 1fr; gap: .5rem; padding-block: .65rem; }
  .booking-header .header-cta { justify-self: start; min-height: 40px; padding: .55rem 1rem; font-size: .85rem; }
}
