/* Fairy Widget Animations & Global Typography */

/* -----------------------------
   Global Typography Overrides 
----------------------------- */

/* Body Text Font */
[class*="elementor-widget-fairy_"] [class*="-wrapper"],
[class*="elementor-widget-fairy_"] [class*="-inner"],
[class*="elementor-widget-fairy_"] form,
[class*="elementor-widget-fairy_"] input,
[class*="elementor-widget-fairy_"] textarea,
[class*="elementor-widget-fairy_"] button,
[class*="elementor-widget-fairy_"] a,
[class*="elementor-widget-fairy_"] p,
[class*="elementor-widget-fairy_"] span,
[class*="elementor-widget-fairy_"] div {
    font-family: 'Kepler Std', serif;
}

/* Headings Font */
[class*="elementor-widget-fairy_"] h1,
[class*="elementor-widget-fairy_"] h2,
[class*="elementor-widget-fairy_"] h3,
[class*="elementor-widget-fairy_"] h4,
[class*="elementor-widget-fairy_"] h5,
[class*="elementor-widget-fairy_"] h6,
[class*="elementor-widget-fairy_"] [class*="-title"],
[class*="elementor-widget-fairy_"] [class*="-heading"],
[class*="elementor-widget-fairy_"] [class*="-subtitle"],
[class*="elementor-widget-fairy_"] [class*="-num"] {
    font-family: 'Bemore Serif', serif;
    font-weight: normal;
}

/* -----------------------------
   Scroll Entrance Animations 
----------------------------- */

/* Base Hidden State */
.fairy-animate-up,
.fairy-animate-down,
.fairy-animate-left,
.fairy-animate-right,
.fairy-animate-fade {
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
    will-change: opacity, transform;
}

/* Transform States */
.fairy-animate-up { transform: translateY(40px); }
.fairy-animate-down { transform: translateY(-40px); }
.fairy-animate-left { transform: translateX(40px); } /* Sliding left from right */
.fairy-animate-right { transform: translateX(-40px); } /* Sliding right from left */
.fairy-animate-fade { transform: scale(0.98); }

/* Visible State (Added via JS) */
.fairy-visible.fairy-animate-up,
.fairy-visible.fairy-animate-down,
.fairy-visible.fairy-animate-left,
.fairy-visible.fairy-animate-right,
.fairy-visible.fairy-animate-fade {
    opacity: 1;
    transform: translate(0) scale(1);
}

/* Delay Staggering */
.fairy-delay-100 { transition-delay: 100ms; }
.fairy-delay-200 { transition-delay: 200ms; }
.fairy-delay-300 { transition-delay: 300ms; }
.fairy-delay-400 { transition-delay: 400ms; }
.fairy-delay-500 { transition-delay: 500ms; }
.fairy-delay-600 { transition-delay: 600ms; }

/* -----------------------------
   Interactive Hover Animations 
----------------------------- */

/* Lift Effect (Cards) */
.fairy-hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.fairy-hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.08);
}

/* Scale Effect (Images/Icons) */
.fairy-hover-scale {
    transition: transform 0.3s ease;
}
.fairy-hover-scale:hover {
    transform: scale(1.05);
}

/* Button Pulse/Glow */
.fairy-hover-glow {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.fairy-hover-glow:hover {
    box-shadow: 0 8px 25px rgba(166, 114, 126, 0.3); /* Uses Accent color roughly */
    transform: translateY(-2px);
}
