/* =========================================================

   ANIMATIONS D’APPARITION

========================================================= */


.reveal-element {

    opacity: 0;

    transform: translateY(30px);

    transition:

        opacity 0.75s ease,

        transform 0.75s ease;

    will-change: opacity, transform;

}


.reveal-element.reveal-visible {

    opacity: 1;

    transform: translateY(0);

}


.reveal-delay-1 {

    transition-delay: 0.05s;

}


.reveal-delay-2 {

    transition-delay: 0.12s;

}


.reveal-delay-3 {

    transition-delay: 0.19s;

}


.reveal-delay-4 {

    transition-delay: 0.26s;

}


/* =========================================================

   ANIMATIONS DES BOUTONS

========================================================= */


.button {

    position: relative;

    overflow: hidden;

}


.button::after {

    position: absolute;

    top: 0;

    left: -130%;

    width: 75%;

    height: 100%;

    content: "";

    pointer-events: none;

    background:

        linear-gradient(

            90deg,

            transparent,

            rgba(255, 255, 255, 0.24),

            transparent

        );

    transform: skewX(-20deg);

    transition: left 0.7s ease;

}


.button:hover::after,

.button:focus-visible::after {

    left: 150%;

}


/* =========================================================

   ANIMATIONS DES CARTES

========================================================= */


.service-card,

.pricing-card,

.review-card,

.psio-program-card,

.gift-option-card,

.benefits-grid article,

.why-grid article,

.contact-cards article,

.contact-steps-grid article,

.gallery-services article {

    transition:

        transform 0.3s ease,

        box-shadow 0.3s ease,

        border-color 0.3s ease;

}


.service-card:hover,

.pricing-card:hover,

.review-card:hover,

.psio-program-card:hover,

.gift-option-card:hover,

.benefits-grid article:hover,

.why-grid article:hover,

.contact-cards article:hover,

.contact-steps-grid article:hover,

.gallery-services article:hover {

    transform: translateY(-7px);

    box-shadow: var(--shadow-soft);

}


/* =========================================================

   WHATSAPP

========================================================= */


.floating-whatsapp-button {

    animation: whatsapp-pulse 3.2s ease-in-out infinite;

}


@keyframes whatsapp-pulse {


    0%,

    100% {

        box-shadow:

            0 12px 30px rgba(35, 140, 82, 0.22);

    }


    50% {

        box-shadow:

            0 14px 42px rgba(35, 140, 82, 0.42);

    }


}


/* =========================================================

   ACCESSIBILITÉ

========================================================= */


@media (prefers-reduced-motion: reduce) {


    *,

    *::before,

    *::after {

        scroll-behavior: auto !important;

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;

    }


    .reveal-element {

        opacity: 1;

        transform: none;

    }


}