/* Catalogue page: head with stats, filter toolbar, grid, "load more", promotions. */
.cat-head h1 { max-width: none; }
.cat-stats { margin-top: 26px; max-width: 760px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cat-stats .stat { padding: 14px 16px; background-color: var(--surface-1); }
.cat-stats .stat b { font-size: 1.9rem; }

.cat-tools { margin: 32px 0 8px; display: grid; gap: 4px; }
.cat-tools .chips { margin-bottom: 12px; }
.cat-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: center; }
.cat-row:has(.cat-fav) { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.cat-q .affix .icon { width: 18px; height: 18px; }
.cat-fav { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 4px; font-weight: 600; font-size: .875rem; cursor: pointer; white-space: nowrap; }
.cat-row .filter-note { margin: 0; }
.cat-empty { margin-top: 12px; text-align: center; display: grid; justify-items: center; gap: 10px; }
.cat-empty h2 { font-size: var(--fs-h3); }
.cat-empty p { color: var(--color-muted); }
.cat-more { display: flex; justify-content: center; margin-top: 30px; }
.cat-detail { margin-top: 20px; }

@media (max-width: 960px) {
  .cat-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cat-q { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .cat-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cat-stats .stat b { font-size: 1.5rem; }
}
@media (max-width: 400px) { .cat-row { grid-template-columns: minmax(0, 1fr); } }
