/* --- START OF FILE css/animations.css --- */
/* Merged and simplified, focusing on keyframes used by components or general utilities.
   Many scroll-triggered animations are now handled by data-aos in JS + component CSS. */

/* General Animation Keyframes (from sp360-4 and sp360-25 where applicable) */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes benefit-pulse { /* Subtle pulse for benefit icons and badges */
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.05); }
}

/* sp360-4 pulse was different, sp360-25's is good for a general utility */

@keyframes logoFloat { /* Used by logo icons in sp360-25 */
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-4px); } /* Slightly less float */
}

@keyframes successPulse { /* For success checkmark in sp360-25 */
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

@keyframes floatGeneral { /* Renamed to avoid conflicts with other float animations */
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}

.floating { /* Class to apply this animation directly if needed */
    animation: floatGeneral 3s ease-in-out infinite;

}

.floating:nth-child(2) { animation-delay: 0.5s; }
.floating:nth-child(3) { animation-delay: 1s; }

@keyframes floatCard {
    0%, 100% { 
        transform: translateY(0px) rotate(0deg); 
    }
    25% { 
        transform: translateY(-8px) rotate(1deg); 
    }
    50% { 
        transform: translateY(0px) rotate(0deg); 
    }
    75% { 
        transform: translateY(-5px) rotate(-1deg); 
    }
}

/*
@keyframes floatCard { /* For floating cards in CTA section of sp360-25 */
/*    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}
*/

@keyframes floatAround { /* For floating icons in hero of sp360-25 */
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(5px, -10px) rotate(15deg); } /* Reduced rotation */
    50% { transform: translate(-5px, 0px) rotate(-10deg); }
    75% { transform: translate(0px, 5px) rotate(5deg); }
}


@keyframes particleFloat { /* For hero particles in sp360-25 */
    0%, 100% { transform: translate(0,0); }
    25% { transform: translate(-8px, -12px); } /* Slightly increased movement */
    50% { transform: translate(8px, 0px); }
    75% { transform: translate(0px, 8px); }
}

@keyframes bounce { /* For scroll indicator in sp360-25 */
    0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } /* Keep translateX for centering */
    40% { transform: translateY(-10px) translateX(-50%); }
    60% { transform: translateY(-5px) translateX(-50%); }
}

@keyframes background-rotate { /* For rotating background elements */
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes fadeInOut { /* For preloader text in sp360-25 */
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}


/* Keyframes from sp360-4 that might still be useful or are good general purpose */
@keyframes fadeInUpSlight { /* Renamed from fadeInUp to avoid conflict if base AOS uses it */
    from { opacity: 0; transform: translateY(15px); } /* Shorter travel */
    to { opacity: 1; transform: translateY(0); }
}

@keyframes zoomInSlight { /* Renamed from zoomIn */
    from { opacity: 0; transform: scale(0.9); } /* Less aggressive zoom */
    to { opacity: 1; transform: scale(1); }
}

/* Shimmer for progress bars from workflow.css (sp360-4) - good to keep general */
@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Keyframes for notification sliding (from sp360-4's modal.js, good for general use if needed) */
@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}
@keyframes slideOutRight {
    from { transform: translateX(0); opacity: 1; }
    to { transform: translateX(100%); opacity: 0; }
}


/* Animation Classes - Most of these are superseded by [data-aos] from sp360-25.
   Only keep very generic ones if not covered by component-specific styles or AOS.
*/

/* .animate-on-scroll related classes are handled by JS in the merged script.js
   and styled in components.css. So, removing .stagger-animation, etc. from here.
*/

/* Hover Animation Utility Classes (from sp360-4) */
/* These can be useful for quick hover effects if not styled directly on components. */
.hover-lift {
    transition: transform var(--transition-medium); /* Use medium transition */
}
.hover-lift:hover, .hover-lift:focus-visible {
    transform: translateY(-5px);
}

.hover-glow:hover, .hover-glow:focus-visible {
    box-shadow: var(--shadow-glow); /* Ensure --shadow-glow is defined in variables.css */
}

.hover-scale {
    transition: transform var(--transition-medium);
}
.hover-scale:hover, .hover-scale:focus-visible {
    transform: scale(1.05);
}

/* Text Animations (Typewriter from sp360-4 - keep if used, though not in current HTML) */
.typewriter {
    overflow: hidden;
    border-right: 2px solid var(--primary-color); /* Assuming a single color for caret */
    white-space: nowrap;
    letter-spacing: .1em; /* Adjust spacing */
    animation: 
        typing 3.5s steps(30, end) forwards, /* Use 'forwards' to keep final state */
        blink-caret 0.75s step-end infinite;
}

@keyframes typing {
    from { width: 0; }
    to { width: 100%; }
}

@keyframes blink-caret {
    from, to { border-color: transparent; }
    50% { border-color: var(--primary-color); } /* Match border-right color */
}


/* Reduced Motion Support (already in base.css, but can be reiterated here for animation-specific file) */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        animation-delay: 0s !important;
        transition-delay: 0s !important;
    }
    
    /* Ensure specific classes also respect this if they have complex animations */
    .floating, .typewriter, .hover-lift, .hover-scale, .section-title, .hero-title, .card-title,
    .section-badge i, .feature-icon, .step-icon, .card-icon {
        animation: none !important;
        transition: none !important;
    }
    .hover-lift:hover, .hover-lift:focus-visible { transform: none; }
    .hover-scale:hover, .hover-scale:focus-visible { transform: none; }
}

/* Efficiency indicator animation */
@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Breathing animation for section titles */
@keyframes breathe {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.02);
        opacity: 0.95;
    }
}

/* Animation delay classes for variety */
.floating:nth-child(1) { animation-delay: 0s; }
.floating:nth-child(2) { animation-delay: 0.5s; }
.floating:nth-child(3) { animation-delay: 1s; }
.floating:nth-child(4) { animation-delay: 1.5s; }
.floating:nth-child(5) { animation-delay: 2s; }
.floating:nth-child(6) { animation-delay: 2.5s; }

/* --- END OF FILE css/animations.css --- */