.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

.wave-pattern {
    background-image: 
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 2px,
            rgba(128, 199, 6, 0.03) 2px,
            rgba(128, 199, 6, 0.03) 4px
        );
}

@keyframes pulse-soft {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

.pulse-soft {
    animation: pulse-soft 3s ease-in-out infinite;
}

.scroll-indicator {
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(10px); }
}

.glow-hover {
    transition: all 0.3s ease;
}

.glow-hover:hover {
    box-shadow: 0 0 30px rgba(128, 199, 6, 0.4);
}

/* Animação para carrossel infinito de produtos */
@keyframes scroll-infinite {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); } /* Rola exatamente metade da largura total */
}

.animate-scroll {
    display: flex;
    /* A largura é calculada pelo navegador, não precisa de width: max-content */
    animation: scroll-infinite 40s linear infinite;
}

.animate-scroll:hover {
    animation-play-state: paused;
}

/* Animação específica para a Galeria Mobile */
.animate-gallery-mobile {
    display: flex;
    /* Ajuste o tempo (20s) se quiser mais rápido ou mais devagar */
    animation: scroll-infinite 20s linear infinite; 
}

/* Pausa a animação se o usuário tocar/segurar na imagem no celular */
.animate-gallery-mobile:active,
.animate-gallery-mobile:focus {
    animation-play-state: paused;
}

.paused {
    animation-play-state: paused !important;
}

/* Animação para carrossel infinito de marcas - mais rápido */
@keyframes scroll-brands-infinite {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-200px * 10 - 64px * 10)); }
}

.animate-scroll-brands {
    display: flex;
    animation: scroll-brands-infinite 25s linear infinite;
    width: max-content;
}

/* Logos das marcas com transição suave de cores */
.dark .brand-logo {
    filter: invert(1) brightness(1.2);
    transition: filter 0.3s ease;
}

.brand-logo {
    filter: invert(0);
    transition: filter 0.3s ease;
}

/* Estilo para a sidebar esquerda quando escondida */
#sidebar-left.hidden-by-footer {
    opacity: 0;
    transform: translateX(-100%);
}

/* Estilo para a sidebar direita quando escondida */
#sidebar-right.hidden-by-footer {
    opacity: 0;
    transform: translateX(100%);
}

/* Animação de Swipe (Dica de rolagem) */
@keyframes swipe-hint-animation {
    0% { opacity: 0; transform: translateX(20px); }
    10% { opacity: 1; transform: translateX(20px); } /* Aparece na direita */
    50% { opacity: 1; transform: translateX(-30px); } /* Move para esquerda */
    80% { opacity: 0; transform: translateX(-30px); } /* Desaparece */
    100% { opacity: 0; transform: translateX(-30px); }
}

.animate-swipe-hand {
    animation: swipe-hint-animation 2s ease-in-out infinite;
}