.df-category-tags { display: flex; flex-wrap: wrap; gap: 16px; margin: 32px 0; }
.df-category-tag { display: inline-flex; align-items: center; min-height: 56px; padding: 12px 20px; border-radius: 9px; background: #a83d57; color: #fff; text-decoration: none; }
.df-category-tag:hover, .df-category-tag.is-active { background: #4d405e; color: #fff; }
.price-filter_row a { text-decoration: none; }
@media (max-width: 640px) { .df-category-tags { gap: 8px; } .df-category-tag { min-height: 42px; padding: 8px 12px; } }
.df-catalog-filters { align-items: end; gap: 15px; flex-wrap: wrap; }
.df-catalog-filters select { min-width: 220px; max-width: 100%; padding: 12px; border: 1px solid #d8d2dd; background: #fff; }
.df-catalog-filters button { align-self: end; }
.df-all-specifications { display: inline-block; margin: 0; font-size: .875rem; color: #695570; border-bottom: 1px dotted currentColor; text-decoration: none; }

/* The source stacks full-width filters on phones. */
@media (max-width: 767px) { .df-catalog-filters { align-items: stretch; } .df-catalog-filters .top-filter_item { width: 100%; } }

/* Keep million-ruble prices and order buttons on the same line across a grid row. */
.product-mod_row > .product-unit > .product-unit_desc { container-type: inline-size; }
.product-mod_row > .product-unit .product-unit_price-btn { flex-wrap: nowrap; gap: 6px; }
.product-mod_row > .product-unit .product-unit_price { white-space: nowrap; }
.product-mod_row > .product-unit .product-unit_price-btn .main-btn { flex-shrink: 0; padding-inline: 12px; }
/* Every card in a narrow grid switches together, independently of its price. */
@container (max-width: 239px) {
  .product-mod_row > .product-unit .product-unit_price-btn { flex-direction: column; align-items: flex-start; }
}

/* Keep one gap between the last product row and pagination. */
.product-mod_section:has(+ .df-pagination) { padding-bottom: 0; }
.product-mod_section + .df-pagination { margin-top: 24px; }
@media (max-width: 767px) {
  .product-mod_section + .df-pagination { margin-top: 20px; }
}
