.stays-page-body .rp-cta-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.stays-page-body .property-website{display:inline-block;width:100%;margin-top:.35rem;color:#0f8b80;font-weight:700;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.stays-page-body .property-website:hover{color:#0b2c4d}
.property-website:focus-visible,.map-property-button:focus-visible,.stays-map-locate:focus-visible{outline:3px solid #c4a35a;outline-offset:4px}

/*
 * Desktop: viewport-capped sticky map (Airbnb-style).
 * Map fills the visible remainder under the fixed header; the list is a
 * separate scrollport so cards never stretch the map to document height.
 */
.stays-map-pane{
  position:sticky;
  top:var(--header-h, 5.25rem);
  width:100%;
  min-width:0;
  height:calc(100dvh - var(--header-h, 5.25rem));
  max-height:calc(100dvh - var(--header-h, 5.25rem));
  align-self:start;
  display:flex;
  flex-direction:column;
  margin-right:0;
  padding-right:0;
}
.stays-map-section{
  margin:0;
  width:100%;
  flex:1 1 auto;
  min-height:0;
  height:100%;
  display:flex;
  flex-direction:column;
}
.stays-map-frame{
  position:relative;
  top:auto;
  width:100%;
  flex:1 1 auto;
  /* Share the viewport column with chips below — do not stretch to list height. */
  height:auto;
  min-height:220px;
  max-height:none;
  /* Flush to the viewport right edge — round only the list-facing side. */
  border-radius:18px 0 0 18px;
  overflow:hidden;
  border:1px solid rgba(11,44,77,.1);
  border-right:0;
  background:#e7edf2;
  box-shadow:none;
}
.stays-map-footer{
  flex:0 1 auto;
  min-height:0;
  max-height:38%;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:0.7rem 0.9rem 0.85rem;
  box-sizing:border-box;
}
#stays-map{
  width:100%;
  height:100%;
  min-height:0;
  z-index:0;
  background:#e7edf2;
  border-radius:inherit;
}
.stays-map-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  flex:1 1 auto;
  min-height:0;
  height:100%;
  padding:2rem;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(11,44,77,.1);
  color:#5b6770;
  text-align:center;
}
.stays-map-partial{margin-top:.75rem;color:#5b6770;font-size:.85rem}

.map-property-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  padding:0;
}
.map-property-button{
  border:1px solid rgba(11,44,77,.16);
  background:#fff;
  color:#0f8b80;
  border-radius:999px;
  padding:8px 14px;
  font:600 13px/1.35 "Source Sans 3",system-ui,sans-serif;
  cursor:pointer;
  text-align:left;
  max-width:100%;
}
.map-property-button:hover{
  background:#eef8f6;
  border-color:rgba(15,139,128,.45);
}
.map-property-button.is-active,
.map-property-button[aria-pressed="true"]{
  background:#e4f4f1;
  border-color:#0f8b80;
  color:#0b6e66;
}
.map-popup-item{padding:12px 0;border-bottom:1px solid #ddd}
.map-popup-item:last-child{border:0}
.map-popup-item img{width:100%;height:108px;object-fit:cover;border-radius:8px}
.map-popup-item h3{font:700 15px/1.4 "Source Sans 3",system-ui;margin:10px 0;color:#0b2c4d}
.map-popup-item a{color:#0f8b80;font-weight:700}
.leaflet-popup-content{max-height:340px;overflow:auto}
.map-area-label{font:700 13px "Source Sans 3",system-ui;color:#0b2c4d}
.map-status{
  margin:0 0 0.55rem;
  color:#5b6770;
  font-size:0.9rem;
  line-height:1.45;
}

.stays-map-pin{
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  background:#0b2c4d;
  border:3px solid #fff;
  color:#fff;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:0 4px 14px rgba(8,20,28,.35);
  font:700 13px/1 "Source Sans 3",system-ui;
}
.stays-map-pin span{transform:rotate(45deg);display:block}

.leaflet-control-zoom a{
  width:36px!important;
  height:36px!important;
  line-height:36px!important;
  color:#0b2c4d!important;
  font-size:18px!important;
  border-radius:8px!important;
}
.leaflet-bar{border:0!important;box-shadow:0 8px 20px rgba(8,20,28,.16)!important;border-radius:10px!important;overflow:hidden}
.stays-map-locate{
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#0b2c4d;
  box-shadow:0 8px 20px rgba(8,20,28,.16);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.stays-map-locate:hover{background:#f3f6f8}
.leaflet-control-locate{margin:0 12px 12px 0!important}

@media(max-width:991px){
  .stays-map-pane{
    position:static;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    margin-right:0!important;
    align-self:auto;
  }
  .stays-map-section{min-height:0;height:auto}
  .stays-map-frame{
    position:static;
    height:360px!important;
    min-height:320px!important;
    max-height:none;
    flex:none;
    border-radius:18px;
    border-right:1px solid rgba(11,44,77,.1);
  }
  #stays-map{height:100%;min-height:0}
  .stays-map-footer{
    max-height:none;
    overflow:visible;
    padding:0.85rem 0 0;
  }
}
@media(max-width:767px){
  .stays-map-frame{height:320px!important;min-height:300px!important}
  .map-property-list{gap:8px}
  .map-property-button{font-size:12.5px;padding:8px 12px}
}
