.catalog-products { position: relative; min-width: 0; }
.catalog-products__results { opacity: 1; transform: translateY(0); transition: opacity .24s ease, transform .24s ease; }
.catalog-products__results.is-updating { opacity: .38; transform: translateY(4px); }
.catalog-products__loader {
  position: absolute;
  z-index: 10;
  inset: 0;
  display: grid;
  min-height: 360px;
  align-content: start;
  justify-items: center;
  padding-top: clamp(80px, 12vw, 150px);
  background: rgba(255, 255, 255, .78);
  backdrop-filter: blur(2px);
}
.catalog-products__loader[hidden], .catalog-products__error[hidden] { display: none; }
.catalog-products__loader .page-loader__brand { width: 88px; }
.catalog-products__loader .page-loader__indicator { width: 152px; margin-top: var(--space-10); }
.catalog-products__loader .page-loader__message { margin-top: var(--space-9); }
.catalog-products__error { margin-bottom: var(--space-18); padding: var(--space-12) var(--space-16); color: #8f1f24; border: 1px solid rgba(227, 30, 36, .22); border-radius: var(--radius-8); background: #fff7f7; font-size: var(--text-sm); }
.catalog-products__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-34) var(--space-24);
}
.catalog-products__empty {
  min-height: 360px;
  padding: var(--space-40) var(--space-24);
  place-content: center;
  color: #6a756f;
  text-align: center;
}
.catalog-products__empty:not([hidden]) { display: grid; }
.catalog-products__empty strong { color: #202b25; font-size: 1.15rem; }
.catalog-products__empty p { margin: var(--space-7) 0 0; font-size: var(--text-85); }
.catalog-pagination {
  margin-top: var(--space-34);
}
.catalog-pagination[hidden] { display: none; }
.catalog-pagination > ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-7);
  margin: 0;
  padding: 0;
  list-style: none;
}
.catalog-pagination > ul.page-numbers > li { margin: 0; }
.catalog-pagination a.page-numbers,
.catalog-pagination span.page-numbers {
  display: grid;
  min-width: 39px;
  height: 39px;
  padding: 0 var(--space-11);
  place-items: center;
  border: 1px solid var(--color-control-border);
  border-radius: var(--radius-8);
  color: #37433c;
  background: var(--jaroni-white);
  cursor: pointer;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-750);
  text-decoration: none;
  transition: color var(--duration-normal) ease, border-color var(--duration-normal) ease, background var(--duration-normal) ease, transform var(--duration-normal) ease;
}
.catalog-pagination a.page-numbers:hover { border-color: var(--jaroni-green); color: var(--color-green-readable); transform: translateY(-2px); }
.catalog-pagination a.page-numbers:focus-visible { outline: 3px solid rgba(255, 194, 14, .45); outline-offset: 2px; }
.catalog-pagination span.page-numbers.current { border-color: var(--jaroni-yellow); color: #17201b; background: var(--jaroni-yellow); }
.catalog-pagination span.page-numbers.dots { border-color: transparent; background: transparent; }

@media (max-width: 1199px) {
  .catalog-products__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
  .catalog-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-28) var(--space-20); }
}

@media (max-width: 560px) {
  .catalog-products__grid { grid-template-columns: 1fr; gap: var(--space-24); }
  .catalog-pagination { margin-top: var(--space-26); }
  .catalog-pagination a.page-numbers, .catalog-pagination span.page-numbers { min-width: 36px; height: 36px; padding-inline: var(--space-8); }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-products__results { transition: none; }
}
