/*
 * GSM Notes Secure Core
 * Shop / product archive base stylesheet.
 *
 * This file stays intentionally scoped to the theme-managed WooCommerce loop
 * so third-party custom shop templates can opt out cleanly.
 */

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
  display: grid;
  grid-template-columns: var(--gnsc-shop-grid-template, repeat(4, minmax(0, 1fr)));
  gap: clamp(14px, 1.4vw, 22px);
  margin: 24px 0 12px;
  padding: 0;
  list-style: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid::before,
body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid::after,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid::before,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid::after {
  display: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid li.product {
  float: none;
  width: auto;
  margin: 0;
  min-width: 0;
}

body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-auto-cards.woocommerce-page ul.products.gnsc-shop-grid {
  grid-template-columns: var(--gnsc-shop-grid-template, repeat(4, minmax(0, 1fr)));
}

body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-manual-cards.woocommerce-page ul.products.gnsc-shop-grid {
  grid-template-columns: repeat(var(--gnsc-shop-columns, 4), minmax(min(100%, var(--gnsc-shop-card-min, 180px)), 1fr));
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product .woocommerce-loop-product__link {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  text-decoration: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product a img {
  width: 100%;
  max-width: 100%;
  display: block;
  aspect-ratio: 100 / var(--gnsc-shop-image-ratio, 100);
  object-fit: cover;
  border-radius: var(--gnsc-shop-image-radius, 18px);
  margin: 0 0 12px;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product .price {
  font-size: var(--gnsc-shop-price-size, 16px);
}

body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  width: 100%;
}

body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions .button,
body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions a.button {
  width: 100%;
  margin: 0;
  min-height: var(--gnsc-shop-button-height, 42px);
  font-size: var(--gnsc-shop-button-text-size, 15px);
  line-height: 1.1;
}

@media (max-width: 1024px) {
  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(var(--gnsc-shop-columns-md, 3), minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
