#booking-overlay-root{position:relative;z-index:2147483000}.booking-overlay{position:fixed;inset:0;display:grid;place-items:center;padding:1rem;z-index:2147483000}.booking-overlay__backdrop{position:absolute;inset:0;background:rgba(2,7,16,.78);backdrop-filter:blur(8px)}.booking-modal{position:relative;width:min(100%,720px);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid rgba(197,155,67,.38);border-radius:1.25rem;background:linear-gradient(145deg,#081323 0%,#09101d 58%,#0c182a 100%);box-shadow:0 30px 90px rgba(0,0,0,.62);padding:1.5rem;color:#edf3fb;font-family:inherit}.booking-modal--success{width:min(100%,480px);padding:2.25rem;text-align:center}.booking-modal__close{position:absolute;right:1rem;top:.8rem;color:#98a7b8;background:transparent;border:0;font-size:2rem;line-height:1;cursor:pointer}.booking-modal__close:hover{color:#fff}.booking-modal__header{padding-right:2rem}.booking-kicker{margin:0 0 .45rem;color:#e9b84a;font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.booking-modal h2{margin:0;font-size:clamp(1.55rem,3vw,2rem);font-weight:800;letter-spacing:.01em}.booking-modal__header>p:last-child,.booking-copy{margin:.7rem 0 0;color:#b7c3d2;font-size:.95rem;line-height:1.6}.booking-form{display:grid;gap:1.15rem;margin-top:1.3rem}.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.booking-form label{display:grid;gap:.48rem;color:#eef4fb;font-weight:700;font-size:.9rem;line-height:1.35}.booking-form label span,.booking-form label em{color:#e9b84a;font-size:.78rem;font-style:normal}.booking-form input,.booking-form select,.booking-form textarea{box-sizing:border-box;width:100%;border:1px solid #31445d;border-radius:.75rem;background:#0d1b2e;color:#f7fbff;padding:.78rem .9rem;font:inherit;font-weight:500;outline:none;transition:border-color .18s,box-shadow .18s}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:#e8b748;box-shadow:0 0 0 3px rgba(232,183,72,.16)}.booking-form select{appearance:auto;color-scheme:dark}.booking-form select option{background:#102137;color:#f7fbff}.booking-form textarea{min-height:6.4rem;resize:vertical;font-weight:400}.booking-times{display:grid;gap:.8rem;border:1px solid rgba(82,111,141,.58);border-radius:1rem;background:rgba(11,27,46,.78);padding:1rem}.booking-times__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}.booking-times__heading>div{display:grid;gap:.2rem}.booking-times__heading strong{font-size:1rem}.booking-times__heading small{color:#9dafc2;font-size:.77rem}.booking-step{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;margin-right:.45rem;border-radius:999px;background:#e9b84a;color:#111827;font-size:.76rem;font-weight:900}.booking-picked{max-width:46%;color:#f2c96e;font-size:.78rem;line-height:1.45;text-align:right}.booking-date-select{width:min(100%,250px)}.booking-slot-groups{display:grid;gap:1rem}.booking-slot-group{display:grid;gap:.55rem}.booking-slot-group+.booking-slot-group{padding-top:.95rem;border-top:1px solid rgba(82,111,141,.4)}.booking-slot-group__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.booking-slot-group__heading strong{font-size:.9rem;color:#edf3fb}.booking-slot-group__heading span{border:1px solid rgba(233,184,74,.35);border-radius:999px;background:rgba(233,184,74,.1);padding:.22rem .55rem;color:#f1c766;font-size:.76rem;font-weight:800;letter-spacing:.01em}.booking-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.booking-slot{min-height:2.65rem;border:1px solid #405875;border-radius:.7rem;background:#11233a;color:#eaf2fb;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:.15s}.booking-slot:hover{border-color:#e9b84a;background:#1c324d}.booking-slot.is-selected{border-color:#f4c75a;background:#e9b84a;color:#131a26;box-shadow:0 0 0 2px rgba(233,184,74,.18)}.booking-loading{min-height:3.2rem;display:grid;place-items:center;color:#a9bacb;font-size:.88rem;text-align:center}.booking-note{display:grid}.booking-privacy{margin:0;color:#93a5b8;font-size:.72rem;line-height:1.55}.booking-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:.15rem}.booking-button{min-height:2.85rem;border-radius:.8rem;padding:.68rem 1.1rem;font:inherit;font-weight:800;cursor:pointer;transition:.15s}.booking-button--primary{border:1px solid #efbf4e;background:#e9b84a;color:#111827;box-shadow:0 8px 22px rgba(233,184,74,.18)}.booking-button--primary:hover:not(:disabled){background:#f4ca62;transform:translateY(-1px)}.booking-button--primary:disabled{cursor:not-allowed;opacity:.55}.booking-button--ghost{border:1px solid transparent;background:transparent;color:#eaf1f8}.booking-button--ghost:hover{border-color:#3b516c;background:#102137}.booking-alert{border:1px solid rgba(237,113,113,.7);border-radius:.75rem;background:rgba(124,27,27,.25);padding:.7rem .85rem;color:#ffd4d4;font-size:.86rem;line-height:1.45}.booking-success__icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;margin:0 auto 1rem;border-radius:50%;background:#e9b84a;color:#142034;font-size:1.8rem;font-weight:900}.booking-success__time{margin:1rem 0;border:1px solid rgba(233,184,74,.4);border-radius:.75rem;background:rgba(233,184,74,.1);padding:.8rem;color:#f3cc70;font-weight:800}.booking-modal--success .booking-button{margin-top:1.5rem;width:100%}@media(max-width:640px){.booking-overlay{padding:.45rem}.booking-modal{max-height:calc(100dvh - .9rem);padding:1.2rem;border-radius:1rem}.booking-grid{grid-template-columns:1fr;gap:.85rem}.booking-times{padding:.85rem}.booking-times__heading{display:grid;gap:.55rem}.booking-picked{max-width:none;text-align:left}.booking-slot-groups{gap:.85rem}.booking-slot-group+.booking-slot-group{padding-top:.85rem}.booking-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.booking-slot{min-height:2.5rem;font-size:.84rem}.booking-actions{position:sticky;bottom:-1.2rem;margin:0 -1.2rem -1.2rem;padding:.85rem 1.2rem;background:#091423;border-top:1px solid rgba(82,111,141,.45)}.booking-actions .booking-button{flex:1;padding:.65rem .7rem}.booking-modal__header>p:last-child{font-size:.86rem}.booking-modal--success{padding:1.7rem 1.3rem}.booking-modal--success .booking-actions{position:static;margin:0;padding:0;border:0;background:transparent}}
