:root{--navy:#091526;--navy2:#112d4c;--pale:#f4f8fd}.booking-page{overflow-x:hidden;background:#fff}.booking-shell{width:min(1120px,calc(100% - 48px));margin-inline:auto}.booking-hero{padding:142px 0 62px;color:#fff;background:radial-gradient(circle at 82% 18%,rgba(49,139,224,.28),transparent 30%),linear-gradient(135deg,var(--navy),#123454 72%,#1e5f9b)}.booking-eyebrow{margin:0 0 12px;color:#99ceff;font-size:.78rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.booking-eyebrow.dark,.step-kicker{color:var(--accent-strong)}.booking-hero h1{max-width:850px;margin-bottom:18px;font-size:clamp(2.8rem,6vw,4.8rem);line-height:1;letter-spacing:-.04em}.booking-hero p:last-child{color:#dbeaf8;font-size:1.12rem}.booking-section{padding:66px 0 90px;background:var(--pale)}.wizard-layout{display:grid;grid-template-columns:310px 1fr;gap:28px;align-items:start}.session-summary,.wizard-card{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(18,46,78,.07)}.session-summary{position:sticky;top:20px;padding:26px}.session-summary h2{font-size:1.45rem;line-height:1.2}.session-summary dl{display:grid;gap:12px;margin:24px 0}.session-summary dl div{display:flex;justify-content:space-between;gap:15px;padding-bottom:12px;border-bottom:1px solid var(--line)}.session-summary dt{color:var(--muted)}.session-summary dd{margin:0;font-weight:800;text-align:right}.session-summary>p:last-child{color:var(--muted);line-height:1.6}.wizard-card{padding:30px}.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 38px;padding:0;list-style:none}.progress li{display:grid;grid-template-columns:28px 1fr;gap:7px;align-items:center;color:var(--muted);font-size:.77rem;font-weight:800}.progress span{display:grid;width:28px;height:28px;place-items:center;border:2px solid var(--line);border-radius:50%;background:#fff}.progress li.is-current,.progress li.is-complete{color:var(--accent-strong)}.progress li.is-current span,.progress li.is-complete span{border-color:var(--accent);color:#fff;background:var(--accent)}.wizard-feedback:not(:empty){margin-bottom:20px;padding:14px;border-left:4px solid #b44a45;background:#fff2f0;color:#7f2e29}.wizard-step h2,.confirmation h2{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.025em}.step-kicker{margin:0 0 8px;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}.step-heading{display:flex;justify-content:space-between;gap:25px;align-items:start}.timezone-control{min-width:240px}.timezone-control label{font-size:.8rem}.detected-zone{color:var(--muted)}.slot-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.slot-button{min-height:52px;padding:10px;border:1px solid #a9bed4;border-radius:8px;color:var(--accent-strong);background:#fff;font:inherit;font-weight:800;cursor:pointer}.slot-button:hover,.slot-button[aria-checked=true]{border-color:var(--accent);color:#fff;background:var(--accent)}.slot-button:focus-visible,.secondary-button:focus-visible,.text-button:focus-visible{outline:3px solid #f6c95f;outline-offset:3px}.state-panel{padding:24px;border:1px dashed #aec4d9;border-radius:8px;color:var(--muted);text-align:center}.error-state{border-color:#cf8b85;color:#7f2e29;background:#fff7f6}.wizard-step form{display:grid;gap:16px}.wizard-step label{display:grid;gap:7px;font-weight:800}.wizard-step label small{color:var(--muted);font-weight:400;line-height:1.45}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-error{min-height:1.2em;margin:0;color:#a12d28;font-size:.82rem;font-weight:700}.step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.step-actions.end{justify-content:flex-end}.secondary-button,.text-button{min-height:48px;padding:0 19px;border:1px solid var(--line);border-radius:8px;color:var(--accent-strong);background:#fff;font:inherit;font-weight:800;cursor:pointer}.text-button{min-height:40px;padding:0;border:0;text-decoration:underline}.review-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.review-item{padding:16px;border:1px solid var(--line);border-radius:8px}.review-item.wide{grid-column:1/-1}.review-item span{display:block;margin-bottom:6px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.review-item p{margin:0;white-space:pre-wrap;line-height:1.55}.edit-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px}.payment-summary{display:flex;justify-content:space-between;gap:25px;padding:20px;border:1px solid var(--line);border-radius:9px}.payment-summary div{display:grid;gap:6px}.payment-summary span{color:var(--muted)}.secure-panel{display:flex;gap:13px;margin:20px 0;padding:18px;border-radius:8px;background:var(--accent-soft)}.secure-panel p{margin:6px 0 0;color:var(--muted);line-height:1.55}.policy-links{display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--accent-strong);font-size:.85rem;font-weight:700}.mock-payment-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.payment-back{margin-top:20px}.confirmation{text-align:center}.confirmation-icon{display:grid;width:58px;height:58px;margin:0 auto 18px;place-items:center;border-radius:50%;color:#fff;background:#267a4f;font-size:1.7rem;font-weight:900}.confirmation>p{color:var(--muted);line-height:1.65}.confirmation .review-summary{margin:24px 0;text-align:left}.booking-footer{padding:28px 0;color:#c7d5e3;background:#081321}.booking-footer>div{display:flex;justify-content:space-between;gap:20px}.booking-footer a{color:#fff;font-weight:800}
.calendar-booking-card{padding:0;overflow:hidden}.calendar-heading{padding:30px 30px 20px}.calendar-heading h2{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.025em}.calendar-heading>p:last-child{margin-bottom:0;color:var(--muted);line-height:1.6}.appointment-calendar{display:block;width:100%;min-height:600px;border:0}.calendar-completion{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 30px;border-top:1px solid var(--line);background:#f8fbfe}.calendar-completion p{margin:0;color:var(--muted);line-height:1.5}.calendar-completion .primary-button{flex:0 0 auto}.booking-confirmation{text-align:center}.booking-confirmation h2{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.025em}.booking-confirmation h2:focus{outline:none}.booking-confirmation>p:not(.step-kicker){max-width:600px;margin:0 auto 26px;color:var(--muted);line-height:1.65}.confirmation-home{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.checkout-card h2{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.025em}.checkout-card>p:not(.step-kicker){color:var(--muted);line-height:1.65}.checkout-card .primary-button{border:0;cursor:pointer}.checkout-card .primary-button:disabled{cursor:wait;opacity:.7}.checkout-feedback{min-height:1.5em;margin:16px 0 0;font-weight:700}
.consultation-form{display:grid;gap:16px;margin-top:24px}.consultation-form label{display:grid;gap:7px;font-weight:800}.consultation-form label small{color:var(--muted);font-weight:400}.consultation-form .secure-panel{margin:4px 0 0}
@media(max-width:850px){.wizard-layout{grid-template-columns:1fr}.session-summary{position:static}.slot-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.booking-shell{width:calc(100% - 32px)}.booking-page .site-header{width:calc(100% - 32px);align-items:flex-start}.booking-page .site-nav a:nth-child(n+2){display:none}.booking-hero{padding-top:126px}.wizard-card{padding:22px 17px}.progress{grid-template-columns:repeat(4,1fr);gap:3px}.progress li{display:flex;justify-content:center;font-size:0}.progress span{font-size:.77rem}.step-heading{display:block}.timezone-control{min-width:0}.slot-list,.form-row,.review-summary{grid-template-columns:1fr}.review-item.wide{grid-column:auto}.step-actions,.mock-payment-actions{flex-direction:column-reverse}.step-actions button,.mock-payment-actions button{width:100%}.payment-summary{display:grid}.booking-footer>div{flex-direction:column}}
@media(max-width:620px){.calendar-booking-card{padding:0}.calendar-heading{padding:22px 17px 16px}.calendar-completion{align-items:stretch;flex-direction:column;padding:20px 17px}.calendar-completion .primary-button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
