.booking-page{background:var(--chalk-0)}
.booking-hero{padding:clamp(52px,7vw,92px) 0 var(--sec-pad);background:var(--surface-dark);color:var(--d-text)}
.booking-wrap{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(36px,6vw,82px);align-items:start}
.booking-intro{position:sticky;top:120px;padding-top:18px}
.booking-intro .eyebrow{color:var(--pulse-300)}
.booking-intro h1{max-width:620px;margin:0;font-family:var(--font-heading);font-size:clamp(2.6rem,4vw,4.7rem);font-weight:600;line-height:1.02;letter-spacing:var(--track-display);color:var(--d-text)}
.booking-intro>p:not(.eyebrow){max-width:560px;margin:24px 0 0;color:var(--d-body);font-size:var(--t-lead);line-height:1.75}
.booking-benefits{display:grid;gap:13px;margin:30px 0 0;padding:0;list-style:none;color:var(--d-body)}
.booking-benefits li{position:relative;padding-left:26px}
.booking-benefits li::before{content:'✓';position:absolute;left:0;color:var(--pulse-300);font-weight:700}
.booking-shell{min-width:0;overflow:hidden;border:1px solid var(--d-line);border-radius:var(--r-lg);background:var(--chalk-25);color:var(--ink-700);box-shadow:0 32px 90px rgba(0,0,0,.28)}
.booking-shell [hidden]{display:none!important}
.booking-picker{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr);gap:32px;padding:34px}
.booking-calendar-panel,.booking-times-panel{min-width:0}
.booking-step{display:flex;align-items:center;gap:10px;margin:0 0 17px;color:var(--ink-500);font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.booking-step span{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line-strong);border-radius:50%;color:var(--ink-800)}
.booking-shell h2{margin:0 0 10px;font-family:var(--font-heading);font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.15;color:var(--ink-950)}
.booking-note,.booking-state{color:var(--ink-500);font-size:.84rem;line-height:1.65}
.booking-calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;margin:28px 0 18px}
.booking-calendar-head strong{text-align:center;font-family:var(--font-display);font-size:1.2rem;color:var(--ink-900)}
.booking-calendar-head button{width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--chalk-0);color:var(--ink-900);font-size:1.2rem;cursor:pointer}
.booking-calendar-head button:disabled{opacity:.3;cursor:not-allowed}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.booking-weekdays{margin-bottom:9px;color:var(--ink-500);font-family:var(--font-mono);font-size:.66rem;text-align:center}
.booking-calendar-day{position:relative;display:grid;place-items:center;min-width:0;min-height:46px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--chalk-25);color:var(--ink-800);font:600 .9rem var(--font-body);cursor:pointer}
.booking-calendar-day:not(:disabled):hover{border-color:var(--pulse-400);background:var(--pulse-dim)}
.booking-calendar-day[aria-selected=true]{border-color:var(--pulse-400);background:var(--pulse-400);color:var(--pulse-ink);box-shadow:0 0 0 3px var(--pulse-dim)}
.booking-calendar-day:disabled{border-color:transparent;background:var(--chalk-50);color:var(--line-strong);cursor:not-allowed}
.booking-calendar-day.is-outside{opacity:.35}
.booking-slots{display:grid;gap:11px;margin-top:28px}
.booking-slot{min-height:50px;padding:12px 15px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--chalk-25);color:var(--ink-800);font:600 .92rem var(--font-body);text-align:left;cursor:pointer}
.booking-slot:hover,.booking-slot[aria-selected=true]{border-color:var(--pulse-400);background:var(--ink-900);color:var(--chalk-25)}
.booking-state{min-height:44px;margin:16px 0 0}
.booking-state.is-error,.booking-status.is-error{color:var(--found-text)}
.booking-details{padding:42px clamp(28px,8vw,78px);background:var(--chalk-50)}
.booking-back{margin:0 0 22px;padding:0;border:0;background:transparent;color:var(--link);font:600 .84rem var(--font-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.booking-summary{margin:22px 0;padding:18px 20px;border:1px solid var(--pulse-300);border-radius:var(--r-sm);background:var(--prep-bg)}
.booking-summary strong,.booking-summary span{display:block}.booking-summary strong{font-family:var(--font-display);color:var(--ink-900)}.booking-summary span{margin-top:5px;color:var(--ink-600);font-size:.8rem}
.booking-form{display:grid;gap:16px}.booking-form label{display:grid;gap:7px;color:var(--ink-700);font-size:.84rem;font-weight:600}.booking-form label span{font-weight:400;color:var(--ink-500)}
.booking-form input{width:100%;padding:13px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--chalk-25);color:var(--ink-950);font:inherit}.booking-form input:focus{outline:3px solid var(--pulse-dim);border-color:var(--pulse-400)}
.booking-form .btn{width:100%;margin-top:5px}.booking-form-note{margin:0;color:var(--ink-500);font-size:.73rem;line-height:1.6}.booking-status{min-height:24px;margin:0;color:var(--ink-600);font-size:.84rem}
.booking-challenge{min-height:0}
.booking-honeypot{position:absolute!important;left:-9999px!important}
.booking-wrap.is-confirmed{grid-template-columns:minmax(0,1fr)}.booking-wrap.is-confirmed .booking-intro{display:none}.booking-wrap.is-confirmed .booking-shell{width:100%}
.booking-success{min-height:325px;padding:clamp(42px,6vw,68px);text-align:left}.booking-success-label{display:flex;align-items:center;gap:14px;margin:0 0 28px;color:var(--ink-600);font-family:var(--font-mono);font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.booking-success-label span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--pulse-300);border-radius:50%;color:var(--pulse-500);font-family:var(--font-body);font-size:.9rem}.booking-success h2{max-width:760px;font-size:clamp(2.25rem,4vw,3.6rem)}.booking-success>p{max-width:760px;margin:18px 0 0;color:var(--ink-600);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.75}
.booking-calendar-day:focus-visible,.booking-slot:focus-visible,.booking-calendar-head button:focus-visible,.booking-back:focus-visible{outline:3px solid var(--focus-on-dark);outline-offset:2px}
@media(max-width:960px){.booking-wrap{grid-template-columns:1fr}.booking-intro{position:static}.booking-intro h1{max-width:760px}.booking-picker{grid-template-columns:1fr}}
@media(max-width:600px){.booking-hero{padding-top:38px}.booking-picker,.booking-details{padding:24px 18px}.booking-weekdays,.booking-days{gap:4px}.booking-calendar-day{min-height:39px;font-size:.8rem}.booking-calendar-head{grid-template-columns:38px 1fr 38px}.booking-calendar-head button{width:38px;height:38px}.booking-success{min-height:0;padding:34px 24px}}
