/* =========================================================
   GC SOLUÇÕES E SISTEMAS
   ANIMAÇÕES GLOBAIS
========================================================= */

[data-reveal] {
    opacity: 0;

    transform:
        translateY(24px);

    transition:
        opacity .65s ease,
        transform .65s cubic-bezier(.2,.8,.2,1);
}

[data-reveal].is-visible {
    opacity: 1;

    transform:
        translateY(0);
}

[data-reveal="left"] {
    transform:
        translateX(-28px);
}

[data-reveal="right"] {
    transform:
        translateX(28px);
}

[data-reveal="left"].is-visible,
[data-reveal="right"].is-visible {
    transform:
        translateX(0);
}

[data-reveal="scale"] {
    transform:
        scale(.96);
}

[data-reveal="scale"].is-visible {
    transform:
        scale(1);
}

@keyframes gcFloat {
    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-8px);
    }
}

@keyframes gcGlow {
    0%,
    100% {
        opacity: .45;
    }

    50% {
        opacity: .8;
    }
}

@keyframes gcPulse {
    0% {
        box-shadow:
            0 0 0 0
            rgba(37, 211, 102, .32);
    }

    70% {
        box-shadow:
            0 0 0 12px
            rgba(37, 211, 102, 0);
    }

    100% {
        box-shadow:
            0 0 0 0
            rgba(37, 211, 102, 0);
    }
}

.whatsapp-floating {
    animation:
        gcPulse
        2.5s
        infinite;
}

.gc-float {
    animation:
        gcFloat
        5s
        ease-in-out
        infinite;
}

.gc-glow {
    animation:
        gcGlow
        4s
        ease-in-out
        infinite;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;

        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            .01ms !important;
    }

    [data-reveal] {
        opacity: 1;

        transform: none;
    }
}
