.booking-page{min-height:100vh;padding-bottom:calc(69px + env(safe-area-inset-bottom) + 16px);color:var(--ink);background:var(--paper)}.booking-topbar{z-index:5;color:var(--on-brand);background:var(--brand);position:sticky;top:0}.booking-topbar-inner{justify-content:space-between;align-items:center;width:min(100%,560px);min-height:66px;margin-inline:auto;padding-inline:12px;display:flex;position:relative}.booking-back-icon,.booking-restart{min-width:44px;min-height:44px;color:var(--on-brand);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:4px;display:inline-flex}.booking-back-icon{justify-content:flex-start}.booking-restart{justify-content:flex-end;font-size:14px}.booking-brand{text-align:center;gap:0;width:calc(100% - 120px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.booking-brand strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.booking-brand span{font-size:13px}.booking-column{width:min(100%,560px);margin-inline:auto;padding:18px 12px 0}.booking-progress{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.booking-progress span{background:var(--line);border-radius:2px;height:4px}.booking-progress span.is-done{background:var(--brand)}.booking-step-label{color:var(--muted);margin:14px 0 24px;font-size:14px}.booking-heading{margin-bottom:20px}.booking-heading-icon{grid-template-columns:46px minmax(0,1fr);align-items:center;gap:10px;display:grid}.booking-heading-icon>svg{color:var(--brand-ink)}.booking-heading h1,.booking-title{color:var(--ink);letter-spacing:-.035em;margin:0;font-size:clamp(25px,7vw,32px);font-weight:600;line-height:1.16}.booking-heading p{color:var(--muted);margin:4px 0 0;font-size:15px;line-height:1.4}.booking-categories{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px;display:grid}.booking-categories button{border:1px solid var(--line);min-height:46px;color:var(--ink);background:var(--surface);cursor:pointer;border-radius:12px;padding:6px 4px;font-size:12px;font-weight:600}.booking-categories button.is-active{border-color:var(--brand);color:var(--on-brand);background:var(--brand)}.booking-service-list{gap:9px;display:grid}.booking-service{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:15px;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:98px;padding:9px;display:grid;position:relative}.booking-service.is-selected{border:2px solid var(--brand);padding:8px}.booking-service-photo{background:var(--brand-wash);object-fit:cover;border-radius:12px;width:72px;height:72px;display:block}.booking-service-choice{width:18px;height:18px;color:var(--brand-ink);place-items:center;display:grid;position:absolute;top:7px;right:7px}.booking-service-copy{gap:3px;min-width:0;display:grid}.booking-service-copy strong{font-size:14px;font-weight:600;line-height:1.25}.booking-service-copy>span:not(.booking-duration){color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.booking-duration{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.booking-duration svg{flex:none}.booking-service-price{color:var(--brand-ink);font-variant-numeric:tabular-nums;white-space:nowrap;align-self:end;padding-bottom:2px;font-size:13px;font-weight:600}.booking-summary-strip{background:var(--surface);border-radius:14px;align-items:center;gap:14px;margin:20px 0 12px;padding:16px;display:flex}.booking-summary-strip>svg{color:var(--cta);flex:none}.booking-summary-strip>div{flex:1;gap:2px;display:grid}.booking-summary-strip strong{font-size:15px}.booking-summary-strip span{color:var(--muted);font-size:14px}.booking-summary-strip button{color:var(--brand-ink);cursor:pointer;background:0 0;border:0;padding:6px;text-decoration:underline}.booking-calendar,.booking-slots{background:var(--surface);border-radius:16px;margin-top:14px;padding:16px 13px}.booking-calendar-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px;display:flex}.booking-calendar-heading h2,.booking-slots h2{margin:0;font-size:17px;font-weight:600}.booking-calendar-heading>div{gap:7px;display:flex}.booking-calendar-heading button{width:38px;height:38px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.booking-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));justify-items:center;gap:7px 2px;display:grid}.booking-weekdays{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:600}.booking-weekdays span{place-items:center;min-height:31px;display:grid}.booking-calendar-grid button{width:40px;height:40px;color:var(--ink-4);background:color-mix(in srgb, var(--line) 55%, var(--surface));cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;font-size:15px;font-weight:400;display:grid}.booking-calendar-grid button.is-available{color:var(--brand-ink);background:0 0;font-weight:600}.booking-calendar-grid button.is-available.is-selected{color:var(--on-brand);background:var(--brand)}.booking-calendar-grid button.is-available:hover:not(.is-selected){text-underline-offset:3px;text-decoration:underline}.booking-calendar-grid button.is-available:focus-visible:not(.is-selected){outline:2px solid var(--brand);outline-offset:2px;box-shadow:0 0 0 4px var(--surface), 0 0 0 6px var(--brand)}.booking-calendar-grid button:disabled{cursor:not-allowed}.booking-calendar-grid button.is-past{color:var(--ink-4);opacity:1;background:0 0;border-color:#0000}.booking-calendar-legend{color:var(--muted);gap:18px;margin-top:17px;padding-left:5px;font-size:12px;display:flex}.booking-calendar-legend span{align-items:center;gap:6px;display:inline-flex}.booking-calendar-legend i{border:1px solid var(--line);background:color-mix(in srgb, var(--line) 55%, var(--surface));border-radius:50%;width:15px;height:15px;display:block}.booking-calendar-legend .legend-available{border-color:var(--brand);background:var(--surface)}.booking-slot-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px;display:grid}.booking-slot-list button{border:1px solid var(--brand);min-height:46px;color:var(--brand-ink);background:var(--surface);cursor:pointer;border-radius:12px;font-weight:600}.booking-slot-list button.is-selected{color:var(--on-brand);background:var(--brand)}.booking-muted{color:var(--ink-4);margin:9px 0 0;font-size:15px;font-weight:400}.booking-choice-review{border:1px solid var(--line);background:var(--surface);border-radius:14px;justify-content:space-between;gap:12px;margin:18px 0 20px;padding:15px;display:flex}.booking-choice-review>div{min-width:0}.booking-choice-review strong{font-size:16px}.booking-choice-review p{margin:5px 0;font-size:14px;line-height:1.4}.booking-choice-review span{color:var(--muted);font-size:13px}.booking-choice-review button{color:var(--brand-ink);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:2px 0;font-weight:600;text-decoration:underline}.booking-form{gap:14px;display:grid}.booking-field{gap:6px;display:grid}.booking-field>label{padding-inline:2px;font-size:14px;font-weight:600}.booking-field>label span{font-weight:400}.booking-field input,.booking-field select,.booking-field textarea{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:var(--surface);font:inherit;border-radius:10px;outline:none;padding:10px 13px}.booking-field select{appearance:none;height:48px;padding:10px 38px 10px 13px}.booking-select-control{min-width:0;display:block;position:relative}.booking-select-control:after{background:var(--ink-3);content:"";pointer-events:none;width:16px;height:16px;position:absolute;top:50%;right:13px;transform:translateY(-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6'/%3E%3C/svg%3E") 50%/contain no-repeat}.booking-field textarea{resize:vertical;min-height:92px}.booking-field input:focus-visible,.booking-field select:focus-visible,.booking-field textarea:focus-visible{border-color:var(--brand);outline:2px solid var(--brand);outline-offset:1px}.booking-field input[aria-invalid=true]:focus-visible,.booking-field select[aria-invalid=true]:focus-visible,.booking-field textarea[aria-invalid=true]:focus-visible{border-color:var(--danger);outline-color:var(--danger)}.booking-field small{color:var(--muted);margin-top:0;padding-left:3px;font-size:12px}.booking-field.has-error input,.booking-field.has-error select,.booking-field.has-error textarea{border-color:var(--danger)}.booking-field.has-error .booking-select-control:after{background:var(--danger)}.booking-birth-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.booking-error{color:var(--danger);font-size:13px}.booking-general-error{background:var(--brand-wash);border-radius:12px;margin:15px 0 0;padding:12px 14px}.booking-general-error button{color:var(--brand-ink);cursor:pointer;background:0 0;border:0;margin-left:10px;font-weight:600;text-decoration:underline}.booking-title{margin:0 0 18px}.booking-confirm-card{border:1px solid var(--line);background:var(--surface);border-radius:15px;padding:17px}.booking-confirm-card>strong{font-size:20px}.booking-confirm-card p{color:var(--muted);margin:6px 0;font-size:14px}.booking-total{border-top:1px solid var(--line);color:var(--muted);justify-content:flex-end;align-items:baseline;gap:12px;margin-top:15px;padding-top:11px;display:flex}.booking-total strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:24px}.booking-payment-title{margin:24px 0 12px;font-size:24px;font-weight:600}.booking-payment-options{gap:9px;display:grid}.booking-payment-options button{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:14px;gap:3px;min-height:80px;padding:14px 42px 14px 16px;display:grid;position:relative}.booking-payment-options button.is-selected{border:2px solid var(--brand);padding:13px 41px 13px 15px}.payment-choice-check{width:18px;height:18px;color:var(--brand-ink);place-items:center;display:grid;position:absolute;top:9px;right:9px}.booking-payment-options strong{font-size:17px}.booking-payment-options span{color:var(--muted);font-size:14px}.booking-consent-note{color:var(--brand-ink);background:var(--brand-wash);border-radius:13px;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:12px;margin-top:17px;padding:14px;display:grid}.booking-consent-note p{margin:0;font-size:14px}.booking-reschedule-note{color:var(--muted);margin:13px 0 0;font-size:13px}.booking-footer{z-index:4;width:min(100%,560px);padding:10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);grid-template-columns:auto minmax(0,1fr);gap:10px;margin-inline:auto;display:grid;position:fixed;bottom:0;left:0;right:0}.booking-footer button{cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:48px;padding-inline:12px;font-size:15px;font-weight:600;display:inline-flex}.booking-previous{border:1px solid var(--line);color:var(--ink);background:var(--surface)}.booking-next{border:1px solid var(--brand);color:var(--on-brand);background:var(--brand)}.booking-next:disabled{border-color:var(--line);color:var(--muted);background:var(--line);cursor:not-allowed}.booking-confirm-button{border-color:var(--cta);background:var(--cta);font-size:16px}.booking-confirm-button:hover:not(:disabled){border-color:var(--cta-press);background:var(--cta-press)}.booking-footer button:focus-visible,.booking-topbar button:focus-visible,.booking-categories button:focus-visible,.booking-service:focus-visible,.booking-calendar button:focus-visible,.booking-slot-list button:focus-visible,.booking-payment-options button:focus-visible{outline:3px solid var(--brand-ink);outline-offset:2px}@media (min-width:700px){.booking-page{padding-bottom:0}.booking-topbar-inner{min-height:72px}.booking-brand strong{font-size:16px}.booking-column{padding:24px 0 0}.booking-footer{background:0 0;border-top:0;width:min(100%,560px);padding-inline:0;position:sticky}.booking-footer button{min-height:52px}.booking-service{grid-template-columns:88px minmax(0,1fr) auto;gap:13px;min-height:116px;padding:10px}.booking-service.is-selected{padding:9px}.booking-service-photo{width:88px;height:88px}.booking-service-copy strong{font-size:16px}.booking-service-copy>span:not(.booking-duration){font-size:14px}.booking-service-price{font-size:16px}.booking-calendar,.booking-slots{padding:18px}.booking-calendar-grid{gap:9px 4px}.booking-calendar-grid button{width:42px;height:42px}}@media (max-width:379px){.booking-service{grid-template-columns:60px minmax(0,1fr) auto;gap:7px}.booking-service-photo{width:60px;height:60px}.booking-service-price{grid-column:3;place-self:end}.booking-service-copy{grid-area:1/2;align-self:center}.booking-calendar-grid button{width:40px;height:40px}}
