/* 
* LOCALL Landing Page Animations
* Desenvolvido para a startup LOCALL
*/

/* Animações para elementos */
.step, .service-card, .advantage-card, .testimonial-card {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.step.animate, .service-card.animate, .advantage-card.animate, .testimonial-card.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Animação do menu hamburger */
.hamburger.active {
    background-color: transparent;
}

.hamburger.active::before {
    transform: rotate(45deg);
    top: 0;
}

.hamburger.active::after {
    transform: rotate(-45deg);
    bottom: 0;
}

/* Animação de entrada para a seção hero */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero h1 {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.2s;
    opacity: 0;
}

.hero p {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.4s;
    opacity: 0;
}

.hero-buttons {
    animation: fadeInUp 0.8s ease forwards;
    animation-delay: 0.6s;
    opacity: 0;
}

/* Animação de pulsação para CTAs */
@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }
}

.cta-final .btn {
    animation: pulse 2s infinite;
}

/* Animação para o WhatsApp flutuante */
@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

.whatsapp-float .whatsapp-btn {
    animation: bounce 3s ease-in-out infinite;
}

/* Animação para o header ao scroll */
.header.scrolled {
    padding: 0.5rem 0;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

/* Animação para os cards de serviço */
@keyframes cardHover {
    0% {
        transform: translateY(0) scale(1);
    }
    100% {
        transform: translateY(-10px) scale(1.05);
    }
}

.service-card:hover {
    animation: cardHover 0.3s forwards;
}

/* Animação para os ícones */
@keyframes iconPulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

.step-icon i:hover, .service-icon i:hover, .advantage-icon i:hover {
    animation: iconPulse 0.5s ease;
}

/* Animação para os botões de slider */
@keyframes buttonPulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

.prev-btn:hover, .next-btn:hover {
    animation: buttonPulse 0.5s ease;
}

/* Animação para o logo */
@keyframes logoSpin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.logo img:hover {
    animation: logoSpin 1s ease;
}

/* Animação para links do menu */
@keyframes linkUnderline {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}

.nav-list a:hover::after {
    animation: linkUnderline 0.3s forwards;
}

/* Animação para seção de prestadores */
@keyframes gradientFlow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.prestadores {
    background-size: 200% 200%;
    animation: gradientFlow 5s ease infinite;
}

/* Animação para o CTA final */
.cta-final {
    background-size: 200% 200%;
    animation: gradientFlow 5s ease infinite;
}

