.appointment-page{max-width:960px;color:var(--ink);background:#FAF8F4}
.appointment-heading{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:end;gap:64px;padding-block:48px 38px}
.appointment-heading h1{font-family:var(--heading);font-size:56px;line-height:1.1;letter-spacing:-.035em;margin-bottom:22px}
.appointment-heading>div>p{max-width:480px;font-size:16px;line-height:1.75}
.appointment-direct{padding-bottom:3px}
.appointment-direct>p,.appointment-label,.appointment-booking>h2{font-family:var(--sans);font-size:13px;line-height:1.5;font-weight:400;color:var(--muted)}
.appointment-direct a{display:inline-flex;align-items:center;min-height:44px;font-size:20px;margin-block:7px 3px}
.appointment-direct>span{display:block;font-size:13px;line-height:1.7}
.appointment-direct a:hover,.appointment-existing a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--gold)}
.appointment-booking{border-top:1px solid var(--rule);padding-block:28px 32px}
.appointment-booking>h2{margin-bottom:18px}
.appointment-consent{padding:30px 32px;background:var(--soft)}
.appointment-consent>p{max-width:550px;font-size:15px;line-height:1.75}
.appointment-calendar-load{font-family:var(--sans);color:var(--ink);cursor:pointer;margin-top:22px;background:#FAF8F4;line-height:1.4;text-align:left}
.appointment-calendar-load:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.appointment-calendar-frame{display:block;width:100%;min-width:0;height:680px;min-height:580px;border:1px solid var(--rule);background:#fff}
.appointment-calendar-status{font-size:13px;line-height:1.6;color:var(--muted)}
.appointment-calendar-status:not(:empty){margin-top:12px}
.appointment-calendar-fallback{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px}
.appointment-calendar-fallback>p{font-size:13px;line-height:1.6;color:var(--muted)}
.appointment-calendar-fallback .text-link{margin:0;white-space:nowrap;flex-shrink:0}
.appointment-existing{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;border-top:1px solid var(--rule);padding-block:34px 56px}
.appointment-label{padding-top:8px}
.appointment-existing h2{font-family:var(--heading);font-size:32px;line-height:1.2;letter-spacing:-.02em;margin-bottom:18px}
.appointment-existing>div>p{font-size:15px;line-height:1.75;max-width:570px}
.appointment-existing>div>p+p{margin-top:16px}
.appointment-existing a{white-space:nowrap;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
@media(max-width:1000px){.appointment-heading{gap:36px;grid-template-columns:minmax(0,1fr) 220px}.appointment-heading h1{font-size:50px}.appointment-existing{grid-template-columns:200px minmax(0,1fr);gap:36px}}
@media(max-width:740px){.appointment-heading{grid-template-columns:1fr;gap:24px}.appointment-direct>p{display:none}.appointment-direct a{margin-top:0}.appointment-existing{grid-template-columns:1fr;gap:16px}.appointment-label{padding-top:0}}
@media(max-width:640px){.appointment-heading{padding-block:32px 28px;gap:20px}.appointment-heading h1{font-size:44px;margin-bottom:18px;max-width:330px}.appointment-heading>div>p{font-size:15px;line-height:1.7}.appointment-direct a{font-size:19px}.appointment-booking{padding-block:23px 27px}.appointment-booking>h2{margin-bottom:15px}.appointment-consent{padding:23px 20px}.appointment-consent>p{font-size:14px}.appointment-calendar-load{font-size:14px;gap:22px;padding-inline:15px;margin-top:20px;max-width:100%}.appointment-calendar-frame{height:680px}.appointment-calendar-fallback{align-items:flex-start;flex-direction:column;gap:6px;margin-top:16px}.appointment-existing{padding-block:27px 38px;gap:14px}.appointment-existing h2{font-size:29px;margin-bottom:15px}.appointment-existing>div>p{font-size:14px}}
@media(max-width:359px){.appointment-heading h1{font-size:40px}.appointment-consent{padding-inline:16px}.appointment-calendar-load{gap:14px;padding-inline:12px;font-size:13px}.appointment-existing h2{font-size:27px}}
