.booking{max-width:46rem}.booking__steps{gap:var(--space-m);margin:0 0 var(--space-xl);padding:0 0 var(--space-m);border-bottom:1px solid var(--rule);counter-reset:step;flex-wrap:wrap;list-style:none;display:flex}.booking__step{align-items:center;gap:var(--space-2xs);font-size:var(--step--1);color:var(--ink-40);display:flex}.booking__step-num{border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;border:1px solid;place-items:center;width:1.625rem;height:1.625rem;font-size:.75rem;display:grid}.booking__step.is-current{color:var(--ink);font-weight:600}.booking__step.is-current .booking__step-num{background:var(--ink);border-color:var(--ink);color:var(--paper)}.booking__step.is-done{color:var(--ink-70)}@media (max-width:560px){.booking__step-label{display:none}.booking__step.is-current .booking__step-label{display:inline}}.booking__title{font-family:var(--font-display);font-weight:300;font-size:var(--step-3);margin:0 0 var(--space-3xs)}.booking__hint{font-size:var(--step--1);color:var(--ink-50);margin:0 0 var(--space-l)}.booking__loading{color:var(--ink-50);font-size:var(--step--1)}.booking__nav{gap:var(--space-xs);margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--rule);display:flex}.booking__error{margin-bottom:var(--space-m)}.booking__services{gap:var(--space-s);display:grid}.booking__service{gap:var(--space-3xs);width:100%;padding:var(--space-m);border:1px solid var(--rule);text-align:start;cursor:pointer;transition:border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);background:0 0;display:grid}.booking__service:hover{border-color:var(--ink);background:#33343c05}.booking__service-name{font-family:var(--font-display);font-size:var(--step-2);font-weight:400}.booking__service-blurb{font-size:var(--step--1);color:var(--ink-70);line-height:1.6}.booking__service-meta{gap:var(--space-s);margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--ink-50);display:flex}.booking__service-price{color:var(--ink);font-weight:600}.booking__days{gap:var(--space-2xs);padding-bottom:var(--space-2xs);margin-bottom:var(--space-l);scrollbar-width:thin;display:flex;overflow-x:auto}.booking__day{width:3.75rem;padding:var(--space-xs) 0;border:1px solid var(--rule);cursor:pointer;text-align:center;transition:border-color var(--speed) var(--ease), background-color var(--speed) var(--ease), color var(--speed) var(--ease);background:0 0;flex:none;gap:2px;display:grid}.booking__day:hover{border-color:var(--ink)}.booking__day-name{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50);font-size:.6875rem}.booking__day-num{font-family:var(--font-display);font-size:var(--step-1);font-variant-numeric:tabular-nums}.booking__day.is-current{background:var(--ink);border-color:var(--ink);color:var(--paper)}.booking__day.is-current .booking__day-name{color:#eeeef0b3}.booking__times{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.booking__time{border:1px solid var(--rule-strong);border-radius:var(--radius-pill);font-size:var(--step--1);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--speed) var(--ease), border-color var(--speed) var(--ease), color var(--speed) var(--ease);background:0 0;padding:.6875rem 1.25rem}.booking__time:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.booking__form{max-width:32rem}.booking__hp{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.booking__summary{gap:var(--space-2xs) var(--space-m);padding:var(--space-m);border:1px solid var(--rule);grid-template-columns:minmax(6rem,auto) 1fr;margin:0;display:grid}.booking__summary dt{font-size:var(--step--1);color:var(--ink-50)}.booking__summary dd{margin:0;font-weight:500}.booking__done-mark{width:1.75rem;margin-bottom:var(--space-m)}.booking__done-line{font-size:var(--step-1);color:var(--ink-70);max-width:40ch}.booking__notes{margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:1px solid var(--rule)}.booking__skeletons{gap:var(--space-s);display:grid}.booking__skeletons--row{gap:var(--space-2xs);margin-bottom:var(--space-m);flex-wrap:wrap;display:flex}.booking__skeleton{background:linear-gradient(90deg, var(--ink-10) 0%, var(--ink-20) 50%, var(--ink-10) 100%);animation:booking-shimmer 1.4s var(--ease) infinite;background-size:200% 100%;display:block}.booking__skeleton--card{height:5.25rem}.booking__skeleton--day{width:3.75rem;height:4.25rem}.booking__skeleton--time{border-radius:var(--radius-pill);width:5.5rem;height:2.625rem}@keyframes booking-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.booking__code{margin-block:var(--space-s);border-block-start:1px solid var(--rule);padding-block-start:var(--space-s)}.booking__code-row{gap:var(--space-2xs);align-items:stretch;margin-block-start:var(--space-3xs,.25rem);display:flex}.booking__code-row input{text-transform:uppercase;letter-spacing:.06em;flex:auto;min-width:0}.booking__code-on{align-items:baseline;gap:var(--space-2xs);flex-wrap:wrap;margin:0;display:flex}.booking__code-clear{font:inherit;font-size:var(--step--1);color:inherit;text-underline-offset:.2em;cursor:pointer;opacity:.7;background:0 0;border:0;padding:0;text-decoration:underline}.booking__code-clear:hover{opacity:1}.booking__was{opacity:.55;unicode-bidi:isolate;text-decoration:line-through}.booking__hourly{padding:var(--space-m) 0 var(--space-l);border-block-end:1px solid var(--rule-strong);margin-block-end:var(--space-m)}.booking__hourly-name{font-family:var(--font-display);font-weight:300;font-size:var(--step-1);color:var(--ink);margin:0;line-height:1.25}.booking__hourly-hint{font-size:var(--step--1);color:var(--ink-70);margin:var(--space-3xs) 0 0}.booking__hourly-rate{font-size:var(--step--1);color:var(--ink-50);margin:var(--space-3xs) 0 0}.booking__hourly-ask{font-size:var(--step-0);color:var(--ink);margin:var(--space-m) 0 var(--space-2xs)}.booking__hours{gap:var(--space-3xs);flex-wrap:wrap;display:flex}.booking__hour{border:1px solid var(--rule-strong);block-size:2.75rem;inline-size:2.75rem;color:var(--ink-70);font:inherit;font-size:var(--step-0);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--speed) var(--ease), border-color var(--speed) var(--ease), color var(--speed) var(--ease);background:0 0;place-items:center;padding:0;display:grid}.booking__hour:hover{border-color:var(--ink);color:var(--ink)}.booking__hour:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.booking__hourly-note{font-size:var(--step--1);color:var(--ink-50);max-width:52ch;margin:var(--space-s) 0 0;line-height:1.5}.booking__time{flex-direction:column;align-items:center;gap:.1rem;line-height:1.2;display:flex}.booking__time-end{font-size:var(--step--2,.75rem);color:var(--ink-50)}.booking__time:hover .booking__time-end,.booking__time[aria-pressed=true] .booking__time-end{color:inherit}.booking__extras{min-width:0;margin:0 0 var(--space-l);padding:0 0 var(--space-m);border:0;border-block-end:1px solid var(--rule-strong)}.booking__extras-title{font-family:var(--font-display);font-weight:300;font-size:var(--step-1);color:var(--ink);padding:0}.booking__extras-hint{font-size:var(--step--1);color:var(--ink-50);margin:var(--space-3xs) 0 var(--space-s)}.booking__extra{align-items:baseline;gap:var(--space-xs);padding-block:var(--space-2xs);cursor:pointer;display:flex}.booking__extra input{block-size:1.125rem;inline-size:1.125rem;accent-color:var(--ink);flex:none;margin:0;margin-block-start:.1em}.booking__extra input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.booking__extra-name{font-size:var(--step-0);color:var(--ink);flex:auto}.booking__extra-price{font-variant-numeric:tabular-nums;color:var(--ink-70);flex:none}.booking__time-price{font-size:var(--step--2,.75rem);font-variant-numeric:tabular-nums;color:var(--ink-70)}.booking__time:hover .booking__time-price{color:inherit}.booking__extra-tag{padding:.1rem var(--space-3xs);border:1px solid var(--rule-strong);font-family:var(--font-display);font-size:var(--step-eyebrow);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-70);vertical-align:.1em;margin-inline-start:var(--space-2xs);display:inline-block}
