body.dialog-open{overflow:hidden}.dialog-open .mobile-view{display:none}#booking-dialog{width:min(600px,100vw - 40px);max-height:92dvh;color:var(--ink);border:0;border-radius:20px;padding:0;overflow:hidden;box-shadow:0 20px 80px #09173040}.booking-scroll{max-height:inherit;scrollbar-gutter:stable;min-width:0;min-height:0;padding:24px;overflow:auto}.booking-heading{padding-right:34px}.booking-layout,.booking-context,.booking-form-pane{min-width:0}#booking-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14244385}.close-dialog{z-index:2;background:var(--paper);border:0;border-radius:50%;width:44px;height:44px;font-size:25px;position:absolute;top:8px;right:8px}.close-dialog:focus-visible{outline-offset:-4px}#dialog-title{letter-spacing:-.035em;overflow-wrap:anywhere;margin:6px 0;font-size:24px;font-weight:750;line-height:1.25}#dialog-title a{color:inherit;text-decoration:none}#dialog-title a:hover{text-decoration:underline}#dialog-address{color:var(--muted);margin-bottom:14px;font-size:13px;line-height:1.5}.picker-label{margin:23px 0 13px;font-size:16px;font-weight:600}.picker-back{min-height:44px;margin-top:10px;display:inline-block}.picker-days{gap:8px;margin:-4px;padding:4px 4px 12px;display:flex;overflow-x:auto}.picker-days button{border:1px solid var(--line);background:#fff;border-radius:8px;flex-shrink:0;min-height:48px;padding:12px;font-size:13px}.picker-days button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.picker-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.picker-slot{text-align:left;background:var(--pale);min-height:76px;color:var(--blue);border:1px solid #d9e1fa;border-radius:9px;gap:6px;padding:12px;display:grid}.picker-slot:hover{border-color:var(--blue)}.picker-slot strong{font-size:17px}.picker-slot span{overflow-wrap:anywhere;font-size:11px}.picker-slot small{color:#586eaa;overflow-wrap:anywhere;font-size:10px;line-height:1.5}#picker-status{color:var(--muted);margin-top:15px;font-size:13px;line-height:1.7}.preview-note{background:var(--amber-pale);color:#695320;border:1px solid #efdfb5;border-radius:9px;margin:23px 0 17px;padding:15px;font-size:13px;line-height:1.8}.external-agenda{color:var(--blue);margin-top:10px;font-size:13px;display:inline-block}#booking-dialog:has(.booking-layout){width:min(640px,100vw - 40px)}.booking-summary{border:1px solid var(--line);background:var(--pale);border-radius:12px;margin-top:12px;padding:14px;position:relative}.booking-summary p{margin:0}.booking-time-options{grid-template-columns:repeat(4,68px);gap:6px;margin-top:5px;display:grid}#booking-summary-times:not([hidden]){display:contents}.booking-time-options button{border:1px solid var(--line);background:var(--white);width:68px;min-height:56px;color:var(--blue);border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;display:flex}.booking-time-options span{overflow-wrap:anywhere;font-size:10px}.booking-time-options strong{font-size:15px}.booking-time-options .booking-all-times{color:var(--ink);background:0 0;border-color:#0000;flex-direction:row;gap:3px;font-size:11px;font-weight:400;line-height:1.4}.booking-time-options .booking-all-times span{font-size:inherit}.booking-time-options .booking-all-times:not(:disabled):hover{background:var(--paper);border-color:#0000}.booking-summary button:disabled{opacity:.55;cursor:wait}.booking-summary button:not(:disabled):hover{border-color:var(--blue);background:var(--white)}.booking-form{gap:12px;display:grid}.booking-form [hidden],.booking-actions [hidden]{display:none!important}.booking-form>fieldset,.booking-patient-details{gap:12px;display:grid}.booking-patient-details:empty{display:none}.booking-form-pane{container:booking-fields/inline-size}@container booking-fields (width>=500px){.booking-patient-details:has(.dob):has(.postcode-house):not(:has(.gender)){grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px}.booking-patient-details:has(.postcode-house):not(:has(.gender)) .dob-row{grid-template-columns:60px 60px 88px;gap:8px}}.booking-summary-details{grid-template-columns:minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.booking-appointment-text,.booking-therapist{min-width:0}.booking-therapist{text-align:left;flex-direction:column;align-items:flex-start;gap:5px;display:flex}.booking-summary .booking-therapist-name{color:var(--ink);overflow-wrap:anywhere;font-size:13px;font-weight:700;line-height:1.45}#booking-selected-time{overflow-wrap:anywhere;color:var(--ink)}.booking-selected-date{font-size:16px;font-weight:650;line-height:1.45;display:block}.booking-selected-hour{letter-spacing:-.035em;white-space:nowrap;margin-top:3px;font-size:28px;font-weight:750;line-height:1.1;display:block}.booking-summary .visit-kind{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.45}.summary-label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:400;line-height:1.45;display:block}.booking-other-times-label{margin-top:14px;margin-bottom:0}.booking-summary p:empty{display:none}#booking-step-title{margin:16px 0 10px;font-size:21px}.step-help{color:var(--muted);margin:0 0 10px;font-size:14px;line-height:1.5}.booking-actions{flex-direction:row;align-items:center;gap:10px;display:flex}.booking-actions .primary{flex:1;min-height:44px}.booking-actions .text-button{min-height:44px;padding-inline:12px}.booking-form input:not([type=checkbox]):not([type=radio]){font-size:16px}.booking-form label{gap:5px;font-size:14px;font-weight:550;display:grid}.booking-form :is(input:not([type=checkbox]):not([type=radio]),select){background:#fff;border:1px solid #cfd7e6;border-radius:7px;width:100%;min-width:0;min-height:44px;padding:10px 12px}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.booking-form .consent{align-items:flex-start;gap:12px;font-size:13px;font-weight:400;line-height:1.5;display:flex}.consent input{width:19px;height:19px;min-height:0;accent-color:var(--blue);flex-shrink:0;margin-top:2px}.booking-done{text-align:center;padding:24px 0 10px}.done-icon{background:var(--amber-pale);color:#825600;border-radius:50%;place-items:center;width:55px;height:55px;margin-bottom:25px;font-size:29px;display:inline-grid}.booking-done h3{margin-bottom:19px;font-size:26px}.booking-done p{color:var(--muted);margin-bottom:22px;font-size:15px;line-height:1.85}.booking-done .done-when{letter-spacing:.2px;margin-bottom:4px;font-size:15px}.booking-done .done-clinic{letter-spacing:-.01em;color:var(--ink);margin:0 0 26px;font-size:22px;font-weight:800;line-height:1.3}.booking-done .done-body{max-width:30em;color:var(--ink);margin:0 auto 26px;font-size:16px;line-height:1.75}.booking-done .done-body b{font-weight:700}@container booking-fields (width>=500px){.booking-form .visit-choices{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.booking-form .visit-choices legend{grid-column:1/-1}}@media (width<=600px){:is(#booking-dialog,#booking-dialog:has(.booking-layout)){border-radius:20px;width:100%;max-width:100%;max-height:93dvh;margin:auto 0 0}.booking-scroll{padding:22px 18px}#booking-dialog.picking .booking-scroll{height:93dvh}#dialog-title{font-size:23px}.booking-summary{padding:12px}.booking-selected-date{font-size:14px}.picker-times{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row{gap:10px}.booking-actions{flex-direction:column-reverse;align-items:stretch}.booking-actions .primary{width:100%}#dialog-address{margin-bottom:12px}}@media (width<=360px){.booking-time-options{grid-template-columns:repeat(4,56px);gap:4px}.booking-time-options button{width:56px;min-height:56px}.booking-summary-details{grid-template-columns:minmax(0,1fr) 96px;gap:10px}}#booking-test-notice{margin:0 0 10px;padding:8px 10px;font-size:12px;line-height:1.4}.booking-form fieldset{border:0;min-width:0;margin:0;padding:0}.booking-form legend{margin-bottom:6px;padding:0;font-size:14px;font-weight:550}.dob-row{grid-template-columns:70px 70px 100px;gap:10px;display:grid}.dob-row label{color:var(--muted);font-size:12px;font-weight:500}.gender-row{flex-wrap:wrap;gap:12px 22px;display:flex}.gender-row label{align-items:center;gap:8px;font-weight:500;display:flex}.gender-row input{width:18px;height:18px;accent-color:var(--blue);flex:0 0 18px;margin:0}.ts-box{width:100%;max-width:300px}.ts-box:empty{display:none}.turnstile-check:not([hidden]){gap:8px;min-width:0;display:grid}.turnstile-status{color:var(--muted);margin:0;font-size:13px}.turnstile-check .text-button{justify-self:start}.form-note{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.booking-form .field-error{color:#a02323;background:#fbeaea;border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.booking-working{text-align:center;padding:30px 0 10px}.booking-working h3{margin:18px 0 12px;font-size:22px}.booking-working p{color:var(--muted);margin-bottom:14px;font-size:15px;line-height:1.8}.spinner{border:3px solid #d9e1fa;border-top-color:var(--blue);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.booking-gone h3{margin:6px 0 12px;font-size:22px}.booking-gone p{color:var(--muted);margin-bottom:14px;font-size:15px;line-height:1.8}.booking-gone .primary{margin-top:10px}.booking-ref{font-size:14px}.visit-choices{gap:8px;display:grid}.booking-form .visit-choices label{border:1px solid #d9e1fa;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:10px 12px;display:flex}.visit-choices label:has(input:checked){background:var(--pale);border-color:var(--blue)}.visit-choices input{width:18px;height:18px;min-height:18px;accent-color:var(--blue);flex:0 0 18px;margin:0}.visit-kind{overflow-wrap:anywhere;line-height:1.5}
