@layer components{.booking{align-items:start;gap:2rem;display:grid}.booking-steps{gap:2rem;min-width:0;display:grid}.booking-step{border:0;min-width:0;margin:0;padding:0}.booking-step legend{font-family:var(--font-display);align-items:center;gap:.75rem;margin-bottom:1.1rem;font-size:1.35rem;font-weight:600;display:flex}.booking-step legend span{background:var(--color-clay);color:#fff;width:1.9rem;height:1.9rem;font-family:var(--font-sans);border-radius:999px;place-items:center;font-size:.85rem;display:inline-grid}.booking-apartments{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.9rem;display:grid}.booking-apartment{border:2px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);cursor:pointer;transition:border-color var(--motion-fast), box-shadow var(--motion-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.booking-apartment:hover{border-color:var(--color-ink-soft)}.booking-apartment:has(input:checked){border-color:var(--color-clay);box-shadow:var(--shadow-card)}.booking-apartment:has(input:focus-visible){outline:2px solid var(--focus-color);outline-offset:2px}.booking-apartment input{z-index:1;width:1.25rem;height:1.25rem;accent-color:var(--color-clay);position:absolute;top:.75rem;right:.75rem}.booking-apartment-photo{aspect-ratio:16/10;background:var(--color-sand);display:block;position:relative}.booking-apartment-body{color:var(--color-ink-soft);gap:.25rem;padding:.85rem 1rem 1rem;font-size:.8rem;display:grid}.booking-apartment-body strong{color:var(--color-ink);align-items:center;gap:.5rem;font-size:1rem;display:flex}.booking-apartment-body i{border-radius:999px;width:.6rem;height:.6rem}.booking-apartment-body b{color:var(--color-ink)}.booking-grid-2,.booking-grid-3{gap:1.1rem;display:grid}.booking-check{border-radius:var(--radius-control);background:var(--color-sand);color:var(--color-ink-soft);margin-top:1rem;padding:.7rem .9rem;font-size:.85rem;font-weight:600}.booking-check[data-state=free]{background:color-mix(in srgb, var(--color-moss) 12%, transparent);color:var(--color-moss)}.booking-check[data-state=booked]{background:color-mix(in srgb, var(--color-berry) 10%, transparent);color:var(--color-berry)}.booking-payment{gap:.5rem;margin-top:1.25rem;font-size:.9rem;display:grid}.booking-payment label{align-items:center;gap:.6rem;min-height:44px;display:flex}.booking-payment input{width:1.1rem;height:1.1rem;accent-color:var(--color-clay)}.booking-summary{gap:1rem;padding:1.5rem;display:grid}.booking-summary h2{font-size:1.35rem}.booking-summary-photo{aspect-ratio:16/9;border-radius:var(--radius-control);background:var(--color-sand);position:relative;overflow:hidden}.booking-summary-name{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.booking-facts{border-top:1px solid var(--color-line);display:grid}.booking-facts>div{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:1rem;padding-block:.6rem;font-size:.85rem;display:flex}.booking-facts dt{color:var(--color-ink-soft)}.booking-facts dd{text-align:right;font-weight:600}.booking-total{justify-content:space-between;align-items:baseline;font-size:1rem;display:flex}.booking-total strong{font-size:1.5rem}.booking-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-berry) 10%, transparent);color:var(--color-berry);padding:.7rem .9rem;font-size:.85rem;font-weight:600}.booking-muted{color:var(--color-ink-soft);font-size:.9rem;line-height:1.7}.booking-small{font-size:.75rem}.booking-message{margin-top:1.25rem}.booking-calendar{margin-top:1.5rem}.booking-confirmation{border-top:4px solid var(--color-moss);gap:1.25rem;max-width:44rem;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.booking-confirmation .eyebrow{color:var(--color-moss)}@media (min-width:640px){.booking-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.booking{grid-template-columns:minmax(0,1fr) 22rem;gap:3rem}.booking-summary{position:sticky;top:7rem}}}
