/* The booking flow uses the same tokens and typography as the product pages. */
.booking-page{padding-bottom:96px}
.booking-heading{max-width:800px;margin:28px 0 40px}
.booking-heading h1{margin:16px 0 24px}
.booking-steps{list-style:none;display:flex;gap:36px;border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:40px;color:var(--muted)}
.booking-steps li{display:flex;align-items:center;gap:12px}
.booking-steps span{font-family:var(--head);font-size:22px;color:var(--blue-hi)}
.booking-steps [aria-current]{color:var(--text);font-weight:500}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:56px;align-items:start}
.booking-aside h2{font-size:32px;margin:18px 0}
.booking-aside p{line-height:1.7}
.booking-aside ul{padding-left:20px;margin:24px 0;display:grid;gap:12px}
.booking-aside li::marker{color:var(--blue-hi)}
.booking-help{padding-top:24px;border-top:1px solid var(--line)}
.booking-help a{font-size:23px;font-weight:500}
.booking-panel{background:var(--panel);border:1px solid var(--line);padding:36px;min-width:0}
.booking-form{display:grid;gap:24px}
.booking-page [hidden]{display:none!important}
.booking-fields,.interest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.booking-form .field{display:grid;gap:8px;min-width:0}
.booking-form .field input,.booking-form .field textarea{width:100%;padding:13px 14px;border-radius:0;font-family:var(--body);min-height:48px}
.booking-form .field textarea{resize:vertical}
.booking-form label span,.booking-hint{color:var(--muted);font-size:15px;font-weight:400}
.booking-form .btn{justify-self:start;min-height:52px}
.booking-interests{border:0;min-width:0}
.booking-interests legend{color:var(--text);font-size:17px;font-weight:500}
.booking-interests .booking-hint{margin:6px 0 14px}
.interest-grid{gap:10px}
.interest-grid label{display:flex;gap:10px;align-items:center;padding:14px;border:1px solid var(--line2);cursor:pointer;min-height:54px;background:var(--bg)}
.interest-grid label:has(:checked){border-color:var(--blue-hi);background:var(--bg2)}
.interest-grid label span{color:var(--text)}
.interest-grid input{width:18px;height:18px;flex-shrink:0;accent-color:var(--blue)}
.booking-notice{line-height:1.7}
.booking-error{color:var(--text);border-left:3px solid var(--blue-hi);padding-left:12px}
.booking-error:empty{display:none}
.booking-page a:not(.btn){text-decoration:underline;text-underline-offset:4px}
#schedule{display:grid;gap:20px}
#schedule-title{scroll-margin-top:100px}
#calendar-frame{width:100%;height:720px;border:0;background:#fff;color-scheme:light}
.booking-form button:disabled{opacity:.6;cursor:wait;animation:none}
@media(max-width:1000px){.booking-layout{gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}.booking-panel{padding:24px}}
@media(max-width:700px){.booking-layout{grid-template-columns:1fr}.booking-heading{margin-top:16px}.booking-heading h1 br{display:none}.booking-aside ul{display:none}.booking-aside .booking-help{margin-top:16px;padding-top:16px}.booking-panel{padding:22px 16px}.booking-fields,.interest-grid{grid-template-columns:1fr}.booking-steps{gap:24px;font-size:15px}.booking-form .btn{width:100%}.booking-page{padding-bottom:56px}.booking-heading{margin-bottom:28px}}
@media(max-width:700px){.booking-aside{order:2}.booking-heading h1{font-size:38px!important}.booking-steps{margin-bottom:24px}}
