/**
 * Global Atelier – Even Product Grid v1.0
 * CSS-only: works with initial HTML, pagination, WoodMart AJAX loads and Elementor widgets.
 * No product data, photos, prices, scripts, or image-overlay DOM nodes are modified.
 * Targets GRID cards only; WoodMart list mode and cart/checkout are excluded.
 */

/* 1. Equal-height siblings in WoodMart's grid and product widgets. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 :is(.wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view)) {
  align-items: stretch;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 :is(.wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view)) > :is(.wd-product,.product-grid-item) {
  height: auto;
  min-height: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}

/* Keep existing theme shadow, hover and border styles; only distribute inner height. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) > :is(.wd-product-wrapper,.product-wrapper) {
  min-width: 0;
  width: 100%;
  height: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

/* 2. Image frames: consistent 4:5 portrait frame. 'cover' never stretches the photo,
   but may crop edges to keep a clean consistent thumbnail (same as current site).
   Do NOT style .gac2-card-cover: existing watermark overlays remain untouched. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) :is(.wd-product-thumb,.product-element-top) {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 0;
  background-color: #eeeae1;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) :is(.wd-product-thumb,.product-element-top) > :is(a.wd-product-img-link,a.product-image-link) {
  display: block;
  width: 100%;
  height: 100%;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) :is(.wd-product-thumb,.product-element-top) > :is(a.wd-product-img-link,a.product-image-link) > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* Secondary hover images also fill the same frame, without affecting badge overlays. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .wd-product-img-hover > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* 3. Content: fixed two-line title area, consistent pricing and buttons.
   WoodMart's various built-in product layouts all keep their original contents. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .product-element-bottom {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) :is(.wd-product-header,.wd-product-title) {
  min-width: 0;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .wd-entities-title {
  line-height: 1.4;
  min-height: 2.8em;
  max-height: 2.8em;
  overflow: hidden;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
/* If theme puts price in a wrap, put it after all the shorter metadata. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .product-element-bottom > :is(.wrap-price,.wd-product-price) {
  margin-top: auto;
  flex: 0 0 auto;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .product-element-bottom > .wd-product-footer {
  margin-top: auto;
  flex: 0 0 auto;
}
/* Avoid product tags/cats unexpectedly adding more than one line of height. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .product-element-bottom > .wd-product-cats {
  display: block;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  min-width: 0;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) .product-element-bottom .price {
  line-height: 1.5;
}

/* 4. Native WooCommerce grid fallback (if products use li.product instead of WoodMart .wd-product). */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .woocommerce ul.products:not(.wd-products):not(.products-list) > li.product {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .woocommerce ul.products:not(.wd-products):not(.products-list) > li.product > a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .woocommerce ul.products:not(.wd-products):not(.products-list) > li.product > a.woocommerce-LoopProduct-link > img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: #eeeae1;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .woocommerce ul.products:not(.wd-products):not(.products-list) > li.product > a.woocommerce-LoopProduct-link .woocommerce-loop-product__title {
  min-height: 2.8em;
  max-height: 2.8em;
  line-height: 1.4;
  overflow: hidden;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
 .woocommerce ul.products:not(.wd-products):not(.products-list) > li.product > a.woocommerce-LoopProduct-link > .price {
  margin-top: auto;
}

/* Mobile: titles stay readable, and the cards never create a page-wide scrollbar. */
@media (max-width: 767px) {
  body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
   .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) {
    min-width: 0;
    max-width: 100%;
  }
  body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
   .wd-products:not(.wd-products-list):not(.wd-list-view):not(.wd-products-list-view) > :is(.wd-product,.product-grid-item) :is(.wd-entities-title,.woocommerce-loop-product__title) {
    overflow-wrap: anywhere;
  }
}
