.product-title span {
    font-weight: 500;
    font-size: 18px;
    line-height: 24px;
    padding-inline-end: 8px;
    letter-spacing: 0%;
    columns: #000;
    height: 47px;
  }
/* Product card: scale and slow fade on the image only */
.product-card-animated .product-img {
    opacity: 0.92;
    transform: scale(1);
    transition: transform 0.55s ease, opacity 0.55s ease;
}
.product-card-animated:hover .product-img {
    opacity: 1;
    transform: scale(1.02);
}

/* Contain scaled image so it doesn’t overflow (single and dual) */
.product-card-image-wrap,
.product-card-image-wrap--dual {
    overflow: hidden;
}

/* Single image: wrapper fills space so scaled image is clipped */
.product-card-image-wrap--single {
    position: relative;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.product-card-image-wrap--single::before {
    content: "";
    display: block;
    padding-top: 100%;
}
.product-card-image-wrap--single .product-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Two-image crossfade: image 0 by default, image 1 on hover, back to 0 on mouse leave */
.product-card-image-wrap--dual {
    position: relative;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    transition: transform 0.55s ease;
}
/* Give wrapper height in flex layout (absolutely positioned children don't) */
.product-card-image-wrap--dual::before {
    content: "";
    display: block;
    padding-top: 100%;
}
.product-card-animated:hover .product-card-image-wrap--dual {
    transform: scale(1.02);
}
.product-card-image-wrap--dual .product-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.5s ease-in-out;
    transform: none;
}
/* Default (no hover): show image 0 only */
.product-card-image-wrap--dual .product-card-img-0 {
    opacity: 1 !important;
}
.product-card-image-wrap--dual .product-card-img-1 {
    opacity: 0 !important;
}
/* On hover: show image 1, hide image 0 */
.product-card-image-wrap--dual:hover .product-card-img-0 {
    opacity: 0 !important;
}
.product-card-image-wrap--dual:hover .product-card-img-1 {
    opacity: 1 !important;
}


/* Image loading utility classes */
.opacity-0 {
    opacity: 0 !important;
}
.opacity-100 {
    opacity: 1 !important;
}
.transition-opacity {
    transition: opacity 0.3s ease-in-out;
}
.duration-300 {
    transition-duration: 300ms;
}
.hide-placeholder {
    opacity: 0 !important;
    pointer-events: none;
    transition: opacity 0.3s ease-in-out;
}

@media (max-width: 767px) {
    .wishlist-container {
        opacity: 1 !important;
        visibility: visible !important;
    }
}