/* This stylesheet is intentionally scoped to the isolated booking dialog. */
#booking-dialog { --bk-ink:var(--ink,#171a18); --bk-paper:var(--paper,#f4f3ee); --bk-accent:var(--accent,#2846ce); --bk-muted:var(--muted,#656962); --bk-line:var(--line,#cfd1c9); color:var(--bk-ink); background:var(--bk-paper); border:0; padding:0; width:min(780px,calc(100% - 40px)); max-height:calc(100dvh - 48px); border-radius:5px; box-shadow:0 22px 80px #0003; }
#booking-dialog::backdrop { background:rgb(21 19 17 / 62%); backdrop-filter:blur(4px); }
#booking-dialog *,#booking-dialog *::before,#booking-dialog *::after { box-sizing:border-box; }
#booking-dialog button,#booking-dialog input { font:inherit; }
#booking-dialog button { cursor:pointer; }
#booking-dialog button:focus-visible,#booking-dialog [tabindex="-1"]:focus-visible { outline:2px solid var(--bk-accent); outline-offset:4px; }
#booking-dialog .bk-shell { padding:28px 38px 24px; }
#booking-dialog .bk-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#booking-dialog .bk-eyebrow { font:500 10px/1.5 var(--sans,Arial); letter-spacing:.17em; color:var(--bk-accent); }
#booking-dialog .bk-close { min-width:40px; min-height:40px; font:300 29px/1 var(--sans,Arial); color:var(--bk-ink); border:1px solid var(--bk-line); border-radius:50%; background:transparent; }
#booking-dialog .bk-close:hover { background:#e7e8e0; }
#booking-dialog .bk-progress { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; padding:0; margin:22px 0 30px; gap:10px; }
#booking-dialog .bk-progress li { display:flex; align-items:center; gap:8px; padding-bottom:13px; border-bottom:1px solid var(--bk-line); font:400 11px/1.4 var(--sans,Arial); color:var(--bk-muted); }
#booking-dialog .bk-progress li>span:first-child { display:inline-flex; align-items:center; justify-content:center; width:21px; height:21px; border:1px solid var(--bk-line); border-radius:50%; flex-shrink:0; font-size:10px; }
#booking-dialog .bk-progress .is-current { color:var(--bk-accent); border-color:var(--bk-accent); }
#booking-dialog .bk-progress .is-current>span:first-child,#booking-dialog .bk-progress .is-done>span:first-child { background:var(--bk-accent); color:#fff; border-color:var(--bk-accent); }
#booking-dialog h2 { font-family:var(--display,'Arial Narrow'); font-size:clamp(29px,5vw,39px); font-weight:400; line-height:1.13; letter-spacing:-.025em; margin:0 0 12px; outline:none; }
#booking-dialog .bk-intro { font:400 13px/1.65 var(--sans,Arial); margin:0 0 24px; color:var(--bk-muted); }
#booking-dialog fieldset { border:0; padding:0; margin:0; min-width:0; }
#booking-dialog .bk-choices { display:grid; gap:9px; }
#booking-dialog .bk-choice { position:relative; display:flex; align-items:center; gap:16px; padding:16px 18px; border:1px solid var(--bk-line); border-radius:3px; cursor:pointer; background:#fff3; transition:border-color .15s,background .15s; }
#booking-dialog .bk-choice:hover { border-color:#a48b7f; }
#booking-dialog .bk-choice.is-selected { border-color:var(--bk-accent); background:#2846ce06; box-shadow:inset 0 0 0 .4px var(--bk-accent); }
#booking-dialog .bk-choice input,#booking-dialog .bk-date input,#booking-dialog .bk-time input { position:absolute; opacity:0; width:1px; height:1px; }
#booking-dialog .bk-choice:has(input:focus-visible),#booking-dialog .bk-date:has(input:focus-visible),#booking-dialog .bk-time:has(input:focus-visible) { outline:2px solid var(--bk-accent); outline-offset:3px; }
#booking-dialog .bk-choice-content { min-width:0; flex:1; display:grid; gap:5px; }
#booking-dialog .bk-choice-heading { font:500 15px/1.3 var(--sans,Arial); }
#booking-dialog .bk-choice-description { font:400 12px/1.5 var(--sans,Arial); color:var(--bk-muted); }
#booking-dialog .bk-choice-meta { font:400 10px/1.5 var(--sans,Arial); color:var(--bk-muted); }
#booking-dialog .bk-radio { border:1px solid #bcb6ab; width:17px; height:17px; border-radius:50%; flex-shrink:0; }
#booking-dialog .is-selected>.bk-radio { border:5px solid var(--bk-accent); }
#booking-dialog .bk-avatar { width:60px; height:70px; border-radius:2px; object-fit:cover; flex-shrink:0; }
#booking-dialog .bk-avatar-placeholder { display:flex; align-items:center; justify-content:center; background:#e7e8e0; color:#586150; font:400 23px/1 var(--display,'Arial Narrow'); }
#booking-dialog .bk-small { color:var(--bk-muted); font:400 11px/1.6 var(--sans,Arial); margin:16px 0 0; }
#booking-dialog .bk-date-field legend,#booking-dialog .bk-time-field legend { display:block; font:500 12px/1.5 var(--sans,Arial); margin:0 0 12px; }
#booking-dialog .bk-dates { display:flex; gap:8px; overflow-x:auto; padding:4px 3px 13px; scrollbar-width:thin; scrollbar-color:#bcb3a5 transparent; }
#booking-dialog .bk-date { position:relative; flex:0 0 64px; text-align:center; display:flex; flex-direction:column; gap:5px; padding:12px 6px; border:1px solid var(--bk-line); border-radius:3px; color:var(--bk-muted); cursor:pointer; font:400 10px/1.3 var(--sans,Arial); }
#booking-dialog .bk-date strong { color:var(--bk-ink); font:400 22px/1.2 var(--display,'Arial Narrow'); }
#booking-dialog .bk-date.is-selected { background:var(--bk-accent); color:#fff; border-color:var(--bk-accent); }
#booking-dialog .bk-date.is-selected strong { color:#fff; }
#booking-dialog .bk-time-field { margin-top:21px; }
#booking-dialog .bk-times { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; padding:3px; }
#booking-dialog .bk-time { position:relative; display:flex; min-height:44px; justify-content:center; align-items:center; padding:10px 5px; border:1px solid var(--bk-line); border-radius:2px; cursor:pointer; font:400 11px/1.3 var(--sans,Arial); white-space:nowrap; }
#booking-dialog .bk-time:hover { border-color:var(--bk-accent); }
#booking-dialog .bk-time.is-selected { border-color:var(--bk-accent); background:var(--bk-accent); color:white; }
#booking-dialog .bk-empty { padding:25px; border:1px dashed var(--bk-line); text-align:center; font:400 12px/1.7 var(--sans,Arial); }
#booking-dialog .bk-empty p { color:var(--bk-muted); }
#booking-dialog .bk-summary { margin:0 0 24px; }
#booking-dialog .bk-summary>div { display:grid; grid-template-columns:85px 1fr auto; gap:15px; align-items:start; border-bottom:1px solid var(--bk-line); padding:18px 0; }
#booking-dialog .bk-summary dt { color:var(--bk-muted); font:400 11px/1.6 var(--sans,Arial); }
#booking-dialog .bk-summary dd { margin:0; font:500 14px/1.5 var(--sans,Arial); }
#booking-dialog .bk-summary small { display:block; margin-top:4px; color:var(--bk-muted); font:400 11px/1.6 var(--sans,Arial); }
#booking-dialog .bk-edit { background:none; border:0; padding:0; min-height:32px; color:var(--bk-accent); text-decoration:underline; text-underline-offset:3px; font:400 11px/1.6 var(--sans,Arial); }
#booking-dialog .bk-review-note { padding:17px 19px; background:#e7e8e0; font:400 12px/1.6 var(--sans,Arial); }
#booking-dialog .bk-review-note strong { font-weight:500; }
#booking-dialog .bk-review-note p { margin:5px 0 0; color:#565d50; }
#booking-dialog .bk-footer { margin-top:22px; border-top:1px solid var(--bk-line); padding-top:8px; }
#booking-dialog .bk-error { min-height:16px; margin:0 0 7px; color:#85332d; font:400 12px/1.5 var(--sans,Arial); }
#booking-dialog .bk-footer-actions { display:flex; align-items:center; justify-content:space-between; gap:15px; }
#booking-dialog .bk-footer-caption { font:400 11px/1.5 var(--sans,Arial); color:var(--bk-muted); }
#booking-dialog .bk-primary { border:1px solid var(--bk-accent); background:var(--bk-accent); color:#fff; display:inline-flex; gap:27px; align-items:center; justify-content:center; padding:14px 21px; min-height:46px; font:400 12px/1.4 var(--sans,Arial); border-radius:2px; }
#booking-dialog .bk-primary:hover { background:#1b3198; }
#booking-dialog .bk-primary span { font-size:18px; }
#booking-dialog .bk-back { padding:12px 0; min-height:44px; border:0; background:transparent; color:var(--bk-ink); font:400 12px/1.5 var(--sans,Arial); }
#booking-dialog .bk-demo-note { margin:16px 0 0; color:var(--bk-muted); font:400 9px/1.5 var(--sans,Arial); text-align:center; }
#booking-dialog .bk-complete-mark { display:flex; align-items:center; justify-content:center; width:44px; height:44px; color:var(--bk-accent); border:1px solid var(--bk-accent); border-radius:50%; margin:20px 0; font:400 20px/1 var(--sans,Arial); }
#booking-dialog .bk-complete-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:24px; }
#booking-dialog .bk-text-button { color:var(--bk-accent); background:transparent; border:0; text-decoration:underline; text-underline-offset:4px; font:400 12px/1.5 var(--sans,Arial); min-height:44px; padding:6px 0; }
#booking-dialog .bk-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media(max-width:600px) {
  #booking-dialog { width:100%; max-width:100%; max-height:94dvh; margin:auto 0 0; border-radius:12px 12px 0 0; }
  #booking-dialog .bk-shell { padding:18px 20px max(22px,env(safe-area-inset-bottom)); }
  #booking-dialog .bk-progress { gap:6px; margin:16px 0 24px; }
  #booking-dialog .bk-progress li { gap:5px; font-size:9px; }
  #booking-dialog .bk-progress li>span:first-child { width:18px; height:18px; font-size:9px; }
  #booking-dialog .bk-choice { padding:14px 13px; gap:12px; }
  #booking-dialog .bk-choice-heading { font-size:14px; }
  #booking-dialog .bk-choice-description { font-size:11px; }
  #booking-dialog .bk-choice-meta { font-size:9px; }
  #booking-dialog .bk-avatar { width:47px; height:59px; }
  #booking-dialog .bk-times { grid-template-columns:repeat(4,1fr); gap:7px; }
  #booking-dialog .bk-summary>div { grid-template-columns:58px 1fr auto; gap:9px; }
  #booking-dialog .bk-summary dd { font-size:12px; }
  #booking-dialog .bk-summary small { font-size:10px; }
  #booking-dialog .bk-primary { padding:13px 17px; }
  #booking-dialog .bk-complete-actions { align-items:stretch; flex-direction:column; gap:7px; }
}
@media(prefers-reduced-motion:reduce) { #booking-dialog * { scroll-behavior:auto!important; transition:none!important; } }

/* Nicz concept typography: readable at touch sizes, matched to the main brand. */
#booking-dialog { border-radius:0; }
#booking-dialog h2 { font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:44px;letter-spacing:-.02em; }
#booking-dialog .bk-intro,#booking-dialog .bk-choice-heading,#booking-dialog .bk-summary dd,#booking-dialog .bk-primary,#booking-dialog .bk-back,#booking-dialog .bk-text-button { font-size:16px; }
#booking-dialog .bk-choice-description,#booking-dialog .bk-date-field legend,#booking-dialog .bk-time-field legend,#booking-dialog .bk-time,#booking-dialog .bk-review-note,#booking-dialog .bk-error,#booking-dialog .bk-empty,#booking-dialog .bk-edit { font-size:14px; }
#booking-dialog .bk-eyebrow,#booking-dialog .bk-progress li,#booking-dialog .bk-choice-meta,#booking-dialog .bk-small,#booking-dialog .bk-date,#booking-dialog .bk-summary dt,#booking-dialog .bk-summary small,#booking-dialog .bk-footer-caption,#booking-dialog .bk-demo-note { font-size:12px;letter-spacing:0; }
#booking-dialog .bk-choice { border-radius:0; }
#booking-dialog .bk-choice.is-selected { background:#2846ce08; }
#booking-dialog .bk-avatar-placeholder { color:#565e4f; }
#booking-dialog .bk-time,#booking-dialog .bk-primary { border-radius:0; }
#booking-dialog .bk-primary:hover { background:#1b3198; }
#booking-dialog .bk-date strong { font-size:28px; }
#booking-dialog .bk-empty { background:#e7e8e066; }
@media(max-width:600px) {
 #booking-dialog { border-radius:0; }
 #booking-dialog .bk-shell { padding-inline:18px; }
 #booking-dialog h2 { font-size:37px; }
 #booking-dialog .bk-progress li { font-size:12px;align-items:flex-start;flex-direction:column;gap:7px; }
 #booking-dialog .bk-progress li>span:first-child { font-size:12px;width:23px;height:23px; }
 #booking-dialog .bk-choice-heading,#booking-dialog .bk-summary dd,#booking-dialog .bk-primary { font-size:16px; }
 #booking-dialog .bk-choice-description { font-size:14px; }
 #booking-dialog .bk-choice-meta,#booking-dialog .bk-summary small { font-size:12px; }
 #booking-dialog .bk-times { grid-template-columns:repeat(3,1fr); }
 #booking-dialog .bk-summary>div { grid-template-columns:1fr auto;gap:5px 12px; }
 #booking-dialog .bk-summary dt { grid-column:1/-1; }
 #booking-dialog .bk-primary { gap:15px;padding-inline:16px; }
 #booking-dialog .bk-footer-caption { max-width:100px; }
}

/* Calm, booking-first v3 styling. No change to booking behavior. */
#booking-dialog { --bk-ink:var(--ink);--bk-paper:var(--paper);--bk-accent:var(--accent);--bk-muted:var(--muted);--bk-line:var(--line);border-radius:16px; }
#booking-dialog h2 { font-family:var(--sans);font-size:30px;line-height:1.2;font-weight:600;letter-spacing:-.04em;text-transform:none; }
#booking-dialog .bk-eyebrow { letter-spacing:0;text-transform:none; }
#booking-dialog .bk-choice { border-radius:8px;background:#fff; }
#booking-dialog .bk-choice:hover { border-color:#9aade0; }
#booking-dialog .bk-choice.is-selected { background:var(--blue-wash);border-color:var(--accent); }
#booking-dialog .bk-choice-heading { line-height:1.4; }
#booking-dialog .bk-radio { border-color:#a1b0c6; }
#booking-dialog .bk-primary { border-radius:7px; }
#booking-dialog .bk-primary:hover { background:#183a9b; }
#booking-dialog .bk-time,#booking-dialog .bk-date { border-radius:6px; }
#booking-dialog .bk-date strong { font-family:var(--sans);font-size:23px;font-weight:600; }
#booking-dialog .bk-close:hover,#booking-dialog .bk-review-note,#booking-dialog .bk-avatar-placeholder { background:var(--blue-wash); }
#booking-dialog .bk-review-note { border-radius:8px; }
#booking-dialog .bk-review-note p { color:var(--muted); }
#booking-dialog .bk-avatar { width:64px;height:72px;border-radius:8px;object-fit:cover;object-position:50% 35%; }
#booking-dialog .bk-avatar-placeholder { color:var(--muted);font-family:var(--sans);font-size:18px; }
#booking-dialog .bk-empty { background:var(--porcelain);border-radius:8px; }
@media(max-width:600px){#booking-dialog{border-radius:16px 16px 0 0}#booking-dialog h2{font-size:27px}#booking-dialog .bk-avatar{width:53px;height:64px}}
