.booking-hero{padding:60px 0 68px}
.booking-preview-notice{margin:18px 0 0;padding:14px 18px;border:1px solid #d99b29;border-radius:10px;background:#fff4db;color:#553500;font-weight:700}
.booking-hero h1{font-size:clamp(2.8rem,5vw,4.8rem);margin:16px 0}
.booking-shell{max-width:1060px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);background:#fff;border:1px solid #dce1e6;border-radius:20px;box-shadow:0 22px 60px #1a263014;overflow:hidden}
.booking-layout:has(#booking-success:not([hidden])){grid-template-columns:minmax(0,1fr);max-width:650px;margin-inline:auto}
.booking-layout:has(#booking-success:not([hidden])) .booking-calendar,.booking-layout:has(#booking-success:not([hidden])) #booking-selected-day,.booking-layout:has(#booking-success:not([hidden])) #booking-status{display:none}
.booking-calendar,.booking-times{padding:35px}
.booking-calendar{border-right:1px solid #e4e7ec}
.booking-intro h2{font-size:2.2rem;margin:12px 0}
.booking-intro p,.booking-zone{color:#65707b;font-size:.9rem}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 15px}
.calendar-head h3{margin:0;font-size:1.25rem}
.calendar-head button{width:39px;height:39px;border:1px solid #d3d8df;border-radius:8px;background:#fff;color:#141821;font-size:1.6rem;line-height:1}
.calendar-head button:disabled{opacity:.35;cursor:not-allowed}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.calendar-weekdays span{font-size:.75rem;color:#717b86;font-weight:800;padding:8px 0}
.calendar-days button{border:0;background:#f0f2f5;border-radius:9px;min-height:46px;color:#161b24;font-weight:800}
.calendar-days button:hover:not(:disabled),.calendar-days button.selected{background:#c8102e;color:#fff}
.calendar-days button.today{box-shadow:inset 0 0 0 2px #c8102e}
.calendar-days button:disabled{background:transparent;color:#b0b7bf;cursor:not-allowed}
.booking-times h2{font-size:1.55rem;margin:0 0 7px}
.booking-times>p{color:#65707b;font-size:.87rem}
.booking-slots{display:grid;gap:9px;margin:20px 0}
.booking-slots button{border:1px solid #c8102e;border-radius:8px;background:#fff;color:#a80925;min-height:46px;font-weight:800}
.booking-slots button:hover,.booking-slots button.selected{background:#c8102e;color:#fff}
#booking-form[hidden],#booking-success[hidden]{display:none}
#booking-form{border-top:1px solid #e4e7ec;padding-top:22px;margin-top:20px}
#booking-form h3{font-size:1.2rem;margin:0 0 5px}
#booking-form>p{color:#58626e;font-size:.85rem}
#booking-form .field-grid{gap:10px;margin:12px 0}
#booking-form .field-grid label{font-size:.78rem}
#booking-form .field-grid input{height:43px}
#booking-form .check-row{margin:14px 0}
#booking-form .form-privacy{font-size:.75rem;padding-top:12px}
@media(max-width:780px){.booking-layout{grid-template-columns:1fr}.booking-calendar{border-right:0;border-bottom:1px solid #e4e7ec}.booking-calendar,.booking-times{padding:25px}}
@media(max-width:480px){.booking-calendar,.booking-times{padding:18px}.calendar-days button{min-height:40px}}
