.booking-page{background:var(--paper);padding-bottom:120px}.booking-page__intro{width:var(--page);grid-template-columns:1.25fr .75fr;gap:44px;margin:0 auto;padding:58px 0 46px;display:grid}.booking-page__intro h1{margin-bottom:0;font-size:clamp(52px,5.2vw,72px)}.booking-page__intro>div:last-child{align-self:end}.booking-page__intro>div:last-child p{color:var(--ink-soft);line-height:1.8}.booking-page__intro>div:last-child a{align-items:center;gap:10px;font-size:12px;font-weight:800;display:inline-flex}.booking-page__intro>div:last-child svg{color:var(--cyan);width:22px;height:22px}.booking-page__phones{flex-wrap:wrap;gap:12px 24px;display:flex}.booking-page__phones a{align-items:center;min-height:44px;display:inline-flex}.booking{background:var(--white);width:var(--page);margin:0 auto}.booking-progress{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:0;padding:0 64px;list-style:none;display:grid}.booking-progress li{color:var(--ink-soft);padding:24px 0;font-size:11px;position:relative}.booking-progress li span{font-size:9px;font-weight:800;display:block}.booking-progress li[aria-current=step]{color:var(--navy);font-weight:800}.booking-progress li[aria-current=step]:after{background:var(--cyan);content:"";width:60%;height:3px;position:absolute;bottom:-1px;left:0}.booking__workspace{min-height:520px;padding:64px}.booking-step{border:0;margin:0;padding:0}.booking-step legend{font-family:var(--font-display), serif;letter-spacing:-.035em;text-wrap:balance;margin-bottom:16px;padding:0;font-size:clamp(36px,4vw,52px);font-weight:500;line-height:1.05}.booking-step__intro{color:var(--ink-soft);max-width:680px;margin-bottom:42px;line-height:1.75}.booking-choices{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.booking-choices input{opacity:0;width:1px;height:1px;position:absolute}.booking-choices label>span{border:1px solid var(--line);cursor:pointer;min-height:230px;padding:30px;transition:background-color .18s,border-color .18s,transform .18s;display:grid}.booking-choices label>span>svg{color:var(--cyan);width:30px;height:30px;margin-bottom:50px}.booking-choices strong{font-family:var(--font-display), serif;font-size:28px;font-weight:500}.booking-choices small{color:var(--ink-soft);margin-top:10px;line-height:1.7}.booking-choices input:checked+span{border-color:var(--cyan);background:#20c4db14}.booking-choices label:has(input:checked){order:-1}.booking-choices input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:3px}.booking-fields{gap:26px;display:grid}.booking-fields--two{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-step label{color:var(--ink);font-size:12px;font-weight:800;display:block}.booking-step label>span{color:var(--ink-soft);font-weight:500}.booking-step input:not([type=checkbox]):not([type=radio]),.booking-step select,.booking-step textarea{background:var(--paper-light);border:1px solid var(--line);color:var(--ink);resize:vertical;border-radius:0;outline:0;width:100%;margin-top:8px;padding:14px 16px;display:block}.booking-step input:focus,.booking-step select:focus,.booking-step textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #20c4db1f}.booking-step input[aria-invalid=true],.booking-step select[aria-invalid=true]{border-color:#b43737}.booking-step label>small[role=alert]{color:#9b2c2c;margin-top:6px;font-weight:600;display:block}.booking-address{border-top:1px solid var(--line);margin-top:34px;padding-top:34px}.booking-address__label{color:var(--ink);letter-spacing:.02em;margin:0 0 12px;font-size:12px;font-weight:800}.booking-location-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:28px;display:grid}.booking-location-options label{cursor:pointer;position:relative}.booking-location-options input{opacity:0;width:1px;height:1px;position:absolute}.booking-location-options label>span{background:var(--paper);border:1px solid var(--line);gap:4px;min-height:82px;padding:16px 18px;transition:background-color .16s,border-color .16s;display:grid}.booking-location-options strong{color:var(--ink);font-size:13px}.booking-location-options small{color:var(--ink-soft);font-size:12px;font-weight:500;line-height:1.45}.booking-location-options input:checked+span{border-color:var(--cyan);background:#20c4db14}.booking-location-options input:focus-visible+span{outline-offset:2px;outline:3px solid #20c4db33}.booking-address>label{margin-top:26px}.booking-step>label{margin-top:28px}.booking-review dl{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);margin:38px 0;display:grid}.booking-review dl>div{border-bottom:1px solid var(--line);padding:22px 0}.booking-review dt{color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.booking-review dd{font-family:var(--font-display), serif;margin:4px 0 0;font-size:20px}.booking-consent{grid-template-columns:auto 1fr;align-items:start;gap:14px;max-width:760px;display:grid!important}.booking-consent input{accent-color:var(--navy);width:20px;height:20px;margin:2px 0 0}.booking-error,.booking-server-error{color:#9b2c2c;margin-top:10px;font-size:12px;display:block}.booking-review__notice{color:var(--ink-soft);margin:32px 0 0;font-size:11px}.booking-honeypot{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.booking-server-error{background:#fff2f2;margin:0 64px;padding:16px}.booking-server-error a{font-weight:800;text-decoration:underline}.booking__actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:26px 64px;display:flex}.booking-back{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.booking-confirmation{background:var(--navy-deep);color:var(--white);min-height:660px;width:var(--page);margin:0 auto;padding:82px}.booking-confirmation .eyebrow{color:var(--cyan-light)}.booking-confirmation h2{max-width:900px;font-size:clamp(52px,6vw,86px)}.booking-confirmation>p:not(.eyebrow){color:#ffffffb8;max-width:700px}.booking-confirmation dl{border-top:1px solid #ffffff2e;grid-template-columns:repeat(2,1fr);margin:56px 0 0;display:grid}.booking-confirmation dl>div{border-bottom:1px solid #ffffff2e;padding:24px 0}.booking-confirmation dt{color:var(--cyan-light);letter-spacing:.14em;text-transform:uppercase;font-size:10px}.booking-confirmation dd{font-family:var(--font-display), serif;margin:4px 0 0;font-size:24px}.booking-confirmation__notice{font-size:12px;margin-top:28px!important}.booking-confirmation__actions{align-items:center;gap:32px;margin-top:42px;display:flex}.booking-confirmation__phone-links{flex-wrap:wrap;gap:10px;display:flex}@media (max-width:1080px){.booking-progress{padding-inline:44px}.booking__workspace{padding:52px 44px}.booking__actions{padding-inline:44px}}@media (max-width:800px){.booking-location-options{grid-template-columns:1fr}.booking-page{padding-bottom:80px}.booking-page__intro{grid-template-columns:1fr;gap:12px;padding:28px 0 22px}.booking-page__intro h1{font-size:clamp(40px,11vw,50px)}.booking-page__intro .eyebrow{margin-bottom:14px}.booking-page__intro>div:last-child p{margin-bottom:12px;font-size:13px;line-height:1.55}.booking-progress{padding:0 20px}.booking-progress li{text-overflow:ellipsis;padding:18px 2px;font-size:9px;overflow:hidden}.booking__workspace{min-height:520px;padding:28px 20px}.booking-step legend{font-size:clamp(29px,7vw,32px)}.booking-step__intro{margin-bottom:24px;font-size:13px;line-height:1.55}.booking-choices,.booking-fields--two,.booking-review dl{grid-template-columns:1fr}.booking-choices label>span{min-height:190px;padding:24px}.booking-choices label>span>svg{margin-bottom:32px}.booking__actions{gap:18px;padding:22px 20px}.booking__actions .button{width:auto}.booking-server-error{margin-inline:20px}.booking-confirmation{min-height:620px;padding:60px 24px}.booking-confirmation dl{grid-template-columns:1fr}.booking-confirmation__actions,.booking-confirmation__phone-links{flex-direction:column;align-items:stretch}}
