/* Custom animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.animate-fade-in-up {
    animation-name: fadeInUp;
    animation-duration: 0.8s;
    animation-fill-mode: both;
}

.animation-delay-200 {
    animation-delay: 0.2s;
}

.animation-delay-400 {
    animation-delay: 0.4s;
}

/* Pattern background */
.pattern-dots {
    background-image: radial-gradient(#0066CC 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Text selection color */
::selection {
    background-color: #0066CC;
    color: white;
}

/* Banner slide hover effects */
.heroSwiper .swiper-slide {
    transition: all 0.3s ease;
}

.heroSwiper .swiper-slide img {
    transition: transform 0.7s ease;
}

/* Enhanced button hover effects */
.heroSwiper .swiper-slide span {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.heroSwiper .swiper-slide span::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s;
}

.heroSwiper .swiper-slide:hover span::before {
    left: 100%;
}

/* Lazy loading image styles */
img.lazy {
    transition: opacity 0.3s ease;
    opacity: 0;
}

img.lazy.loaded {
    opacity: 1;
}

img.lazy:not([src*="data:image"]) {
    opacity: 1;
}
