.book-modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.book-modal-overlay.open{display:flex}.book-modal-box{background:#fff;width:620px;max-width:100%;max-height:92vh;overflow-y:auto}.book-modal-close-bar{z-index:2;background:#fff;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.book-modal-close-bar span{letter-spacing:.14em;text-transform:uppercase;color:var(--text3,#999);font-size:.68rem;font-weight:600}.book-modal-close-btn{cursor:pointer;color:#aaa;background:0 0;border:none;padding:4px 8px;font-size:1.1rem;line-height:1;transition:color .2s}.book-modal-close-btn:hover{color:#111}.book-modal-content{padding:30px 32px 36px}.book-step-title{color:var(--text,#111);margin-bottom:6px;font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:500}.book-step-sub{color:var(--text3,#888);margin-bottom:24px;font-size:.82rem;line-height:1.6}.bk-field{margin-bottom:16px}.bk-field label{letter-spacing:.07em;text-transform:uppercase;color:var(--text3,#888);margin-bottom:6px;font-size:.68rem;font-weight:600;display:block}.bk-field input,.bk-field textarea{background:var(--input-bg,#f5f5f5);border:1px solid var(--border,#e0e0e0);width:100%;color:var(--text,#111);outline:none;padding:11px 13px;font-family:DM Sans,sans-serif;font-size:.86rem;transition:border-color .2s}.bk-field input:focus,.bk-field textarea:focus{border-color:var(--text,#111);background:var(--bg,#fff)}.bk-back-link{color:var(--text3,#999);cursor:pointer;margin-bottom:18px;font-size:.74rem;text-decoration:underline;display:inline-block}.bk-error{color:#b91c1c;margin-top:6px;font-size:.74rem;display:none}.bk-error.show{display:block}.bk-selected-summary{background:var(--surface,#f7f7f7);border:1px solid var(--border,#e0e0e0);color:var(--text2,#333);margin-bottom:20px;padding:14px 16px;font-size:.83rem}.bk-selected-summary strong{color:var(--text,#111)}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cal-nav button{border:1px solid var(--border,#e0e0e0);cursor:pointer;width:30px;height:30px;color:var(--text3,#666);background:0 0;font-size:.85rem;transition:border-color .2s}.cal-nav button:hover{border-color:var(--text,#111);color:var(--text,#111)}.cal-nav button:disabled{opacity:.3;cursor:not-allowed}.cal-month-label{color:var(--text,#111);font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:500}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:20px;display:grid}.cal-dow{letter-spacing:.06em;text-transform:uppercase;color:var(--text4,#bbb);text-align:center;padding:4px 0;font-size:.6rem;font-weight:600}.cal-day{aspect-ratio:1;color:var(--text2,#333);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-size:.82rem;transition:all .15s;display:flex}.cal-day:hover:not(.disabled):not(.empty){border-color:var(--text,#111)}.cal-day.empty{cursor:default}.cal-day.disabled{color:var(--border,#ddd);cursor:not-allowed}.cal-day.selected{color:#fff;background:#111}.cal-day.today{font-weight:700;text-decoration:underline}.slot-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text3,#888);margin-bottom:10px;font-size:.68rem;font-weight:600}.slot-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px;display:grid}.slot-btn{border:1px solid var(--border,#e0e0e0);background:var(--bg,#fff);color:var(--text2,#444);cursor:pointer;text-align:center;padding:10px 8px;font-family:DM Sans,sans-serif;font-size:.78rem;transition:all .15s}.slot-btn:hover{border-color:var(--text,#111);color:var(--text,#111)}.slot-btn.selected{background:var(--text,#111);color:var(--bg,#fff);border-color:var(--text,#111)}.slot-empty{text-align:center;color:var(--text4,#bbb);grid-column:1/-1;padding:16px 0;font-size:.8rem}.bk-submit-btn{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#111;border:1px solid #111;width:100%;margin-top:6px;padding:14px;font-family:DM Sans,sans-serif;font-size:.8rem;font-weight:600;transition:background .2s}.bk-submit-btn:hover{background:#333}.bk-submit-btn:disabled{cursor:not-allowed;background:#ccc}.bk-confirm{text-align:center;display:none}.bk-confirm.show{display:block}.bk-confirm-icon{color:#fff;background:#111;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:1.6rem;display:flex}.bk-confirm h3{color:var(--text,#111);margin-bottom:10px;font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:500}.bk-confirm p{color:var(--text3,#666);margin-bottom:24px;font-size:.85rem;line-height:1.75}.bk-confirm-box{background:var(--surface,#f5f5f5);border:1px solid var(--border,#e0e0e0);text-align:left;color:var(--text2,#333);margin-bottom:20px;padding:18px;font-size:.84rem}.bk-confirm-box .lbl{letter-spacing:.1em;text-transform:uppercase;color:var(--text3,#999);margin-bottom:4px;font-size:.6rem;font-weight:700}.bk-close-confirm{color:#fff;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#111;border:1px solid #111;padding:12px 28px;font-size:.76rem;font-weight:600;transition:background .2s;display:inline-block}.bk-close-confirm:hover{background:#333}@media (max-width:900px){.slot-grid{grid-template-columns:1fr 1fr}}
