/* ----- FORCE GRID and protect product cards from global overrides ----- */
.products-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important; /* 4 cols desktop */
  gap: 24px !important;
  box-sizing: border-box;
}

/* tablet / responsive */
@media (max-width: 1280px) { .products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 1024px) { .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px)  { .products-grid { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; } }

/* Make sure card wrappers don't force width and anchors fill cards */
.product-card-wrapper,
.products-grid > * {
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.products-grid a,
.product-card-wrapper > a {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
}