.availability-calendar-section { margin-bottom: clamp(85px, 11vw, 145px); }

.availability-calendar-section__lead { margin: -4px 0 25px; color: #526159; }

.availability-calendar-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: -10px 0 22px; padding: 0; list-style: none; }

.availability-calendar-legend li { padding: 4px 11px; color: #46574d; font-size: 10px; font-weight: 500; line-height: 1.5; }

.availability-calendar-legend .is-rate-h { background: #f4dfdc; }

.availability-calendar-legend .is-rate-s { background: #f4edd3; }

.availability-calendar-legend .is-rate-l { background: #deebf3; }

.availability-calendar-loader__status, .availability-calendar-loader__error { padding: 36px; color: #68756e; text-align: center; background: rgba(255, 255, 255, .62); border: 1px solid #d7d5cd; }

.availability-calendar-loader__retry { display: inline-flex; min-height: 42px; margin-top: 13px; padding: 0 20px; align-items: center; color: #fff; font: inherit; background: #1c352b; border: 0; cursor: pointer; }

.availability-calendar { display: grid; min-width: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 22px; }

.availability-calendar__month { min-width: 0; padding: 20px; background: #fff; border: 1px solid #d7d5cd; }

.availability-calendar__month-title { margin: 0 0 14px; color: #1c352b; font-family: "Montserrat", sans-serif; font-size: 18px; font-weight: 600; letter-spacing: .04em; text-align: center; }

.availability-calendar__table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }

.availability-calendar__table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.availability-calendar__weekday { padding: 0 0 9px; color: #607067; font-size: 11px; font-weight: 500; text-align: center; }

.availability-calendar__weekday:first-child { color: #a6524d; }

.availability-calendar__weekday:last-child { color: #4d708f; }

.availability-calendar__day { height: 69px; padding: 5px 2px; vertical-align: top; text-align: center; border: 1px solid #e4e3dc; }

.availability-calendar__day.is-empty { background: #f7f6f2; }

.availability-calendar__day.is-available { background: #e9f0e7; }

.availability-calendar__day.is-full, .availability-calendar__day.is-closed { background: #f1f0eb; }

.availability-calendar__day.is-outside-booking-window { color: #a0aaa4; background: #faf9f6; }

.availability-calendar__day.is-rate-h { background: #f4dfdc; }

.availability-calendar__day.is-rate-s { background: #f4edd3; }

.availability-calendar__day.is-rate-l { background: #deebf3; }

.availability-calendar__date { display: block; color: #1c352b; font-family: "Montserrat", sans-serif; font-size: 11px; font-weight: 600; }

.availability-calendar__day.is-sunday .availability-calendar__date, .availability-calendar__day.is-holiday .availability-calendar__date { color: #a6524d; }

.availability-calendar__day.is-saturday .availability-calendar__date { color: #4d708f; }

.availability-calendar__holiday-name { display: block; overflow: hidden; margin-top: 1px; color: #a6524d; font-size: 8px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }

.availability-calendar__status { display: block; margin-top: 5px; overflow-wrap: anywhere; color: #65746b; font-size: 9px; font-weight: 500; line-height: 1.2; }

.availability-calendar__day.is-available .availability-calendar__status, .availability-calendar__day.is-full .availability-calendar__status { margin-top: 3px; font-family: "Montserrat", sans-serif; font-size: 18px; font-weight: 700; line-height: 1; white-space: nowrap; }

.availability-calendar__day.is-available .availability-calendar__status { color: #2c6493; }

.availability-calendar__day.is-full .availability-calendar__status { color: #b14d48; font-size: 16px; font-weight: 400; }

.availability-calendar__day.is-closed .availability-calendar__status, .availability-calendar__day.is-outside-booking-window .availability-calendar__status { color: #8a918d; }

.availability-calendar-section__note { margin: 14px 0 0; color: #68756e; font-size: 11px; line-height: 1.65; }

@media (max-width: 760px) {
    .availability-calendar { grid-template-columns: 1fr; gap: 16px; }

    .availability-calendar__month { padding: 16px 12px; }

    .availability-calendar__day { height: 62px; }

    .availability-calendar__status { font-size: 8px; }

    .availability-calendar__day.is-available .availability-calendar__status, .availability-calendar__day.is-full .availability-calendar__status { font-size: 18px; }
}
.availability-calendar__booking-link { display: flex; flex-direction: column; align-items: center; min-height: 100%; color: inherit; text-decoration: none; }
.availability-calendar__booking-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.availability-calendar__booking-link:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
