/**
 * Animations
 * 
 * @package Kurpfalz_Theme
 * @author Saad Badr
 * @copyright 2025 SawatzkiMühlenbruch GmbH
 */

/* Scroll Animations - Selective Elements Only */
/* Don't animate full-width sections, hero, header-slider */

/* Card Grid Fade-in Animation with Slide-up - Dezenter */
.content-inner > div.viewAnimation .kurpfalz-card,
.content-inner > div.viewAnimation .kurpfalz-news-card,
.content-inner > div.viewAnimation .kurpfalz-search-result-card,
.content-inner > div.viewAnimation .kurpfalz-shop-card,
.content-inner > div.viewAnimation .leaser-outer {
    opacity: 0;
    transform: translateY(30px);
    transition-delay: calc(0.2s + var(--item-index) * 0.15s);
    transition-duration: 0.6s;
    transition-property: opacity, transform;
}

.content-inner > div.notInView .kurpfalz-card,
.content-inner > div.notInView .kurpfalz-news-card,
.content-inner > div.notInView .kurpfalz-search-result-card,
.content-inner > div.notInView .kurpfalz-shop-card,
.content-inner > div.notInView .leaser-outer {
    opacity: 0;
    transform: translateY(30px);
}

.content-inner > div.inView .kurpfalz-card,
.content-inner > div.inView .kurpfalz-news-card,
.content-inner > div.inView .kurpfalz-search-result-card,
.content-inner > div.inView .kurpfalz-shop-card,
.content-inner > div.inView .leaser-outer {
    opacity: 1;
    transform: translateY(0);
}

/* Slide-in Animation for Columns */
.content-inner > div.container-columns-outer.viewAnimation .container-two-columns .second-column {
    position: relative;
    transition-delay: 0.4s;
    transition-duration: 0.4s;
    transition-property: left;
}

.content-inner > div.container-columns-outer.notInView .container-two-columns .second-column {
    left: 1500px;
}

.content-inner > div.container-columns-outer.inView .container-two-columns .second-column {
    left: 0;
}

/* Pulsate Animation (for markers) */
@keyframes pulsate {
    0% {
        transform: scale(1);
        opacity: 0;
    }
    10% {
        transform: scale(1);
        opacity: 0.9;
    }
    100% {
        transform: scale(2);
        opacity: 0;
    }
}

.kurpfalz-marker {
    border-radius: 50%;
    background-color: var(--color-primary);
    position: absolute;
    animation: pulsate 1.8s infinite;
}

/* Hover transitions */
.kurpfalz-hover-lift {
    transition: transform var(--transition-fast);
}

.kurpfalz-hover-lift:hover {
    transform: translateY(-5px);
}

/* Fade transitions */
.kurpfalz-fade {
    transition: opacity var(--transition-fast);
}

.kurpfalz-fade-slow {
    transition: opacity var(--transition-slow);
}

/* Specific element animations - Subtle & Dezent */

/* Headings - dezent */
.elementor-widget-heading.animate-on-scroll.notInView h1,
.elementor-widget-heading.animate-on-scroll.notInView h2,
.elementor-widget-heading.animate-on-scroll.notInView h3 {
    opacity: 0;
    transform: translateY(20px);
}

.elementor-widget-heading.animate-on-scroll.inView h1,
.elementor-widget-heading.animate-on-scroll.inView h2,
.elementor-widget-heading.animate-on-scroll.inView h3 {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Text - sehr dezent */
.elementor-widget-text-editor.animate-on-scroll.notInView,
.elementor-text-editor.animate-on-scroll.notInView {
    opacity: 0;
    transform: translateY(15px);
}

.elementor-widget-text-editor.animate-on-scroll.inView,
.elementor-text-editor.animate-on-scroll.inView {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s ease-out 0.1s, transform 0.5s ease-out 0.1s;
}

/* Images - dezent mit leichtem scale */
.elementor-widget-image.animate-on-scroll.notInView {
    opacity: 0;
    transform: scale(0.97) translateY(15px);
}

.elementor-widget-image.animate-on-scroll.inView {
    opacity: 1;
    transform: scale(1) translateY(0);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Buttons - dezent */
.elementor-widget-button.animate-on-scroll.notInView {
    opacity: 0;
    transform: translateY(10px);
}

.elementor-widget-button.animate-on-scroll.inView {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s ease-out 0.15s, transform 0.4s ease-out 0.15s;
}

/* Footer - spezielle Animation */
.footer-outer.notInView {
    opacity: 0;
    transform: translateY(30px);
}

.footer-outer.inView {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

