/**
 * A4W Hover Image Product - Styles
 *
 * @author    AllForWeb
 * @copyright 2025 AllForWeb
 * @license   AFL-3.0
 */

/* Container du produit */
.js-product-miniature {
    position: relative;
}

/* Thumbnail container */
.js-product-miniature .thumbnail-container {
    position: relative;
    overflow: hidden;
}

/* Lien thumbnail */
.js-product-miniature .thumbnail.product-thumbnail {
    display: block;
    position: relative;
    overflow: hidden;
}

/* Image du produit */
.js-product-miniature .thumbnail.product-thumbnail img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity 0.6s ease-in-out;
}

/* Classe de transition pour le changement d'image */
.js-product-miniature .thumbnail.product-thumbnail img.a4w-hover-transitioning {
    opacity: 0.85;
}

/* Amélioration visuelle au survol */
.js-product-miniature:hover .thumbnail.product-thumbnail {
    cursor: pointer;
}

/* Animation smooth */
.js-product-miniature .thumbnail.product-thumbnail img {
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: subpixel-antialiased;
}

/* Indicateur de hover optionnel (points) */
.a4w-hover-indicator {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 5px;
    padding: 5px 10px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 15px;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    z-index: 2;
}

.js-product-miniature:hover .a4w-hover-indicator {
    opacity: 1;
}

.a4w-hover-indicator-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transition: background 0.3s ease-in-out;
}

.a4w-hover-indicator-dot.active {
    background: rgba(255, 255, 255, 1);
}

/* Optimisations pour la performance */
.js-product-miniature .thumbnail.product-thumbnail,
.js-product-miniature .thumbnail.product-thumbnail img {
    will-change: auto;
}

.js-product-miniature:hover .thumbnail.product-thumbnail img {
    will-change: opacity;
}

/* Support du lazy loading */
.js-product-miniature .thumbnail.product-thumbnail img[loading="lazy"] {
    transition: opacity 0.3s ease-in-out;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .js-product-miniature .thumbnail.product-thumbnail img {
        transition: opacity 0.2s ease-in-out;
    }

    .a4w-hover-indicator {
        display: none; /* Masquer les indicateurs sur mobile */
    }
}

/* Accessibilité */
.js-product-miniature .thumbnail.product-thumbnail:focus {
    outline: 2px solid #0066cc;
    outline-offset: 2px;
}

/* Effet de zoom léger optionnel (peut être activé) */
.js-product-miniature.a4w-zoom-effect:hover .thumbnail.product-thumbnail img {
    transform: scale(1.05);
    transition: transform 0.5s ease-in-out, opacity 0.3s ease-in-out;
}

/* Support des thèmes sombres */
@media (prefers-color-scheme: dark) {
    .a4w-hover-indicator {
        background: rgba(255, 255, 255, 0.2);
    }

    .a4w-hover-indicator-dot {
        background: rgba(0, 0, 0, 0.5);
    }

    .a4w-hover-indicator-dot.active {
        background: rgba(0, 0, 0, 1);
    }
}
