@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#1b1c1c;--muted:#64675f;--line:#d6d7cf;--blue:#284fea;--pale:#f5f6f2}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:400 15px/1.5 'DM Sans',Arial,sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:1px}h1,h2,h3,p{margin:0}h2:focus{outline:none}button{border:0}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:20px;background:#fff;padding:10px;z-index:100}.skip:focus{top:10px}
.booking-layout{max-width:1440px;margin:auto;padding:76px 40px 90px;display:grid;grid-template-columns:minmax(270px,.78fr) minmax(0,1.22fr);gap:72px;align-items:start}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:var(--muted);margin-bottom:27px}.booking-intro h1{font-size:clamp(56px,6.2vw,91px);font-weight:500;letter-spacing:-.065em;line-height:1.02;max-width:500px}.intro-copy{font-size:19px;line-height:1.55;color:var(--muted);max-width:350px;margin-top:26px}.meeting-facts{margin:34px 0 28px;padding-top:25px;border-top:1px solid var(--line);max-width:350px}.meeting-facts p{margin-bottom:13px;font-size:14px}.meeting-facts p:first-child{display:flex;gap:10px;align-items:center}.meeting-facts svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.meeting-facts strong{font-weight:500}.meeting-facts .notice{font-size:12px;color:var(--muted)}.text-link{font-size:13px;text-decoration:none;border-bottom:1px solid var(--line);padding:8px 0;display:inline-flex;gap:14px;align-items:center;min-height:44px}.text-link:hover{color:var(--blue);border-color:var(--blue)}
.booking-card{border:1px solid var(--line);min-width:0}.steps{list-style:none;padding:19px 28px;margin:0;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.steps li{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);white-space:nowrap}.steps li>span{display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:50%;font-size:10px}.steps li[aria-current]{color:var(--blue)}.steps li[aria-current]>span{background:var(--blue);border-color:var(--blue);color:white}.steps li.done>span{border-color:var(--blue);color:var(--blue)}.card-body{padding:30px}.card-body h2{font-size:28px;line-height:1.15;letter-spacing:-1px;font-weight:500;margin-bottom:28px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:12px;font-weight:500;margin-bottom:20px}input,textarea,select{display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);margin-top:7px;padding:11px 12px;font-size:16px;font-weight:400}input,select{min-height:46px}textarea{resize:vertical;min-height:105px;max-height:300px}label:has(input:disabled){color:var(--muted)}.extra-contact{margin-top:-4px;margin-bottom:24px}.extra-contact summary{font-size:12px;cursor:pointer;min-height:36px;display:list-item;list-style-position:inside;padding-top:5px}.extra-contact summary span{color:var(--muted)}.extra-contact[open] summary{margin-bottom:12px}.extra-contact label{margin-bottom:8px}.form-bottom{display:flex;gap:20px;align-items:center;justify-content:space-between}.privacy{font-size:11px;line-height:1.5;color:var(--muted);max-width:200px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:12px 20px;min-height:46px;font-size:13px;text-decoration:none;white-space:nowrap}.primary{background:var(--blue);color:#fff;border:1px solid var(--blue)}.primary:hover{background:#1e3fc5}.primary:disabled{opacity:.6}.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.secondary:hover{border-color:var(--ink)}.quiet{min-height:44px;padding:5px 0;color:var(--muted);background:none;font-size:12px;text-decoration:underline;text-underline-offset:4px}.quiet:hover{color:var(--blue)}.quiet:disabled{text-decoration:none;color:#777}.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.status{padding:12px 14px;border-left:3px solid #a6271c;background:#fff4f1;color:#7c241a;font-size:13px;line-height:1.5;margin-bottom:22px;overflow-wrap:anywhere}.panel-copy{font-size:15px;color:var(--muted);margin:-10px 0 25px;overflow-wrap:anywhere}.panel-copy strong{color:var(--ink);font-weight:500}#verification-code{max-width:270px;letter-spacing:.28em;font-size:27px}#code-form .primary{margin-top:4px}.code-actions{display:flex;justify-content:space-between;gap:20px;margin-top:25px;border-top:1px solid var(--line);padding-top:14px}.panel-heading{display:flex;gap:16px;align-items:start;justify-content:space-between}.panel-heading h2{margin-bottom:20px}.panel-heading .quiet{margin-top:-8px}.zone-label{font-weight:400;color:var(--muted);display:flex;align-items:center;gap:13px;font-size:11px;margin-bottom:27px}.zone-label select{font-size:12px;padding:7px 30px 7px 10px;min-height:40px;margin:0;max-width:300px;background:var(--pale)}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(125px,1fr);gap:26px}.month-header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:12px}.month-header h3{font-size:14px;font-weight:500}.month-header>div{display:flex;gap:2px}.month-header button{width:37px;height:40px;background:#fff;font-size:18px}.month-header button:hover{color:var(--blue)}.month-header button:disabled{color:#bbb}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.weekdays span{text-align:center;font-size:10px;color:var(--muted);padding:7px 0 10px}.day-button{aspect-ratio:1;min-height:38px;padding:0;background:#f0f3ff;color:var(--blue);border-radius:50%;font-size:13px}.day-button:hover{background:#dce3ff}.day-button:disabled{background:#fff;color:#868980}.day-button[aria-pressed=true]{background:var(--blue);color:white}.times-area{border-left:1px solid var(--line);padding-left:22px}.times-area h3{font-size:12px;font-weight:500;min-height:40px;display:flex;align-items:center}.muted{font-size:12px;color:var(--muted)}.available-times{display:grid;grid-template-columns:1fr;gap:8px;max-height:315px;overflow:auto;padding:4px 4px 4px 0;scrollbar-width:thin}.time-button{background:#fff;border:1px solid var(--blue);color:var(--blue);min-height:43px;font-size:12px;white-space:nowrap}.time-button:hover{background:var(--blue);color:#fff}.empty-state{font-size:14px;line-height:1.6;color:var(--muted);margin-top:25px}.back{margin:-12px 0 15px}.appointment-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;margin-bottom:24px}.appointment-date{font-size:22px;line-height:1.3;letter-spacing:-.5px;margin-bottom:9px}.appointment-time{font-size:18px}.appointment-zone{font-size:12px;color:var(--muted);margin-top:6px}.contact-summary{font-size:14px;color:var(--muted);margin-bottom:25px;overflow-wrap:anywhere}.confirmation-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#edf1ff;color:var(--blue);font-size:22px;margin-bottom:20px}.confirmation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px}.cancel-confirm{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.cancel-confirm p{margin-bottom:12px;font-size:14px}.cancel-confirm .quiet{margin-left:18px}.booking-footer{max-width:1360px;margin:0 auto 25px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:24px;font-size:11px;color:var(--muted)}.booking-footer>span{margin-right:auto}.booking-footer a{min-height:36px}.no-script{padding:30px;text-align:center}
@media(max-width:1150px){.booking-layout{gap:40px;padding:55px 30px 70px;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr)}.card-body{padding:24px}.steps{padding:17px 24px}.calendar-layout{gap:16px;grid-template-columns:minmax(0,1fr)}.times-area{border:0;border-top:1px solid var(--line);padding:12px 0 0}.available-times{grid-template-columns:repeat(3,minmax(0,1fr));max-height:190px}.day-button{max-height:45px;aspect-ratio:auto}.booking-footer{margin-left:30px;margin-right:30px}.meeting-facts{margin-top:25px}}
@media(max-width:760px){.booking-layout{display:block;padding:34px 20px 45px}.booking-intro h1{font-size:58px;max-width:none}.eyebrow{margin-bottom:15px}.intro-copy{font-size:16px;max-width:480px;margin-top:16px}.meeting-facts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 23px;margin:22px 0 10px;padding-top:16px;max-width:none}.meeting-facts p{margin:0;font-size:12px}.meeting-facts p br{display:none}.meeting-facts p br::after{content:' '}.meeting-facts .notice{flex-basis:100%;font-size:11px}.booking-intro>.text-link{margin-bottom:22px}.booking-card{width:100%}.card-body{padding:24px}.steps{padding:16px 20px;gap:8px}.steps li{font-size:10px;gap:6px}.steps li>span{width:20px;height:20px;font-size:9px}.calendar-layout{grid-template-columns:1fr}.day-button{min-height:42px}.available-times{grid-template-columns:repeat(3,minmax(0,1fr));max-height:225px}.booking-footer{margin-left:20px;margin-right:20px}.card-body h2{font-size:27px}.zone-label{display:block;margin-bottom:18px}.zone-label select{margin-top:6px;max-width:none}.month-header button{width:42px;height:42px}}
@media(max-width:420px){.booking-layout{padding:27px 14px 35px}.booking-intro h1{font-size:51px;letter-spacing:-3px}.intro-copy{font-size:15px}.card-body{padding:22px 17px}.steps{padding:15px 12px}.steps li{gap:4px;font-size:9px}.field-pair{grid-template-columns:1fr;gap:0}.form-bottom{align-items:flex-end;gap:15px}.privacy{font-size:10px;max-width:140px}.primary,.secondary{font-size:12px;padding:12px 16px}.card-body h2{font-size:25px}.appointment-date{font-size:21px}.code-actions{gap:12px}.code-actions .quiet{font-size:11px}.panel-heading .quiet{font-size:11px}.calendar-days{gap:2px}.day-button{min-height:38px;font-size:12px}.time-button{font-size:11px}.booking-footer{margin-left:14px;margin-right:14px}.meeting-facts{gap:9px 16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Keep the active booking step in context on narrow screens. */
.day-button{width:min(100%,44px);height:44px;max-height:44px;min-height:0;justify-self:center;aspect-ratio:1}
#reload-times{margin:8px 0 20px}#cancel-pending{margin:16px 0 0 20px}.confirmation-actions{margin-top:20px}
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
@media(max-width:760px){.booking-layout:not([data-stage=details]):not([data-stage=restore]) .booking-intro h1{font-size:32px;letter-spacing:-1.3px;margin-bottom:20px}.booking-layout:not([data-stage=details]):not([data-stage=restore]) .booking-intro .intro-copy,.booking-layout:not([data-stage=details]):not([data-stage=restore]) .meeting-facts,.booking-layout:not([data-stage=details]):not([data-stage=restore]) .booking-intro>.text-link{display:none}.booking-layout:not([data-stage=details]):not([data-stage=restore]) .eyebrow{margin-bottom:8px}.day-button{height:40px}.card-body>section{scroll-margin-top:90px}}
