/**
 * LeNi universal WooCommerce product card.
 * Canonical visual source: Featured Wines product card.
 * Used by Featured Wines, Shop archives, related products and upsells.
 */

.leni-product-card,
.woocommerce ul.products li.product.leni-product-card{
  display:flex!important;
  width:100%!important;
  min-width:0;
  min-height:438px;
  height:100%;
  flex-direction:column;
  margin:0!important;
  padding:18px 18px 14px!important;
  border:0!important;
  border-radius:14px!important;
  background:#f7f4f1!important;
  color:#121827;
  overflow:hidden;
  box-shadow:none!important;
  transition:transform .25s ease,box-shadow .25s ease;
}
.leni-product-card:hover,
.woocommerce ul.products li.product.leni-product-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 38px rgba(0,0,0,.16)!important;
}
.leni-product-card__media,
body.single-product .related.products .leni-product-card__media,
body.single-product .upsells.products .leni-product-card__media{
  display:flex!important;
  width:100%;
  height:210px;
  flex:0 0 210px;
  align-items:center;
  justify-content:center;
  margin:0!important;
  padding:0 18px!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:hidden;
}
.leni-product-card__image,
.woocommerce ul.products li.product.leni-product-card .leni-product-card__image,
body.single-product .related.products .leni-product-card__image,
body.single-product .upsells.products .leni-product-card__image{
  display:block;
  width:auto!important;
  max-width:100%!important;
  height:185px!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  object-fit:contain!important;
  object-position:center;
  transition:transform .3s ease;
}
.leni-product-card:hover .leni-product-card__image{transform:scale(1.035);}
.leni-product-card__body{
  display:flex;
  min-height:0;
  flex:1;
  flex-direction:column;
  padding:0!important;
  text-align:center;
}
.leni-product-card__title,
.woocommerce ul.products li.product.leni-product-card .leni-product-card__title,
body.single-product .related.products .leni-product-card__title,
body.single-product .upsells.products .leni-product-card__title{
  display:flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  margin:1px 0 8px!important;
  padding:0!important;
  color:#111827!important;
  font-family:'DM Serif Display',Georgia,'Times New Roman',serif!important;
  font-size:18px!important;
  font-weight:400!important;
  line-height:1.2!important;
}
.leni-product-card__title a{
  display:-webkit-box;
  overflow:hidden;
  color:#111827!important;
  text-decoration:none;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.leni-product-card__meta{
  display:flex;
  min-height:18px;
  align-items:center;
  justify-content:center;
  margin:0 0 11px!important;
  color:#8a8b90!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:11px!important;
  font-weight:400;
  line-height:1.4!important;
}
.leni-product-card__rating{
  display:flex!important;
  min-height:13px;
  justify-content:center;
  gap:2px!important;
  margin:0 0 14px!important;
  color:#cbc5b8!important;
  font-size:13px!important;
  line-height:1!important;
}
.leni-product-card__star{color:#cbc5b8;}
.leni-product-card__star.is-filled{color:#c39a16;}
.leni-product-card__price,
.woocommerce ul.products li.product.leni-product-card .leni-product-card__price{
  display:flex;
  min-height:23px;
  align-items:baseline;
  justify-content:center;
  gap:5px;
  margin:auto 0 14px!important;
  color:#111827!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:20px!important;
  font-weight:700!important;
  line-height:1.1!important;
  white-space:nowrap;
}
.leni-product-card__price del{
  margin:0!important;
  color:#858585!important;
  opacity:1!important;
  font-size:13px!important;
  font-weight:400!important;
}
.leni-product-card__price ins{text-decoration:none!important;}
.leni-product-card__action{margin-top:0!important;}
.leni-product-card__action .button,
.woocommerce ul.products li.product.leni-product-card .button{
  display:flex!important;
  width:100%!important;
  min-height:42px!important;
  align-items:center;
  justify-content:center;
  margin:0!important;
  padding:11px 14px!important;
  border:1px solid #111827!important;
  border-radius:5px!important;
  background:#111827!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-transform:none!important;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease!important;
}
.leni-product-card__action .button:hover,
.leni-product-card__action .button:focus-visible{
  border-color:#c39a16!important;
  background:#c39a16!important;
  color:#111!important;
}

/* Related and upsell grids keep their section layout, but use the same card. */
body.single-product .related.products ul.products,
body.single-product .upsells.products ul.products{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;
  align-items:stretch!important;
}
body.single-product .related.products .leni-product-card,
body.single-product .upsells.products .leni-product-card{
  max-width:300px;
  justify-self:start;
}

@media(max-width:1050px){
  .leni-product-card,
  .woocommerce ul.products li.product.leni-product-card{min-height:430px;}
}
@media(max-width:640px){
  .leni-product-card,
  .woocommerce ul.products li.product.leni-product-card{
    width:100%!important;
    max-width:360px;
    margin-inline:auto!important;
  }
}

/* v0.7.7 — Final universal LeNi product-card typography. */
.leni-product-card__title,
.woocommerce ul.products li.product.leni-product-card .leni-product-card__title,
body.single-product .related.products .leni-product-card__title,
body.single-product .upsells.products .leni-product-card__title{
  font-family:var(--leni-font-body,Inter,sans-serif)!important;
  font-size:20px!important;
  font-weight:600!important;
  line-height:1.2!important;
}
.leni-product-card__meta{
  font-family:var(--leni-font-body,Inter,sans-serif)!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.4!important;
}
.leni-product-card__rating{
  min-height:20px;
  gap:3px!important;
  font-size:15.75px!important;
  line-height:20px!important;
}
.leni-product-card__star{
  display:inline-block;
  width:15.75px;
  height:20px;
  line-height:20px;
}
.leni-product-card__price,
.woocommerce ul.products li.product.leni-product-card .leni-product-card__price{
  font-family:var(--leni-font-body,Inter,sans-serif)!important;
  font-size:24px!important;
  font-weight:700!important;
  line-height:1.15!important;
}
.leni-product-card__action .button,
.woocommerce ul.products li.product.leni-product-card .button{
  font-family:var(--leni-font-body,Inter,sans-serif)!important;
  font-size:16px!important;
  font-weight:500!important;
  line-height:1!important;
}

/* v0.7.8.2 — refined AJAX Add to Cart feedback. */
.leni-product-card .added_to_cart.wc-forward{
  display:none!important;
}
.leni-product-card__action .button.is-adding{
  cursor:progress;
  opacity:.82;
}
.leni-product-card__action .button.is-added{
  border-color:#c39a16!important;
  background:#c39a16!important;
  color:#111827!important;
}
.leni-cart-notice-region{
  position:fixed;
  z-index:9999;
  right:24px;
  top:calc(var(--header-height,80px) + 20px);
  width:min(390px,calc(100vw - 32px));
  pointer-events:none;
}
.leni-cart-notice{
  padding:15px 18px 15px 48px;
  border-left:4px solid #c39a16;
  border-radius:8px;
  background:#fff;
  color:#20242c;
  box-shadow:0 16px 42px rgba(0,0,0,.18);
  font-family:var(--leni-font-body,Inter,sans-serif);
  font-size:14px;
  font-weight:500;
  line-height:1.45;
  opacity:0;
  transform:translateY(-10px);
  transition:opacity .22s ease,transform .22s ease;
}
.leni-cart-notice::before{
  content:"✓";
  position:absolute;
  margin-left:-30px;
  color:#c39a16;
  font-size:18px;
  font-weight:700;
}
.leni-cart-notice.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media(max-width:640px){
  .leni-cart-notice-region{
    top:calc(var(--header-height,78px) + 12px);
    right:16px;
  }
}
@media(prefers-reduced-motion:reduce){
  .leni-cart-notice{transition:none;}
}

/* v0.8.9.2 — functional wishlist on archive, search, related and recommendation cards. */
.leni-product-card,
.woocommerce ul.products li.product.leni-product-card{position:relative}
.leni-product-card__wishlist{
  position:absolute;
  z-index:4;
  top:14px;
  right:14px;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#9ca3af;
  box-shadow:0 2px 4px rgba(0,0,0,.14);
  cursor:pointer;
  transition:transform .18s ease,color .2s ease,box-shadow .2s ease;
}
.leni-product-card__wishlist:hover,
.leni-product-card__wishlist:focus-visible{color:#b8941f;transform:translateY(-1px);box-shadow:0 5px 12px rgba(0,0,0,.16)}
.leni-product-card__wishlist svg{width:19px;height:19px;fill:transparent;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:fill .2s ease,stroke .2s ease,transform .18s ease}
.leni-product-card__wishlist.is-active{color:#ef4444}
.leni-product-card__wishlist.is-active svg{fill:currentColor;stroke:currentColor}
.leni-product-card__wishlist.is-pop svg{animation:leni-card-wishlist-pop .24s ease-out}
@keyframes leni-card-wishlist-pop{50%{transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.leni-product-card__wishlist,.leni-product-card__wishlist svg{transition:none}.leni-product-card__wishlist.is-pop svg{animation:none}}

.leni-wishlist-toast-region{
  position:fixed;
  z-index:10020;
  right:24px;
  top:calc(var(--header-height,80px) + 20px);
  display:grid;
  gap:10px;
  width:min(380px,calc(100vw - 32px));
  pointer-events:none;
}
.leni-wishlist-toast{
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px 16px;
  border:1px solid rgba(184,148,31,.28);
  border-radius:10px;
  background:#fff;
  color:#111827;
  box-shadow:0 14px 35px rgba(17,24,39,.18);
  font:500 14px/20px Inter,Arial,sans-serif;
  opacity:0;
  transform:translateY(-8px);
  animation:leni-wishlist-toast-in .22s ease forwards;
}
.leni-wishlist-toast::before{content:'♥';color:#b8941f;font-size:18px}
.leni-wishlist-toast.is-leaving{animation:leni-wishlist-toast-out .2s ease forwards}
@keyframes leni-wishlist-toast-in{to{opacity:1;transform:translateY(0)}}
@keyframes leni-wishlist-toast-out{to{opacity:0;transform:translateY(-8px)}}
@media(max-width:640px){.leni-wishlist-toast-region{right:16px;top:calc(var(--header-height,72px) + 12px)}}
