/* Lightweight premium motion: transform and opacity only. */
.wow.animated {
    will-change: transform, opacity;
}

@keyframes luxuryLineReveal {
    from {
        opacity: 0;
        transform: translateX(-50%) scaleX(0);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) scaleX(1);
    }
}

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

@keyframes heroImageDrift {
    from {
        transform: scale(1.01);
    }
    to {
        transform: scale(1.065);
    }
}

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

@keyframes heroFadeDown {
    from {
        opacity: 0;
        transform: translateY(-14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#header-carousel .carousel-item > img {
    transform-origin: center;
}

#header-carousel .carousel-item.active > img {
    animation: heroImageDrift 7s ease-out both;
}

#header-carousel .carousel-item.active .carousel-caption h4 {
    animation: heroFadeDown .65s cubic-bezier(.2, .8, .2, 1) .08s both;
}

#header-carousel .carousel-item.active .carousel-caption > div::before,
#header-carousel .carousel-item.active .carousel-caption > div::after,
.page-header::after {
    transform-origin: center;
    animation: luxuryLineReveal .9s cubic-bezier(.2, .8, .2, 1) both;
}

#header-carousel .carousel-item.active .hero-title,
.page-header h1 {
    animation: luxuryTitleEnter .72s cubic-bezier(.2, .8, .2, 1) both;
}

#header-carousel .carousel-item.active .hero-title {
    animation-delay: .18s;
}

#header-carousel .carousel-item.active .hero-actions,
#header-carousel .carousel-item.active .carousel-caption > div > .btn {
    animation: heroFadeUp .7s cubic-bezier(.2, .8, .2, 1) .34s both;
}

.page-header h1 {
    animation-delay: .08s;
}

.page-header-subtitle {
    animation: heroFadeUp .68s cubic-bezier(.2, .8, .2, 1) .2s both;
}

.page-header .breadcrumb {
    animation: heroFadeUp .68s cubic-bezier(.2, .8, .2, 1) .34s both;
}

.btn i,
.navbar-logo,
.fact-icon,
.profile-icon,
.service-icon,
.sector-icon,
.contact-icon,
.contact-detail-icon,
.contact-action-card > i,
.footer .btn.btn-link::before {
    transition: transform .32s cubic-bezier(.2, .8, .2, 1);
}

/* Replace continuous service shine with a single hover-triggered sweep. */
#services .service-item::after {
    left: -70%;
    opacity: 0;
    animation: none !important;
    transition: left .72s cubic-bezier(.2, .8, .2, 1), opacity .2s ease;
}

@media (hover: hover) {
    .fact-item,
    .service-item,
    .project-item,
    #industries .row > div > div,
    .profile-card,
    .service-detail,
    .sector-card,
    .process-card,
    .contact-card,
    .vision-card,
    .contact-action-card {
        background:
            radial-gradient(circle at 88% 8%, rgba(201, 166, 95, .14), transparent 9rem),
            linear-gradient(125deg, #fff 0%, #fffaf2 28%, #f7e9e8 46%, #fffdf8 66%, #fff 100%) !important;
        background-position: 0% 50%, 0% 50% !important;
        background-size: 100% 100%, 230% 230% !important;
        transition:
            transform .38s cubic-bezier(.2, .8, .2, 1),
            border-color .38s ease,
            box-shadow .38s ease,
            background-position .72s cubic-bezier(.2, .8, .2, 1) !important;
    }

    .fact-item:hover,
    .service-item:hover,
    .project-item:hover,
    #industries .row > div > div:hover,
    .profile-card:hover,
    .service-detail:hover,
    .sector-card:hover,
    .process-card:hover,
    .contact-card:hover,
    .vision-card:hover,
    .contact-action-card:hover {
        border-color: rgba(201, 166, 95, .78) !important;
        border-top-color: #c9a65f !important;
        background-position: 100% 50%, 100% 50% !important;
        box-shadow:
            0 22px 44px rgba(74, 0, 20, .16),
            0 0 0 1px rgba(201, 166, 95, .18),
            inset 0 1px 0 rgba(255, 255, 255, .94) !important;
        transform: translateY(-7px) scale(1.008);
    }

    .fact-icon,
    .profile-icon,
    .service-icon,
    .sector-icon,
    .contact-icon {
        transition:
            color .35s ease,
            background .35s ease,
            border-color .35s ease,
            transform .35s cubic-bezier(.2, .8, .2, 1),
            box-shadow .35s ease;
    }

    .fact-item:hover .fact-icon,
    .profile-card:hover .profile-icon,
    .service-detail:hover .service-icon,
    .sector-card:hover .sector-icon,
    .contact-card:hover .contact-icon {
        color: #f1d99d;
        border-color: rgba(236, 215, 164, .72);
        background: linear-gradient(145deg, #981033, #650019);
        box-shadow: 0 12px 24px rgba(86, 0, 23, .22), inset 0 1px 0 rgba(255, 255, 255, .18);
    }

    .service-item h4,
    .service-detail h3,
    .project-item h6,
    .profile-card h3,
    .sector-card h3,
    .process-card h3,
    #industries .row > div > div h6 {
        transition: color .32s ease, transform .32s ease;
    }

    .service-item:hover h4,
    .service-detail:hover h3,
    .project-item:hover h6,
    .profile-card:hover h3,
    .sector-card:hover h3,
    .process-card:hover h3,
    #industries .row > div > div:hover h6 {
        color: #76001e !important;
        transform: translateX(2px);
    }

    #services .service-item:hover::after {
        left: 135%;
        opacity: .72;
    }

    .btn:hover i.fa-arrow-right,
    .btn:hover i.fa-paper-plane,
    .btn:hover i.bi-arrow-right,
    .contact-action-card:hover > i {
        transform: translateX(5px);
    }

    .btn:hover i.fa-phone-alt {
        transform: rotate(-12deg) scale(1.08);
    }

    .fact-item:hover .fact-icon,
    .profile-card:hover .profile-icon,
    .service-detail:hover .service-icon,
    .sector-card:hover .sector-icon,
    .contact-card:hover .contact-icon {
        transform: translateY(-4px) rotate(-4deg) scale(1.06);
    }

    #industries .row > div > div:hover i {
        transform: translateY(-4px) scale(1.08);
    }

    .contact-detail-item:hover .contact-detail-icon {
        transform: rotate(-7deg) scale(1.06);
    }

    .navbar-brand:hover .navbar-logo {
        transform: translateY(-2px) scale(1.025);
    }

    .footer .btn.btn-link:hover::before {
        transform: translateX(4px);
    }

    .project-item .position-relative a i {
        transition: transform .35s cubic-bezier(.2, .8, .2, 1);
    }

    .project-item:hover .position-relative a i {
        transform: scale(1.1) rotate(-5deg);
    }

    .testimonial-carousel .owl-nav button,
    .project-carousel .owl-dot {
        transition: transform .28s ease, background-color .28s ease, border-color .28s ease;
    }

    .testimonial-carousel .owl-nav button:hover,
    .project-carousel .owl-dot:hover {
        transform: translateY(-3px);
    }

    .back-to-top:hover i {
        transform: translateY(-3px);
    }
}

@media (hover: none) {
    #services .service-item::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
