.booking-calendar{width:100%;min-width:0;margin:16px 0}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-grid>span{text-align:center;font-size:12px;padding:5px 0}.booking-calendar button{font:inherit;border:1px solid #d8d5cd;border-radius:8px;padding:10px 4px;cursor:pointer;color:#283c31;background:white}.calendar-nav button{min-width:42px}.calendar-grid .day-free{background:#e9f2e9;border-color:#a5bca9}.calendar-grid .day-full{background:#f2eeeb;color:#716761}.calendar-grid button[aria-pressed=true],.booking-calendar button.selected{background:#294e3d;color:white;border-color:#294e3d}.booking-calendar button:disabled{opacity:.45;cursor:not-allowed}.booking-calendar button:focus-visible{outline:3px solid #a36635;outline-offset:2px}.booking-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.booking-slots .slot{font-size:12px;padding:12px 5px}.booking-slots .slot:disabled{background:#eee;color:#666;opacity:.7}.booking-form>label{display:block}.booking-form>label input:not([type=checkbox]){width:100%;box-sizing:border-box}.booking-form [data-booking-submit]:disabled{opacity:.55;cursor:not-allowed}
.booking-form .form-row:has(textarea){grid-template-columns:1fr}.private-shopping:has(.booking-calendar)>.private-image{align-self:start;height:750px;position:sticky;top:110px}@media(max-width:700px){.private-shopping:has(.booking-calendar)>.private-image{position:static;height:420px}}

/* Compact reservation form; overrides are scoped to this section. */
.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{padding:.41rem .45rem;margin-top:.25rem;box-sizing:border-box}
.booking-form label{margin-bottom:.65rem}
.booking-form textarea{min-height:3.5rem}
.booking-panel{margin-top:1.1rem;padding:1rem}
.booking-calendar{margin:10px 0}
.calendar-nav{margin-bottom:8px}
.calendar-grid{gap:4px}
.calendar-grid>span{padding:3px 0}
.booking-calendar button{padding:8px 4px;min-height:36px}
.booking-slots{gap:5px;margin-top:8px}
.booking-slots .slot{padding:8px 4px}
.booking-calendar [data-calendar-message]{margin:8px 0;font-size:.9rem}
.booking-calendar [data-calendar-message]:empty{display:none}
.booking-form label.consent{display:flex;align-items:flex-start;gap:.55rem;line-height:1.4;margin:.5rem 0 .8rem;min-width:0}
.booking-form label.consent input[type=checkbox]{width:16px;height:16px;min-width:16px;flex:0 0 16px;margin:.18rem 0 0;padding:0}
.booking-form label.consent>span{flex:1;min-width:0;font-size:.88rem;overflow-wrap:anywhere}
.private-shopping .private-benefits{margin-top:1rem;gap:0 1rem}
.private-shopping .private-benefits article{padding:.65rem 0}
.private-shopping .private-benefits strong{display:flex;align-items:center;gap:.45rem}
.private-benefits .benefit-icon{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
@media(max-width:700px){.booking-calendar button{min-height:40px}.booking-panel{padding:.85rem}.private-shopping .private-benefits article{padding:.5rem 0}}

/* Version 20: shorter slot list and inline consent. */
.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-slots .slot{font-size:11px;line-height:1.4}
.calendar-grid .day-full:not(:disabled){background:#f8dada;border-color:#c66b6b;color:#8a2525;font-weight:700}
.calendar-grid .day-full[aria-pressed=true]{background:#a13b3b;border-color:#a13b3b;color:#fff}
.booking-submit-row{display:flex;align-items:center;gap:1rem}
.booking-submit-row .consent{flex:1;margin:0!important}
.booking-submit-row>.button{flex:0 1 48%;font-size:.88rem;padding:.8rem}
@media(max-width:380px){.booking-submit-row{flex-wrap:wrap}.booking-submit-row>.button{flex-basis:100%}}
