.reservation-calendar-wrap{position:relative;min-width:0}.reservation-calendar-wrap label{display:grid;gap:8px}.reservation-calendar-wrap input{cursor:pointer;width:100%;box-sizing:border-box}.reservation-calendar[hidden]{display:none!important}.reservation-calendar{background:#252622;color:#f5f2eb;border:1px solid #a6977755;border-radius:14px;padding:12px;margin-top:8px;max-width:340px;box-sizing:border-box;font:13px Arial,sans-serif}.reservation-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.reservation-calendar button{background:transparent;color:inherit;border:1px solid transparent;border-radius:8px;cursor:pointer;min-width:0;min-height:36px;padding:6px;font:inherit;box-shadow:none}.reservation-calendar-header button{width:36px}.reservation-calendar-header strong{text-align:center;font-size:14px;text-transform:capitalize}.reservation-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.reservation-calendar-grid>span{font-size:11px;padding:4px 0}.reservation-calendar button:disabled{opacity:.28;cursor:not-allowed;text-decoration:line-through;background:transparent}.reservation-calendar button:not(:disabled):hover,.reservation-calendar button[aria-pressed=true]{background:#931b33;color:#fff}.reservation-calendar button:focus-visible{outline:2px solid #ddbc73;outline-offset:1px}.reservation-calendar small{display:block;margin-top:10px;line-height:1.4}.reservation-calendar-wrap>p{font-size:13px;line-height:1.5}[data-theme=light] .reservation-calendar{background:#fff;color:#252622}
.reservation-calendar[popover]{position:fixed;inset:auto;margin:0;max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 16px 48px #0008;font-family:"Host Grotesk",Arial,sans-serif;z-index:1000}
.reservation-calendar[popover] .reservation-calendar-header strong{text-transform:none}
.reservation-dialog .time-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}
.reservation-dialog .time-options button{min-width:0;padding-inline:.25rem}
 .reservation-dialog .booking-primary-row{grid-template-columns:minmax(0,1fr) minmax(140px,.6fr)}
 .reservation-dialog .time-options{grid-column:1/-1}
.reservation-dialog .guest-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;border:1px solid #ffffff40;border-radius:.6rem;background:#ffffff1f;overflow:hidden}
.reservation-dialog .guest-stepper input{appearance:textfield;-moz-appearance:textfield;text-align:center;border:0;background:transparent;padding-inline:0;outline-offset:-2px}
.guest-stepper input::-webkit-inner-spin-button,.guest-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.reservation-dialog .guest-stepper button{height:42px;padding:0;border:0;background:transparent;color:#fff;font:500 23px/1 Arial;cursor:pointer}
.reservation-dialog .guest-stepper button:hover{background:#ffffff1f}
.reservation-dialog .guest-stepper button:focus-visible{outline:2px solid #ddbc73;outline-offset:-3px}
.reservation-dialog .guest-stepper button:disabled{opacity:.3;cursor:default}
@media(max-width:40rem){
 .reservation-dialog .booking-contact-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
 .reservation-dialog .booking-contact-row label:nth-child(2){grid-column:1/-1;grid-row:2}
 .reservation-dialog .booking-contact-row .primary-action{grid-column:1/-1;min-height:42px}
 .reservation-dialog-card{padding:1rem}
 .reservation-dialog .time-options{gap:.3rem}
 .reservation-dialog .time-options button{min-height:38px;font-size:.8rem}
 .reservation-dialog .hero-booking-form{gap:.65rem}
}
.reservation-period-list{display:grid;gap:.65rem}
.reservation-period-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;border:1px solid var(--border,#7775);border-radius:12px}
.reservation-period-row small{display:block;margin-top:.3rem;opacity:.8}
.reservation-period-dialog{width:min(560px,calc(100vw - 24px))}
@media(max-width:40rem){.reservation-period-dialog .admin-form{grid-template-columns:minmax(0,1fr)}.reservation-period-dialog .span-2{grid-column:auto}.reservation-period-row{gap:.5rem;font-size:.85rem}}
