.booking__grid{display:grid;gap:2.5rem}.booking__content{margin-bottom:2rem}.booking__aside{display:grid;gap:1.25rem;align-content:start}@media (min-width:64rem){.booking__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4rem;align-items:start}.booking__aside{position:sticky;top:calc(var(--sticky-top,6rem) + 1rem)}}.booking-step{border:0;padding:0;margin:0 0 2rem;min-width:0}.booking-step__legend{display:flex;align-items:center;gap:0.75rem;padding:0;margin:0 0 1rem;font-family:var(--font-heading);font-size:clamp(1.15rem,1rem + 0.6vw,1.4rem);font-weight:600;color:var(--brand-ink)}.booking-step__num{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--brand-primary-deep);color:#fff;font-family:var(--font-body);font-size:0.85rem;font-weight:600;flex-shrink:0}.booking-types{display:grid;gap:0.75rem}@media (min-width:40rem){.booking-types{grid-template-columns:repeat(2,minmax(0,1fr))}}.booking-type{position:relative;display:block;cursor:pointer}.booking-type input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.booking-type__body{display:grid;gap:0.25rem;height:100%;padding:1rem 1.1rem 1rem 1.1rem;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--dur-2),box-shadow var(--dur-2),transform var(--dur-2) var(--ease-out),background-color var(--dur-2)}.booking-type:hover .booking-type__body{border-color:var(--brand-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.booking-type input:focus-visible + .booking-type__body{outline:3px solid var(--brand-primary);outline-offset:3px}.booking-type.is-selected .booking-type__body,.booking-type input:checked + .booking-type__body{border-color:var(--brand-primary-deep);background:var(--brand-tint);box-shadow:inset 0 0 0 1px var(--brand-primary-deep)}.booking-type__name{font-weight:600;color:var(--brand-dark);font-size:1.02rem;padding-right:1.75rem}.booking-type__meta{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.8rem;font-weight:600;color:var(--brand-primary-deep);letter-spacing:0.02em}.booking-type__desc{font-size:0.9rem;color:var(--brand-muted);line-height:1.45}.booking-type__body::after{content:"";position:absolute;top:1rem;right:1rem;width:1.15rem;height:1.15rem;border-radius:50%;border:1.5px solid var(--border-strong);background:#fff;transition:background-color var(--dur-2),border-color var(--dur-2)}.booking-type.is-selected .booking-type__body::after,.booking-type input:checked + .booking-type__body::after{border-color:var(--brand-primary-deep);background:var(--brand-primary-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 0.7rem no-repeat}.booking-formats{display:grid;gap:0.75rem}@media (min-width:40rem){.booking-formats{grid-template-columns:repeat(3,minmax(0,1fr))}}.booking-format{position:relative;display:block;cursor:pointer}.booking-format input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.booking-format__body{display:grid;grid-template-columns:auto 1fr;gap:0.15rem 0.7rem;align-items:center;height:100%;padding:0.85rem 1rem;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--dur-2),box-shadow var(--dur-2),background-color var(--dur-2)}.booking-format__body .icon{grid-row:span 2;color:var(--brand-primary)}.booking-format__name{font-weight:600;color:var(--brand-dark)}.booking-format__detail{font-size:0.8rem;color:var(--brand-muted);line-height:1.35}.booking-format:hover .booking-format__body{border-color:var(--brand-primary)}.booking-format input:focus-visible + .booking-format__body{outline:3px solid var(--brand-primary);outline-offset:3px}.booking-format.is-selected .booking-format__body,.booking-format input:checked + .booking-format__body{border-color:var(--brand-primary-deep);background:var(--brand-tint);box-shadow:inset 0 0 0 1px var(--brand-primary-deep)}.booking-format.is-disabled{opacity:0.45}.booking-format.is-disabled input{cursor:not-allowed}.booking-format.is-disabled:hover .booking-format__body{border-color:var(--border)}.booking-picker{display:grid;gap:1.5rem}@media (min-width:48rem){.booking-picker{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}}.booking-cal{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.booking-cal__head{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:0.5rem}.booking-cal__month{margin:0;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--brand-dark);text-align:center}.booking-cal__nav{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;border:1.5px solid var(--border-strong);background:#fff;color:var(--brand-primary-deep);cursor:pointer;transition:background-color var(--dur-2),border-color var(--dur-2),color var(--dur-2)}.booking-cal__nav:hover:not(:disabled){background:var(--brand-tint);border-color:var(--brand-primary)}.booking-cal__nav:disabled{opacity:0.35;cursor:not-allowed}.booking-cal__table{width:100%;border-collapse:separate;border-spacing:0.2rem;table-layout:fixed}.booking-cal__table th{padding:0.35rem 0;font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--brand-muted)}.booking-cal__table td{padding:0;text-align:center}.booking-cal__day{display:grid;place-items:center;width:100%;aspect-ratio:1;max-height:3rem;border-radius:var(--radius-sm);border:1.5px solid transparent;background:transparent;color:var(--brand-muted);font-size:0.92rem;font-weight:500;cursor:default;transition:background-color var(--dur-2),color var(--dur-2),transform var(--dur-2) var(--ease-out),border-color var(--dur-2)}.booking-cal__day.is-free{background:var(--brand-tint);color:var(--brand-primary-deep);font-weight:600;cursor:pointer}.booking-cal__day.is-free:hover{background:var(--brand-tint-strong);transform:translateY(-1px)}.booking-cal__day.is-today{border-color:var(--border-strong)}.booking-cal__day.is-picked,.booking-cal__day.is-picked:hover{background:var(--brand-primary-deep);color:#fff;border-color:var(--brand-primary-deep)}.booking-cal__day:disabled{color:#b6bfbf}.booking-cal__legend{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem 0.6rem;margin:0.75rem 0 0;font-size:0.78rem;color:var(--brand-muted)}.booking-cal__key{display:inline-block;width:0.9rem;height:0.9rem;border-radius:0.2rem}.booking-cal__key--free{background:var(--brand-tint);border:1px solid var(--brand-tint-strong)}.booking-cal__key--picked{background:var(--brand-primary-deep);margin-left:0.5rem}[data-cal-body].is-loading{opacity:0.5}.booking-slots__title{margin:0 0 0.75rem;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--brand-dark)}.booking-slots__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:0.5rem;min-height:2.5rem}.booking-slots__list.is-loading{opacity:0.5}.booking-slot{position:relative;display:block}.booking-slot input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.booking-slot span{display:grid;place-items:center;min-height:2.6rem;padding:0.4rem 0.5rem;border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:#fff;color:var(--brand-primary-deep);font-weight:600;font-size:0.95rem;font-variant-numeric:tabular-nums;transition:background-color var(--dur-2),border-color var(--dur-2),color var(--dur-2),transform var(--dur-2) var(--ease-out)}.booking-slot:hover span{border-color:var(--brand-primary);transform:translateY(-1px)}.booking-slot input:focus-visible + span{outline:3px solid var(--brand-primary);outline-offset:2px}.booking-slot input:checked + span,.booking-slot.is-selected span{background:var(--brand-primary-deep);border-color:var(--brand-primary-deep);color:#fff}.booking-slots__empty{margin:0;font-size:0.92rem;color:var(--brand-muted)}.booking-choice{display:flex;gap:0.5rem;align-items:center;margin:1rem 0 0;padding:0.75rem 1rem;background:var(--brand-tint);border-radius:var(--radius-sm);font-weight:600;color:var(--brand-ink);animation:rise var(--dur-3) var(--ease-out)}.booking-choice .icon{color:var(--brand-primary-deep);flex-shrink:0}.js .booking-fallback{display:none}.booking-radios{display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;min-height:3rem;align-items:center}.booking-radio{display:inline-flex;gap:0.5rem;align-items:center;cursor:pointer}.booking-radio input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--brand-primary-deep)}.booking-current{margin:0 0 1.75rem;padding:1rem 1.25rem;background:var(--brand-tint);border-radius:var(--radius-md)}.booking-current__label{margin:0 0 0.2rem;font-size:0.78rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--brand-primary-deep)}.booking-current__value{margin:0;font-weight:600;color:var(--brand-ink)}.booking-panel{padding:clamp(1.25rem,3vw,2rem);background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.booking-panel--done{animation:rise var(--dur-3) var(--ease-out)}.booking-panel--error{border-color:#f0c9c5}.booking-panel__title{margin:0 0 0.75rem;font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem)}.booking-panel__intro{margin:0 0 1.25rem;color:var(--brand-muted)}.booking-summary{display:grid;gap:1.25rem}.booking-summary__lead{display:flex;gap:0.75rem;align-items:flex-start;margin:0;padding:1rem 1.15rem;background:var(--brand-tint);border-radius:var(--radius-md);font-weight:600;color:var(--brand-ink)}.booking-summary__lead .icon{color:var(--brand-primary-deep);flex-shrink:0;margin-top:0.1rem}.booking-summary--cancelled .booking-summary__lead{background:var(--surface-alt)}.booking-summary__status{display:flex;flex-wrap:wrap;gap:0.5rem 0.75rem;align-items:center;margin:0}.booking-summary__hint{font-size:0.9rem;color:var(--brand-muted)}.booking-pill{display:inline-flex;align-items:center;min-height:1.75rem;padding:0.2rem 0.75rem;border-radius:999px;font-size:0.78rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;background:var(--brand-tint);color:var(--brand-primary-deep)}.booking-pill--requested{background:#fdf1e3;color:#8a4b0d}.booking-pill--confirmed{background:var(--brand-primary-deep);color:#fff}.booking-pill--cancelled{background:#fbeeed;color:#7a1c15}.booking-pill--completed{background:var(--surface-alt);color:var(--brand-muted)}.booking-summary__list{display:grid;gap:0.6rem;margin:0}.booking-summary__list>div{display:grid;grid-template-columns:7.75rem minmax(0,1fr);gap:0.25rem 1rem;padding:0.6rem 0;border-bottom:1px solid var(--border)}.booking-summary__list>div:last-child{border-bottom:0}.booking-summary__list dt{margin:0;font-size:0.8rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--brand-muted);padding-top:0.15rem}.booking-summary__list dd{margin:0;font-weight:600;color:var(--brand-dark);overflow-wrap:anywhere}.booking-summary__muted{font-weight:400;color:var(--brand-muted)}.booking-summary__notes{white-space:pre-wrap;font-weight:400}.booking-summary__label{margin:0 0 0.6rem;font-size:0.8rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--brand-muted)}.booking-summary__note{margin:0;font-size:0.92rem;color:var(--brand-muted)}.booking-actions{display:grid;gap:1rem;padding-top:1.25rem;border-top:1px solid var(--border);justify-items:start}.booking-actions__form{display:grid;gap:0.6rem;justify-items:start}.booking-actions__form input[type="text"]{width:100%;max-width:32rem;min-height:2.75rem;padding:0.55rem 0.85rem;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm)}.booking-actions__form .form-actions__note{margin:0}@media (max-width:30rem){.booking-summary__list>div{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.booking-type:hover .booking-type__body,.booking-cal__day.is-free:hover,.booking-slot:hover span{transform:none}}@media print{.booking-cal,.booking-slots,.booking-actions,.booking__aside,.booking-fallback{display:none !important}.booking-panel{border:0;box-shadow:none;padding:0}}
