/* Product card alignment for the homepage/listing widget grid */
@media (min-width: 992px) {
  .products-grid .product-items.widget-product-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 28px;
  }

  .products-grid .product-items.widget-product-grid > .product-item {
    display: flex;
    align-items: stretch;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
  }

  .products-grid .product-items.widget-product-grid .product-item-info {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
  }

  .products-grid .product-items.widget-product-grid .product-image-container {
    width: 100% !important;
    max-width: 100%;
  }

  .products-grid .product-items.widget-product-grid .product-image-photo {
    width: 100% !important;
    height: auto !important;
  }

  .products-grid .product-items.widget-product-grid .product-item-details {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
  }

  .products-grid .product-items.widget-product-grid .product-item-inner {
    margin-top: auto !important;
  }
  .products-grid .product-items.widget-product-grid .product-item-actions {
    margin-top: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .products-grid .product-items.widget-product-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 20px;
    row-gap: 24px;
  }
  .products-grid .product-items.widget-product-grid > .product-item {
    display: flex;
    align-items: stretch;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
  }
  .products-grid .product-items.widget-product-grid .product-item-info {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
  }
  .products-grid .product-items.widget-product-grid .product-image-container {
    width: 100% !important;
    max-width: 100%;
  }
  .products-grid .product-items.widget-product-grid .product-image-photo {
    width: 100% !important;
    height: auto !important;
  }
  .products-grid .product-items.widget-product-grid .product-item-details {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
  }
  .products-grid .product-items.widget-product-grid .product-item-inner {
    margin-top: auto !important;
  }
  .products-grid .product-items.widget-product-grid .product-item-actions {
    margin-top: 0 !important;
  }
}

/* Homepage: the empty compare/wishlist sidebar eats 300px; give it to products */
.cms-index-index .sidebar.sidebar-additional {
  display: none !important;
}
.cms-index-index .columns .column.main {
  width: 100% !important;
  float: none !important;
  margin-left: 0 !important;
}

/* Mobile: force a consistent 2-column card layout (image first, aligned CTAs) */
@media (max-width: 767px) {
  .widget-product-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    row-gap: 20px;
  }
  .widget-product-grid > .product-item {
    display: flex !important;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
  }
  .widget-product-grid .product-item-info {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
  }
  .widget-product-grid .product-item-photo {
    order: 0 !important;
  }
  .widget-product-grid .product-item-details {
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
  }
  .widget-product-grid .product-item-inner {
    margin-top: auto !important;
  }
  .widget-product-grid .product-image-container {
    width: 100% !important;
    max-width: 100%;
  }
}
