/* ==========================================================================
   Facile.Energy — Fade-in allo scroll (dissolvenza in entrata)
   Lo stato nascosto si applica SOLO agli elementi che il JS marca con
   .rei-reveal. Quindi:
   - senza JavaScript            -> nessuna classe -> tutto visibile;
   - con JS fallito              -> nessuna classe -> tutto visibile;
   - con "riduci movimento" (OS) -> override sotto -> tutto visibile;
   - elementi già a schermo al load -> mostrati subito senza animazione
     (classe .rei-reveal-instant) -> nessun impatto su LCP / nessun lampo.
   L'effetto si ripete in entrambe le direzioni: l'elemento compare quando
   entra nello schermo e torna nascosto quando esce, così rientrando ri-anima.
   ========================================================================== */

.rei-reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity .75s cubic-bezier(.22, .61, .36, 1),
                transform .75s cubic-bezier(.22, .61, .36, 1);
}

.rei-reveal.rei-is-visible {
    opacity: 1;
    transform: none;
}

/* Comparsa immediata, senza animazione (elementi visibili al caricamento) */
.rei-reveal.rei-reveal-instant {
    transition: none;
}

/* Accessibilità: chi preferisce meno movimento vede tutto, fermo */
@media (prefers-reduced-motion: reduce) {
    .rei-reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* In stampa: niente effetti, tutto visibile */
@media print {
    .rei-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}
