/* Follow-up refinements for the Search redesign. */

@media (max-width: 719px) {
  .search-page-v2 .search-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .search-page-v2 .search-toolbar-main,
  .search-page-v2 .search-toolbar-city,
  .search-page-v2 .search-toolbar-button {
    grid-column: 1 / -1;
  }

  .search-page-v2 .search-location-button,
  .search-page-v2 .search-filter-button {
    width: 3.35rem;
    min-width: 3.35rem;
    min-height: 3.2rem;
  }

  .search-page-v2 .search-location-button {
    grid-column: 1;
    justify-self: end;
  }

  .search-page-v2 .search-filter-button {
    grid-column: 2;
    justify-self: start;
  }
}

/* Keep the autocomplete visually above both the hero and the results section. */
.search-page-v2 .search-page-hero,
.search-page-v2 .search-toolbar,
.search-page-v2 .search-toolbar-main {
  overflow: visible !important;
}

.search-page-v2 #search-autocomplete-results.ui-search-results {
  isolation: isolate;
}

/*
 * Search density pass.
 * Wide desktops get a compact map rail and three result cards per row.
 * Laptops stay at two columns so cards never become cramped.
 */
.search-page-v2 .search-results-shell {
  gap: 1rem;
}

.search-page-v2 .search-map-card {
  border-radius: 1rem;
  padding: .9rem;
}

.search-page-v2 .search-map-shell {
  margin-top: .75rem;
}

.search-page-v2 .search-map-canvas {
  border-radius: .85rem;
}

.search-page-v2 .search-results-head {
  border-radius: 1rem;
  padding: 1rem 1.1rem;
}

.search-page-v2 .search-result-list {
  gap: .85rem;
  margin-top: .9rem;
}

.search-page-v2 .search-result-card {
  border-radius: 1rem;
  overflow: hidden;
}

.search-page-v2 .search-result-link {
  gap: .55rem;
  padding: .7rem;
}

.search-page-v2 .search-result-image,
.search-page-v2 .search-result-fallback {
  width: 100%;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border-radius: .75rem;
}

.search-page-v2 .search-result-body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}

.search-page-v2 .search-result-topline {
  gap: .45rem;
}

.search-page-v2 .search-result-badges {
  gap: .35rem;
}

.search-page-v2 .search-result-badge {
  padding: .2rem .5rem;
  font-size: .68rem;
  line-height: 1.05rem;
}

.search-page-v2 .search-result-rating {
  gap: .18rem;
  padding: .2rem .5rem;
  font-size: .75rem;
}

.search-page-v2 .search-result-rating small {
  font-size: .67rem;
}

.search-page-v2 .search-result-title {
  margin-top: .4rem;
  font-size: 1rem;
  line-height: 1.35rem;
}

.search-page-v2 .search-result-meta {
  gap: .18rem .55rem;
  margin-top: .32rem;
  font-size: .78rem;
  line-height: 1.15rem;
}

.search-page-v2 .search-result-trust {
  gap: .35rem;
  margin-top: .48rem;
}

.search-page-v2 .search-result-trust-item {
  width: 1.75rem;
  height: 1.75rem;
}

.search-page-v2 .search-result-trust-icon {
  width: .85rem;
  height: .85rem;
}

.search-page-v2 .search-result-address {
  margin-top: .38rem;
  font-size: .78rem;
  line-height: 1.35rem;
}

.search-page-v2 .search-result-cta {
  margin-top: auto;
  padding-top: .55rem;
  font-size: .78rem;
}

/* Two comfortable cards on ordinary desktop/laptop widths. */
@media (min-width: 1024px) and (max-width: 1499px) {
  .search-page-v2 .search-result-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Wide desktop: narrower map rail + three compact result cards. */
@media (min-width: 1500px) {
  .search-page-v2 .search-results-shell {
    grid-template-columns: minmax(16.5rem, 18.5rem) minmax(0, 1fr) !important;
  }

  .search-page-v2 .search-result-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .search-page-v2 .search-map-canvas {
    height: 30rem;
  }
}

@media (max-width: 1023px) {
  .search-page-v2 .search-result-list {
    grid-template-columns: 1fr !important;
  }
}
