
/* Generics */
* {
    transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

html {
    scroll-behavior: smooth;
}

.background-image-container {
    background-image: url('../images/background.png');
    background-size: cover;
    background-position: center
}
/* .hero-gradient-light {
    background: linear-gradient(90deg, rgba(253, 253, 251, 0.85) 0%, rgba(253, 253, 251, 0.4) 50%, rgba(253, 253, 251, 0) 100%)
}
.hero-gradient-dark {
    background: linear-gradient(90deg, rgba(26, 26, 26, 0.85) 0%, rgba(26, 26, 26, 0.4) 50%, rgba(26, 26, 26, 0) 100%) 
}*/
.wavy-divider {
    overflow: hidden;
    position: relative;
    width: 100%;
    line-height: 0;
}
.wavy-divider svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 80px;
}
.wavy-divider .shape-fill {
    fill: #f8f7f4;
}
.dark .wavy-divider .shape-fill {
    fill: #2a2a2a;  
}

/* Hero Wavy Divider - Creates wave effect on background */
.wavy-divider-hero {
    overflow: visible;
    position: absolute;
    width: 100%;
    line-height: 0;
    z-index: 5;
}
.wavy-divider-hero svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 120px;
    filter: drop-shadow(0 -5px 15px rgba(0, 0, 0, 0.05));
}
.wavy-divider-hero .shape-fill-hero {
    fill: #f8f7f4;
    opacity: 1;
}
.dark .wavy-divider-hero .shape-fill-hero {
    fill: #2a2a2a;  
}

/* Scrollbar Hide utilities (used in home carousel) */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}
.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.location-indicator.active {
    background-color: #4d7c0f;
    width: 2rem;
}

/* Scroll Animations */
.scroll-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-animate.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.scroll-animate-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-animate-left.animate-in {
    opacity: 1;
    transform: translateX(0);
}

.scroll-animate-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-animate-right.animate-in {
    opacity: 1;
    transform: translateX(0);
}

.scroll-animate-scale {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), 
                transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-animate-scale.animate-in {
    opacity: 1;
    transform: scale(1);
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
