.calendar-section{padding-top:45px;padding-bottom:45px}.availability-calendar{border:1px solid #d9dfd7;background:#fff;border-radius:18px;padding:30px;box-shadow:0 12px 35px #173f3b08}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.calendar-legend span{display:flex;align-items:center;gap:8px}.calendar-legend i{width:13px;height:13px;border-radius:4px;display:inline-block}.calendar-legend .free{background:#edf3eb;border:1px solid #b6cdb0}.calendar-legend .busy{background:repeating-linear-gradient(135deg,#e2e0dc,#e2e0dc 2px,#f3f1ee 2px,#f3f1ee 5px)}.calendar-navigation{display:flex;gap:8px}.calendar-navigation button{background:#f3f1eb;border:0;border-radius:50%;width:42px;height:42px;color:#173f3b;font-size:20px}.calendar-navigation button:disabled{opacity:.3;cursor:default}.calendar-status{font-size:13px;color:#66716b;margin:16px 0 24px}.calendar-status.error{color:#8a462e;background:#fbf0e8;padding:14px;border-radius:8px}.calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px}.calendar-month h3{font-family:Georgia,serif;font-size:25px;text-align:center;text-transform:capitalize;margin:0 0 16px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays span{font-size:12px;color:#66716b;text-align:center;padding-bottom:9px}.calendar-day{border:1px solid transparent;min-height:42px;aspect-ratio:1.15;border-radius:7px;background:#edf3eb;color:#173f3b;font-size:14px;padding:2px}.calendar-day:hover:not(:disabled){border-color:#173f3b}.calendar-day.busy{background:repeating-linear-gradient(135deg,#e7e5e1,#e7e5e1 2px,#f4f3f0 2px,#f4f3f0 6px);color:#7f807b;text-decoration:line-through}.calendar-day:disabled{cursor:default}.calendar-day.outside{background:#f8f7f4;color:#b9bbb5}.calendar-day.selected{background:#173f3b!important;color:#fff!important;text-decoration:none}.calendar-day.in-range{background:#d3e1cc}.calendar-day.departure{border:1px dashed #6c8863;text-decoration:none;color:#173f3b}.calendar-selection{margin-top:28px;border-top:1px solid #e2e5df;padding-top:24px;display:flex;gap:20px;align-items:center;justify-content:space-between}.calendar-dates{font-size:17px;font-weight:600}.calendar-message{font-size:13px;margin:7px 0 0;color:#66716b}.calendar-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.calendar-reset{background:none;border:0;text-decoration:underline;color:#526d66;font-size:13px}.calendar-reset:disabled{opacity:.4;cursor:default}.calendar-request[aria-disabled=true]{opacity:.4;pointer-events:none}.calendar-note{font-size:12px;margin:23px 0 0;color:#66716b}.calendar-fallback{font-size:14px;margin-top:18px}.calendar-fallback a{text-decoration:underline;text-underline-offset:3px}.calendar-day:focus-visible{outline:3px solid #c59b69;outline-offset:1px}.calendar-snapshot{color:#836331}@media(max-width:800px){.calendar-selection{align-items:flex-start;flex-direction:column}.calendar-actions{width:100%;justify-content:space-between}.calendar-months{gap:22px}.availability-calendar{padding:20px}.calendar-day{min-height:32px}}@media(max-width:580px){.calendar-months{grid-template-columns:1fr;gap:28px}.calendar-day{min-height:40px}.calendar-legend{font-size:12px;gap:10px}.calendar-toolbar{align-items:flex-start}.calendar-navigation button{width:36px;height:36px}.calendar-actions .button{font-size:13px;padding:14px 16px}}

/* Availability overview: a single month beside each villa photograph. */
.availability-integrated{padding-top:12px}.availability-integrated article{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:18px;overflow:hidden;align-items:stretch}.availability-integrated article>img{width:100%;height:100%;max-height:none;min-height:0;object-fit:cover}.availability-integrated article>div{padding:28px 32px;min-width:0}.availability-integrated h2{margin:8px 0 20px;font-size:32px}.calendar-compact{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.calendar-compact .calendar-months{grid-template-columns:minmax(0,1fr);gap:0}.calendar-compact .calendar-legend{font-size:12px;gap:12px}.calendar-compact .calendar-toolbar{gap:10px}.calendar-compact .calendar-navigation button{width:34px;height:34px}.calendar-compact .calendar-status{font-size:11px;line-height:1.5;margin:10px 0 14px}.calendar-compact .calendar-month h3{font-size:24px;margin-bottom:12px}.calendar-compact .calendar-day{aspect-ratio:auto;min-height:36px}.calendar-compact .calendar-selection{margin-top:16px;padding-top:14px;display:block}.calendar-compact .calendar-dates{font-size:14px}.calendar-compact .calendar-reset{margin-left:10px}.calendar-compact .calendar-message{font-size:12px}.calendar-compact .calendar-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.availability-integrated .calendar-actions .button{margin:0;padding:13px 10px;font-size:12px;text-align:center;display:flex;align-items:center;justify-content:center}.availability-integrated .calendar-actions .outline{background:transparent;border:1px solid #173f3b;color:#173f3b}
@media(max-width:800px){.availability-integrated article{grid-template-columns:1fr}.availability-integrated article>img{height:280px}.availability-integrated article>div{padding:24px}.calendar-compact .calendar-day{min-height:40px}.calendar-compact .calendar-actions{width:100%}}
@media(max-width:380px){.availability-integrated article>div{padding:18px}.calendar-compact .calendar-actions{grid-template-columns:1fr}}
