.cases-listing {
  padding-block: var(--space-md) var(--space-2xl);
  background: var(--color-surface-raised);
  color: var(--color-on-accent);
}

.cases-listing__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
  margin-block-end: var(--space-xl);
}

.cases-listing__filters {
  display: flex;
  width: 100%;
  overflow-x: auto;
  margin-block-end: var(--space-xl);
  scrollbar-width: thin;
}

.cases-listing__filter {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  min-height: var(--space-xl);
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid var(--color-border-subtle);
  background: transparent;
  color: var(--color-on-accent);
  cursor: pointer;
  font-size: var(--fs-body);
  line-height: var(--lh-tight);
  letter-spacing: -.03em;
  white-space: nowrap;
  transition: background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);
}

.cases-listing__filter:hover,
.cases-listing__filter:focus-visible { background: var(--color-header-hover-fill); }
.cases-listing__filter:focus-visible { outline-color: var(--color-gradient-start); }
.cases-listing__filter.is-active {
  border-color: var(--color-transport-blue);
  background: var(--color-transport-blue);
}

.cases-listing__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.cases-listing__empty {
  margin-block: var(--space-lg) 0;
  color: var(--color-text-secondary);
}

@media (width <= 64rem) {
  .cases-listing__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width <= 48rem) {
  .cases-listing { padding-block-end: var(--space-xl); }
  .cases-listing__header { gap: var(--space-xs); margin-block-end: var(--space-lg); }
  .cases-listing__filters { margin-block-end: var(--space-lg); }
  .cases-listing__filter { min-height: var(--size-touch); }
  .cases-listing__grid { grid-template-columns: minmax(0, 1fr); }
}
