/* Native page navigation stays native: no loading mask or artificial delay. */
@media (prefers-reduced-motion: no-preference) {
    @view-transition {
        navigation: auto;
    }

    ::view-transition-old(root) {
        animation: page-fade-out 140ms ease-out both;
    }

    ::view-transition-new(root) {
        animation: page-fade-in 200ms ease-out both;
    }

    .site-header {
        view-transition-name: site-header;
    }

    ::view-transition-group(site-header) {
        animation-duration: 200ms;
    }

    ::view-transition-old(site-header) {
        animation: none;
        opacity: 0;
    }

    ::view-transition-new(site-header) {
        animation: none;
    }

    html {
        scroll-behavior: smooth;
    }

    .platform-service-card,
    .platform-planning-link,
    .ls-man-person-card {
        transition: border-color 180ms ease, background-color 180ms ease,
            box-shadow 180ms ease, transform 180ms ease;
    }

    .platform-service-card:active,
    .platform-planning-link:active,
    .ls-man-person-card:active {
        transform: translateY(1px);
    }

    .eyd-megamenu.is-active .eyd-megamenu__view.is-active {
        animation: menu-fade-in 160ms ease-out;
    }
}

@keyframes page-fade-out {
    to { opacity: 0; }
}

@keyframes page-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes menu-fade-in {
    from { opacity: .65; }
    to { opacity: 1; }
}

/* The actual header size is measured once and only updated when it changes. */
html {
    --site-anchor-offset: 112px;
}

main [id] {
    scroll-margin-top: var(--site-anchor-offset);
}

.leadership-main-content [id] {
    scroll-margin-top: calc(var(--site-anchor-offset) + 56px);
}

@media (min-width: 1024px) {
    html { --site-anchor-offset: 164px; }
}

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
    outline: 3px solid #2688bc;
    outline-offset: 4px;
}

/* A keyboard-only shortcut does not change the visible page layout. */
.site-skip-link {
    position: fixed;
    z-index: 10000;
    top: 8px;
    left: 16px;
    padding: 12px 20px;
    border-radius: 4px;
    background: #fff;
    color: #002d74;
    font-weight: 700;
    box-shadow: 0 3px 16px #001b4630;
    transform: translateY(-160%);
}

.site-skip-link:focus {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }

    html {
        scroll-behavior: auto !important;
    }

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

    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) {
        animation: none !important;
    }
}
