/* ZV Luxe 3.8.4 — consistent imagery + cart design boundary.
 * Loaded after the v3.8.3 commerce layer. Keep shop geometry unchanged.
 */
:root { --zv384-photo-radius: 13px; --zv384-card-bg: #f4eee7; }

/* Make interaction focus consistent without adding page-wide hover transforms. */
:where(.zv-main, .zv-site-header, .zv-site-footer) :is(a, button, input, select):focus-visible,
#zv-cart-drawer :is(a, button, input):focus-visible {
  outline: 2px solid #8a6652 !important;
  outline-offset: 3px;
}
:where(.zv-main, .zv-site-footer) img,
:where(.zv-main, .zv-site-footer) video { max-width: 100%; }
:where(.zv-main, .zv-site-footer) :is(.zv-wide, .zv-section, .zv-native-scroller) { min-width: 0; }

/* Homepage: preserve the campaign-format hero; standardize every merchandise/editorial photo. */
.home .zv-product-media-ref,
.home .zv-product-image-link,
.home .zv-category-strip > a,
.home .zv-collection-card,
.home .zv-follow-grid > a {
  border-radius: var(--zv384-photo-radius) !important;
  background: var(--zv384-card-bg) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
.home .zv-product-media-ref, .home .zv-product-image-link { aspect-ratio: 4 / 5 !important; }
.home .zv-product-media-ref img,
.home .zv-product-image-link img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
}
.home .zv-product-card-ref { min-width: 0; }
.home .zv-product-title-ref { margin-top: 12px; line-height: 1.45; min-height: 0; font-weight: 500; }
.home .zv-product-price-ref { margin-top: 4px; font-size: 13px; }
/* Make the add action usable without a mouse, including touch screens. */
@media (hover: none), (pointer: coarse) {
  .home .zv-product-card-ref .zv-card-button {
    opacity: 1 !important; transform: none !important;
    background: rgba(255,253,248,.94) !important;
  }
}
.home .zv-category-strip > a {
  aspect-ratio: 4 / 5 !important;
  min-height: 0 !important;
  height: auto !important;
  isolation: isolate;
}
.home .zv-category-strip > a .zv-live-media,
.home .zv-category-strip > a .zv-video-stage,
.home .zv-category-strip > a .zv-media-file,
.home .zv-category-strip > a img,
.home .zv-category-strip > a video { max-width: 100%; }
.home .zv-category-strip > a .zv-live-media,
.home .zv-category-strip > a .zv-video-stage { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; }
.home .zv-category-strip > a img,
.home .zv-category-strip > a video {
  display: block !important; width: 100% !important; height: 100% !important;
  min-height: 0 !important; object-position: center !important;
}
/* Videos must remain fully visible, as requested; images use fashion-card cropping. */
.home .zv-category-strip > a img { object-fit: cover !important; }
.home .zv-category-strip > a video { object-fit: contain !important; background: var(--zv384-card-bg); }

.home .zv-collection-card { aspect-ratio: 4 / 5 !important; }
.home .zv-collection-card .zv-live-media,
.home .zv-collection-card .zv-collection-media,
.home .zv-collection-card .zv-video-stage { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; }
.home .zv-collection-card img,
.home .zv-collection-card video { display:block !important; width:100% !important; height:100% !important; object-fit: cover !important; }
.home .zv-collection-card video { object-fit: contain !important; background: var(--zv384-card-bg); }
.home .zv-collection-copy { z-index: 3; }

.home .zv-follow-grid { gap: clamp(8px,1.2vw,16px) !important; }
.home .zv-follow-grid > a { aspect-ratio: 4 / 5 !important; }
.home .zv-follow-grid > a img,
.home .zv-follow-grid > a video { width:100% !important; height:100% !important; object-fit:cover !important; }
.home .zv-story-image,
.home .zv-gift-media,
.home .zv-about-image { overflow: hidden; background: var(--zv384-card-bg); }
.home .zv-story-image img,
.home .zv-gift-media img,
.home .zv-about-image img { display: block; width:100% !important; height:100% !important; object-fit:cover !important; }
.home .zv-story-image video,
.home .zv-gift-media video,
.home .zv-about-image video { display:block; max-width:100%; object-fit:contain !important; }
.home .zv-section-head { min-width: 0; }
.home .zv-section-title { font-weight: 500; letter-spacing: .075em; line-height: 1.25; }
.home .zv-gift-section, .home .zv-collection-section { background: #fffdf9; }
.home .zv-product-section { background: #fffaf5; }
.home .zv-press-item { border-radius: 10px; }
.home .zv-bd-support-card { border-radius: 12px; }

/* Product pages and shop pages share the same garment photo shape. */
body.single-product .zv377-gallery-stage,
body.single-product .zv377-gallery-thumb,
body.single-product .zv377-product-after .zv-loop-media-wrap,
body .zv38-shop .zv-loop-media-wrap { border-radius: var(--zv384-photo-radius) !important; }
body.single-product .zv377-gallery-stage { background: var(--zv384-card-bg) !important; }

/* The mini-cart is a site-level overlay, never a WooCommerce product list.
   ID-scoping intentionally outranks body.woocommerce-page/archive/widget styles. */
html body #zv-cart-drawer {
  position: fixed !important; inset: 0 0 0 auto !important;
  z-index: 1000002 !important;
  display: flex !important; flex-direction: column !important;
  width: min(var(--zv-cart-drawer-width, 480px), 100vw) !important;
  max-width: 100vw !important; height: 100vh !important; height: 100dvh !important;
  padding: max(19px, env(safe-area-inset-top)) max(19px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(19px, env(safe-area-inset-left)) !important;
  margin: 0 !important;
  background: #fffdf9 !important; color: #29231e !important;
  border: 0 !important; border-left: 1px solid #e8ddd1 !important;
  box-shadow: -16px 0 45px rgba(36,24,15,.14) !important;
  border-radius: 0 !important; overflow: hidden !important;
  transform: none !important;
  clip-path: inset(0 0 0 100%) !important;
  opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
  transition: clip-path .26s ease,opacity .2s ease,visibility 0s linear .26s !important;
  isolation: isolate;
  font-family: var(--zv-sans,Arial,sans-serif) !important;
  font-size: 14px !important; line-height: 1.5 !important;
  text-align: left !important;
}
html body #zv-cart-drawer.is-open {
  clip-path: inset(0) !important;
  opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
  transition-delay: 0s !important;
}
html body #zv-cart-drawer, html body #zv-cart-drawer * { box-sizing: border-box !important; }
html body #zv-cart-drawer .zv-side-cart-top {
  flex: 0 0 auto !important; display:flex !important; align-items:center !important;
  justify-content:space-between !important; gap: 14px !important;
  width: 100% !important; margin: 0 !important; padding: 0 0 15px !important;
  border-bottom: 1px solid #e8ddd1 !important;
}
html body #zv-cart-drawer .zv-side-cart-top h2 {
  font-size: clamp(29px,4.5vw,37px) !important; line-height:1.12 !important;
  font-family:var(--zv-serif,Georgia,serif) !important; font-weight:400 !important;
  margin: 4px 0 0 !important; padding:0 !important;
}
html body #zv-cart-drawer .zv-panel-close {
  position: static !important; display:inline-flex !important;
  align-items:center !important; justify-content:center !important;
  width:44px !important; min-width:44px !important; height:44px !important;
  margin:0 !important; padding:0 !important; border:1px solid #e8ddd1 !important;
  border-radius:50% !important; color:#29231e !important; background:transparent !important;
  font-size:27px !important; line-height:1 !important;
}
html body #zv-cart-drawer .zv-side-cart-note {
  flex:0 0 auto !important; font-size:12px !important; line-height:1.5 !important;
  color:#746d64 !important; width:100% !important;
  margin: 0 !important; padding: 13px 0 !important;
}
html body #zv-cart-drawer .zv-mini-cart {
  flex:1 1 auto !important; display:block !important;
  width:100% !important; min-height:0 !important; min-width:0 !important;
  overflow-x:hidden !important; overflow-y:auto !important;
  overscroll-behavior:contain; scrollbar-width:thin;
}
html body #zv-cart-drawer :is(ul.woocommerce-mini-cart,ul.cart_list,ul.product_list_widget) {
  display:grid !important; grid-template-columns:minmax(0,1fr) !important;
  gap:0 !important; float:none !important; width:100% !important;
  margin:0 !important; padding:0 !important;
  list-style:none !important;
}
html body #zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item {
  display:grid !important; grid-template-columns:84px minmax(0,1fr) !important;
  gap:14px !important; align-items:start !important;
  width:100% !important; max-width:100% !important;
  position:relative !important; float:none !important; clear:both !important;
  margin:0 !important; padding:17px 0 !important;
  border:0 !important; border-bottom:1px solid #e8ddd1 !important;
  background:transparent !important; list-style:none !important;
}
html body #zv-cart-drawer .zv-mini-cart-product-media,
html body #zv-cart-drawer .zv-mini-cart-product-media a {
  display:block !important; width:84px !important; height:105px !important;
  min-width:0 !important; margin:0 !important; padding:0 !important; float:none !important;
}
html body #zv-cart-drawer .zv-mini-cart-product-media img,
html body.woocommerce #zv-cart-drawer .zv-mini-cart-product-media img {
  display:block !important; width:100% !important; height:100% !important;
  max-width:100% !important; max-height:100% !important;
  margin:0 !important; padding:0 !important; float:none !important;
  border-radius:10px !important; object-fit:cover !important;
  box-shadow:none !important;
}
html body #zv-cart-drawer .zv-mini-cart-product-copy {
  display:block !important; min-width:0 !important; width:100% !important;
  margin:0 !important; padding:0 !important; float:none !important;
}
html body #zv-cart-drawer .zv-mini-cart-product-top {
  display:flex !important; justify-content:space-between !important;
  align-items:flex-start !important; gap:10px !important;
  width:100% !important; padding:0 !important; margin:0 !important;
}
html body #zv-cart-drawer .zv-mini-cart-product-name {
  position:static !important; display:block !important; flex:1 1 auto !important;
  width:auto !important; min-width:0 !important; max-width:100% !important;
  color:#29231e !important; font-family:var(--zv-sans,Arial,sans-serif) !important;
  font-size:14px !important; font-weight:600 !important; line-height:1.4 !important;
  text-align:left !important; opacity:1 !important; visibility:visible !important;
  margin:0 !important; padding:0 !important; float:none !important;
}
html body #zv-cart-drawer a.zv-mini-cart-remove,
html body.woocommerce #zv-cart-drawer a.remove {
  position:static !important; display:inline-flex !important; align-items:center !important;
  justify-content:center !important; flex:0 0 28px !important;
  width:28px !important; height:28px !important;
  padding:0 !important; margin:0 !important; border:0 !important;
  background:transparent !important; color:#78695d !important;
  font-size:24px !important; line-height:1 !important; font-weight:400 !important;
  text-decoration:none !important; float:none !important;
}
html body #zv-cart-drawer :is(.zv-mini-cart-unit-price,.zv-mini-cart-line-total,.woocommerce-Price-amount,.amount) {
  position:static !important; font-size:13px !important; color:#68584e !important;
  opacity:1 !important; visibility:visible !important; float:none !important;
}
html body #zv-cart-drawer .zv-mini-cart-price-row {
  display:flex !important; justify-content:space-between !important; gap:10px !important;
  align-items:center !important; min-width:0 !important; margin:10px 0 !important;
}
html body #zv-cart-drawer .zv-mini-cart-quantity {
  display:inline-grid !important; grid-template-columns:36px 44px 36px !important;
  width:max-content !important; max-width:100% !important; height:38px !important;
  gap:0 !important; border:1px solid #ded4c9 !important; border-radius:8px !important;
  overflow:hidden !important; margin-top:8px !important; background:white !important;
}
html body #zv-cart-drawer .zv-mini-cart-quantity :is(button,input) {
  display:block !important; width:100% !important; min-width:0 !important;
  height:36px !important; min-height:36px !important; line-height:36px !important;
  border:0 !important; border-radius:0 !important;
  margin:0 !important; padding:0 !important; text-align:center !important;
  color:#29231e !important; background:transparent !important;
  font-size:14px !important; float:none !important;
}
html body #zv-cart-drawer .woocommerce-mini-cart__total {
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  gap:12px !important; padding:18px 0 14px !important;
  margin:0 !important; border-top:0 !important; border-bottom:1px solid #e8ddd1 !important;
  font-size:14px !important; color:#29231e !important;
}
html body #zv-cart-drawer .woocommerce-mini-cart__buttons {
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important; width:100% !important;
  margin:0 !important; padding:15px 0 8px !important;
}
html body #zv-cart-drawer .woocommerce-mini-cart__buttons a,
html body.woocommerce #zv-cart-drawer .woocommerce-mini-cart__buttons a.button {
  position:static !important; display:flex !important;
  align-items:center !important; justify-content:center !important;
  width:100% !important; min-width:0 !important; min-height:46px !important;
  margin:0 !important; padding:10px 9px !important;
  border:1px solid #29231e !important; border-radius:8px !important;
  color:#29231e !important; background:transparent !important;
  font-family:var(--zv-sans,Arial,sans-serif) !important;
  font-size:11px !important; font-weight:600 !important;
  line-height:1.35 !important; letter-spacing:.07em !important;
  text-align:center !important; text-transform:uppercase !important;
  white-space:normal !important; opacity:1 !important; transform:none !important;
}
html body #zv-cart-drawer .woocommerce-mini-cart__buttons a.checkout,
html body.woocommerce #zv-cart-drawer .woocommerce-mini-cart__buttons a.checkout {
  color:#fffdf9 !important; background:#29231e !important;
}
html body #zv-cart-drawer :is(.zv-side-cart-help,.zv-mini-cart-progress-wrap) {
  max-width:100% !important; margin-inline:0 !important; float:none !important;
}
html body #zv-cart-drawer .zv-side-cart-help { margin-top:20px !important; padding:16px 0 20px !important; border-top:1px solid #e8ddd1 !important; }
html body #zv-cart-drawer .zv-side-cart-help p { margin:6px 0 !important; font-size:12px !important; }
html body #zv-cart-drawer :is(.woocommerce-mini-cart__empty-message,.zv-side-cart-continue) { margin-top:12px !important; }
html body #zv-cart-drawer .zv-mini-cart-error { color:#9d3228 !important; font-size:12px !important; margin:7px 0 !important; }

/* Shared backdrop must sit below both cart and the navigation drawer. */
html body .zv-drawer-backdrop { z-index:1000000 !important; }
html body #zv-mobile-drawer { z-index:1000002 !important; }
html body #zv-search-panel { z-index:1000003 !important; }

@media (max-width: 760px) {
  .home .zv-section { padding-top:clamp(36px,7vw,56px); padding-bottom:clamp(36px,7vw,56px); }
  .home .zv-section-head { margin-bottom:20px; }
  .home .zv-section-title { font-size:clamp(16px,4.5vw,23px); }
  .home .zv-category-strip { gap:12px !important; }
  .home .zv-category-strip > a { aspect-ratio:4/5 !important; }
  .home .zv-collection-card { aspect-ratio:4/5 !important; }
  .home .zv-follow-grid { gap:8px !important; }
  .home .zv-story-image,
  .home .zv-gift-media,
  .home .zv-about-image { min-height:0 !important; aspect-ratio:4/5; }
  .home .zv-story-image :is(img,video),
  .home .zv-gift-media :is(img,video),
  .home .zv-about-image :is(img,video) { width:100% !important; height:100% !important; }
  html body #zv-cart-drawer { width:min(100vw,450px) !important; }
}
@media (max-width: 390px) {
  html body #zv-cart-drawer { padding-left:15px !important; padding-right:15px !important; }
  html body #zv-cart-drawer ul.woocommerce-mini-cart > li.zv-mini-cart-item { grid-template-columns:72px minmax(0,1fr) !important; gap:12px !important; }
  html body #zv-cart-drawer .zv-mini-cart-product-media,
  html body #zv-cart-drawer .zv-mini-cart-product-media a { width:72px !important; height:90px !important; }
}
@media (prefers-reduced-motion:reduce) {
  html body #zv-cart-drawer,
  .home :is(.zv-product-media-ref img,.zv-collection-card img,.zv-category-strip img) { transition:none !important; }
}
/* Compact, legible help block rather than the older oversized cart card. */
html body #zv-cart-drawer .zv-side-cart-help {
  border:1px solid #e8ddd1 !important;
  border-radius:10px !important;
  background:#fbf7f1 !important;
  padding:14px !important;
  margin-top:18px !important;
}
html body #zv-cart-drawer .zv-side-cart-help strong {
  display:block !important;
  font-family:var(--zv-sans,Arial,sans-serif) !important;
  font-size:13px !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
  line-height:1.4 !important;
}
html body #zv-cart-drawer .zv-side-cart-help p { margin:6px 0 !important; }
