/* ============================================================
   AST-W32-101-5/-6: homepage filter snippets + object map page.
   Snippet cards render under the search form (live-filtered from
   objects.json); .map-canvas hosts the Leaflet map on /map/.

   Deliberately a SEPARATE file, not an append to style.css: while a
   sandbox build overlay is active, css/style.css is always served from
   the generator's _copy_public output (monorepo template), so sandbox-
   committed appends to it are shadowed until the template change is
   promoted to main. A file the older template does not emit falls back
   per-file to the sandbox git tree and survives every overlay state
   (see reference_webmaster_build_output_overlay_trap_2026-08-05).
   ============================================================ */
.home-search-results {
  margin-top: 28px;
}

.results-summary {
  color: var(--muted);
  margin-bottom: 14px;
  text-align: center;
}

.results-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.snippet-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}

.snippet-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.snippet-card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}

.snippet-body {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.snippet-body strong {
  font-size: 16px;
}

.snippet-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.snippet-pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--muted);
  font-size: 13px;
}

.results-more {
  margin-top: 14px;
  text-align: center;
}

.results-more a {
  color: var(--accent-2);
  font-weight: 700;
  text-decoration: none;
}

.map-canvas {
  height: 560px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.map-summary {
  color: var(--muted);
  margin: 0 0 14px;
}

@media (max-width: 640px) {
  .map-canvas {
    height: 70vh;
  }
}

/* AST-W32-101-9: «Подборки» — collection cards linking into the filtered
   catalog. Text cards on purpose: independent of photo availability. */
.collections-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.collection-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  color: inherit;
  text-decoration: none;
  transition: border-color .2s ease;
}

.collection-card strong {
  font-size: 17px;
}

.collection-card span {
  color: var(--muted);
  font-size: 14px;
}

.collection-card:hover {
  border-color: var(--accent);
}
