[hidden]{display:none!important}
.booking-section{background:var(--paper);border-bottom:1px solid var(--line)}
.booking-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
.booking-layout:has(.booking-panel[hidden]){grid-template-columns:1fr;gap:0}
.booking-layout:has(.booking-panel[hidden]) .booking-intro>p:not(.eyebrow),.booking-layout:has(.booking-panel[hidden]) .booking-hours{display:none}
.booking-layout:has(.booking-panel[hidden]) .booking-intro h2{font-size:clamp(1.75rem,3vw,2.25rem)}
.booking-layout:has(.booking-panel[hidden]) .booking-intro h2 br{display:none}
.booking-layout:has(.booking-panel[hidden]) .booking-intro .eyebrow{margin-bottom:10px}
.booking-intro .eyebrow{margin-bottom:18px}
.booking-intro>p:not(.eyebrow){margin-top:23px;color:var(--muted);max-width:390px}
.booking-hours{padding-top:23px;margin-top:26px;border-top:1px solid #cfd6dd;display:grid;gap:9px;font-size:1rem}
.booking-hours strong{display:block;color:var(--navy)}
.booking-hours .muted{color:var(--muted);font-size:.875rem}
.booking-panel{background:white;border:1px solid var(--line);border-top:4px solid var(--burgundy);border-radius:5px;padding:30px}
.booking-panel h3{font-size:1.25rem;margin-bottom:23px}
.booking-field{display:grid;gap:7px;margin-bottom:22px}
.booking-field label{font-weight:600;font-size:1rem}
.booking-field select,.booking-field input{width:100%;min-width:0;min-height:52px;padding:12px;border:1px solid #99a5b1;border-radius:4px;color:var(--ink);font:inherit;background:white}
.booking-field input:focus,.booking-field select:focus{outline:3px solid #cf9b42;outline-offset:2px;border-color:var(--navy)}
.booking-field small,.booking-privacy{color:var(--muted);font-size:.875rem;line-height:1.65}
.booking-field input[aria-invalid=true]{border-color:#9e2440}
.booking-error{color:#9e2440;font-size:.9375rem;margin-bottom:15px}
.booking-panel .button{cursor:pointer;font-family:inherit;width:100%}
.booking-panel .button:disabled{opacity:.6;cursor:not-allowed}
.booking-panel button:focus-visible,.booking-selection button:focus-visible{outline:3px solid #b27532;outline-offset:4px}
.booking-privacy{margin-top:18px}
.booking-privacy a{text-decoration:underline;text-underline-offset:3px}
.booking-selected{display:grid;gap:6px}
.booking-selected strong{font-size:1.15rem}
.booking-selection{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #cfd6dd;border-radius:5px;padding:16px 20px;background:white;margin:24px 0 20px}
.booking-selection button{font:inherit;color:var(--burgundy);font-weight:600;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:8px}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.calendar-heading h3{font-size:1.25rem}
.calendar-heading a{font-size:.9375rem;color:var(--burgundy);text-decoration:underline;text-underline-offset:4px}
.calendar-status{font-size:.9375rem;color:var(--muted);margin-bottom:18px}
.calendar-embed{height:750px;width:100%;background:white;border-radius:5px;border:1px solid var(--line)}
.calendar-embed iframe{display:block;width:100%;height:100%;border:0}
.booking-confirmation{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-top:4px solid var(--burgundy);border-radius:10px;background:white;color:var(--ink);padding:32px;margin:auto;box-shadow:0 24px 80px #101b3540;text-align:center}
.booking-confirmation::backdrop{background:#101b35a6}
body:has(.booking-confirmation[open]){overflow:hidden}
.confirmation-check{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin:0 auto 20px;background:#f5e9ec;color:var(--burgundy);font-size:1.6rem;font-weight:700}
.booking-confirmation h3{font-size:1.5rem;line-height:1.25;margin-bottom:14px}
.booking-confirmation p{color:var(--muted);line-height:1.65}
.booking-confirmation .button{width:100%;font:inherit;cursor:pointer;margin-top:24px}
.booking-confirmation .button:focus-visible{outline:3px solid #b27532;outline-offset:4px}
.service-book{display:flex;align-items:center;gap:8px;margin-top:17px;font-size:.9375rem;font-weight:600;color:var(--burgundy)}
.service-book:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr;gap:30px}.booking-intro>p:not(.eyebrow){max-width:none}.booking-hours{grid-template-columns:1fr 1fr;gap:15px}.booking-hours .muted{grid-column:1/-1}.booking-panel{max-width:650px;width:100%}.booking-intro h2 br{display:none}}
@media(max-width:640px){.booking-panel{padding:24px 20px}.booking-hours{grid-template-columns:1fr;gap:9px}.booking-selection{align-items:flex-start;padding:16px;gap:12px;flex-direction:column}.booking-selection button{padding:0}.calendar-heading{gap:12px}.calendar-embed{width:calc(100% + 40px);margin-left:-20px;border-radius:0;border-left:0;border-right:0}.calendar-heading a{font-size:.875rem}.booking-panel .button{font-size:1rem}.header-call{white-space:nowrap}}
@media(max-width:360px){.calendar-embed{width:calc(100% + 32px);margin-left:-16px}}
@media print{.booking-section,.service-book{display:none}}
