/* ==========================================================================
   PRODUCT CARD CSS — Blue theme
   ========================================================================== */

/* Grid container */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem 1.5rem;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  display: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
  list-style: none;
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--bv-white);
  border-radius: var(--bv-radius-lg);
  overflow: hidden;
  box-shadow: var(--bv-shadow-sm);
  transition: box-shadow 0.3s var(--bv-ease), transform 0.3s var(--bv-ease);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  box-shadow: var(--bv-shadow-md);
  transform: translateY(-4px);
}

/* Astra specific: thumbnail wrapper */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative !important;
  display: block !important;
  aspect-ratio: 1 !important;
  overflow: hidden !important;
  background: var(--bv-cream-dark) !important;
  margin: 0 !important;
  width: 100% !important;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap a.woocommerce-loop-product__link {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img {
  transform: scale(1.06) !important;
}

/* Non-Astra generic image wrapper */
.woocommerce ul.products li.product > a:first-of-type:not(.woocommerce-loop-product__link) {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--bv-cream-dark);
}
.woocommerce ul.products li.product > a:first-of-type img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Hide Astra floating on-card "Select options" icon button */
.woocommerce ul.products li.product .ast-on-card-button {
  display: none !important;
}

/* Sale badge */
.woocommerce ul.products li.product .onsale,
.woocommerce ul.products li.product .ast-onsale-card,
.woocommerce-page ul.products li.product .onsale {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  margin: 0 !important;
  background: var(--bv-accent) !important;
  color: var(--bv-white) !important;
  padding: 0.3rem 0.7rem !important;
  border-radius: var(--bv-radius-sm) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.4 !important;
  z-index: 2;
  box-shadow: var(--bv-shadow-sm);
}

/* Summary wrap */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  padding: 1rem 1rem 1.25rem !important;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Category label */
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product .cat {
  font-size: 0.7rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--bv-muted) !important;
  margin-bottom: 0.4rem !important;
  font-family: var(--bv-font-body) !important;
  font-weight: 500 !important;
  display: block;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
  font-family: var(--bv-font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--bv-ink) !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.woocommerce ul.products li.product a.ast-loop-product__link {
  text-decoration: none;
}
.woocommerce ul.products li.product a h2,
.woocommerce ul.products li.product a h3 {
  color: var(--bv-ink);
  transition: color 0.3s ease;
}
.woocommerce ul.products li.product a:hover h2,
.woocommerce ul.products li.product a:hover h3 {
  color: var(--bv-blue);
}

/* Rating stars */
.woocommerce ul.products li.product .star-rating,
.woocommerce-page ul.products li.product .star-rating {
  font-size: 0.85rem !important;
  letter-spacing: 2px;
  color: var(--bv-accent) !important;
  margin: 0 0 0.5rem !important;
  width: 5.5em !important;
  height: 1em;
}
.woocommerce ul.products li.product .star-rating::before {
  color: var(--bv-line) !important;
}
.woocommerce ul.products li.product .star-rating span::before {
  color: var(--bv-accent) !important;
}

/* Price */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  color: var(--bv-blue) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  font-family: var(--bv-font-body) !important;
  margin: 0 0 0.85rem !important;
  display: block;
}
.woocommerce ul.products li.product .price del,
.woocommerce-page ul.products li.product .price del {
  color: var(--bv-muted) !important;
  font-weight: 400 !important;
  margin-right: 0.4rem;
  opacity: 0.75;
  font-size: 0.85em;
}
.woocommerce ul.products li.product .price ins,
.woocommerce-page ul.products li.product .price ins {
  text-decoration: none !important;
  background: none !important;
  color: var(--bv-blue) !important;
  font-weight: 700 !important;
}
.woocommerce ul.products li.product .price .screen-reader-text {
  display: none !important;
}

/* Add to cart button — visible, full width, below price */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
  width: 100% !important;
  text-align: center !important;
  padding: 0.7rem 1rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.05em !important;
  font-weight: 600 !important;
  background: var(--bv-blue) !important;
  border: 1.5px solid var(--bv-blue) !important;
  color: var(--bv-white) !important;
  border-radius: var(--bv-radius-sm) !important;
  font-family: var(--bv-font-body) !important;
  margin: auto 0 0 !important;
  display: inline-block !important;
  line-height: 1.4 !important;
  min-height: auto !important;
  height: auto !important;
  transition: all 0.3s ease !important;
  cursor: pointer;
  box-shadow: none !important;
  text-transform: none !important;
  text-decoration: none !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover {
  background: var(--bv-blue-dark) !important;
  border-color: var(--bv-blue-dark) !important;
  color: var(--bv-white) !important;
  transform: translateY(-1px);
  box-shadow: var(--bv-shadow-blue) !important;
}
.woocommerce ul.products li.product .added_to_cart { display: none !important; }
.woocommerce ul.products li.product .button.loading::after {
  font-family: "WooCommerce" !important;
}

/* Quick view button (Astra/WooSQ plugin) */
.woocommerce ul.products li.product .woosq-btn {
  width: 100% !important;
  margin-top: 0.5rem !important;
  padding: 0.6rem 1rem !important;
  background: transparent !important;
  color: var(--bv-ink-soft) !important;
  border: 1.5px solid var(--bv-line) !important;
  border-radius: var(--bv-radius-sm) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  cursor: pointer;
  transition: all 0.2s var(--bv-ease);
}
.woocommerce ul.products li.product .woosq-btn:hover {
  background: var(--bv-blue-bg) !important;
  color: var(--bv-blue) !important;
  border-color: var(--bv-blue) !important;
}

/* Hide WooCommerce screen-reader text from cards */
.woocommerce ul.products li.product .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem 1.25rem;
  }
}
@media (max-width: 768px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.25rem 1rem;
  }
  .woocommerce ul.products li.product .button {
    padding: 0.6rem 0.5rem !important;
    font-size: 0.72rem !important;
  }
  .woocommerce ul.products li.product .astra-shop-summary-wrap {
    padding: 0.85rem 0.85rem 1rem !important;
  }
}
@media (max-width: 380px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr !important;
  }
}
