/* ========== Vegas-style product cards (clear mosaic hover) ========== */
.product-card.style-vegas,
.vento-woo ul.products .product-card.style-vegas,
.products-rail-track .product-card.style-vegas{
  background:#fff !important;
  border:1px solid rgba(8,20,38,.06) !important;
  border-radius:16px !important;
  box-shadow:0 8px 22px rgba(8,20,38,.06);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:box-shadow .3s, transform .3s;
  height:100%;
}
.product-card.style-vegas:hover,
.product-card.style-vegas.is-active{
  box-shadow:0 14px 32px rgba(8,20,38,.12);
  transform:translateY(-2px);
}
.product-card.style-vegas .product-card-link{
  display:flex;
  flex-direction:column;
  flex:1;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  position:relative;
  z-index:1;
}
.product-card.style-vegas .product-media{
  position:relative;
  aspect-ratio:3 / 4;
  background:#eef1f3;
  overflow:hidden;
}
.product-card.style-vegas .product-image-main{
  position:absolute;
  inset:0;
  margin:0;
  border-radius:0;
  aspect-ratio:auto;
  opacity:1;
  transition:opacity .22s ease, visibility .22s;
  z-index:1;
}
.product-card.style-vegas .product-main-img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  border-radius:0;
  transform:none !important;
}
.product-card.style-vegas .product-badge{
  z-index:4;
}

/* Mosaic — fills media: tall main + 2 side tiles */
.product-mosaic{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  grid-template-columns:1.35fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:3px;
  padding:3px;
  box-sizing:border-box;
  background:#fff;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, visibility .25s;
}
.product-card.has-mosaic:hover .product-mosaic,
.product-card.has-mosaic.is-active .product-mosaic,
.product-card.has-mosaic:focus-within .product-mosaic{
  opacity:1;
  visibility:visible;
  pointer-events:none; /* keep clicks on the product link */
}
.product-card.has-mosaic:hover .product-image-main,
.product-card.has-mosaic.is-active .product-image-main,
.product-card.has-mosaic:focus-within .product-image-main{
  opacity:0;
  visibility:hidden;
}

.mosaic-cell{
  position:relative;
  overflow:hidden;
  border-radius:10px;
  background:#e8ecef;
  min-width:0;
  min-height:0;
}
.mosaic-main{
  grid-row:1 / -1;
  grid-column:1;
  border-radius:12px;
}
.mosaic-side-top{grid-row:1;grid-column:2}
.mosaic-side-bot{grid-row:2;grid-column:2}

.mosaic-cell img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  display:block;
  transform:none !important;
  background:#eef2f5;
}
/* Never zoom — zoom + overflow crops the garment */
.product-card.has-mosaic:hover .mosaic-cell img,
.product-card.has-mosaic.is-active .mosaic-cell img{
  transform:none !important;
}

/* Body */
.product-card.style-vegas .product-body{
  text-align:center;
  padding:14px 12px 8px !important;
  border-top:1px solid rgba(8,20,38,.06);
  flex:0 0 auto;
}
.product-card.style-vegas .product-title,
.product-card.style-vegas .product-body h3{
  margin:0 0 4px !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1.4 !important;
  min-height:0 !important;
  color:#111;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.product-card.style-vegas .product-cat{
  color:var(--cyan, #196f93);
  font-size:12px;
  font-weight:700;
  margin:0 0 8px;
  opacity:.92;
}
.product-card.style-vegas .product-rating{justify-content:center;margin-bottom:6px}
.product-card.style-vegas .product-price{
  color:var(--midnight, #0a1220) !important;
  font-size:15px !important;
  font-weight:900 !important;
  font-variant-numeric:tabular-nums;
  align-items:center;
  margin:0 !important;
}
.product-card.style-vegas .product-price .woocommerce-Price-amount,
.product-card.style-vegas .product-price .amount{
  color:var(--cyan, #196f93) !important;
}
.product-card.style-vegas .product-price del{
  color:var(--muted, #546074) !important;
  font-size:11px;
  font-weight:600;
}
.product-card.style-vegas .product-price del .woocommerce-Price-amount,
.product-card.style-vegas .product-price del .amount{
  color:inherit !important;
}
.product-card.style-vegas .product-price ins{
  color:var(--cyan, #196f93) !important;
  text-decoration:none;
}
.product-card.style-vegas .product-title,
.product-card.style-vegas .product-body h3{
  color:var(--midnight, #0a1220) !important;
}
.product-alt-img{
  display:none;
}

.product-card.style-vegas .product-card-actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:0 12px 14px !important;
  margin-top:0;
}
.product-card.style-vegas .product-cart-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:#111;
  text-decoration:none;
  opacity:.85;
  transition:opacity .2s, transform .2s;
}
.product-card.style-vegas .product-cart-icon:hover{
  opacity:1;
  transform:scale(1.08);
}
.product-card.style-vegas .product-cart-icon .vento-icon,
.product-card.style-vegas .product-cart-icon svg{
  width:22px;
  height:22px;
}
.product-card.style-vegas .product-card-atc{
  display:none !important;
}

.vento-woo ul.products{
  list-style:none;
  margin:0;
  padding:0;
}
.vento-woo ul.products li.product,
.vento-woo ul.products .vento-product-item{
  list-style:none;
}
.vento-woo ul.products li.product .onsale{display:none}

/* Mobile / touch: NO mosaic — only swap to next product image */
@media (hover:none), (pointer:coarse), (max-width:980px){
  .product-card.style-vegas:hover{
    transform:none;
  }
  .product-card .product-mosaic{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .product-card .product-media,
  .product-card.has-alt .product-image-main{
    position:relative;
    overflow:hidden;
  }
  .product-card.has-alt .product-alt-img{
    display:block !important;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    opacity:0;
    visibility:hidden;
    transition:opacity .28s ease, visibility .28s;
    z-index:3;
    background:#eef1f3;
    pointer-events:none;
  }
  .product-card.has-alt .product-main-img{
    transition:opacity .28s ease;
    position:relative;
    z-index:1;
  }
  .product-card.has-alt.is-active .product-alt-img,
  .product-card.has-alt.is-peek .product-alt-img{
    opacity:1 !important;
    visibility:visible !important;
  }
  .product-card.has-alt.is-active .product-main-img,
  .product-card.has-alt.is-peek .product-main-img{
    opacity:0;
  }
  .product-card.style-vegas.is-active,
  .product-card.style-vegas.is-peek{
    box-shadow:0 14px 32px rgba(8,20,38,.12);
    transform:none;
  }
}

@media (max-width:780px){
  .product-card.style-vegas .product-media{
    aspect-ratio:3 / 4;
  }
  .product-mosaic{
    gap:2px;
    padding:2px;
  }
  .mosaic-cell,
  .mosaic-main{
    border-radius:8px;
  }
  .product-card.style-vegas .product-title,
  .product-card.style-vegas .product-body h3{
    font-size:13px !important;
  }
  .product-card.style-vegas .product-price{
    font-size:13px !important;
  }
}

/* Optional 2×2 when only two images — still uses same grid */
.product-card.has-mosaic[data-mosaic-count="2"] .product-mosaic{
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr;
}
.product-card.has-mosaic[data-mosaic-count="2"] .mosaic-main{
  grid-row:1;
  grid-column:1;
}
.product-card.has-mosaic[data-mosaic-count="2"] .mosaic-side-top{
  grid-row:1;
  grid-column:2;
}
.product-card.has-mosaic[data-mosaic-count="2"] .mosaic-side-bot{
  display:none;
}

body.m-layout-chic .product-card.style-vegas .product-cart-fab{display:none !important}
body.m-layout-chic .product-card.style-vegas .product-card-actions{
  display:flex !important;
}
body.m-layout-chic .product-card.style-vegas .product-price,
body.m-layout-chic .product-card.style-vegas .product-price .amount{
  color:var(--cyan, #196f93) !important;
}
body.m-layout-chic .product-card.style-vegas .product-cat{
  display:block !important;
  color:var(--cyan, #196f93) !important;
}
