.guest-date-filter{border:1px solid var(--line);background:#fffef9;border-radius:10px;padding:18px 20px;margin-bottom:20px}.date-filter-heading{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.date-filter-heading strong{font-size:14px}.date-filter-heading span{font-size:14px;color:var(--muted)}.date-filter-fields{display:grid;grid-template-columns:1.3fr 1.3fr 1fr 1fr 1.1fr;gap:12px;align-items:end}.date-filter-fields label{font-size:14px;margin:14px 0 0}.date-filter-fields input,.date-filter-fields select{padding:10px 8px;font-size:14px}.date-filter-fields .primary{padding:12px}.date-filter-results{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:14px;color:#788270;font-size:14px}.date-filter-results>span{margin-right:auto}.match-toggle{flex-direction:row;align-items:center;gap:6px;margin:0;font-size:14px}.match-toggle input{width:13px;height:13px;accent-color:var(--green)}.date-filter-results button{font-size:14px}.hotspot.available{border-color:#e8f6d6;background:#39724f7a;box-shadow:0 0 0 2px #fff9}.hotspot.booked{background:#696964bb;border-color:#eee;opacity:.7}.hotspot.unsuitable{background:#ae805a99;border-color:#eddccc;opacity:.65}.stay-tile.booked .tile-photo,.stay-tile.unsuitable .tile-photo{opacity:.48}.availability-badge{display:block;margin:0 10px 12px;padding:6px;border-radius:4px;font-size:14px;background:#edf2e5;color:#386635}.availability-badge.booked{background:#eeeee9;color:#77796d}.availability-badge.unsuitable{background:#f8ecdf;color:#9d7951}.legend-dot.booked{background:#777d6f}.legend-dot.unsuitable{background:#bc946b}.stay-conflict{background:#f6eddf;border:1px solid #e2d1ae;border-radius:7px;padding:13px;font-size:14px;margin:15px 0}.stay-conflict p{font-size:14px;color:#8b795c;margin:8px 0}.stay-conflict button{border:1px solid #d1bea0;background:#fffef9;color:var(--green);font-size:14px;padding:9px 10px;border-radius:5px;margin:4px 0}.stay-conflict>div{display:flex;flex-wrap:wrap;gap:7px}.home-calendar{border:1px solid var(--line);border-radius:7px;padding:12px;margin:15px 0}.home-calendar summary{font-size:14px;color:var(--green);cursor:pointer}.home-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin:15px 0 8px}.home-calendar-nav strong{font-size:14px}.home-calendar-nav button{border:1px solid var(--line);border-radius:4px;background:#fffef9;color:var(--green);font-size:19px;padding:3px 11px}#home-calendar-help{font-size:14px;color:var(--muted);line-height:1.7}.home-weekdays,#home-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.home-weekdays span{font-size:14px;text-align:center;color:#87927e;padding:5px 0}#home-calendar-days button{border:0;border-radius:4px;padding:9px 0;font-size:14px}#home-calendar-days button.free{background:#e7efda;color:#386536}#home-calendar-days button.unavailable{background:#eee;color:#b5b5aa;text-decoration:line-through;cursor:default}#home-calendar-days button.picked{outline:2px solid var(--green)}#date-suggestions{font-size:14px;margin-top:13px}#date-suggestions strong{display:block;font-weight:500;margin-bottom:8px}#date-suggestions button{width:100%;background:white;border:1px solid var(--line);padding:9px;border-radius:5px;color:var(--green);font-size:14px;margin:3px 0}.map-panel,.villa-picker{scroll-margin-top:15px}@media(max-width:780px){.guest-date-filter{padding:15px}.date-filter-fields{grid-template-columns:1fr 1fr;gap:10px}.date-filter-fields .primary{grid-column:1/-1;justify-content:center;margin-top:4px}.date-filter-results{gap:10px}.date-filter-results>span{width:100%}.date-filter-heading{gap:6px}.date-filter-heading span{font-size:14px}}

/* Photo tiles are the primary booking surface. The map is a reference only. */
.resort-banner{position:relative;height:150px;border-radius:12px;overflow:hidden;margin-bottom:20px;background:#244c3d;color:white;display:flex;align-items:center;padding:24px 28px;gap:20px}
.resort-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;opacity:.5}
.resort-banner::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#153e32ba,transparent)}
.resort-banner-copy,.banner-map-button{position:relative;z-index:1}.resort-banner-copy{display:flex;flex-direction:column;gap:9px}.resort-banner-copy .eyebrow{color:#e5eddb}.resort-banner-copy strong{font-family:Georgia,serif;font-size:28px;font-weight:400}.resort-banner-copy>span:last-child{font-size:14px;color:#eef2e8}
.banner-map-button{margin-left:auto;flex-shrink:0;background:#fffef9ec;color:var(--green);border:0;border-radius:24px;padding:11px 16px;font-size:14px}
.booking-grid>.villa-picker{grid-column:auto;grid-row:1;padding:20px}.booking-grid>.booking-card{grid-column:2;grid-row:1}#villa-list{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-card{position:sticky;top:20px}
@media(max-width:1050px){#villa-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.resort-banner{height:140px;padding:20px;gap:10px}.resort-banner-copy strong{font-size:23px}.resort-banner-copy>span:last-child{max-width:220px;font-size:14px}.banner-map-button{font-size:14px;padding:9px 11px}.booking-grid>.booking-card{position:static}.booking-grid>.villa-picker{padding:15px}#villa-list{grid-template-columns:repeat(2,minmax(0,1fr))}.picker-top{gap:10px}.filters{flex-wrap:wrap}}
@media(max-width:450px){.resort-banner{height:145px;padding:16px}.resort-banner-copy strong{font-size:21px}.banner-map-button{position:absolute;right:12px;bottom:12px}.resort-banner-copy{padding-bottom:16px}.resort-banner-copy>span:last-child{max-width:200px}}

.date-filter-fields{grid-template-columns:1.5fr 1.2fr 1.2fr 1fr 1fr 1fr}@media(max-width:1050px) and (min-width:781px){.date-filter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:780px){.date-filter-fields{grid-template-columns:1fr 1fr}.date-filter-fields label:first-child{grid-column:1/-1}}

#room-basket{background:#eef2e7;border-radius:8px;padding:14px;margin:18px 0;font-size:14px}#room-basket>p{font-size:14px;color:var(--muted)}.basket-room{border-top:1px solid var(--line);padding:12px 0}.basket-room>div:first-child{display:flex;align-items:center;justify-content:space-between}.basket-room button{border:0;background:none;color:var(--green);font-size:14px;text-decoration:underline}.basket-room label{font-size:14px}.room-quote{padding:10px 0;border-bottom:1px solid var(--line)}.room-quote summary{cursor:pointer;font-size:14px}
