/* Avara Stays — home page: photo carousels, availability search, results + map */

/* ---------- Booking strip: 5 fields ---------- */
.booking-strip.booking-strip-search{grid-template-columns:1.25fr 1fr 1fr .7fr auto;width:min(66rem,calc(100% - 2rem));}
.booking-strip-search .booking-field input[type="date"],
.booking-strip-search .booking-field input[type="number"]{color-scheme:dark;min-height:2.85rem;}
.booking-strip-search .booking-field input:focus-visible,
.booking-strip-search .booking-field select:focus-visible{outline:2px solid var(--gold);outline-offset:1px;}
.booking-error{grid-column:1 / -1;margin:0;color:#ffd9a8;font-size:.85rem;min-height:0;}
.booking-error:empty{display:none;}
@media (max-width:820px){
  .booking-strip.booking-strip-search{grid-template-columns:1fr 1fr;}
  .booking-strip-search .booking-field:first-child{grid-column:1 / -1;}
}
@media (max-width:540px){
  .booking-strip.booking-strip-search{grid-template-columns:1fr 1fr;gap:.6rem;padding:.8rem;}
}

/* ---------- Property photo carousel ---------- */
.property-card-carousel{min-width:0;align-self:start;}
.pc-carousel{position:relative;border-radius:8px;overflow:hidden;background:var(--paper-deep);}
.pc-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;aspect-ratio:16 / 11;}
.pc-track::-webkit-scrollbar{display:none;}
.pc-track:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;}
.pc-slide{flex:0 0 100%;margin:0;scroll-snap-align:center;scroll-snap-stop:always;height:100%;}
.pc-slide img{display:block;width:100%;height:100%;object-fit:cover;}
.pc-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:2.5rem;height:2.5rem;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--olive);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.25);opacity:0;transition:opacity .2s;}
.pc-prev{left:.6rem;}
.pc-next{right:.6rem;}
.pc-carousel:hover .pc-btn,.pc-carousel:focus-within .pc-btn{opacity:1;}
.pc-btn:hover{background:#fff;}
.pc-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px;opacity:1;}
@media (hover:none){.pc-btn{opacity:.9;width:2.25rem;height:2.25rem;}}
.pc-dots{position:absolute;left:0;right:0;bottom:.55rem;z-index:2;display:flex;gap:.1rem;justify-content:center;pointer-events:none;}
.pc-dot{pointer-events:auto;width:1.5rem;height:1.5rem;padding:0;border:0;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.pc-dot::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 0 0 1px rgba(0,0,0,.25);transition:transform .2s,background .2s;}
.pc-dot[aria-current="true"]::before{background:#fff;transform:scale(1.35);}
.pc-dot:focus-visible{outline:2px solid var(--gold);border-radius:50%;}
.pc-count{position:absolute;right:.6rem;top:.6rem;z-index:2;padding:.15rem .55rem;border-radius:999px;background:rgba(28,32,25,.72);color:#fff;font-size:.72rem;letter-spacing:.06em;}
.pc-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
@media (prefers-reduced-motion:reduce){.pc-track{scroll-behavior:auto;}}
.property-card-body .property-name-link{color:inherit;}

/* ---------- Availability results ---------- */
.avail-results{background:var(--paper);padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(2.5rem,5vw,4rem);scroll-margin-top:var(--header-h);}
.avail-results[hidden]{display:none;}
.avail-head h2{margin-bottom:.5rem;}
.avail-summary{margin:.2rem 0 .3rem;color:var(--text-dark);font-size:1.02rem;}
.avail-sync{margin:0 0 1.25rem;font-size:.82rem;color:rgba(40,45,37,.62);}
.avail-sync.is-stale{color:#8a4b00;font-weight:600;}
.avail-layout{display:grid;grid-template-columns:minmax(0,.56fr) minmax(0,.44fr);gap:1.5rem;align-items:start;}
.avail-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem;}
.avail-card{display:grid;grid-template-columns:minmax(9rem,.38fr) minmax(0,.62fr);gap:1rem;padding:.75rem;background:#fff;border:1px solid var(--line);border-radius:10px;transition:box-shadow .2s,border-color .2s;}
.avail-card.is-active{border-color:var(--cta);box-shadow:0 6px 22px rgba(40,45,37,.16);}
.avail-card-media{display:block;border-radius:8px;overflow:hidden;aspect-ratio:4 / 3;background:var(--paper-deep);position:relative;}
.avail-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.avail-num{position:absolute;left:.5rem;top:.5rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--cta);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(0,0,0,.35);}
.avail-card-body{min-width:0;display:flex;flex-direction:column;gap:.25rem;}
.avail-area{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(40,45,37,.55);}
.avail-card h3{margin:0;font-size:1.25rem;line-height:1.2;}
.avail-card h3 a:hover,.avail-card h3 a:focus-visible{color:var(--cta);text-decoration:underline;}
.avail-facts{margin:0;color:var(--text-dark);font-size:.92rem;}
.avail-dates{margin:0;color:rgba(40,45,37,.7);font-size:.85rem;}
.avail-actions{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;}
.avail-empty{padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--text-dark);}
.avail-empty strong{display:block;margin-bottom:.35rem;font-size:1.05rem;}
.avail-excluded{margin:1rem 0 0;font-size:.85rem;color:rgba(40,45,37,.7);}
.avail-note{margin:.4rem 0 0;font-size:.78rem;color:rgba(40,45,37,.62);}
.avail-map-wrap{position:sticky;top:calc(var(--header-h) + 1rem);}
.avail-map{height:min(34rem,calc(100vh - var(--header-h) - 5rem));min-height:20rem;border-radius:10px;border:1px solid var(--line);background:var(--paper-deep);z-index:0;}
.avail-map-note{margin:.5rem 0 0;font-size:.78rem;color:rgba(40,45,37,.62);}
.avail-pin{display:inline-block;transform:translate(-50%,-50%);padding:.28rem .6rem;border-radius:999px;background:#fff;color:var(--olive);border:2px solid var(--cta);font:700 .78rem/1.1 var(--font-sans);white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:pointer;}
.avail-pin b{display:inline-block;margin-right:.35rem;width:1.15rem;height:1.15rem;line-height:1.15rem;text-align:center;border-radius:50%;background:var(--cta);color:#fff;font-size:.7rem;}
.leaflet-marker-icon.avail-pin-wrap{background:transparent;border:0;}
.avail-pin.is-active,.avail-pin:hover{background:var(--cta);color:#fff;}
.avail-pin.is-active b,.avail-pin:hover b{background:#fff;color:var(--cta);}
.avail-popup h4{margin:0 0 .15rem;font-size:1rem;color:var(--text-dark);text-transform:none;letter-spacing:0;font-family:var(--font-sans);}
.avail-popup p{margin:0 0 .35rem;font-size:.85rem;color:var(--text-dark);}
.avail-popup a{font-weight:700;color:var(--cta);}
.avail-results .leaflet-container{font-family:var(--font-sans);}
@media (max-width:900px){
  .avail-layout{grid-template-columns:1fr;}
  .avail-map-wrap{position:static;}
  .avail-map{height:22rem;min-height:0;}
}
@media (max-width:540px){
  .avail-card{grid-template-columns:1fr;}
  .avail-card-media{aspect-ratio:16 / 10;}
}

.avail-map-tools{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .5rem;}
.avail-map-tools:empty{display:none;}
.avail-map-btn{padding:.35rem .8rem;border-radius:999px;border:1px solid var(--cta);background:#fff;color:var(--cta);font:600 .8rem var(--font-sans);cursor:pointer;}
.avail-map-btn:hover,.avail-map-btn:focus-visible{background:var(--cta);color:#fff;}
.avail-map.is-far .avail-pin-name{display:none;}
.avail-map.is-far .avail-pin{padding:.2rem;}
.avail-map.is-far .avail-pin b{margin:0;}
.booking-strip-search .booking-field select{min-height:2.85rem;}