.booking-page{padding-block:36px 72px}
.booking-intro{max-width:850px;margin-bottom:40px}
.booking-intro h1{font-size:clamp(2rem,3.5vw,3.25rem);line-height:1.16;margin:0 0 18px;letter-spacing:-.035em}
.booking-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);gap:56px;align-items:start}
.booking-about{background:var(--navy);color:var(--white);border-radius:16px;padding:32px}
.booking-advisor{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.booking-advisor img{width:72px;height:72px;object-fit:cover;object-position:center top;background:var(--offwhite);border-radius:50%}
.booking-advisor strong,.booking-advisor span{display:block}
.booking-advisor strong{font-size:1.0625rem}.booking-advisor span{font-size:.875rem;color:#dae3eb;margin-top:4px}
.booking-about p{color:#dae3eb;font-size:1rem;line-height:1.7}
.booking-about ul{list-style:none;padding:0;margin:24px 0;display:grid;gap:16px}
.booking-about li{display:flex;gap:12px;align-items:flex-start;font-size:.9375rem;line-height:1.6}
.booking-about svg{width:22px;height:22px;flex:none;color:var(--gold);margin-top:2px}
.booking-benefits{border-top:1px solid #36516b;margin-top:28px;padding-top:24px}
.booking-benefits h3{color:var(--white);font-size:1rem;margin:0}.booking-benefits ul{margin-bottom:0}
.booking-help{margin:28px 0 0}.booking-help a{color:var(--white);font-weight:600;text-underline-offset:5px}
.booking-workspace{min-width:0}
.booking-progress{display:flex;gap:24px;list-style:none;padding:0 0 24px;margin:0 0 28px;border-bottom:1px solid var(--line-taupe);font-size:.875rem;color:var(--muted)}
.booking-progress li{display:flex;gap:10px;align-items:center;line-height:1.4}
.booking-progress span{display:grid;place-items:center;flex:none;width:28px;height:28px;background:var(--offwhite);border-radius:50%;font-variant-numeric:tabular-nums}
.booking-progress [aria-current]{color:var(--navy);font-weight:600}.booking-progress [aria-current] span{background:var(--gold)}
.booking-heading h2,.booking-form h2,.booking-confirmed h2{font-size:1.75rem;line-height:1.3;margin:0 0 12px}
.booking-heading>p{font-size:.875rem;color:var(--muted);margin:0 0 24px}
.booking-notice{font-size:.9375rem;line-height:1.6;padding:16px 20px;background:var(--offwhite);border-radius:12px;margin-bottom:8px}
.booking-notice[data-state=ready]{padding:0;background:none;color:var(--muted)}
.booking-retry,.booking-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:0;background:none;color:var(--navy);font:inherit;font-size:.875rem;padding:8px 0;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.booking-retry svg,.booking-back svg{width:18px;height:18px}.booking-back{margin-bottom:20px}
.booking-picker{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr);gap:28px;margin-top:24px}
.booking-month-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin-bottom:20px}
.booking-month-nav h3{font-size:1rem;text-align:center;margin:0;text-transform:capitalize;line-height:1.4}
.booking-month-nav button{display:grid;place-items:center;width:44px;height:44px;border:0;background:var(--offwhite);border-radius:50%;color:var(--navy);cursor:pointer}.booking-month-nav svg{width:20px;height:20px}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center;font-variant-numeric:tabular-nums}
.booking-weekdays{font-size:.8125rem;color:var(--muted);margin-bottom:8px}
.booking-days button{min-width:0;min-height:44px;border:0;border-radius:10px;background:var(--offwhite);color:var(--navy);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;padding:6px 0}
.booking-days button:disabled{background:transparent;color:var(--muted);font-weight:400;opacity:.65;cursor:default}
.booking-days button[aria-pressed=true]{background:var(--gold);color:var(--navy)}
.booking-days button[aria-current=date]{text-decoration:underline;text-underline-offset:5px}
.booking-calendar-note{font-size:.8125rem;line-height:1.6;color:var(--muted);margin:18px 0 0}
.booking-times{padding-top:12px;scroll-margin-top:100px;min-width:0}.booking-times h3{font-size:1rem;line-height:1.5;margin:0 0 12px}
.booking-times>p{font-size:.875rem;color:var(--muted);line-height:1.65;margin:0 0 20px}
.booking-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:3px}
.booking-time-grid button{min-height:48px;font:inherit;font-size:.9375rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--navy);background:var(--white);border:1px solid var(--taupe);border-radius:10px;cursor:pointer;padding:10px}
.booking-page button:hover:enabled{background:var(--gold);color:var(--navy)}
.booking-page button:disabled{cursor:default}.booking-month-nav button:disabled{opacity:.4}
.booking-selection{padding:18px 20px;border-radius:12px;background:var(--offwhite);color:var(--navy);font-weight:600;font-size:1rem;line-height:1.6;margin:20px 0}
.booking-form{max-width:580px;scroll-margin-top:110px}.booking-form>p{font-size:1rem;line-height:1.7}.booking-form .field-group{margin-block:22px}
.booking-form input:not([type=checkbox]),.booking-form textarea{width:100%;min-height:52px;border:1px solid var(--taupe);border-radius:10px;padding:12px 14px;font:inherit;font-size:1rem;color:var(--navy);background:var(--white);caret-color:var(--navy)}
.booking-form textarea{resize:vertical}.booking-form .button{margin-top:20px}.booking-form .checkbox-field{font-size:.875rem;line-height:1.6}
.booking-form .booking-error{padding:16px;color:var(--error);background:var(--offwhite);border-radius:10px;font-size:.9375rem}
.booking-form .booking-small,.booking-disclaimer{color:var(--muted);font-size:.8125rem;line-height:1.7}.booking-disclaimer{max-width:65ch;margin:32px 0 0}
.booking-context{padding:16px;background:var(--offwhite);border-radius:10px;font-size:.875rem!important}
.booking-confirmed{max-width:560px;padding-block:24px;scroll-margin-top:110px}.booking-confirmed>svg{width:48px;height:48px;color:var(--gold-text);margin-bottom:24px}.booking-confirmed p{font-size:1rem;line-height:1.8}
.booking-page [hidden]{display:none!important}.booking-page :is(button,a):focus-visible{outline:2px solid var(--gold-text);outline-offset:3px}
.booking-page :is(input,textarea):focus-visible{outline:2px solid var(--navy);outline-offset:-2px;box-shadow:none}
.booking-page ::selection{background:var(--gold);color:var(--navy)}
body:has(.booking-page) :is(.desktop-cta,.mobile-cta){display:none!important}
@media(max-width:1100px){.booking-layout{gap:32px;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}.booking-about{padding:24px}.booking-picker{grid-template-columns:minmax(0,1fr)}.booking-time-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:240px}}
@media(max-width:760px){.booking-layout{grid-template-columns:minmax(0,1fr)}.booking-intro{margin-bottom:28px}.booking-about{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0 16px}.booking-advisor{display:contents}.booking-advisor img{grid-row:1}.booking-advisor>div{align-self:center}.booking-benefits,.booking-help{display:none}.booking-about .booking-facts{grid-column:1/-1;margin:20px 0 0;gap:10px}.booking-progress{gap:16px;font-size:.8125rem}.booking-picker{gap:20px}.booking-page{padding-top:20px}.booking-calendar{max-width:400px}.booking-time-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:220px}.booking-heading h2,.booking-form h2{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.booking-page *{scroll-behavior:auto!important;transition:none!important}}
