.booking-times{border:0;padding:0;margin:22px 0;min-width:0}.booking-times legend{font-weight:600;font-size:14px}.booking-times p{font-size:14px}.slot-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:#656565;margin-bottom:14px}.slot-legend .available{color:#21633b}.slot-legend .busy{color:#a52b35}.slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:8px}.time-slot{position:relative;margin:0;cursor:pointer}.time-slot input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;padding:0}.time-slot>span{display:flex;flex-direction:column;align-items:center;padding:12px 5px;border:1px solid #c8cdc9;border-radius:6px;background:#f0f0ed;color:#686868;line-height:1.5}.time-slot small{font-size:11px;font-weight:400}.time-slot.available>span{background:#e8f5eb;border-color:#7bb58b;color:#215d35}.time-slot.busy>span{background:#fbecee;border-color:#dca2a7;color:#9d2933}.time-slot:has(input:disabled){cursor:not-allowed}.time-slot input:checked+span{background:#21633b;color:white;border-color:#174a2b;box-shadow:0 0 0 2px #21633b33}.time-slot input:focus-visible+span{outline:3px solid #9c7335;outline-offset:3px}#booking-submit:disabled{opacity:.5;cursor:not-allowed}
 [hidden]{display:none!important}.booking-steps{display:flex;gap:24px;padding:0;list-style:none;font-size:13px;color:#777}.booking-steps [aria-current]{color:#21633b;font-weight:700}.day-navigation{display:flex;flex-wrap:wrap;gap:8px}.day-navigation button{padding:10px!important}.booking #details-step{border:0;padding:0;min-width:0}.booking #details-step legend{font-size:20px;font-weight:600}.slot-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}#confirm-slot:disabled,.day-navigation button:disabled{opacity:.5;cursor:not-allowed}
.month-calendar{border:1px solid #ded8cf;border-radius:10px;padding:16px;margin:16px 0;background:#fff}.month-navigation{display:flex;align-items:center;gap:8px;margin-bottom:18px}.month-navigation strong{flex:1;text-align:center;text-transform:capitalize}.month-navigation button{padding:8px 12px!important;border-radius:5px}.month-weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.month-weekdays{text-align:center;font-size:12px;color:#756b60;margin-bottom:8px}.month-days button{min-width:0;padding:10px 0!important;min-height:42px;border:1px solid transparent;border-radius:6px;background:#f5f2ec!important;color:#332c23!important;font-size:14px!important;letter-spacing:0!important}.month-days button:hover:not(:disabled){border-color:#8c714a;background:#eee4d5!important}.month-days button.is-today{border-color:#a88755}.month-days button[aria-pressed=true]{background:#21633b!important;color:#fff!important;border-color:#21633b}.month-days button:disabled,.month-navigation button:disabled{opacity:.35;cursor:not-allowed}.month-days button:focus-visible,.month-navigation button:focus-visible{outline:3px solid #a88755;outline-offset:2px}@media(max-width:420px){.month-calendar{padding:10px}.month-navigation{gap:4px}.month-navigation button{padding:8px!important}.month-navigation strong{font-size:14px}.month-weekdays,.month-days{gap:3px}}
body:not(.admin-app) .booking-info h1{font-size:clamp(32px,4vw,52px);line-height:1.18;letter-spacing:-1px}.booking-info{min-width:0}.booking>.panel{min-width:0}

/* Keep the form in normal flow when the layout becomes one column. */
@media(min-width:851px) and (max-width:1200px){
 .booking{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:4%}
 .booking>.panel{padding:22px}
 body:not(.admin-app) .booking-info h1{font-size:42px}
}
.booking{column-gap:8%;row-gap:24px}
.booking-info h1{margin:12px 0 16px}
.booking-info p{margin:12px 0}
.booking #booking-form,.booking #calendar-step{min-width:0;max-width:100%}
.booking select,.booking input,.booking textarea{max-width:100%;min-width:0}
.booking #slot-selection,.booking #booking-summary{overflow-wrap:anywhere}
@media(max-width:850px){
 body:not(.admin-app) .section.booking{grid-template-columns:minmax(0,1fr);gap:22px;padding:30px 20px 40px}
 .booking-info h1{margin:8px 0 12px}
 .booking-info p{margin:8px 0;line-height:1.5}
 .booking-info p:last-child{margin-bottom:0}
 .booking>.panel{width:100%;padding:20px}
}
@media(max-width:560px){
 body:not(.admin-app) .section.booking{padding:24px 12px 32px;gap:18px}
 body:not(.admin-app) .booking-info h1{font-size:30px;line-height:1.15;letter-spacing:-.5px}
 .booking-info p{font-size:14px}
 .booking>.panel{padding:16px;border-radius:8px}
 .booking>.panel>h3{margin-bottom:12px}
 .booking-steps{gap:12px;flex-wrap:wrap;margin:0 0 18px;font-size:12px}
 .booking #calendar-step h3{font-size:17px;margin-bottom:12px}
 .booking .month-calendar{margin:12px 0}
 .booking .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .booking .time-slot strong{font-size:12px}
 .booking #confirm-slot,.booking #booking-submit,.booking #change-slot{width:100%;white-space:normal;letter-spacing:.4px;padding:14px 10px}
 .booking select,.booking input,.booking textarea{font-size:16px}
}
