.booking-block{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.booking-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}
.booking-heading p{margin:6px 0 0;max-width:420px;color:var(--muted);font-size:11px;line-height:1.55}
.booking-step{font-family:'Cormorant Garamond',serif;font-size:26px;color:#a49d93}
.booking-rate{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}
.booking-rate span{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}
.booking-rate strong{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500}
.booking-choices{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:#fff;margin-bottom:14px}
.booking-choice{padding:13px 15px;min-height:62px;display:flex;flex-direction:column;gap:6px}
.booking-choice+ .booking-choice{border-left:1px solid var(--line)}
.booking-choice>span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.booking-choice strong{font-size:12px;font-weight:500}
.booking-choice select{width:100%;border:0;background:transparent;padding:0;outline:none;font-size:12px;color:var(--ink)}
.calendar-toolbar{margin:2px 0 7px}
.calendar-toolbar strong{font-size:21px}
.calendar-toolbar button{width:32px;height:32px;border:1px solid var(--line);background:#fff;transition:.2s}
.calendar-toolbar button:hover:not(:disabled){background:#111;color:#fff;border-color:#111}
.calendar-toolbar button:disabled{opacity:.28;cursor:not-allowed}
.calendar-weekdays span{font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:4px 2px}
.calendar-grid{gap:3px}
.cal-day{position:relative;min-height:31px;border-color:#ded8cf;transition:background .15s,border-color .15s,color .15s,transform .15s}
.cal-day.free{background:#fff}
.cal-day.free:hover{border-color:#111;transform:translateY(-1px)}
.cal-day.blocked{background:#e8e3dc;color:#82796f;text-decoration:none;cursor:not-allowed;border-color:#d3cabf}
.cal-day.blocked:before{content:'';position:absolute;inset:4px;border:1px solid rgba(130,121,111,.32)}
.cal-day.blocked:after{content:'';position:absolute;left:20%;right:20%;top:50%;height:1px;background:#82796f;transform:rotate(-28deg)}
.cal-day.min-range{background:#f0ece5;color:#a8a097;border-color:#e2dbd2;cursor:not-allowed}
.cal-day.min-range:before{content:'';position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:#a8a097;transform:translateX(-50%)}
.cal-day.past{background:#f5f2ed;color:#cbc5bc;border-color:#ebe6df;cursor:not-allowed}
.cal-day.selected,.cal-day.selected.free{background:#111;color:#fff;border-color:#111}
.cal-day.today:not(.selected):before{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#111;bottom:5px;left:50%;transform:translateX(-50%)}
.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;padding:10px 0 14px;border-bottom:1px solid var(--line)}
.calendar-legend span{display:inline-flex;align-items:center;gap:7px;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.legend-dot{width:10px;height:10px;border:1px solid var(--line);display:inline-block;background:#fff}
.legend-dot--booked{background:#e8e3dc}
.legend-dot--selected{background:#111;border-color:#111}
.legend-dot--past{background:#f5f2ed;border-color:#ebe6df}
.date-summary{display:block;margin-top:12px;padding:12px 14px;background:#efebe5;border:0;font-size:12px}
.date-summary__dates{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.date-summary__dates b{font-weight:400;color:#9c958b}
.date-summary__dates em{margin-left:auto;font-style:normal;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.rental-price-calc{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(17,17,15,.12)}
.rental-price-calc span{font-size:10px;letter-spacing:.06em;color:var(--muted)}
.rental-price-calc strong{font-family:'Cormorant Garamond',serif;font-size:26px;line-height:1;font-weight:500}
.reservation-form{padding-top:2px}
.reservation-form input,.reservation-form textarea,.reservation-form select{border-radius:0}
.reservation-form .btn-dark:disabled{opacity:.55;cursor:wait}
.form-message{min-height:18px;line-height:1.55}
.form-message.success{padding:14px 16px;background:#edf3ed;color:#315c3e}
.form-message.success strong{display:block;font-weight:500}
.form-message.error{padding:12px 14px;background:#f7eeee;color:#8f3434}
.form-message.muted{color:var(--muted)}
.booking-code,.booking-price-confirm{display:block;margin-top:6px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.booking-price-confirm{font-weight:600}
.booking-block.is-loading #bookingCalendar{opacity:.55;pointer-events:none}
.size-list{display:flex;gap:8px;flex-wrap:wrap}
.size-list span{min-width:42px;padding:8px 10px;text-align:center;border:1px solid var(--line);background:#fff;font-size:10px}
.purchase-note{margin-top:28px;padding:18px 0;color:var(--muted);line-height:1.7;border-top:1px solid var(--line)}
@media(max-width:600px){.booking-choices{grid-template-columns:1fr}.booking-choice+ .booking-choice{border-left:0;border-top:1px solid var(--line)}.calendar-grid{gap:3px}.cal-day{font-size:10px}.calendar-legend{gap:10px}.booking-heading{gap:12px}.booking-rate strong{font-size:24px}.date-summary__dates em{width:100%;margin-left:0}.rental-price-calc strong{font-size:26px}}
