/* Category Products Section Layout */
.category-products-section { position: relative; }
.category-dynamic-grid { position:relative; }
.category-dynamic-grid .product-grid { --pg-gap:clamp(.75rem,1.5vw,1.25rem); }
.category-dynamic-grid .pg-grid { display:grid; gap:var(--pg-gap); grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
.category-dynamic-grid aside { position:sticky; top:110px; }
.category-dynamic-grid { background:var(--secondary-color,#fff); }
body.page-category { background:#f5f7fa; }
.page-category .category-dynamic-grid { margin-top: clamp(40px, 8vh, 70px); }
.page-category.global-fixed-header .category-dynamic-grid { margin-top: clamp(20px,5vh,50px); }
.category-products-section .products-toolbar { border: 1px solid #eee; background:#fff; padding: .75rem 1rem; border-radius: 12px; }
.category-products-section .filter-tags { max-width: 480px; }
.filter-tag { background:#f1f5f9; color:#334155; padding:4px 10px; border-radius:20px; font-size:12px; display:inline-flex; align-items:center; gap:6px; }
.filter-tag button.remove-tag { background:none; border:none; font-size:14px; line-height:1; cursor:pointer; color:#64748b; }
.filter-tag button.remove-tag:hover { color:#0f172a; }

/* Sidebar responsive */
@media (max-width: 991.98px) {
  #filtersColumn { position: fixed; top: var(--header-height,70px); left:0; width: 300px; height: calc(100vh - var(--header-height,70px)); background:#fff; z-index:1200; transform: translateX(-100%); transition: transform .3s; overflow-y:auto; padding:1.25rem 1rem; box-shadow: 0 10px 30px -5px rgba(0,0,0,.2); }
  #filtersColumn.show { transform: translateX(0); }
  .mobile-filter-toggle { display:inline-flex; }
}
@media (min-width: 992px){ .mobile-filter-toggle { display:none !important; } }

/* Products grid list mode */
.products-grid.products-list > [class*="col-"] { flex: 0 0 100%; max-width:100%; }

/* Animations */
.product-card { transition: box-shadow .25s, transform .25s; }
.product-card:hover { box-shadow:0 8px 24px -6px rgba(0,0,0,.15); transform: translateY(-4px); }
