.booking-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:36px;align-items:start;padding-block:48px 80px;max-width:1120px}
.booking-card{background:#fff;border:1px solid var(--line,#dfe7e7);border-radius:20px;padding:clamp(22px,4vw,42px);box-shadow:0 16px 56px rgba(20,45,50,.045)}
.booking-step{border:0;padding:0;margin:0 0 32px;min-width:0}.booking-step legend{display:flex;align-items:center;gap:12px;font-weight:650;font-size:1.18rem;margin-bottom:22px}.booking-step legend span{font-family:var(--font-body);font-size:.75rem;border:1px solid var(--line,#dfe7e7);border-radius:50%;width:32px;height:32px;display:inline-grid;place-items:center;color:var(--brand-ink)}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-field{min-width:0}.booking-field--wide{grid-column:1/-1}.booking-field label{display:block;font-size:.88rem;font-weight:600;margin-bottom:7px}
.booking-field input,.booking-field select,.booking-field textarea{font:inherit;line-height:1.5;color:var(--ink,#142b32);background:#fbfcfc;border:1px solid #cdd8d9;border-radius:9px;width:100%;min-height:48px;padding:10px 12px}.booking-field select:disabled{opacity:.6}.booking-field textarea{resize:vertical}.booking-field :is(input,select,textarea):focus{outline:2px solid var(--brand);outline-offset:2px}.booking-field.field--error :is(input,select,textarea){border-color:#b42318}
.booking-time{max-width:260px}.booking-slot-status{font-size:.87rem;color:var(--muted,#596d72);margin:16px 0 12px}.booking-timezone{font-size:.76rem;color:var(--muted,#596d72);margin:8px 0 0}.booking-find{margin-top:18px}
.booking-warning{font-size:.82rem;line-height:1.65;color:var(--muted,#596d72);padding:14px 16px;background:#f3f7f7;border-radius:9px;margin:0 0 18px}.booking-consent{display:flex;gap:10px;align-items:flex-start;font-size:.85rem}.booking-consent input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:var(--brand)}.booking-submit{margin-top:24px;width:100%;justify-content:center}
.booking-aside{position:sticky;top:120px;border-radius:20px;padding:30px;background:var(--bg-alt,#f0f6f6)}.booking-aside__icon{display:inline-flex;padding:12px;background:#fff;border-radius:14px;color:var(--brand-ink);margin-bottom:22px}.booking-aside h2{font-size:1.4rem;margin:0 0 12px;line-height:1.4}.booking-aside h3{font-size:1.08rem;margin:0 0 8px}.booking-aside p{font-size:.92rem;color:var(--muted,#596d72);line-height:1.7}.booking-aside hr{border:0;border-top:1px solid var(--line,#dfe7e7);margin:26px 0}.booking-aside a{overflow-wrap:anywhere;display:block;margin-top:10px;font-size:.9rem}.booking-aside .booking-phone{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:650;margin-top:22px}
.booking-success{text-align:center;margin-bottom:28px}.booking-success__icon{display:grid;place-items:center;background:#e1f2eb;color:#0c6b4b;width:56px;height:56px;border-radius:50%;margin:0 auto 18px;font-size:26px}.booking-success__icon svg{display:none}.booking-success h2{font-size:1.65rem;margin-bottom:14px}.booking-success p{color:var(--brand-ink);font-weight:650}.booking-receipt{display:grid;grid-template-columns:auto 1fr;gap:12px 22px;padding:24px 0;border-block:1px solid var(--line,#dfe7e7)}.booking-receipt dt{color:var(--muted,#596d72)}.booking-receipt dd{margin:0;font-weight:600}.booking-receipt small{display:block;font-weight:400}.booking-email-note{font-size:.9rem;margin:20px 0;color:var(--muted,#596d72)}
@media(max-width:800px){.booking-layout{grid-template-columns:1fr;gap:24px;padding-block:24px 48px}.booking-aside{position:static}.booking-aside__icon{display:none}}
@media(max-width:480px){.booking-fields{grid-template-columns:1fr}.booking-time{max-width:none}.booking-card{padding:22px 18px}.booking-receipt{grid-template-columns:1fr;gap:4px}.booking-receipt dd{margin-bottom:12px}}
.booking-hint{font-size:.87rem;color:var(--muted,#596d72);background:#f3f7f7;border-radius:9px;padding:10px 14px;margin:0 0 18px}
/* calendar-first flow */
.booking-step__title{display:flex;align-items:center;gap:12px;font-weight:650;font-size:1.18rem;margin:0 0 18px}
.booking-step__title span{font-family:var(--font-body);font-size:.75rem;border:1px solid var(--line,#dfe7e7);border-radius:50%;width:32px;height:32px;display:inline-grid;place-items:center;color:var(--brand-ink)}
.booking-cal{margin-bottom:34px}
.booking-cal__panel{border:1px solid var(--line,#dfe7e7);border-radius:14px;padding:14px;background:#fbfcfc;max-width:420px}
.booking-cal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.booking-cal__head strong{font-size:1.02rem;text-transform:capitalize}
.booking-cal__nav{font:inherit;font-size:1.3rem;line-height:1;background:#fff;border:1px solid var(--line,#dfe7e7);border-radius:9px;width:38px;height:38px;display:grid;place-items:center;cursor:pointer;color:var(--brand-ink)}
.booking-cal__nav:hover:not(:disabled){background:var(--bg-alt,#f0f6f6)}
.booking-cal__nav:disabled{opacity:.3;cursor:default}
.booking-cal__nav:focus-visible,.booking-day:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.booking-cal__dow,.booking-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.booking-cal__dow{margin-bottom:4px}
.booking-cal__dow span{text-align:center;font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#596d72)}
.booking-day{font:inherit;font-variant-numeric:tabular-nums;aspect-ratio:1/1;min-height:42px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted,#596d72);cursor:default;padding:0}
.booking-day--out{visibility:hidden}
.booking-day:disabled{opacity:.45}
.booking-day.is-free{background:#fff;border-color:#cdd8d9;color:var(--ink,#142b32);font-weight:620;cursor:pointer}
.booking-day.is-free:hover{border-color:var(--brand);background:var(--bg-alt,#f0f6f6)}
.booking-day.is-today{box-shadow:inset 0 0 0 1px var(--brand)}
.booking-day[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.booking-cal__legend{font-size:.8rem;color:var(--muted,#596d72);margin:12px 0 0;display:flex;align-items:center;gap:8px;max-width:420px}
.booking-cal__legend .booking-cal__key{order:-1}
.booking-cal__key{width:16px;height:16px;border-radius:5px;background:#fff;border:1px solid #cdd8d9;flex:none}
.booking-chosen[hidden],.booking-step[hidden]{display:none}
.booking-chosen{display:flex;flex-wrap:wrap;gap:4px;font-weight:650;color:var(--brand-ink);background:var(--bg-alt,#f0f6f6);border-radius:10px;padding:12px 16px;margin:0 0 24px;text-transform:capitalize}
.booking-times{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.booking-pill{position:relative;display:inline-flex}
.booking-pill input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer}
.booking-pill span{display:inline-grid;place-items:center;min-width:74px;min-height:44px;padding:0 14px;border:1px solid #cdd8d9;border-radius:10px;background:#fff;font-size:.95rem;font-variant-numeric:tabular-nums}
.booking-pill:hover span{border-color:var(--brand)}
.booking-pill input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.booking-pill input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:650}
@media(max-width:480px){.booking-day{min-height:38px}.booking-pill span{min-width:64px}}
