/* Floating animation - ridotto da 3s a 2s */
.floating {
    animation: float 2s ease-in-out infinite;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px); /* Ridotto da -15px a -10px */
    }
}

/* Reveal animations - ridotte da 0.6s a 0.4s */
.reveal-up {
    opacity: 0;
    transform: translateY(15px); /* Ridotto ulteriormente */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity; /* Ottimizza le performance */
}

.reveal-up.active {
    opacity: 1;
    transform: translateY(0);
}

.reveal-right {
    opacity: 0;
    transform: translateX(15px); /* Ridotto ulteriormente */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
}

.reveal-right.active {
    opacity: 1;
    transform: translateX(0);
}

.reveal-left {
    opacity: 0;
    transform: translateX(-15px); /* Ridotto ulteriormente */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
}

.reveal-left.active {
    opacity: 1;
    transform: translateX(0);
}

.reveal-scale {
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.8s ease;
}

.reveal-scale.active {
    opacity: 1;
    transform: scale(1);
}

/* Gradient text animation - ridotto da 5s a 3s */
.gradient-text {
    background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradient 3s ease infinite;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* Pulse animation - ridotto da 1s a 0.5s */
.pulse {
    animation: pulse 0.5s ease-in-out;
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

/* FAQ highlight animation - ridotto da 2s a 1s */
.faq-highlight {
    animation: faqHighlight 1s ease-in-out;
}

@keyframes faqHighlight {
    0%, 100% {
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    }
    50% {
        box-shadow: 0 5px 25px rgba(76, 111, 255, 0.4);
        border-left-color: var(--primary-color);
    }
}

/* Typing cursor animation */
.typing::after {
    content: '|';
    animation: blink 1s step-start infinite;
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}

/* Service detail items highlight effect */
.service-detailed-item:hover .service-detailed-icon i {
    animation: pulse 1s ease-in-out;
}

/* Smoother hover transitions */
.hover-scale {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-scale:hover {
    transform: scale(1.05);
}
