.availability-calendars { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,360px),1fr)); gap: 24px; }
.availability-apartment { padding: 24px; border: 1px solid #d9cbb7; background: #fff; }
.availability-toolbar, .availability-legend { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0; }
.availability-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.availability-day, .availability-weekday { padding: 10px 0; text-align: center; font-size: 13px; }
.availability-day { background: #f6f2ea; color: #283744; border: 1px solid #ded8ce; }
.availability-day.is-empty { visibility: hidden; }
.availability-months { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); gap: 24px; }
.availability-selector { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 24px 0; }
.availability-selector select { width: auto; max-width: 100%; min-height: 48px; padding: 10px 36px 10px 14px; border: 1px solid #d9cbb7; background: #fff; color: #283744; font: inherit; }
.availability-selector label { font-weight: 600; }
#availability-title { scroll-margin-top: 120px; }
@media (max-width: 600px) {
  .availability-selector { align-items: stretch; flex-direction: column; }
  .availability-toolbar .button { padding: 12px; font-size: 11px; }
  .availability-apartment { padding: 16px; }
}
.availability-legend span { display: inline-flex; align-items: center; gap: 6px; }
.availability-legend i { display: inline-block; width: 20px; height: 20px; border: 1px solid #ded8ce; background: #f6f2ea; }
.availability-day.is-occupied, .availability-legend .is-occupied,
.calendar-day.occupancy-occupied { background: #b8cfe9; color: #283744; opacity: 1; }
.availability-day.is-arrival, .availability-legend .is-arrival,
.calendar-day.occupancy-arrival { background: linear-gradient(135deg,#f6f2ea 49%,#b8cfe9 50%); color: #283744; opacity: 1; }
.availability-day.is-departure, .availability-legend .is-departure,
.calendar-day.occupancy-departure { background: linear-gradient(135deg,#b8cfe9 49%,#f6f2ea 50%); color: #283744; opacity: 1; }
.availability-day.is-turnover, .availability-legend .is-turnover,
.calendar-day.occupancy-turnover { background: linear-gradient(135deg,#b8cfe9 49%,#fff 50% 51%,#b8cfe9 52%); color: #283744; opacity: 1; }
.calendar-day.is-selected { outline: 2px solid #72552d; outline-offset: -2px; }
.availability-day.is-unknown { background: #ece8e1; color: #675e53; border: 1px dashed #9d9284; }
.page-hero.booking-paused-hero { min-height: 75svh; display: flex; align-items: center; padding-top: clamp(140px, 15vw, 200px); padding-bottom: 80px; }
.booking-paused-hero::before { background: linear-gradient(90deg, rgba(22,31,32,.88), rgba(22,31,32,.62)); }
.booking-paused-content { position: relative; z-index: 1; max-width: 760px; }
.booking-paused-content h1 { margin-bottom: 24px; }
.booking-paused-content p { max-width: 60ch; line-height: 1.65; }
.booking-paused-actions { display: flex; flex-wrap: wrap; gap: 16px; margin: 32px 0 16px; }
.booking-paused-actions .button { min-height: 48px; text-shadow: none; }
.booking-paused-actions .button:focus-visible { outline: 3px solid white; outline-offset: 5px; }
.booking-paused-content .booking-paused-footnote { font-size: 14px; }
@media (max-width: 600px) {
  .booking-paused-actions { flex-direction: column; }
  .booking-paused-actions .button { width: 100%; white-space: normal; text-align: center; }
}
