/* the booking on every main page (the funnel, 2026-10-20; one form, 2026-10-22): four questions, a time, your details.
   The steps' box keeps a floor, so the page doesn't jump when a shorter step takes a taller one's place (lowered
   2026-11-11: 600 left about 300px of empty page under Continue on a phone; the time step grows the box instead) */
.funnel .book-steps{min-height:420px}
.funnel .intake-step[hidden]{display:none}
.funnel .intake-step{align-content:start}
.funnel .book-done{scroll-margin-top:120px}
.funnel-note{margin:0;max-width:62ch;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--brand);background:var(--surface);color:var(--fg);font-size:15px;line-height:1.5}
.funnel-note.bad{border-left-color:#d9534f}
.funnel-note a{color:var(--fg);font-weight:600}
.funnel-wait,.funnel-tz{margin:0;color:var(--muted);font-size:15px}
.funnel-tz:empty{display:none}
.funnel .intake-lead,.funnel .intake-explain{margin:0}
.funnel .intake-lead{font-size:16px}
.slot-days{display:grid;gap:20px}
.slot-days:empty{display:none}
.slot-day{display:grid;gap:10px}
.slot-dayname{margin:0;font:600 13px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.slot-times{display:flex;flex-wrap:wrap;gap:8px}
.slot-times .chip{flex:0 1 auto;min-width:160px}
.funnel .field textarea{min-height:88px}
.funnel .field .hint{font-size:14px;color:var(--muted)}
.sms-optin .sms-check{display:flex;gap:10px;align-items:flex-start;font-weight:500;cursor:pointer}
.sms-optin .sms-check input{width:18px;height:18px;min-height:0;flex:0 0 auto;margin:2px 0 0;padding:0;accent-color:var(--brand)}
.sms-optin .sms-terms{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}
.sms-optin .sms-terms a{color:inherit}
.funnel .field input[aria-invalid=true]{border-color:#d9534f}
.funnel .field-error{margin:0;font-size:14.5px;font-weight:600;color:var(--fg);border-left:3px solid #d9534f;padding-left:10px}
.funnel [aria-busy=true]{cursor:progress}
/* the one quiet line for email, under the booking's heading (Mike, 2026-10-22) */
.book .head>.book-email{margin-top:10px;color:var(--muted);font-size:15px}
.book-email a{color:var(--fg);font-weight:600}
@media (max-width:600px){.funnel .book-steps{min-height:440px}.slot-times .chip{flex:1 1 calc(50% - 4px);min-width:0}}
/* the home page's bar on a phone (2026-11-11), /curtis's cq-bar as its own copy: Call Curtis now and Book a call,
   once the hero's buttons scroll away, gone again over the form and the footer */
.hb-bar{display:none}
@media (max-width:960px){.hb-bar{position:fixed;inset:auto 0 0;z-index:38;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(11,14,18,.94);border-top:1px solid var(--line);transform:translateY(110%);visibility:hidden;transition:transform .22s ease,visibility .22s}
 html.hb-bar-on .hb-bar{transform:none;visibility:visible}
 html.hb-bar-on .xp-top{visibility:hidden}
 .hb-bar .btn{min-height:46px;padding:0 10px;font-size:13.5px;letter-spacing:.04em;white-space:nowrap}
 .hb-bar .btn-cta{flex:1 1 auto}.hb-bar .btn-line{flex:0 0 auto;background:var(--bg)}}
@media (prefers-reduced-motion:reduce){.hb-bar{transition:none}}
/* the video slot, where the example call stands in until the demo video exists */
.video-slot{max-width:860px;margin:0 auto;border:1px solid var(--line);background:#000}
.video-slot video{display:block;width:100%;height:auto;aspect-ratio:16/9}
