.booking-section{padding-top:clamp(2rem,1.5rem + 3vw,3.5rem)}.noscript-note{background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem}.booking{display:grid;gap:1.5rem;align-items:start}.stepper{list-style:none;padding:0;margin:0 0 1.75rem;display:flex;flex-wrap:wrap;gap:.4rem}.stepper li{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-faint);padding:.3rem .55rem;border-radius:var(--radius);border:var(--bw) solid transparent}.stepper li span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--radius);background:var(--color-surface-2);color:var(--color-ink-soft);font-size:.7rem}.stepper li[data-state=active]{color:var(--color-accent-fg);background:var(--color-accent);border-color:var(--color-accent)}.stepper li[data-state=active] span{background:var(--color-accent-fg);color:var(--color-accent)}.stepper li[data-state=done]{color:var(--color-ink-soft);border-color:var(--color-line)}.stepper li[data-state=done] span{background:var(--color-accent);color:var(--color-accent-fg)}.panels{background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);padding:clamp(1.25rem,1rem + 2vw,2rem);min-height:320px}.panel__title{font-size:var(--fs-600);margin-bottom:.5rem}.panel__opt{color:var(--color-ink-faint);font-family:var(--font-sans);font-size:.9rem;font-weight:400}.panel__sub{color:var(--color-ink-soft);margin-bottom:1.25rem;font-size:.95rem}.panel__label{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faint);margin:1.25rem 0 .75rem}.room-picker{display:grid;gap:.9rem}.room-opt{position:relative;display:grid;gap:.25rem;text-align:left;padding:1.1rem 1.25rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),background var(--transition),color var(--transition)}@media(hover:hover){.room-opt:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-hard-sm)}}.room-opt[data-selected=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-fg)}.room-opt[data-selected=true] .room-opt__meta,.room-opt[data-selected=true] .room-opt__price{color:var(--color-accent-fg)}.room-opt__name{font-family:var(--font-display);font-weight:600;font-size:1.1rem}.room-opt__price{color:var(--color-ink);font-family:var(--font-mono);font-size:.9rem}.room-opt__tick{position:absolute;top:1.1rem;right:1.25rem;width:22px;height:22px;border-radius:var(--radius);display:grid;place-items:center;background:var(--color-accent-fg);color:var(--color-accent);opacity:0;transform:scale(.6);transition:all var(--transition)}.room-opt[data-selected=true] .room-opt__tick{opacity:1;transform:scale(1)}.calendar{max-width:420px;border:var(--bw) solid var(--color-border);border-radius:var(--radius);padding:1rem}.calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar__month{font-family:var(--font-display);font-weight:600;font-size:1.1rem}.calendar__nav{width:40px;height:40px;background:var(--color-bg);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);color:var(--color-ink);font-size:1.2rem;cursor:pointer}.calendar__nav:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.calendar__nav:disabled{opacity:.3;cursor:not-allowed}.calendar__dow{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;margin-bottom:.4rem;font-family:var(--font-mono);font-size:.7rem;color:var(--color-ink-faint);text-align:center}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;transition:opacity var(--transition)}.calendar[data-loading=true] .calendar__grid{opacity:.4;pointer-events:none}[data-panel=time] .review__error{margin:0 0 1rem}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-ink);font-size:.9rem;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.cal-day:hover:not(:disabled){border-color:var(--color-accent)}.cal-day:disabled{opacity:.28;cursor:not-allowed}.cal-day--empty{background:transparent;border:0;cursor:default}.cal-day[data-selected=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent);font-weight:700}.cal-day__dot{width:6px;height:6px;border-radius:999px}.cal-day[data-selected=true] .cal-day__dot{display:none}.dot--free,.cal-day__dot.free{background:var(--color-ink)}.dot--busy,.cal-day__dot.busy{background:var(--color-ink-faint)}.dot--full,.cal-day__dot.full{background:transparent;border:1px solid var(--color-border)}.calendar__legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;margin-top:1rem;font-size:.8rem;color:var(--color-ink-soft)}.dot{width:8px;height:8px;border-radius:999px;display:inline-block;margin-right:.3rem}.duration{display:flex;flex-wrap:wrap;gap:.5rem}.dur-opt{padding:.6rem 1rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);color:var(--color-ink);cursor:pointer;font-family:var(--font-mono);font-size:.85rem;transition:all var(--transition)}@media(hover:hover){.dur-opt:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:var(--shadow-hard-sm)}}.dur-opt:disabled{opacity:.3;cursor:not-allowed}.dur-opt[data-selected=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent);font-weight:700}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.5rem}.slot{padding:.6rem .4rem;border-radius:var(--radius);border:var(--bw) solid var(--color-border);background:var(--color-surface);color:var(--color-ink);cursor:pointer;text-align:center;font-family:var(--font-mono);font-size:.85rem;transition:all var(--transition)}.slot small{display:block;font-size:.62rem;color:var(--color-ink-faint);margin-top:2px}.slot--off{background:var(--color-surface)}.slot--peak{background:repeating-linear-gradient(45deg,var(--color-surface),var(--color-surface) 5px,var(--color-line) 5px,var(--color-line) 7px)}@media(hover:hover){.slot:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:var(--shadow-hard-sm)}}.slot:disabled{opacity:.3;cursor:not-allowed;text-decoration:line-through}.slot[data-selected=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent);font-weight:700}.slot[data-selected=true] small{color:var(--color-accent-fg)}.slots__legend,.chip{font-size:.75rem}.slots__legend{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.2rem .6rem;border-radius:var(--radius);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.chip--off{border:var(--bw) solid var(--color-border);color:var(--color-ink);background:var(--color-surface)}.chip--peak{border:var(--bw) solid var(--color-border);color:var(--color-ink);background:repeating-linear-gradient(45deg,var(--color-surface),var(--color-surface) 5px,var(--color-line) 5px,var(--color-line) 7px)}.chip--taken{border:var(--bw) solid var(--color-ink-faint);color:var(--color-ink-faint);text-decoration:line-through}.details-form{display:grid;gap:1.1rem;max-width:520px}.field{display:grid;gap:.4rem}.field-row{display:grid;gap:1.1rem}.field label{font-family:var(--font-display);font-weight:500;font-size:.9rem}.field input{padding:.75rem .9rem;background:var(--color-bg);border:var(--bw) solid var(--color-border);border-radius:var(--radius);color:var(--color-ink)}.field input:focus{outline:none;border-color:var(--color-accent)}@media(min-width:560px){.field-row{grid-template-columns:1fr 1fr}}.review{display:grid;gap:.6rem}.review__row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--color-line)}.review__row dt,.review__row-label{color:var(--color-ink-soft)}.review__row dd,.review__row-value{color:var(--color-ink);font-weight:600;text-align:right}.review__row--total{border-bottom:0;font-size:1.15rem}.review__row--total .review__row-value{color:var(--color-accent);font-family:var(--font-display)}.review__disclaimer,.confirmation__note{margin-top:1.25rem;font-size:.85rem;color:var(--color-ink-soft);background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:.75rem 1rem}.pay-methods{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}.pay-methods img{display:block;height:24px;width:auto;border-radius:3px}.review__error{margin-top:1rem;font-size:.9rem;color:#ffb4ae;background:var(--color-accent-tint);border:1px solid var(--color-accent-deep);border-radius:var(--radius-sm);padding:.75rem 1rem}.member-code{margin-top:1.25rem;display:grid;gap:.4rem}.member-code__label{font-family:var(--font-display);font-weight:500;font-size:.9rem}.member-code__row{display:flex;gap:.5rem}.member-code__row input{flex:1;min-width:0;padding:.7rem .9rem;background:var(--color-bg);border:var(--bw) solid var(--color-border);border-radius:var(--radius);color:var(--color-ink);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.member-code__row input:focus{outline:none;border-color:var(--color-accent)}.member-code__row .btn{padding:.7rem 1.1rem}.member-code__msg{font-size:.85rem;color:var(--color-ink-soft)}.member-code__msg[data-tone=error]{color:#ffb4ae}.review__fallback{margin-top:1rem;font-size:.85rem;color:var(--color-ink-faint)}.booking__nav{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}.booking__nav [data-next],.booking__nav [data-confirm]{margin-left:auto}.booking__nav [data-back]{margin-right:auto}.btn[data-invalid=true]{opacity:.5}.summary{background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-hard);padding:1.5rem}.summary__title{font-size:var(--fs-600);margin-bottom:1rem}.summary__list{margin:0 0 1rem;display:grid;gap:.6rem}.summary__row{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}.summary__row dt{color:var(--color-ink-faint)}.summary__row dd{color:var(--color-ink);text-align:right;font-weight:600}.summary__totals{border-top:1px solid var(--color-line);padding-top:1rem;display:grid;gap:.5rem}.summary__line{display:flex;justify-content:space-between;font-size:.9rem;color:var(--color-ink-soft)}.summary__line--total{font-size:1.4rem;color:var(--color-ink);font-family:var(--font-display);font-weight:700}.summary__line--total span:last-child{color:var(--color-accent)}.summary__hint{margin-top:1rem;font-size:.82rem;color:var(--color-ink-faint)}.confirmation__card{max-width:620px;margin:2rem auto;text-align:center;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-hard);padding:clamp(1.75rem,1.2rem + 3vw,3rem)}.confirmation__icon{font-size:2.5rem}.confirmation__card .review{text-align:left;margin:1.25rem auto 0;max-width:420px}.confirmation__actions{justify-content:center;margin-top:1.5rem}.booking__bar-total{display:none}@media(max-width:899px){.booking{scroll-margin-top:72px}.summary{display:none}.booking__nav{position:sticky;bottom:0;z-index:20;margin:1rem calc(var(--gutter) * -1) 0;padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));background:var(--color-bg);border-top:1px solid var(--color-line-strong);flex-wrap:nowrap;align-items:center;gap:.6rem}.booking__bar-total{display:grid;margin-right:auto;line-height:1.15}.booking__bar-total span{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faint)}.booking__bar-total strong{font-family:var(--font-display);font-size:1.35rem;color:var(--color-ink)}.booking[data-step=review] .booking__bar-total{display:none}.booking__nav [data-next],.booking__nav [data-confirm],.booking__nav [data-back]{margin:0}.booking__nav .btn{min-height:48px;padding:.8rem 1.1rem}.booking__nav [data-confirm]{flex:1 1 auto;font-size:.95rem}}@media(max-width:619px){.stepper{flex-wrap:nowrap;margin-bottom:1rem}.stepper li{font-size:0;gap:0;padding:.25rem}.stepper li span{width:24px;height:24px;font-size:.72rem}.stepper li[data-state=active]{font-size:.72rem;gap:.45rem;padding:.25rem .65rem .25rem .25rem}.panels{margin-inline:calc(var(--gutter) * -1);border-left:0;border-right:0;border-radius:0;padding:1.25rem var(--gutter);min-height:0}.calendar{max-width:none;border:0;padding:0}.calendar__nav{width:44px;height:44px}.calendar__grid,.calendar__dow{gap:.25rem}.cal-day{min-height:44px;font-size:1rem}.duration{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dur-opt{min-height:44px;padding:.7rem .25rem}.slots{grid-template-columns:repeat(4,minmax(0,1fr))}.slot{min-height:56px}.slot small{font-size:.68rem}.review__fallback a{display:inline-block;padding-block:.5rem}}@media(min-width:900px){.booking{grid-template-columns:1fr 340px}.summary{position:sticky;top:90px}}
