body:has(.booking-shell){padding-bottom:0}html:has(.booking-shell){scroll-padding-top:1rem;scroll-padding-bottom:1rem}.booking-shell{background:var(--paper);min-height:100dvh}.booking-header{border-bottom:1px solid var(--line);background:var(--surface)}.booking-header>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:76px;padding-block:.5rem;display:flex}.booking-phone{align-items:center;gap:.5rem;min-height:48px;font-size:1rem;font-weight:750;display:inline-flex}.booking-main{max-width:720px;padding-block:.75rem 2rem}.booking-back{margin-bottom:.5rem;font-size:.875rem}.booking-main>h1{margin-bottom:1.25rem;font-size:clamp(2rem,1.6rem + 1.8vw,3rem)}.booking-flow h2{outline:none;margin-bottom:1rem;font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}.booking-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-bottom:.75rem;display:flex}.booking-section-heading h2{margin:0}.booking-section-heading>span{color:var(--ink-soft);font-size:.875rem}.booking-progress{color:var(--ink-soft);grid-template-columns:repeat(auto-fit,minmax(min(100%,5.5rem),1fr));gap:.5rem;margin-bottom:1.5rem;font-size:.875rem;display:grid}.booking-progress li{overflow-wrap:anywhere;border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;padding-bottom:.75rem;display:flex}.booking-progress span{border:1px solid var(--line);border-radius:50%;place-items:center;min-width:1.75rem;min-height:1.75rem;display:inline-grid}.booking-progress [aria-current=step]{color:var(--teal-deep);border-color:currentColor;font-weight:750}.booking-progress [aria-current=step] span{color:var(--button-text);background:var(--teal);border-color:var(--teal)}.booking-intro{color:var(--ink-soft);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1rem;display:flex}.booking-calendar{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:1rem}.booking-week-nav{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;margin-bottom:1rem;display:grid}.booking-week-nav>span{text-align:center;font-size:1rem;font-weight:750}.booking-icon-button{border:1px solid var(--line);border-radius:.5rem;place-items:center;min-width:44px;min-height:48px;display:grid}.booking-days{grid-template-columns:repeat(auto-fit,minmax(min(100%,4rem),1fr));gap:.4rem;display:grid}.booking-day{border:1px solid var(--line);border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:78px;padding:.5rem .25rem;font-size:.875rem;display:flex}.booking-day strong{font-size:1.375rem}.booking-availability-dot{background:var(--teal);border-radius:50%;width:5px;height:5px;margin-top:.25rem}.booking-no-times{height:9px;color:var(--ink-soft);font-size:.75rem;line-height:.7}.booking-day.selected{border:2px solid var(--teal-deep);background:var(--teal-pale);color:var(--teal-deep)}.booking-date-heading{margin-block:1.5rem 1rem;font-size:1.0625rem}.booking-times{grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr));gap:.65rem;display:grid}.booking-times button{border:1px solid var(--teal-deep);min-height:56px;color:var(--teal-deep);border-radius:.5rem;padding:.75rem .5rem;font-size:1rem;font-weight:750}.booking-times button:hover,.booking-icon-button:hover{background:var(--teal-pale)}.booking-flow button:disabled{opacity:.55;cursor:not-allowed}.booking-empty,.booking-loading{color:var(--ink-soft);padding:2rem .25rem}.booking-empty svg{color:var(--teal-deep);margin-bottom:.75rem}.booking-empty p+p{margin-top:.5rem;font-size:1rem}.booking-calendar-tools{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:flex}.booking-calendar-tools label{gap:.5rem;min-width:0;max-width:100%;font-size:.875rem;display:grid}.booking-calendar-tools input{background:var(--paper);border:1px solid var(--line);appearance:none;border-radius:.375rem;width:100%;min-width:0;max-width:100%;min-height:48px;padding:.5rem;font-size:1rem;display:block}.booking-calendar-tools input::-webkit-date-and-time-value{text-align:left}.booking-small{color:var(--ink-soft);margin-top:1rem;font-size:.875rem;line-height:1.65}.booking-banner,.booking-error{border:1px solid var(--teal-deep);background:var(--teal-pale);color:var(--ink);border-radius:.5rem;margin-block:1rem;padding:1rem;font-size:1rem}.booking-error{border-left-width:4px}.booking-banner strong{display:block}.booking-banner{padding:.75rem;font-size:.875rem}.booking-change{margin-block:.5rem 1rem}.booking-selection{background:var(--teal-pale);border-radius:.5rem;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:1rem;display:grid}.booking-selection p{color:var(--ink-soft);font-size:.875rem}.booking-selection svg{color:var(--teal-deep);margin-top:.25rem}.booking-form fieldset{gap:1.25rem;min-width:0;margin:0;padding:0;display:grid}.booking-form label:not(.booking-consent){gap:.5rem;min-width:0;font-size:1rem;font-weight:750;display:grid}.booking-form input:not([type=checkbox]),.booking-form select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:56px;color:var(--ink);border-radius:.5rem;padding:.85rem;font-size:1.0625rem;font-weight:400}.booking-form input:focus,.booking-form select:focus{border-color:var(--teal-deep)}.booking-field-help{color:var(--ink-soft);font-size:.875rem;font-weight:400}.booking-consent{cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:.75rem;padding-block:.5rem;font-size:.875rem;line-height:1.6;display:grid}.booking-consent input{width:24px;height:24px;accent-color:var(--teal);margin-top:.125rem}.booking-trap{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.booking-submit{padding-block:1rem max(1rem, env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--paper);margin-top:1.5rem}.booking-submit .button{width:100%}.booking-submit p{color:var(--ink-soft);text-align:center;margin-top:.75rem;font-size:.8125rem}.booking-help{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;margin-top:1.5rem;padding-top:.75rem;font-size:.875rem;display:flex}.booking-help a{min-height:44px;color:var(--teal-deep);align-items:center;gap:.5rem;font-weight:750;display:inline-flex}.booking-success-mark{background:var(--teal-pale);width:64px;height:64px;color:var(--teal-deep);border-radius:50%;place-items:center;margin-bottom:1rem;display:inline-grid}.booking-receipt{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;gap:.5rem;margin-block:1.5rem;padding:1.25rem;display:grid}.booking-receipt address{font-style:normal}.booking-receipt span,.booking-receipt address{font-size:1rem}.booking-confirmation>.button{width:100%;margin-bottom:.75rem}.booking-confirmation>.text-link{margin-top:1rem}.booking-footer{border-top:1px solid var(--line);max-width:760px;padding-block:1.5rem max(2rem, env(safe-area-inset-bottom,0px));color:var(--ink-soft);font-size:.875rem}.booking-footer a{align-items:center;min-height:44px;display:inline-flex}.booking-unavailable{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;padding:1.5rem}.booking-unavailable .button{width:100%;margin-top:1rem}@media (min-width:640px){.booking-main{padding-top:2rem}.booking-calendar{padding:1.5rem}.booking-days{grid-template-columns:repeat(7,minmax(0,1fr))}}@media (forced-colors:active){.booking-day.selected{outline:2px solid highlight}.booking-progress [aria-current=step]{border-color:highlight}}@media print{.booking-header,.booking-back,.booking-help,.booking-footer,.booking-confirmation>.button,.booking-progress{display:none}}
