/* Category Desktop 127:18883 / Category Mobile 224:12169. */
.catalog { padding: 80px 0 0; background: linear-gradient(180deg, var(--cream-100), #fff 460px); }
.catalog-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.catalog-heading h1 { font: var(--title-h2); margin: 0; letter-spacing: 0; }
.catalog-sort { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.catalog-sort label { font: var(--title-h6); }
.catalog-select { position: relative; }
.catalog-select select { appearance: none; min-height: 40px; border: 1px solid var(--sage-700); border-radius: 200px; padding: 8px 38px 8px 20px; color: var(--brown-800); font: 400 14px/22px var(--sans); background: transparent; cursor: pointer; }
.catalog-select .icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; pointer-events: none; color: var(--sage-700); }
.catalog-categories { display: flex; gap: 16px; margin: -4px -4px 28px; overflow-x: auto; scrollbar-width: none; padding: 4px; }
.catalog-categories::-webkit-scrollbar { display: none; }
.catalog-chip { display: inline-flex; align-items: center; justify-content: center; gap: 4px; flex-shrink: 0; min-height: 48px; padding: 11px 24px; border: 1px solid var(--sage-600); border-radius: 200px; font-size: 16px; font-weight: 600; line-height: 24px; white-space: nowrap; transition: background-color 180ms, color 180ms, border-color 180ms; }
.catalog-chip:hover { background: var(--cream-100); border-color: var(--sage-900); }
.catalog-chip[aria-current] { background: var(--sage-600); border-color: var(--sage-600); color: var(--cream-50); }
.catalog-chip[aria-current]:hover { background: var(--sage-700); }
.catalog-results { scroll-margin-top: 104px; }
.catalog-results:focus { outline: none; }
.catalog-results:focus-visible { outline: 2px solid var(--sage-600); outline-offset: 8px; border-radius: 12px; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 16px; }
.catalog-grid .product-card { display: flex; flex-direction: column; }
.catalog-grid .product-price { margin-bottom: 24px; }
.catalog-grid .add-to-cart { margin-top: auto; }
.catalog-grid .product-card--bundle { border: 0; }
.catalog-grid .product-card--bundle .product-image-button img { aspect-ratio: 384 / 360; }
.catalog-pagination { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 48px; }
.catalog-pagination .circle-button { width: 40px; height: 40px; }
.catalog-page-numbers { display: flex; gap: 12px; }
.catalog-page-numbers button { border: 0; background: transparent; color: var(--brown-800); width: 32px; height: 32px; border-radius: 50%; font: 400 14px/1 var(--sans); }
.catalog-page-numbers button:hover { background: var(--cream-100); }
.catalog-page-numbers button[aria-current] { background: var(--terracotta-600); color: var(--cream-50); }
.catalog-empty { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 64px 24px; border: 1px solid var(--cream-200); border-radius: 12px; background: var(--cream-50); }
.catalog-empty > .icon { width: 48px; height: 48px; color: var(--sage-600); margin-bottom: 24px; }
.catalog-empty h2 { font: var(--title-h4); max-width: 480px; }
.catalog-empty p { color: var(--brown-600); margin: 16px 0 24px; }
.catalog-no-script { margin-top: 24px; }
@media (min-width: 761px) and (max-width: 1100px) {
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .catalog { padding-top: 48px; background: linear-gradient(180deg, var(--cream-100), #fff 340px); }
  .catalog > .container { width: calc(100% - 40px); }
  .catalog-heading { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 24px; }
  .catalog-heading h1 { font: var(--title-h3); }
  .catalog-sort { gap: 16px; }
  .catalog-sort label { font-size: 18px; }
  .catalog-categories { gap: 16px; margin-bottom: 20px; margin-right: -20px; padding-right: 20px; }
  .catalog-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .catalog-grid .product-card { padding: 16px; border: .8px solid var(--cream-100); border-radius: 9.6px; }
  .catalog-grid .product-image-button img,
  .catalog-grid .product-card--bundle .product-image-button img { aspect-ratio: 332 / 280; }
  .catalog-grid .product-price { margin-bottom: 16px; }
  .catalog-pagination { margin-top: 32px; }
  .catalog-empty { padding: 40px 20px; }
  .catalog-empty h2 { font: var(--title-h5); }
  .catalog-empty .button { font-size: 14px; padding-inline: 16px; }
}
@media (max-width: 370px) {
  .catalog-sort { gap: 8px; }
  .catalog-sort label { font-size: 16px; white-space: nowrap; }
  .catalog-select select { font-size: 13px; padding-left: 16px; padding-right: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-chip, .catalog-grid .product-image-button img { transition: none; }
}
