.cb-booking-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.86);backdrop-filter:blur(10px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility 0s linear .28s}
.cb-booking-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.cb-booking-panel{--cb-accent:#fff;--cb-accent-soft:rgba(255,255,255,.08);width:min(980px,100%);max-height:min(900px,calc(100vh - 32px));overflow:auto;border:1px solid rgba(255,255,255,.34);border-radius:18px;background:#050505;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.06);font-family:Arial,Helvetica,sans-serif;opacity:0;transform:translateY(24px) scale(.975);transition:opacity .28s ease,transform .34s cubic-bezier(.22,1,.36,1)}
.cb-booking-overlay.is-open .cb-booking-panel{opacity:1;transform:translateY(0) scale(1)}
.cb-booking-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px;border-bottom:1px solid rgba(255,255,255,.16);background:rgba(5,5,5,.96);backdrop-filter:blur(12px)}
.cb-booking-kicker{margin:0 0 7px;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.cb-booking-title{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1;text-transform:uppercase}
.cb-booking-close{flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:#000;color:#fff;font-size:24px;cursor:pointer}
.cb-booking-body{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:0}
.cb-booking-form{padding:26px}
.cb-booking-summary{padding:26px;border-left:1px solid rgba(255,255,255,.16);background:#0b0b0b}
.cb-fieldset{margin:0 0 24px;padding:0;border:0}
.cb-legend,.cb-label{display:block;margin:0 0 10px;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#bdbdbd}
.cb-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.cb-choice-grid[data-role="locations"] .cb-choice:only-child{grid-column:1/-1}
.cb-choice{min-height:50px;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:#090909;color:#fff;text-align:left;cursor:pointer;transition:.18s ease}
.cb-choice:hover{border-color:#fff}.cb-choice.is-selected{border-color:var(--cb-accent);background:var(--cb-accent);color:#000;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.cb-choice:disabled,.cb-choice.is-disabled{cursor:not-allowed;opacity:.58;border-style:dashed}.cb-choice:disabled:hover,.cb-choice.is-disabled:hover{border-color:rgba(255,255,255,.2)}
.cb-choice strong{display:block;font-size:.86rem}.cb-choice small{display:block;margin-top:4px;color:inherit;opacity:.66;font-size:.72rem}
.cb-location-notice{margin:10px 0 0;padding:10px 12px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:var(--cb-accent-soft);color:#fff;font-size:.76rem;line-height:1.5}.cb-location-notice[hidden]{display:none}
.cb-booking-input,.cb-booking-select{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:#000;color:#fff;font:inherit;color-scheme:dark}.cb-booking-input:focus,.cb-booking-select:focus{outline:2px solid rgba(255,255,255,.22);border-color:#fff}
.cb-booking-input:disabled,.cb-booking-select:disabled{cursor:not-allowed;opacity:.4}
.cb-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cb-time-legend{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 11px;color:#aaa;font-size:.7rem;font-weight:700;text-transform:uppercase}.cb-time-legend[hidden]{display:none}.cb-time-legend span{display:inline-flex;align-items:center;gap:6px}.cb-time-legend i{width:9px;height:9px;border-radius:50%;background:#4caf71}.cb-time-legend i.is-booked{background:#e45b5b}.cb-time-legend i.is-unavailable{background:#777}
.cb-time{display:grid;gap:3px;padding:11px 8px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#090909;color:#fff;cursor:pointer;font-size:.8rem;font-weight:700}
.cb-time small{font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cb-time.is-available{border-color:rgba(76,175,113,.52);box-shadow:inset 3px 0 0 rgba(76,175,113,.7)}
.cb-time:hover,.cb-time.is-selected{border-color:var(--cb-accent);background:var(--cb-accent);color:#000}
.cb-time:disabled{cursor:not-allowed}.cb-time.is-booked{border-color:rgba(228,91,91,.72);background:rgba(141,35,35,.28);color:#ffb6b6;box-shadow:inset 3px 0 0 #e45b5b}.cb-time.is-visit-store,.cb-time.is-unavailable,.cb-time.is-locked,.cb-time.is-past{border-color:rgba(255,255,255,.15);background:#111;color:#777;opacity:.72}.cb-time.is-booked:hover{background:rgba(141,35,35,.28);color:#ffb6b6}.cb-time.is-visit-store:hover,.cb-time.is-unavailable:hover,.cb-time.is-locked:hover,.cb-time.is-past:hover{background:#111;color:#777}
.cb-empty{grid-column:1/-1;margin:0;padding:18px;border:1px dashed rgba(255,255,255,.2);border-radius:9px;color:#999;text-align:center;font-size:.85rem;line-height:1.6}
.cb-customer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cb-customer-grid .cb-full{grid-column:1/-1}
.cb-marketing-options{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.cb-marketing-options label{display:flex;align-items:flex-start;gap:10px;color:#c8c8c8;font-size:.76rem;line-height:1.45;cursor:pointer}.cb-marketing-options input{flex:0 0 17px;width:17px;height:17px;margin:1px 0 0;accent-color:#fff}
.cb-booking-submit{width:100%;min-height:54px;margin-top:8px;border:1px solid #fff;border-radius:9px;background:#fff;color:#000;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 28px rgba(255,255,255,.08)}
.cb-booking-submit:disabled{cursor:not-allowed;opacity:.35}
.cb-text-consent{margin:10px 0 0;color:#808080;font-size:.65rem;line-height:1.55}
.cb-summary-title{margin:0 0 22px;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:1.35rem;text-transform:uppercase}
.cb-summary-list{display:grid;gap:16px;margin:0}.cb-summary-row{padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.12)}
.cb-summary-row dt{margin-bottom:5px;color:#888;font-size:.62rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.cb-summary-row dd{margin:0;font-size:.88rem;line-height:1.45}
.cb-demo-note{margin:22px 0 0;padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#aaa;font-size:.72rem;line-height:1.5}
.cb-booking-error{display:none;margin:0 0 18px;padding:12px;border:1px solid #fff;border-radius:8px;background:#161616;color:#fff;font-size:.82rem}.cb-booking-error.is-visible{display:block}
.cb-confirmation{display:none;padding:50px 26px;text-align:center}.cb-confirmation.is-visible{display:block}.cb-confirmation-mark{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 20px;border:1px solid #fff;border-radius:50%;background:var(--cb-accent-soft);color:#fff;font-size:28px}
.cb-confirmation h3{margin:0 0 12px;font-family:Georgia,'Times New Roman',serif;font-size:2rem;text-transform:uppercase}.cb-confirmation p{max-width:560px;margin:0 auto 12px;color:#bbb;line-height:1.7}.cb-confirmation-code{display:inline-block;margin:12px 0 24px;padding:10px 14px;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:var(--cb-accent-soft);color:#fff;font-weight:800;letter-spacing:.12em}
.cb-confirmation button{padding:13px 22px;border:1px solid #fff;border-radius:8px;background:#fff;color:#000;font-weight:800;cursor:pointer}
body.cb-booking-lock{overflow:hidden!important}
@media(max-width:760px){.cb-booking-overlay{padding:0}.cb-booking-panel{max-height:100vh;height:100vh;border:0;border-radius:0}.cb-booking-body{grid-template-columns:1fr}.cb-booking-summary{border-top:1px solid rgba(255,255,255,.16);border-left:0}.cb-time-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.cb-booking-head,.cb-booking-form,.cb-booking-summary{padding:20px}.cb-choice-grid,.cb-customer-grid{grid-template-columns:1fr}.cb-customer-grid .cb-full{grid-column:auto}.cb-time-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.cb-booking-overlay,.cb-booking-panel{transition:none}}
