/* v3.8.3 — fixes only. Loaded after v3.8.2 and deliberately scoped so the
   homepage/editor do not inherit WooCommerce archive or product styles. */

/* Collection cards: legacy loop overlays must never obscure titles or prices.
   Applies equally to WooCommerce-rendered AJAX result replacements. */
body .zv38-shop .zv375-shop-results ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  min-width: 0 !important;
  height: auto !important;
  overflow: visible !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product > a.woocommerce-loop-product__link,
body .zv38-shop .zv375-shop-results ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  inset: auto !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  color: #29231e !important;
  background: transparent !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product .zv-loop-media-wrap {
  position: relative !important;
  flex: none !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  background: #f2ece5 !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product .zv-loop-media-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product h2.woocommerce-loop-product__title,
body .zv38-shop .zv375-shop-results ul.products li.product h3.woocommerce-loop-product__title {
  display: block !important;
  position: static !important;
  flex: none !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 12px 0 4px !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  clip: auto !important;
  clip-path: none !important;
  transform: none !important;
  color: #29231e !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  text-align: left !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  overflow-wrap: break-word !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product .price,
body .zv38-shop .zv375-shop-results ul.products li.product .woocommerce-Price-amount,
body .zv38-shop .zv375-shop-results ul.products li.product .amount {
  opacity: 1 !important;
  visibility: visible !important;
  color: #68584e !important;
  text-decoration-color: currentColor !important;
}
body .zv38-shop .zv375-shop-results ul.products li.product .price {
  display: block !important;
  position: static !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  transform: none !important;
  text-align: left !important;
}

/* Full-width editorial PDP: do not reuse the old 1310px desktop cap. */
@media (min-width: 861px) {
  body.single-product.zvluxe-product-v377 .zv-clean-product-section {
    padding: clamp(18px, 2.3vw, 34px) 0 65px !important;
  }
  body.single-product.zvluxe-product-v377 .zv-clean-product-section > .zv-wide {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding-inline: clamp(22px, 3vw, 62px) !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-main {
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr) !important;
    gap: clamp(24px, 3.4vw, 58px) !important;
    align-items: start !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-gallery-stage {
    width: 100% !important;
    height: clamp(500px, 60vw, 720px) !important;
    max-height: min(74vh, 720px) !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 5 !important;
    background: #f2ece5 !important;
    border: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-gallery-main-link {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-gallery-main-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain !important; /* show full image, no destructive crop */
    object-position: center !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-gallery-thumb {
    border-radius: 9px !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-summary {
    padding: 0 !important;
    min-width: 0 !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-after {
    margin-top: clamp(26px, 3vw, 45px) !important;
    padding-top: clamp(22px, 2.5vw, 38px) !important;
  }
}

/* Related section uses the same soft-corner 4:5 merchandise photography. */
body.single-product.zvluxe-product-v377 .zv377-product-after .related ul.products,
body.single-product.zvluxe-product-v377 .zv377-product-after .upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px 16px !important;
  width: 100% !important;
  clear: both !important;
}
body.single-product.zvluxe-product-v377 .zv377-product-after .related ul.products li.product,
body.single-product.zvluxe-product-v377 .zv377-product-after .upsells ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}
body.single-product.zvluxe-product-v377 .zv377-product-after .related .zv-loop-media-wrap,
body.single-product.zvluxe-product-v377 .zv377-product-after .upsells .zv-loop-media-wrap {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  background: #f2ece5 !important;
}
body.single-product.zvluxe-product-v377 .zv377-product-after .related .zv-loop-media-wrap img,
body.single-product.zvluxe-product-v377 .zv377-product-after .upsells .zv-loop-media-wrap img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* The mini-cart lives in wp_footer on every template, outside every shop
   layout. Give the drawer its own style boundary so WooCommerce global button,
   price, thumbnail and list rules cannot change its appearance by page. */
body .zv-cart-drawer,
body.woocommerce .zv-cart-drawer,
body.woocommerce-page .zv-cart-drawer,
body.single-product .zv-cart-drawer {
  position: fixed !important;
  inset: 0 0 0 auto !important;
  isolation: isolate !important;
  z-index: 1000002 !important;
  width: min(var(--zv-cart-drawer-width, 520px), 100vw) !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
  flex-direction: column !important;
  background: var(--zv-paper, #fffaf1) !important;
  color: var(--zv-text, #29231e) !important;
  font-family: var(--zv-sans, Arial, sans-serif) !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
body .zv-cart-drawer .zv-mini-cart,
body.woocommerce-page .zv-cart-drawer .zv-mini-cart {
  display: block !important;
  min-width: 0 !important;
  min-height: 0 !important;
  width: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}
body .zv-cart-drawer ul.woocommerce-mini-cart,
body.woocommerce-page .zv-cart-drawer ul.woocommerce-mini-cart {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body .zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item,
body.woocommerce-page .zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item {
  display: grid !important;
  grid-template-columns: 92px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 16px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 18px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--zv-line, #e1d7ca) !important;
  background: transparent !important;
  float: none !important;
}
body .zv-cart-drawer .zv-mini-cart-product-media,
body .zv-cart-drawer .zv-mini-cart-product-media a {
  display: block !important;
  width: 92px !important;
  min-width: 0 !important;
  height: 122px !important;
  margin: 0 !important;
  padding: 0 !important;
}
body .zv-cart-drawer .zv-mini-cart-product-media img,
body.woocommerce .zv-cart-drawer .zv-mini-cart-product-media img {
  display: block !important;
  width: 92px !important;
  height: 122px !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 7px !important;
  float: none !important;
  object-fit: cover !important;
  box-shadow: none !important;
}
body .zv-cart-drawer .zv-mini-cart-product-name,
body.woocommerce .zv-cart-drawer .zv-mini-cart-product-name,
body .zv-cart-drawer .zv-mini-cart-line-total {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: var(--zv-text, #29231e) !important;
}
body .zv-cart-drawer .woocommerce-mini-cart__buttons,
body.woocommerce-page .zv-cart-drawer .woocommerce-mini-cart__buttons {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 9px !important;
}
body .zv-cart-drawer .woocommerce-mini-cart__buttons a.button,
body.woocommerce-page .zv-cart-drawer .woocommerce-mini-cart__buttons a.button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 46px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 10px 8px !important;
  border: 1px solid var(--zv-text, #29231e) !important;
  border-radius: var(--zv-button-radius, 0px) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
}
@media (max-width: 860px) {
  body.single-product.zvluxe-product-v377 .zv-clean-product-section > .zv-wide {
    max-width: 100% !important;
    padding-inline: clamp(14px, 3vw, 24px) !important;
  }
  body.single-product.zvluxe-product-v377 .zv377-product-after .related ul.products,
  body.single-product.zvluxe-product-v377 .zv377-product-after .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px 12px !important;
  }
}
@media (max-width: 500px) {
  body .zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item,
  body.woocommerce-page .zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body .zv-cart-drawer .zv-mini-cart-product-media,
  body .zv-cart-drawer .zv-mini-cart-product-media a {
    width: 72px !important;
    height: 96px !important;
  }
  body .zv-cart-drawer .zv-mini-cart-product-media img,
  body.woocommerce .zv-cart-drawer .zv-mini-cart-product-media img {
    width: 72px !important;
    height: 96px !important;
  }
}
