/*
 * Humza Quran Academy
 * Luxury Animation System
 * Version: 1.0.0
 */


/* =========================================================
   1. BASE REVEAL ANIMATION
========================================================= */

.humza-reveal {
    opacity: 0;
    transform: translateY(25px);

    transition:
        opacity 0.7s ease,
        transform 0.7s ease;
}

.humza-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* =========================================================
   2. FADE IN
========================================================= */

.humza-fade-in {
    animation: humzaFadeIn 0.8s ease both;
}

@keyframes humzaFadeIn {

    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }

}


/* =========================================================
   3. FADE UP
========================================================= */

.humza-fade-up {
    animation: humzaFadeUp 0.8s ease both;
}

@keyframes humzaFadeUp {

    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   4. FADE DOWN
========================================================= */

.humza-fade-down {
    animation: humzaFadeDown 0.8s ease both;
}

@keyframes humzaFadeDown {

    from {
        opacity: 0;
        transform: translateY(-25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   5. FADE LEFT
========================================================= */

.humza-fade-left {
    animation: humzaFadeLeft 0.8s ease both;
}

@keyframes humzaFadeLeft {

    from {
        opacity: 0;
        transform: translateX(35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =========================================================
   6. FADE RIGHT
========================================================= */

.humza-fade-right {
    animation: humzaFadeRight 0.8s ease both;
}

@keyframes humzaFadeRight {

    from {
        opacity: 0;
        transform: translateX(-35px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


/* =========================================================
   7. SCALE IN
========================================================= */

.humza-scale-in {
    animation: humzaScaleIn 0.7s ease both;
}

@keyframes humzaScaleIn {

    from {
        opacity: 0;
        transform: scale(0.94);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }

}


/* =========================================================
   8. HERO CONTENT ANIMATION
========================================================= */

.humza-hero__eyebrow {
    animation:
        humzaFadeUp 0.7s ease 0.1s both;
}

.humza-hero h1 {
    animation:
        humzaFadeUp 0.8s ease 0.2s both;
}

.humza-hero__description {
    animation:
        humzaFadeUp 0.8s ease 0.35s both;
}

.humza-hero__buttons {
    animation:
        humzaFadeUp 0.8s ease 0.5s both;
}

.humza-hero__trust {
    animation:
        humzaFadeUp 0.8s ease 0.65s both;
}


/* =========================================================
   9. BUTTON MICRO INTERACTION
========================================================= */

.humza-btn {
    position: relative;
    overflow: hidden;
}

.humza-btn::after {
    content: "";

    position: absolute;

    top: 0;
    left: -120%;

    width: 70%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.22),
            transparent
        );

    transform: skewX(-20deg);

    transition: left 0.6s ease;

    pointer-events: none;
}

.humza-btn:hover::after {
    left: 140%;
}


/* =========================================================
   10. IMAGE HOVER
========================================================= */

.humza-about__image,
.humza-course-card__image,
.humza-teacher-card__image {
    overflow: hidden;
}

.humza-about__image img,
.humza-course-card__image img,
.humza-teacher-card__image img {
    transition:
        transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.humza-about__image:hover img {
    transform: scale(1.025);
}


/* =========================================================
   11. CARD HOVER GLOW
========================================================= */

.humza-course-card,
.humza-teacher-card,
.humza-review-card {
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        border-color 0.35s ease;
}


/* =========================================================
   12. GOLD LINE ANIMATION
========================================================= */

.humza-gold-line {
    position: relative;

    overflow: hidden;
}

.humza-gold-line::after {
    content: "";

    position: absolute;

    top: 0;
    left: -100%;

    width: 100%;
    height: 100%;

    background: rgba(255, 255, 255, 0.45);

    animation:
        humzaGoldShine 3s ease-in-out infinite;
}

@keyframes humzaGoldShine {

    0% {
        left: -100%;
    }

    45%,
    100% {
        left: 100%;
    }

}


/* =========================================================
   13. FLOATING DECORATION
========================================================= */

.humza-float {
    animation:
        humzaFloat 5s ease-in-out infinite;
}

@keyframes humzaFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }

}


/* =========================================================
   14. PULSE
========================================================= */

.humza-pulse {
    animation:
        humzaPulse 2.5s ease-in-out infinite;
}

@keyframes humzaPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.72;
    }

}


/* =========================================================
   15. MOBILE MENU ANIMATION
========================================================= */

.humza-navigation.is-open {
    animation:
        humzaMenuDown 0.25s ease both;
}

@keyframes humzaMenuDown {

    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   16. FAQ ANIMATION
========================================================= */

.humza-faq-icon {
    transition:
        transform 0.3s ease,
        background 0.3s ease;
}

.humza-faq-item.is-open
.humza-faq-icon {
    background: var(--humza-primary-light);
}


/* =========================================================
   17. SOCIAL ICON HOVER
========================================================= */

.humza-social a {
    transition:
        transform 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        color 0.3s ease;
}

.humza-social a:hover {
    transform: translateY(-3px) rotate(2deg);
}


/* =========================================================
   18. SCROLL TOP BUTTON
========================================================= */

.humza-scroll-top {
    transition:
        opacity 0.3s ease,
        visibility 0.3s ease,
        transform 0.3s ease,
        background 0.3s ease;
}


/* =========================================================
   19. DELAY UTILITIES
========================================================= */

.humza-delay-1 {
    animation-delay: 0.1s !important;
}

.humza-delay-2 {
    animation-delay: 0.2s !important;
}

.humza-delay-3 {
    animation-delay: 0.3s !important;
}

.humza-delay-4 {
    animation-delay: 0.4s !important;
}

.humza-delay-5 {
    animation-delay: 0.5s !important;
}


/* =========================================================
   20. REDUCED MOTION ACCESSIBILITY
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

}