/**
 * WS Booster - Hover FX
 * Micro-interactions reutilisables (CSS pur, GPU-only).
 * Active via classe ws-hfx-{nom} sur n'importe quel element.
 *
 * Conventions :
 * - Transitions sur transform/opacity/box-shadow uniquement (GPU)
 * - 0.35s cubic-bezier organique
 * - Reduce-motion respecte
 */

[class*="ws-hfx-"] {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.35s ease,
                background-color 0.3s ease,
                color 0.3s ease;
}

/* === CONVERGE : titre slide droite + icone slide gauche (ils se rapprochent) === */
.ws-hfx-converge [data-hfx-text],
.ws-hfx-converge .ws-faq__question-text,
.ws-hfx-converge .ws-hfx-text {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.ws-hfx-converge [data-hfx-icon],
.ws-hfx-converge .ws-faq__chevron,
.ws-hfx-converge .ws-hfx-icon {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.ws-hfx-converge:hover [data-hfx-text],
.ws-hfx-converge:hover .ws-faq__question-text,
.ws-hfx-converge:hover .ws-hfx-text {
    transform: translateX(10px);
}
.ws-hfx-converge:hover [data-hfx-icon],
.ws-hfx-converge:hover .ws-faq__chevron,
.ws-hfx-converge:hover .ws-hfx-icon {
    transform: translateX(-10px);
}

/* === LIFT : la carte se souleve avec ombre douce === */
.ws-hfx-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.10);
}

/* === SCALE : zoom subtil === */
.ws-hfx-scale:hover {
    transform: scale(1.02);
}

/* === GLOW : halo color (utilise currentColor pour s'adapter) === */
.ws-hfx-glow:hover {
    box-shadow: 0 0 0 1.5px currentColor, 0 0 30px rgba(99, 102, 241, 0.18);
}

/* === SLIDE : la carte glisse vers la droite === */
.ws-hfx-slide:hover {
    transform: translateX(8px);
}

/* === ARROW : seule l'icone slide droite (effet "click moi") === */
.ws-hfx-arrow [data-hfx-icon],
.ws-hfx-arrow .ws-faq__chevron,
.ws-hfx-arrow .ws-hfx-icon {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.ws-hfx-arrow:hover [data-hfx-icon],
.ws-hfx-arrow:hover .ws-faq__chevron,
.ws-hfx-arrow:hover .ws-hfx-icon {
    transform: translateX(8px);
}

/* === TILT MINI : tres legere rotation + scale === */
.ws-hfx-tilt:hover {
    transform: rotate(0.5deg) scale(1.01);
}

/* === REDUCE MOTION === */
@media (prefers-reduced-motion: reduce) {
    [class*="ws-hfx-"],
    [class*="ws-hfx-"] [data-hfx-text],
    [class*="ws-hfx-"] [data-hfx-icon],
    [class*="ws-hfx-"] .ws-faq__question-text,
    [class*="ws-hfx-"] .ws-faq__chevron {
        transition: none !important;
    }
    [class*="ws-hfx-"]:hover,
    [class*="ws-hfx-"]:hover [data-hfx-text],
    [class*="ws-hfx-"]:hover [data-hfx-icon],
    [class*="ws-hfx-"]:hover .ws-faq__question-text,
    [class*="ws-hfx-"]:hover .ws-faq__chevron {
        transform: none !important;
        box-shadow: none !important;
    }
}
