.booking-page{background:var(--public-surface-muted,#f5f5f5);min-height:100vh}.booking-shell{padding-block:clamp(2.5rem,6vw,5rem)}.booking-intro{gap:.9rem;margin-bottom:clamp(1.8rem,4vw,3rem);display:grid}.booking-intro h1,.manage-card h1{letter-spacing:-.055em;max-width:860px;margin:0;font-size:clamp(2.8rem,7vw,5.8rem);line-height:.94}.booking-lead,.booking-section-lead{max-width:700px;color:var(--public-muted,#626262);margin:0;font-size:1.04rem;line-height:1.65}.booking-experience{gap:1.25rem;display:grid}.booking-progress{padding:.3rem .15rem;overflow-x:auto}.booking-progress ol{grid-template-columns:repeat(4,1fr);min-width:610px;margin:0;padding:0;list-style:none;display:grid}.booking-progress li{position:relative}.booking-progress li:not(:last-child):after{z-index:0;content:"";background:#d7d7d7;height:2px;position:absolute;top:19px;left:50%;right:-50%}.booking-progress li.is-active:not(:last-child):after{background:var(--orange,#ff6b00)}.booking-progress li:has(+.is-active):after{background:var(--orange,#ff6b00)}.booking-progress button{z-index:1;color:#666;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;justify-items:center;gap:.4rem;padding:0;font-size:.78rem;font-weight:800;display:grid;position:relative}.booking-progress button span{color:#555;background:#fff;border:2px solid #c8c8c8;border-radius:50%;place-items:center;width:40px;height:40px;font-size:.84rem;display:grid}.booking-progress li.is-active button{color:#111}.booking-progress li.is-active button span{border-color:var(--orange,#ff6b00);color:#111;background:var(--orange,#ff6b00)}.booking-progress li:has(+.is-active) button span{border-color:var(--orange,#ff6b00);color:#111;background:var(--orange,#ff6b00)}.booking-progress li:has(~.is-active) button span{border-color:var(--orange,#ff6b00);color:#111;background:var(--orange,#ff6b00)}.booking-progress button:disabled{cursor:default}.booking-form{grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:start;gap:clamp(1rem,3vw,2rem);display:grid}.booking-main{gap:1rem;min-width:0;display:grid}.booking-panel,.booking-empty,.manage-card{border:1px solid var(--public-border,#dedede);border-top:5px solid var(--orange,#ff6b00);background:#fff;border-radius:12px;gap:1.25rem;padding:clamp(1.35rem,4vw,2.5rem);display:grid;box-shadow:0 16px 42px #1111110b}.booking-panel h2,.booking-empty h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.75rem,4vw,2.75rem);line-height:1.03}.booking-step-label,.booking-summary-kicker{color:#b94e00;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:900}.service-options{gap:.7rem;display:grid}.service-option{cursor:pointer;background:#fff;border:1px solid #d2d2d2;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:1rem;display:grid}.service-option:hover,.service-option.is-selected{border-color:var(--orange,#ff6b00);box-shadow:0 0 0 2px #ff6b001a}.service-option input{width:20px;height:20px;accent-color:var(--orange,#ff6b00)}.service-option-copy,.service-option-meta{gap:.2rem;display:grid}.service-option-copy small,.service-option-meta small,.wide-field small{color:var(--public-muted,#626262);font-weight:550;line-height:1.45}.service-option-meta{text-align:right;white-space:nowrap;justify-items:end}.booking-date-field{gap:.45rem;max-width:310px;font-weight:800;display:grid}.slot-area{min-height:110px}.slot-grid{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:.65rem;display:grid}.slot-grid button{color:#111;min-height:48px;font:inherit;cursor:pointer;background:#fff;border:1px solid #aaa;border-radius:7px;padding:.7rem;font-weight:800}.slot-grid button:hover,.slot-grid .selected-slot{border-color:var(--orange,#ff6b00);background:#fff3ea}.slot-grid .selected-slot{box-shadow:inset 0 0 0 2px var(--orange,#ff6b00)}.booking-loading,.booking-hint{min-height:110px;color:var(--public-muted,#626262);text-align:center;border:1px dashed #c8c8c8;border-radius:8px;align-content:center;place-items:center;gap:.5rem;padding:1.25rem;display:grid}.booking-loading span{border:3px solid #ddd;border-top-color:var(--orange,#ff6b00);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite booking-spin}.booking-hint p{margin:0}.booking-fields{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.booking-fields label{gap:.45rem;font-weight:800;display:grid}.wide-field{grid-column:1/-1}.booking-actions{flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-top:.5rem;display:flex}.booking-next{justify-self:end}.booking-message{color:#7a271a;background:#fff3f1;border-left:5px solid #b42318;border-radius:6px;margin:0;padding:1rem;line-height:1.55}.booking-summary{color:#fff;background:#111;border:1px solid #d9d9d9;border-radius:12px;gap:1rem;padding:1.4rem;display:grid;position:sticky;top:98px;box-shadow:0 18px 44px #1112}.booking-summary h2{color:#fff;margin:0;font-size:1.45rem}.booking-summary dl{gap:0;margin:0;display:grid}.booking-summary dl div{border-top:1px solid #ffffff25;grid-template-columns:90px minmax(0,1fr);gap:.75rem;padding-block:.8rem;display:grid}.booking-summary dt{color:#bfbfbf;font-size:.78rem}.booking-summary dd{margin:0;font-size:.84rem;font-weight:750;line-height:1.4}.booking-summary-note{color:#c8c8c8;border-top:1px solid #ffffff25;margin:0;padding-top:.9rem;font-size:.78rem;line-height:1.55}.booking-confirmation-details{background:#ddd;border:1px solid #ddd;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.booking-confirmation-details>div{background:#fff;gap:.3rem;padding:1rem;display:grid}.booking-confirmation-details span{color:#666;text-transform:uppercase;font-size:.75rem;font-weight:750}.booking-confirmation-details small{color:#666}.consent-step{background:#fafafa;border:1px solid #d4d4d4;border-radius:8px;gap:.9rem;padding:1.1rem;display:grid}.consent-step h3,.consent-step p{margin:0}.consent-option{grid-template-columns:auto 1fr;align-items:start;gap:.75rem;font-weight:600;line-height:1.5;display:grid}.consent-option input{margin-top:.2rem}.manage-card{max-width:760px}.manage-card dl{background:#ddd;border:1px solid #ddd;border-radius:8px;gap:1px;margin:0;display:grid;overflow:hidden}.manage-card dl div{background:#fff;padding:1rem}.manage-card dt{color:#666;text-transform:uppercase;font-size:.74rem;font-weight:750}.manage-card dd{margin:.25rem 0 0;font-weight:800}.manage-card details{border:1px solid #ddd;border-radius:8px;gap:1rem;padding:1rem;display:grid}.manage-card summary{cursor:pointer;font-weight:850}.quiet-danger{color:#a00;min-height:44px;font:inherit;cursor:pointer;background:#fff;border:1px solid #a00;border-radius:7px;justify-self:start;padding:.7rem 1rem;font-weight:800}@keyframes booking-spin{to{transform:rotate(360deg)}}@media (max-width:820px){.booking-form{grid-template-columns:1fr}.booking-summary{grid-row:1;position:static}}@media (max-width:620px){.booking-shell{padding-block:2rem 3rem}.booking-progress ol{min-width:520px}.booking-fields,.booking-confirmation-details{grid-template-columns:1fr}.wide-field{grid-column:auto}.service-option{grid-template-columns:auto 1fr}.service-option-meta{text-align:left;grid-column:2;justify-items:start}.booking-actions .public-button,.booking-next{justify-self:stretch;width:100%}}@media (prefers-reduced-motion:reduce){.booking-loading span{animation:none}}
