/* Custom Styles and Animations for AVOD/GL-Asbl */

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Animations */
.animate-fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.animate-slide-up {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-slide-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.animate-zoom-in {
    opacity: 0;
    transform: scale(0.95);
    transition: all 0.5s ease-out;
}

.animate-zoom-in.is-visible {
    opacity: 1;
    transform: scale(1);
}

/* Delay classes for staggered animations */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }

/* Custom Gradient Text */
.text-gradient {
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(to right, #0056b3, #28a745);
}

/* Hero Overlay */
.hero-overlay {
    background: linear-gradient(to right, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 100%);
}

/* Interactive Card Effects */
.hover-card {
    transition: all 0.3s ease;
}
.hover-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); border-bottom: 3px solid #0056b3;
}

/* Leaflet map custom heights */
#projects-map {
    height: 500px;
    z-index: 10;
}
