/* Motion remains decorative: every element is visible before JavaScript runs. */
@keyframes active-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes mega-in { from { opacity: 0; transform: translate(-50%,-10px) scale(.985); } to { opacity: 1; transform: translate(-50%,0) scale(1); } }
@keyframes mega-item-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes panel-enter { from { opacity: .7; transform: translateX(28px); } to { opacity: 1; transform: translateX(0); } }
@keyframes backdrop-enter { from { background: rgb(7 22 63 / 0%); } to { background: rgb(7 22 63 / 65%); } }
@keyframes mobile-link-enter { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
.mobile-menu[open] { animation: panel-enter .3s cubic-bezier(.2,.72,.25,1) both; }
.mobile-menu[open]::backdrop { animation: backdrop-enter .3s ease-out both; }
.mobile-menu[open] nav > a, .mobile-menu[open] .mobile-services { animation: mobile-link-enter .32s ease-out both; }
.mobile-menu[open] nav > :nth-child(2) { animation-delay: .035s; }
.mobile-menu[open] nav > :nth-child(3) { animation-delay: .07s; }
.mobile-menu[open] nav > :nth-child(4) { animation-delay: .105s; }
.mobile-menu[open] nav > :nth-child(5) { animation-delay: .14s; }
.mobile-menu[open] nav > :nth-child(6) { animation-delay: .175s; }
.motion-word-mask { display: inline-block; overflow: hidden; vertical-align: baseline; }
.motion-word { display: inline-block; }
.motion-word-pending { transform: translateY(115%); }
.site-header { transition: background-color .28s ease, box-shadow .28s ease, border-color .28s ease; }
.site-header.is-scrolled { background: rgb(255 255 255 / 98%); box-shadow: 0 8px 28px rgb(7 22 63 / 7%); border-color: rgb(17 43 117 / 13%); }
.mega-menu:not([hidden]) .mega-service { animation: mega-item-in .38s cubic-bezier(.2,.72,.25,1) both; }
.mega-menu:not([hidden]) .mega-service:nth-child(2) { animation-delay: .035s; }
.mega-menu:not([hidden]) .mega-service:nth-child(3) { animation-delay: .07s; }
.mega-menu:not([hidden]) .mega-service:nth-child(4) { animation-delay: .105s; }
.mega-menu:not([hidden]) .mega-service:nth-child(5) { animation-delay: .14s; }
.mega-menu:not([hidden]) .mega-service:nth-child(6) { animation-delay: .175s; }
.mega-menu:not([hidden]) .mega-service:nth-child(n+7) { animation-delay: .21s; }
.service-card .media > img, .project-card .media > img { transition: transform .42s cubic-bezier(.2,.72,.25,1); }
.service-card:is(:hover,:focus-within), .project-card:is(:hover,:focus-within) { border-color: #c3a94b; }
.service-card:is(:hover,:focus-within) .media > img { transform: scale(1.035); }
.project-card:is(:hover,:focus-within) .media > img { transform: scale(1.04); }
.service-card .card-body .text-link > span[aria-hidden], .project-card .card-body .text-link > span[aria-hidden],
.button > span[aria-hidden] { transition: transform .28s ease, background-color .28s ease, border-color .28s ease, color .28s ease; }
.service-card:is(:hover,:focus-within) .card-body .text-link > span[aria-hidden],
.project-card:is(:hover,:focus-within) .card-body .text-link > span[aria-hidden],
.button:is(:hover,:focus-visible) > span[aria-hidden] { transform: translate(3px,-3px); }
.project-card .card-body h3 { transition: transform .3s ease; }
.project-card:is(:hover,:focus-within) .card-body h3 { transform: translateX(3px); }
.faq-item button span:last-child, .challenges summary .admin-icon { transition: transform .28s ease; }
.faq-answer.is-animating { overflow: hidden; }
.process-grid { position: relative; }
.motion-process-rail { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--jc-gold); transform-origin: left center; pointer-events: none; }
.page-home .home-process .motion-process-rail { top: 1.8rem; }
@media (max-width: 800px) {
    .motion-process-rail { top: 0; right: auto; bottom: 0; width: 2px; height: auto; transform-origin: center top; }
    .page-home .home-process .motion-process-rail { top: 1.4rem; left: 2.1rem; bottom: 1.4rem; }
}
@media (hover: none) {
    .service-card:hover .media > img, .project-card:hover .media > img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .mega-menu, .mega-menu .mega-service, .mobile-menu[open], .mobile-menu[open]::backdrop, .mobile-menu[open] nav > a, .mobile-menu[open] .mobile-services, .main-nav > a[aria-current="page"]::after, .services-nav > a[aria-current="page"]::after { animation: none !important; }
    .site-header, .service-card .media > img, .project-card .media > img, .faq-item button span:last-child, .challenges summary .admin-icon, .button > span[aria-hidden] { transition-duration: 0s !important; }
}
