/* Compact horizontal HOTEL CARDS — desktop Map Mode ONLY.
   List Mode and full-screen mobile Map Mode intentionally retain their own layouts. */
@media (min-width:791px){
  .hotel-results-page .hotel-map-sidebar{
    display:grid;grid-auto-rows:max-content;align-content:start;gap:10px;
    overflow-y:auto;overscroll-behavior-y:contain;min-width:0;
  }
  .hotel-results-page .hotel-map-sidebar .hotel-map-list-card{
    display:grid;grid-template-columns:clamp(72px,24%,94px) minmax(0,1fr);
    grid-template-rows:auto;min-height:159px;height:auto;max-height:none;
    overflow:hidden;align-items:stretch;
    border-radius:14px;
  }
  .hotel-results-page .hotel-map-list-photo{
    position:relative;min-height:159px;height:auto;overflow:hidden;
  }
  .hotel-results-page .hotel-map-list-photo>img{
    display:block;position:absolute;inset:0;width:100%;height:100%;
    min-height:0;max-height:none;object-fit:cover;
  }
  .hotel-results-page .hotel-map-list-photo>.hotel-image-fallback{
    min-height:159px;height:100%;padding:8px;font-size:10px;text-align:center;
  }
  .hotel-results-page .hotel-map-list-photo .hotel-favorite{
    width:30px;height:30px;left:7px;top:7px;
  }
  .hotel-results-page .hotel-map-list-body{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(106px,38%);
    align-items:stretch;gap:7px;height:auto;min-height:159px;
    padding:10px 9px;overflow:visible;min-width:0;
  }
  .hotel-results-page .hotel-map-list-meta{
    display:flex;flex-direction:column;align-items:flex-start;
    justify-content:center;min-width:0;gap:5px;
  }
  .hotel-results-page .hotel-map-list-meta h3{
    width:100%;font-size:12px;line-height:1.35;font-weight:900;margin:0;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
    overflow:hidden;overflow-wrap:anywhere;
  }
  .hotel-results-page .hotel-map-list-meta .hotel-stars{
    font-size:12px;letter-spacing:.5px;line-height:1.1;
  }
  .hotel-results-page .hotel-map-list-meta .hotel-result-address{
    font-size:10px;line-height:1.35;max-width:100%;margin:0;
    overflow:hidden;overflow-wrap:anywhere;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  }
  .hotel-results-page .hotel-map-list-meta .hotel-result-address svg{
    width:12px;height:12px;
  }
  .hotel-results-page .hotel-map-list-meta .hotel-distance-info{
    font-size:10px;line-height:1.4;
  }
  .hotel-results-page .hotel-map-card-policy{
    font-size:9px;line-height:1.4;color:#15835c;background:#e9f8f1;
    padding:4px 6px;border-radius:7px;max-width:100%;
    overflow-wrap:anywhere;
  }
  .hotel-results-page .hotel-map-list-bottom{
    display:flex;flex-direction:column;align-items:stretch;
    justify-content:center;gap:8px;margin:0;min-width:0;
    padding:2px 0 2px 8px;
    border-top:0;border-inline-start:1px solid var(--border);
  }
  .hotel-results-page .hotel-map-list-price{
    display:grid;gap:3px;min-width:0;justify-items:stretch;
    align-content:center;text-align:center;
  }
  .hotel-results-page .hotel-map-list-price small{
    display:block;font-size:9px;line-height:1.35;
    overflow-wrap:anywhere;text-align:center;
  }
  .hotel-results-page .hotel-map-list-price strong{
    display:block;font-size:clamp(12px,1.05vw,15px);line-height:1.35;
    text-align:center!important;white-space:normal;overflow-wrap:anywhere;
  }
  .hotel-results-page .hotel-map-list-price .hotel-map-list-nights{
    font-size:10px;font-weight:700;color:var(--muted);
  }
  .hotel-results-page .hotel-map-sidebar .hotel-map-list-cta{
    display:inline-flex!important;justify-content:center;align-items:center;
    gap:3px;width:100%;max-width:100%;min-width:0;min-height:42px;
    padding:8px 5px;border-radius:10px;font-size:11px;
    font-weight:800;line-height:1.25;white-space:normal;
    visibility:visible;opacity:1;
  }
  .hotel-results-page .hotel-map-list-cta svg{flex:none;width:12px;height:12px}
  .hotel-results-page .hotel-map-list-card[dir="rtl"] .hotel-map-list-meta{
    align-items:flex-start;text-align:right;
  }
  .hotel-results-page .hotel-map-list-card[dir="rtl"] .hotel-map-list-bottom{
    padding-inline-start:8px;padding-inline-end:0;
  }
  .hotel-results-page .hotel-map-list-card[dir="ltr"] .hotel-map-list-bottom{
    padding-inline-start:8px;padding-inline-end:0;
  }
  .hotel-results-page .hotel-map-list-cta:focus-visible{
    outline:3px solid #a33cf0;outline-offset:2px;
  }
}
/* At broad desktop widths the sidebar can fit three clearly separated regions,
   without squeezing the map into an unusable panel. */
@media (min-width:1200px){
  .hotel-results-page .hotel-map-layout{
    grid-template-columns:minmax(350px,50%) minmax(0,1fr);
  }
}
/* Intermediate desktop: keep readable full-price CTA, no three-column crowding. */
@media (min-width:791px) and (max-width:1199px){
  .hotel-results-page .hotel-map-sidebar .hotel-map-list-card{
    grid-template-columns:76px minmax(0,1fr);
  }hotel-results-page .hotel-map-layout
  .hotel-results-page .hotel-map-list-body{
    display:flex;flex-direction:column;gap:7px;padding:9px 10px;
  }
  .hotel-results-page .hotel-map-list-meta{justify-content:start;gap:3px}
  .hotel-results-page .hotel-map-list-meta h3{-webkit-line-clamp:2}
  .hotel-results-page .hotel-map-list-bottom{
    display:grid;grid-template-columns:minmax(0,1fr);gap:5px;
    border-inline-start:0;border-top:1px solid var(--border);
    padding:7px 0 0;margin-top:auto;
  }
  .hotel-results-page .hotel-map-list-price{
    display:flex;align-items:baseline;justify-content:space-between;
    flex-wrap:wrap;gap:4px;
  }
  .hotel-results-page .hotel-map-list-price small{font-size:9px}
  .hotel-results-page .hotel-map-list-price strong{font-size:13px}
}

/* Preserve the original direct-flex-item layout for the untouched mobile map. */
@media(max-width:790px){
  .hotel-map-layout .hotel-map-list-meta{display:contents}
  .hotel-map-layout .hotel-map-card-policy,
  .hotel-map-layout .hotel-map-list-nights{display:none!important}
}
