/* The booking page (book.html, assets/book.js). Builds on site.css tokens: mist and paper, midnight ink, the cobalt signal. */
.book-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:880px){.book-grid{grid-template-columns:minmax(0,1fr)}}
.book-intro .lede{margin-top:1rem;max-width:34rem}
.book-facts{list-style:none;margin:1.75rem 0 0;padding:0;display:grid;gap:0.75rem}
.book-facts li{position:relative;padding-left:1.75rem;color:var(--ink-2);font-size:1rem}
.book-facts li::before{content:"";position:absolute;left:0;top:0.5rem;width:0.625rem;height:0.625rem;border-radius:50%;background:var(--signal)}
.book-panel{background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--r);box-shadow:var(--shadow);padding:clamp(1.25rem,3vw,2.25rem);min-height:22rem;display:grid;gap:1.5rem;align-content:start}
.book-panel :focus{outline:none}
.book-panel [data-focus],.book-panel .book-err{scroll-margin-top:5.5rem}
.book-panel :focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}
.book-wait{color:var(--muted);margin:0}
.book-step{display:grid;gap:0.75rem;min-width:0}
.book-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.book-h{font-size:0.875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin:0}
.book-tz{font-size:0.875rem;color:var(--muted);margin:0}
.book-seg{display:inline-flex;background:var(--mist);border-radius:62.4375rem;padding:0.25rem;gap:0.25rem}
.book-seg button{font:inherit;font-size:0.875rem;font-weight:500;color:var(--ink-2);background:none;border:0;border-radius:62.4375rem;min-height:2.25rem;padding:0 0.875rem;cursor:pointer}
.book-seg button[aria-pressed="true"]{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(11,18,32,.12)}
.book-days{display:flex;gap:0.5rem;overflow-x:auto;scroll-snap-type:x proximity;padding:0.25rem 0.125rem 0.5rem;margin:0 -0.125rem;scrollbar-width:thin}
.book-day{flex:0 0 auto;scroll-snap-align:start;display:grid;justify-items:center;gap:0.125rem;min-width:4.25rem;min-height:4.75rem;padding:0.625rem 0.5rem;font:inherit;color:var(--ink-2);background:var(--mist);border:1px solid transparent;border-radius:1rem;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.book-day span{font-size:0.8125rem;color:var(--muted)}
.book-day b{font-size:1.375rem;line-height:1.1;font-weight:650;letter-spacing:-.02em}
.book-day:hover{border-color:var(--rule)}
.book-day[aria-pressed="true"]{background:var(--ink);color:#fff}
.book-day[aria-pressed="true"] span{color:rgba(255,255,255,.78)}
.book-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:0.5rem}
.book-time{font:inherit;font-size:1rem;font-weight:550;font-variant-numeric:tabular-nums;min-height:3rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:0.875rem;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.book-time:hover{border-color:var(--ink)}
.book-time[aria-pressed="true"]{background:var(--cobalt-ink);border-color:var(--cobalt-ink);color:#fff}
.book-hint{color:var(--muted);margin:0;font-size:0.9375rem}
.book-form{display:grid;gap:1.125rem;border-top:1px solid var(--rule-2);padding-top:1.5rem}
.book-form .ctas{margin-top:0.25rem}
.book-who{margin:0;color:var(--ink-2)}
.book-err{margin:0;color:var(--amber-ink);font-size:0.9375rem;font-weight:500}
.book-err:empty{display:none}
.book-done,.book-msg{display:grid;gap:0.875rem}
.book-done p,.book-msg p{margin:0}
.book-when{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;font-weight:650;letter-spacing:-.025em;color:var(--ink)}
.book-tzline{color:var(--muted)}
.book-done .ctas,.book-msg .ctas{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:0.5rem}
.book-sure{display:grid;gap:0.75rem;padding:1rem;border-radius:1rem;background:var(--mist)}
.book-sure[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.book-day,.book-time{transition:none}}
.book-panel a:not(.btn){color:var(--cobalt-ink);text-decoration:underline;text-underline-offset:0.1875rem}
/* on a phone the times come first: the three facts are in the invitation anyway */
@media (max-width:880px){.book-facts{display:none}.book-intro .lede{font-size:1.0625rem}}
/* the hours list: a native select (best on phones), drawn like the site's other inputs */
.book-form select.input{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235b6474' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.1rem center;background-size:0.75rem}
.book-form select.input:invalid{color:#6b7484}
