.booking-page{padding-bottom:4rem}.booking-progress{display:flex;gap:1.6rem;list-style:none;padding:0;margin:2rem 0;color:var(--color-muted);flex-wrap:wrap}.booking-progress li{display:flex;align-items:center;gap:.6rem}.booking-progress b{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid currentColor;border-radius:50%}.booking-progress [aria-current]{color:var(--color-primary)}.booking-layout{display:grid;grid-template-columns:minmax(18rem,.85fr) minmax(0,1.15fr);gap:2rem;align-items:start}.booking-month,.booking-selection{border:1px solid var(--color-border);border-radius:1.5rem;padding:clamp(1rem,3vw,2rem);background:var(--color-surface);min-width:0}.booking-month{position:sticky;top:7rem}.booking-month-nav{display:grid;grid-template-columns:2.8rem 1fr 2.8rem;align-items:center;gap:.5rem;margin-bottom:1.5rem}.booking-month-nav h2{text-align:center;text-transform:capitalize;font-size:1.25rem;margin:0}.booking-arrow{display:grid;place-items:center;min-height:44px;border-radius:50%;border:1px solid var(--color-border);text-decoration:none}.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.booking-weekdays span{text-align:center;font-size:.75rem;padding:.5rem 0}.booking-day{display:grid;place-items:center;aspect-ratio:1;min-height:44px;border-radius:.8rem;text-decoration:none;border:1px solid var(--color-border);font-weight:600;transition:background .15s,color .15s}.booking-day.is-unavailable{opacity:.3;border-color:transparent}.booking-day.is-selected,.booking-day[href]:hover{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.booking-legend{display:flex;gap:.5rem;align-items:center;font-size:.85rem}.booking-legend span{width:.5rem;height:.5rem;border-radius:50%;background:var(--color-primary)}.booking-selection h2{font-size:1.7rem}.booking-selection h2 small{font-size:1rem;font-weight:400}.booking-form fieldset{border:0;padding:0;margin:1.8rem 0}.booking-form legend{font-weight:600;margin-bottom:.8rem}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.booking-slot{position:relative}.booking-slot input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.booking-slot span{display:grid;place-items:center;min-height:46px;border:1px solid var(--color-border);border-radius:.7rem;font-size:.9rem;padding:.5rem}.booking-slot input:checked+span{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-surface)}.booking-slot input:focus-visible+span{outline:3px solid var(--color-primary);outline-offset:3px}.booking-contact{display:grid;gap:1rem}.booking-contact .field{display:grid;gap:.4rem}.booking-contact input,.booking-contact select,.booking-contact textarea{width:100%;box-sizing:border-box;min-height:44px}.booking-day:focus-visible,.booking-arrow:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}@media(max-width:760px){.booking-layout{grid-template-columns:1fr}.booking-month{position:static}.booking-progress{gap:.8rem;font-size:.8rem}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.booking-day{transition:none}}
