.catalog { display: grid; gap: var(--sp-5); padding-block: var(--sp-7); }

@media (min-width: 1024px) { .catalog { grid-template-columns: 270px minmax(0, 1fr); gap: var(--sp-6); align-items: start; } }

.filters { display: grid; gap: var(--sp-5); }

@media (min-width: 1024px) { .filters { position: sticky; top: calc(var(--h-header) + var(--sp-4)); max-height: calc(100vh - var(--h-header) - var(--sp-6)); overflow-y: auto; padding-right: var(--sp-2); } }

.filters__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.filters__head h2 { margin: 0; font-family: var(--f-display); font-size: 1.375rem; font-weight: var(--fw-heading); letter-spacing: var(--ls-heading); }
.filters__reset { font-family: var(--f-label); font-size: var(--fs-eyebrow); color: var(--c-accent); }
.filters__reset:hover { color: var(--c-accent-hot); }

.filter-group { display: grid; gap: var(--sp-2); padding-top: var(--sp-4); border-top: 1px solid var(--c-line); }
.filter-group__title { margin: 0 0 var(--sp-1); font-family: var(--f-label); font-size: var(--fs-eyebrow); color: var(--c-ink-muted); }

.check { display: flex; align-items: center; gap: var(--sp-3); font-size: 0.9375rem; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--c-brand); flex: none; }
.check span { flex: 1; }
.check em { font-style: normal; font-family: var(--f-label); font-size: var(--fs-eyebrow); color: var(--c-ink-muted); }
.check:hover span { color: var(--c-accent); }

.catalog__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  margin-bottom: var(--sp-5);
  padding-bottom: var(--sp-4);
  border-bottom: 1px solid var(--c-line);
}

.catalog__count { font-family: var(--f-label); font-size: var(--fs-caption); color: var(--c-ink-muted); }
.catalog__count b { color: var(--c-ink); }

.filters-toggle { display: inline-flex; }

@media (min-width: 1024px) { .filters-toggle { display: none; } }

@media (max-width: 1023px) {
  .filters { display: none; }
  .filters[data-open='true'] { display: grid; margin-top: var(--sp-4); }
  .catalog > aside .catalog__bar { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
}

.empty { padding: var(--sp-8) var(--sp-5); border: 1px dashed var(--c-line); border-radius: var(--r-lg); text-align: center; color: var(--c-ink-soft); }
.empty b { display: block; margin-bottom: var(--sp-2); font-size: 1.125rem; color: var(--c-ink); }

.catalog__search { flex: 1 1 18rem; max-width: 26rem; }
.catalog__search .input { padding-block: 0.625rem; }
.catalog__count { margin-right: auto; }

[data-grid]:empty { min-height: 100vh; }
.catalog__sort .select { min-width: 13rem; }
