/* Global motion + button hover (all pages) */

/* Page enter */
body {
    animation: page-fade-in 0.55s ease both;
}

@keyframes page-fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Scroll reveal */
.reveal {
    opacity: 0;
    transform: translateY(32px);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 {
    transition-delay: 0.08s;
}

.reveal-delay-2 {
    transition-delay: 0.16s;
}

.reveal-delay-3 {
    transition-delay: 0.24s;
}

.reveal-delay-4 {
    transition-delay: 0.32s;
}

.reveal-left {
    transform: translateX(-28px);
}

.reveal-left.is-visible {
    transform: translateX(0);
}

.reveal-right {
    transform: translateX(28px);
}

.reveal-right.is-visible {
    transform: translateX(0);
}

.reveal-scale {
    transform: scale(0.96);
}

.reveal-scale.is-visible {
    transform: scale(1);
}

/* Site buttons */
.site-btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.28s ease,
        filter 0.28s ease,
        background-color 0.28s ease,
        opacity 0.28s ease !important;
}

.site-btn::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.18) 48%, transparent 100%);
    transform: translateX(-120%);
    transition: transform 0.55s ease;
    pointer-events: none;
    z-index: 1;
}

.site-btn:hover {
    transform: translateY(-3px);
    filter: brightness(1.06);
    opacity: 1 !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.site-btn:hover::after {
    transform: translateX(120%);
}

.site-btn:active {
    transform: translateY(-1px) scale(0.98);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
}

.site-btn > * {
    position: relative;
    z-index: 2;
}

/* Card / interactive hover */
.tech-card,
.industry-serve-card,
.industry-card,
.service-card,
.why-choose-candidates-section article,
.recruitment-expertise-section img,
.benefits-section img {
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.35s ease,
        filter 0.35s ease;
}

.tech-card:hover,
.service-card:hover,
.why-choose-candidates-section article:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(71, 69, 69, 0.12);
}

.industry-serve-card:hover,
.industry-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}

.industry-serve-card:hover img,
.industry-card:hover img {
    transform: scale(1.04);
}

.industry-serve-card img,
.industry-card img {
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Form inputs subtle focus motion */
.enquiry-input,
.enquiry-textarea,
.enquiry-phone,
.enquiry-file {
    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        transform 0.25s ease;
}

.enquiry-input:focus,
.enquiry-textarea:focus,
.enquiry-phone:focus-within,
.enquiry-file:focus-within {
    transform: translateY(-1px);
}

/* Enquiry tabs */
.enquiry-tab {
    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        color 0.25s ease,
        box-shadow 0.25s ease !important;
}

.enquiry-tab:hover:not(.is-active) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

/* Header / footer link polish */
.site-header nav a,
.site-footer a {
    transition: color 0.25s ease, transform 0.25s ease, opacity 0.25s ease;
}

.site-header nav a:hover {
    transform: translateY(-1px);
}

.site-footer .site-btn,
.site-footer a.site-btn {
    overflow: visible;
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
}

.site-footer .site-btn::after,
.site-footer a.site-btn::after {
    display: none !important;
}

.site-footer .inline-flex.h-10.w-10:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 8px 18px rgba(0, 89, 193, 0.35);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    body {
        animation: none;
    }

    .reveal,
    .reveal-left,
    .reveal-right,
    .reveal-scale {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .site-btn,
    .site-btn::after,
    .tech-card,
    .industry-serve-card,
    .industry-card,
    .service-card,
    .enquiry-tab,
    .enquiry-input,
    .enquiry-textarea {
        transition: none !important;
        transform: none !important;
        filter: none !important;
    }

    .site-btn:hover,
    .site-btn:active {
        transform: none !important;
        box-shadow: none !important;
    }
}
