/* MAD Product Card Designer v2 — only product grids; no single-product CSS. */
.mad-wpc-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--mad-wpc-cols-desktop, 4), minmax(0, 1fr)) !important;
  gap: var(--mad-wpc-row-gap, 24px) var(--mad-wpc-gap, 18px) !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.mad-wpc-grid::before, .mad-wpc-grid::after { display:none!important; content:none!important; }
.mad-wpc-grid > li.mad-wpc-card {
  box-sizing: border-box;
  display:flex !important; flex-direction:column;
  position:relative;
  min-width:0; width:100%!important; max-width:none!important;
  float:none!important; clear:none!important; margin:0!important;
  padding:0 0 var(--mad-wpc-padding,14px)!important;
  background:var(--mad-wpc-card-bg,#fff)!important;
  border:var(--mad-wpc-border-width,1px) solid var(--mad-wpc-border,#e5eae7)!important;
  border-radius:var(--mad-wpc-radius,12px)!important;
  box-shadow:none; overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease;
  text-align:var(--mad-wpc-text-align,left)!important;
}
.mad-wpc-grid > li.mad-wpc-card.mad-wpc-shadow-soft { box-shadow:0 3px 12px rgba(12,35,23,.05); }
.mad-wpc-grid > li.mad-wpc-card.mad-wpc-shadow-medium { box-shadow:0 5px 19px rgba(12,35,23,.105); }
.mad-wpc-grid > li.mad-wpc-card.mad-wpc-shadow-strong { box-shadow:0 9px 28px rgba(12,35,23,.18); }
@media (hover:hover) {
 .mad-wpc-grid > li.mad-wpc-card.mad-wpc-lift:hover { transform:translateY(-3px); }
 .mad-wpc-grid > li.mad-wpc-card.mad-wpc-lift:hover { box-shadow:0 13px 30px rgba(12,35,23,.15); }
}
.mad-wpc-grid .mad-wpc-part { box-sizing:border-box; flex:0 0 auto; width:100%; min-width:0; }
.mad-wpc-grid .mad-wpc-part[hidden], .mad-wpc-grid .mad-wpc-sale[hidden] { display:none!important; }
.mad-wpc-grid .mad-wpc-image { margin:0 0 12px!important; padding:0!important; }
.mad-wpc-grid .mad-wpc-media-link {
  display:block!important; position:relative; isolation:isolate;
  width:100%; aspect-ratio:var(--mad-wpc-ratio, 1 / 1);
  overflow:hidden; background:var(--mad-wpc-image-bg,#f4f6f4)!important;
  text-decoration:none!important; outline-offset:2px;
}
.mad-wpc-grid .mad-wpc-media-link .et_shop_image { display:block!important; position:static!important; height:100%; width:100%; overflow:visible; }
.mad-wpc-grid .mad-wpc-media-link .et_overlay { display:none!important; }
.mad-wpc-grid .mad-wpc-media-link :is(img, .et_shop_image img) {
  display:block!important; box-sizing:border-box;
  position:relative; width:100%!important; height:100%!important;
  aspect-ratio:var(--mad-wpc-ratio, 1 / 1);
  object-fit:var(--mad-wpc-fit,contain)!important; object-position:center;
  padding:10px!important; margin:0!important;
  background:transparent!important; border:0!important;
  transition:transform .32s ease,opacity .25s ease;
}
.mad-wpc-grid .mad-wpc-media-link img.mad-wpc-alt-image {
  position:absolute!important; z-index:2;
  top:0; left:0; opacity:0;
  pointer-events:none;
}
.mad-wpc-grid .mad-wpc-image.mad-wpc-show-alt .mad-wpc-alt-image { opacity:1!important; }
@media (hover:hover) {
  .mad-wpc-grid .mad-wpc-media-link:hover img:not(.et_overlay img) { transform:scale(var(--mad-wpc-zoom,1)); }
}
.mad-wpc-grid .mad-wpc-title, .mad-wpc-grid .mad-wpc-rating,
.mad-wpc-grid .mad-wpc-price, .mad-wpc-grid .mad-wpc-button { padding-left:var(--mad-wpc-padding,14px); padding-right:var(--mad-wpc-padding,14px); }
.mad-wpc-grid .mad-wpc-title { margin-bottom:8px!important; }
.mad-wpc-grid .mad-wpc-title-link { text-decoration:none!important; display:block; color:inherit; }
.mad-wpc-grid .mad-wpc-title :is(h2,h3,.woocommerce-loop-product__title) {
  display:-webkit-box!important; -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--mad-wpc-title-lines,2); line-clamp:var(--mad-wpc-title-lines,2);
  overflow:hidden!important; text-overflow:ellipsis;
  margin:0!important; padding:0!important; min-height:0!important;
  color:var(--mad-wpc-title,#17211e)!important; font-size:var(--mad-wpc-title-size,14px)!important;
  font-weight:650!important; letter-spacing:-.01em; line-height:1.45!important;
  text-align:var(--mad-wpc-text-align,left)!important;
}
.mad-wpc-grid .mad-wpc-rating { margin-bottom:7px!important; }
.mad-wpc-grid .mad-wpc-rating .star-rating {
  float:none!important; display:block!important;
  margin:0 var(--mad-wpc-star-right,auto) 0 var(--mad-wpc-star-left,0)!important; font-size:13px;
  color:var(--mad-wpc-stars,#d69d20)!important;
}
.mad-wpc-grid .mad-wpc-card:has(.mad-wpc-rating) .mad-wpc-rating .star-rating:before,
.mad-wpc-grid .mad-wpc-rating .star-rating span:before { color:var(--mad-wpc-stars,#d69d20)!important; }
.mad-wpc-grid .mad-wpc-price { margin-bottom:13px!important; }
.mad-wpc-grid .mad-wpc-price > .price {
  display:block!important; margin:0!important; padding:0!important;
  color:var(--mad-wpc-price,#17211e)!important;
  font-size:var(--mad-wpc-price-size,20px)!important;
  font-weight:750!important; line-height:1.25!important;
  text-align:var(--mad-wpc-text-align,left)!important;
}
.mad-wpc-grid .mad-wpc-price .price ins { background:transparent!important; text-decoration:none!important; color:inherit!important; }
.mad-wpc-grid .mad-wpc-price .price del { margin-right:6px; color:var(--mad-wpc-muted,#66736c)!important; font-size:65%; font-weight:400; opacity:1; }
.mad-wpc-grid .mad-wpc-card.mad-wpc-button-bottom .mad-wpc-button { margin-top:auto!important; }
.mad-wpc-grid .mad-wpc-button { margin-bottom:0!important; }
.mad-wpc-grid .mad-wpc-button a.button, .mad-wpc-grid .mad-wpc-button button.button {
  display:inline-flex!important; position:relative;
  align-items:center; justify-content:center;
  box-sizing:border-box; width:auto; max-width:100%;
  min-height:43px; margin:0!important; padding:11px 15px!important;
  background:var(--mad-wpc-button,#17211e)!important;
  border:1px solid var(--mad-wpc-button,#17211e)!important;
  border-radius:6px!important;
  color:var(--mad-wpc-button-text,#fff)!important;
  text-align:center; text-decoration:none!important;
  line-height:1.3!important; font-size:13px!important; font-weight:700!important;
  white-space:normal; transition:background-color .2s,border-color .2s,color .2s;
}
.mad-wpc-grid .mad-wpc-button a.button::before,.mad-wpc-grid .mad-wpc-button a.button::after,
.mad-wpc-grid .mad-wpc-button button.button::before,.mad-wpc-grid .mad-wpc-button button.button::after { content:none!important; display:none!important; }
.mad-wpc-grid .mad-wpc-button a.button:hover, .mad-wpc-grid .mad-wpc-button button.button:hover {
  background:var(--mad-wpc-button-hover,#23794f)!important;
  border-color:var(--mad-wpc-button-hover,#23794f)!important;
  color:var(--mad-wpc-button-text,#fff)!important;
}
.mad-wpc-grid .mad-wpc-button-full .mad-wpc-button a.button,
.mad-wpc-grid .mad-wpc-button-full .mad-wpc-button button.button { display:flex!important; width:100%!important; }
.mad-wpc-grid .mad-wpc-button-outline .mad-wpc-button a.button,
.mad-wpc-grid .mad-wpc-button-outline .mad-wpc-button button.button { background:transparent!important; color:var(--mad-wpc-button,#17211e)!important; }
.mad-wpc-grid .mad-wpc-button-outline .mad-wpc-button :is(a.button,button.button):hover { background:var(--mad-wpc-button-hover,#23794f)!important; color:var(--mad-wpc-button-text,#fff)!important; }
.mad-wpc-grid .mad-wpc-button-minimal .mad-wpc-button :is(a.button,button.button) { background:transparent!important; border-color:transparent!important; color:var(--mad-wpc-button,#17211e)!important; }
.mad-wpc-grid .mad-wpc-button-minimal .mad-wpc-button :is(a.button,button.button):hover { color:var(--mad-wpc-button-hover,#23794f)!important; }
.mad-wpc-grid li.mad-wpc-card > .onsale.mad-wpc-sale {
  display:inline-block!important; position:absolute!important; z-index:5;
  top:12px!important; left:12px!important; right:auto!important; bottom:auto!important;
  width:auto!important; min-width:0!important; height:auto!important; min-height:0!important;
  padding:7px 10px!important; margin:0!important;
  border:0!important; border-radius:5px!important;
  background:var(--mad-wpc-sale-bg,#23794f)!important;
  color:var(--mad-wpc-sale-text,#fff)!important;
  font-size:11px!important; font-weight:750!important; line-height:1!important;
  letter-spacing:.03em; text-transform:uppercase;
}
/* Out-of-stock status: same size and position as the native SALE badge.
   Rendered only for real WooCommerce outofstock product cards. */
.mad-wpc-grid li.mad-wpc-card > .mad-wpc-out-of-stock-badge {
  display:inline-block!important; position:absolute!important; z-index:6;
  top:12px!important; left:12px!important; right:auto!important; bottom:auto!important;
  width:auto!important; min-width:0!important; height:auto!important; min-height:0!important;
  padding:7px 10px!important; margin:0!important;
  border:0!important; border-radius:5px!important;
  background:var(--mad-wpc-stock-bg,#17211e)!important;
  color:var(--mad-wpc-stock-text,#fff)!important;
  font-size:11px!important; font-weight:750!important; line-height:1!important;
  letter-spacing:.03em; text-transform:uppercase;
  pointer-events:none;
}
@media (max-width:767px) {
  .mad-wpc-grid li.mad-wpc-card > .mad-wpc-out-of-stock-badge {
    left:7px!important; top:7px!important; padding:5px 7px!important; font-size:10px!important;
  }
}
.mad-wpc-grid .mad-wpc-card > a.added_to_cart,
.mad-wpc-grid .mad-wpc-card > .mad-wpc-extra { display:block; margin:6px var(--mad-wpc-padding,14px) 0; }
@media (max-width:1100px) {
  .mad-wpc-grid { grid-template-columns:repeat(var(--mad-wpc-cols-tablet,3),minmax(0,1fr))!important; }
}
@media (max-width:767px) {
  .mad-wpc-grid { grid-template-columns:repeat(var(--mad-wpc-cols-mobile,2),minmax(0,1fr))!important; }
  .mad-wpc-grid .mad-wpc-media-link img { padding:7px!important; }
  .mad-wpc-grid li.mad-wpc-card > .onsale.mad-wpc-sale { left:7px!important; top:7px!important; padding:5px 7px!important; font-size:10px!important; }
  .mad-wpc-grid .mad-wpc-button a.button, .mad-wpc-grid .mad-wpc-button button.button { font-size:12px!important; min-height:39px; }
}
@media (prefers-reduced-motion:reduce) {
  .mad-wpc-grid > li.mad-wpc-card,.mad-wpc-grid img,.mad-wpc-grid .mad-wpc-button :is(a,button) { transition:none!important; transform:none!important; }
}
/* Explicitly hiding a badge must outrank themes' and our sale display rules. */
.mad-wpc-grid li.mad-wpc-card > .onsale.mad-wpc-sale[hidden] { display:none!important; }

/* v2.5.3 — MOBILE DIVI GRID WIDTH FIX
 * Divi's .et_pb_shop + columns-4 rules can leave li.product at a percentage
 * width *inside* our CSS grid. Force each card to fill its grid track.
 */
@media (max-width: 767px) {
 body .et_pb_shop .woocommerce ul.products.mad-wpc-grid,
 body .woocommerce ul.products.mad-wpc-grid {
   display:grid!important;
   grid-template-columns:repeat(var(--mad-wpc-cols-mobile,2),minmax(0,1fr))!important;
   width:100%!important; max-width:100%!important;
   gap:clamp(10px,3vw,var(--mad-wpc-gap,18px))!important;
   justify-content:stretch!important; justify-items:stretch!important;
   align-items:stretch!important;
   box-sizing:border-box!important;
   padding:0!important; margin:0!important;
 }
 body .et_pb_shop .woocommerce ul.products.mad-wpc-grid > li.product.mad-wpc-card,
 body .woocommerce ul.products.mad-wpc-grid > li.product.mad-wpc-card {
   display:flex!important; flex-direction:column!important;
   width:100%!important; min-width:0!important; max-width:none!important;
   flex:auto!important; flex-basis:auto!important;
   margin:0!important; padding-bottom:var(--mad-wpc-padding,14px)!important;
   float:none!important; clear:none!important;
   justify-self:stretch!important; align-self:stretch!important;
   grid-column:auto!important; box-sizing:border-box!important;
 }
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-title,
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-price,
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-button,
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-rating {
   min-width:0; max-width:100%;
   padding-left:clamp(9px,2.4vw,var(--mad-wpc-padding,14px));
   padding-right:clamp(9px,2.4vw,var(--mad-wpc-padding,14px));
 }
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-media-link,
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-image {
   display:block!important; width:100%!important; max-width:100%!important;
 }
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-price .price {
   white-space:nowrap!important; overflow-wrap:normal!important;
   word-break:normal!important;
   font-size:clamp(16px,4vw,var(--mad-wpc-price-size,20px))!important;
 }
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-title :is(h2,h3,.woocommerce-loop-product__title) {
   overflow-wrap:break-word; word-break:normal;
   font-size:clamp(12px,3.15vw,var(--mad-wpc-title-size,14px))!important;
 }
 body .woocommerce ul.products.mad-wpc-grid .mad-wpc-button :is(a.button,button.button) {
   width:100%!important; max-width:100%!important;
   padding:10px 9px!important; font-size:12px!important;
 }
}
/* The two-column mobile choice still wins. Below 340px a single readable
   column avoids forcing a sub-150px product card. */
@media (max-width:339px) {
 body .et_pb_shop .woocommerce ul.products.mad-wpc-grid,
 body .woocommerce ul.products.mad-wpc-grid {
   grid-template-columns:repeat(1,minmax(0,1fr))!important;
 }
}
