/* Shared interaction and reveal motion for the GKSEMU responsive layout. */
html.gk-motion-enabled .gk-reveal {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
    transition: opacity .72s cubic-bezier(.22, 1, .36, 1), transform .72s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--gk-motion-delay, 0ms);
    will-change: opacity, transform;
}

html.gk-motion-enabled .gk-reveal.gk-reveal--left { transform: translate3d(-34px, 0, 0); }
html.gk-motion-enabled .gk-reveal.gk-reveal--right { transform: translate3d(34px, 0, 0); }
html.gk-motion-enabled .gk-reveal.gk-reveal--hero { transform: translate3d(0, 18px, 0); }

html.gk-motion-enabled .gk-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    will-change: auto;
}

/* Main hero: sequenced copy entrance and slow background breathing. */
.gk-home .gk-hero {
    overflow: hidden;
    isolation: isolate;
}

.gk-home .gk-hero:before {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: var(--gk-green) url('../img/main/gk_main_hero.png') center top / cover no-repeat;
    content: '';
    pointer-events: none;
    transform: scale(1.025);
    transform-origin: 54% 46%;
    animation: gk-hero-breathe 14s ease-in-out infinite alternate;
    will-change: transform, filter;
}

.gk-home .gk-hero-shade { z-index: 1; }
.gk-home .gk-hero-inner { z-index: 2; }
.gk-home .gk-hero-line { display: block; }

html.gk-hero-motion-enabled .gk-home .gk-hero .gk-kicker,
html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-line,
html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-description,
html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-actions {
    opacity: 0;
    filter: blur(3px);
    transform: translate3d(0, 30px, 0);
    will-change: opacity, filter, transform;
}

html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-kicker,
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-line,
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-description,
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-actions {
    animation: gk-hero-copy-in .9s cubic-bezier(.22, 1, .36, 1) forwards;
}

html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-kicker { animation-delay: .12s; }
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-line:nth-child(1) { animation-delay: .27s; }
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-line:nth-child(2) { animation-delay: .44s; }
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-description { animation-delay: .64s; }
html.gk-hero-motion-enabled .gk-home .gk-hero.is-hero-active .gk-hero-actions { animation-delay: .82s; }

@keyframes gk-hero-copy-in {
    0% {
        opacity: 0;
        filter: blur(3px);
        transform: translate3d(0, 30px, 0);
    }
    100% {
        opacity: 1;
        filter: blur(0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes gk-hero-breathe {
    0% {
        filter: saturate(1) brightness(1);
        transform: scale(1.025);
    }
    100% {
        filter: saturate(1.035) brightness(1.025);
        transform: scale(1.065);
    }
}

.gk-button,
.gk-header-cta,
.gk-text-link,
.gk-card-links a,
.gk-download-button,
.gk-sub-cta-buttons a {
    transition: color .24s ease, background-color .24s ease, border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}

.gk-button span,
.gk-header-cta span,
.gk-text-link span,
.gk-card-links a span,
.gk-service-arrow,
.gk-board-card > span,
.gk-download-button span,
.gk-sub-cta-buttons a span {
    display: inline-block;
    transition: transform .24s ease;
}

.gk-service-row,
.gk-knowledge-card,
.gk-board-card,
.gk-process-grid > li,
.gk-company-profile-card,
.gk-company-metric,
.gk-service-detail-card,
.gk-rights-card,
.gk-service-sme-lead,
.gk-consulting-card,
.gk-service-process-list > li,
.gk-directory-card,
.gk-download-row {
    transition: color .28s ease, background-color .28s ease, border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}

.gk-knowledge-card,
.gk-company-intro-media,
.gk-company-portrait,
.gk-service-rights-media {
    overflow: hidden;
}

.gk-knowledge-card > img,
.gk-company-intro-media img,
.gk-company-portrait img,
.gk-service-rights-media img {
    transition: transform .65s cubic-bezier(.22, 1, .36, 1), filter .35s ease;
}

@media (hover: hover) and (pointer: fine) {
    .gk-button:hover,
    .gk-button:focus-visible,
    .gk-header-cta:hover,
    .gk-header-cta:focus-visible,
    .gk-download-button:hover,
    .gk-download-button:focus-visible,
    .gk-sub-cta-buttons a:hover,
    .gk-sub-cta-buttons a:focus-visible {
        transform: translateY(-3px);
        box-shadow: 0 12px 28px rgba(6, 28, 26, .16);
    }

    .gk-button:hover span,
    .gk-button:focus-visible span,
    .gk-header-cta:hover span,
    .gk-header-cta:focus-visible span,
    .gk-text-link:hover span,
    .gk-text-link:focus-visible span,
    .gk-card-links a:hover span,
    .gk-card-links a:focus-visible span,
    .gk-download-button:hover span,
    .gk-download-button:focus-visible span,
    .gk-sub-cta-buttons a:hover span,
    .gk-sub-cta-buttons a:focus-visible span {
        transform: translateX(5px);
    }

    .gk-service-row:hover,
    .gk-service-row:focus-visible {
        padding-right: 12px;
        padding-left: 12px;
        border-color: rgba(244, 73, 63, .72);
        background: rgba(255, 255, 255, .035);
        transform: translateX(6px) !important;
    }

    .gk-service-row:hover .gk-service-arrow,
    .gk-service-row:focus-visible .gk-service-arrow,
    .gk-board-card:hover > span,
    .gk-board-card:focus-visible > span {
        transform: translateX(6px);
    }

    .gk-knowledge-card:hover,
    .gk-knowledge-card:focus-within {
        border-color: rgba(244, 73, 63, .55);
        box-shadow: 0 20px 48px rgba(6, 28, 26, .12);
        transform: translateY(-7px) !important;
    }

    .gk-knowledge-card:hover > img,
    .gk-knowledge-card:focus-within > img,
    .gk-company-intro-media:hover img,
    .gk-company-portrait:hover img,
    .gk-service-rights-media:hover img {
        filter: saturate(1.04) contrast(1.02);
        transform: scale(1.035);
    }

    .gk-card-links a:hover,
    .gk-card-links a:focus-visible {
        border-color: var(--gk-title);
        color: #fff;
        background: var(--gk-title);
    }

    .gk-card-links a:hover span,
    .gk-card-links a:focus-visible span {
        color: var(--gk-coral-soft);
    }

    .gk-text-link:hover,
    .gk-text-link:focus-visible {
        color: var(--gk-coral);
    }

    .gk-board-card:hover,
    .gk-board-card:focus-visible,
    .gk-directory-card:hover,
    .gk-directory-card:focus-visible {
        border-color: var(--gk-coral);
        box-shadow: 0 18px 40px rgba(6, 28, 26, .1);
        transform: translateY(-6px) !important;
    }

    .gk-process-grid > li:hover,
    .gk-company-profile-card:hover,
    .gk-company-metric:hover,
    .gk-service-detail-card:hover,
    .gk-rights-card:hover,
    .gk-consulting-card:hover,
    .gk-service-process-list > li:hover {
        border-color: rgba(244, 73, 63, .58);
        box-shadow: 0 16px 36px rgba(6, 28, 26, .09);
        transform: translateY(-5px) !important;
    }

    .gk-process-grid > li:hover {
        border-color: var(--gk-title);
        color: #fff;
        background: var(--gk-title);
    }

    .gk-process-grid > li:hover .gk-process-number { color: var(--gk-coral-soft); }
    .gk-process-grid > li:hover .gk-process-line { background: var(--gk-coral); }
    .gk-process-grid > li:hover strong { color: #fff; }
    .gk-process-grid > li:hover p { color: var(--gk-copy-light); }

    .gk-service-sme-lead:hover {
        box-shadow: 0 18px 40px rgba(6, 28, 26, .18);
        transform: translateY(-5px) !important;
    }

    .gk-download-row:hover,
    .gk-download-row:focus-within {
        border-color: rgba(244, 73, 63, .65);
        box-shadow: 0 12px 30px rgba(6, 28, 26, .07);
        transform: translateX(5px) !important;
    }

    .gk-download-row:hover .gk-download-type,
    .gk-download-row:focus-within .gk-download-type {
        color: var(--gk-coral);
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .gk-home .gk-hero:before { background-position: 58% top; }
}

@media (max-width: 767.98px) {
    .gk-home .gk-hero:before {
        background-position: 60% top;
        transform-origin: 62% 44%;
        animation-duration: 16s;
    }

    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-kicker,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-line,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-description,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-actions {
        transform: translate3d(0, 22px, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gk-home .gk-hero:before {
        animation: none !important;
        filter: none !important;
        transform: scale(1.025) !important;
    }

    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-kicker,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-line,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-description,
    html.gk-hero-motion-enabled .gk-home .gk-hero .gk-hero-actions {
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
        animation: none !important;
    }

    html.gk-motion-enabled .gk-reveal,
    html.gk-motion-enabled .gk-reveal.is-visible {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .gk-sub-page *,
    .gk-home * {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
