/* Motion only: no persistent changes to layout, typography or colours. */
@media(prefers-reduced-motion:no-preference){
 .button,.document-actions a,.desktop-phone-cta a,.call-label{transition:background-color .22s ease,color .22s ease,transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease}
 .service-card,.m-service,.m-industry-track>a,.news-card,.m-news article,.company-letters a{transition:transform .4s cubic-bezier(.22,1,.36,1),background-color .22s ease,box-shadow .4s ease}
 .hotspot{transition:background-color .25s ease,box-shadow .25s ease}
 .m-arrow,.button>span{display:inline-block;transition:transform .35s cubic-bezier(.22,1,.36,1)}
 #mobile-menu:not([hidden]),.service-menu:not([hidden]){animation:npec-menu-in .25s cubic-bezier(.22,1,.36,1)}
 .menu-toggle{transition:transform .25s ease}
 .menu-toggle[aria-expanded=true]{transform:rotate(90deg)}
 .button:active,.document-actions a:active,.desktop-phone-cta a:active{transform:translateY(1px)}
 .desktop-header nav a,.native-footer nav a,.m-footer nav a{position:relative}
 .desktop-header nav a::after,.native-footer nav a::after,.m-footer nav a::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;opacity:.65;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .button:hover,.document-actions a:hover,.desktop-phone-cta a:hover{transform:translateY(-2px);box-shadow:0 7px 20px #0002}
 .service-card:hover,.m-service:hover,.m-industry-track>a:hover,.news-card:hover,.m-news article:hover,.company-letters a:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0002}
 .button:hover>span,.m-service:hover .m-arrow{transform:translateX(4px)}
 .desktop-header nav a:hover::after,.native-footer nav a:hover::after,.m-footer nav a:hover::after{transform:scaleX(1)}
 .hotspot:hover{box-shadow:inset 0 0 0 1px #ffffff25}
}
@keyframes npec-menu-in{from{opacity:.3;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
/* Gentle photo motion without light overlays. */
@media(prefers-reduced-motion:no-preference){
 .semantic-site .m-hero{position:relative;isolation:isolate;overflow:hidden}
 .exact-text{z-index:2}
 .m-stats strong{transform-origin:left center}
 .letter-track>a{overflow:hidden;transition:box-shadow .3s ease}
 .letter-track>a img{transition:transform .55s cubic-bezier(.22,1,.36,1)}
 .letter-controls button{transition:background-color .25s ease,transform .25s ease,border-color .25s ease}
 .letter-track>a:focus-visible{outline:2px solid #409ddd;outline-offset:-2px}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .letter-track>a:hover{transform:none!important;box-shadow:inset 0 0 0 2px #409ddd}
 .letter-track>a:hover img{transform:scale(1.015)}
 .letter-controls button:not(:disabled):hover{background:#284961;border-color:#66a8d8;transform:translateY(-2px)}
 .letter-controls button:not(:disabled):active{transform:translateY(0)}
 .service-card img,.m-service img{transition:transform .4s cubic-bezier(.22,1,.36,1)}
 .service-card:hover img,.m-service:hover img{transform:translateY(-3px)}
}

.counting-stat{display:grid!important;justify-items:start}.counting-stat::after{content:attr(data-counter-final);visibility:hidden;grid-area:1/1}.semantic-site .m-stats .counter-value{grid-area:1/1;font:inherit!important;margin:0!important;line-height:inherit!important}
@media(prefers-reduced-motion:no-preference){
 .semantic-site .m-hero::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:inherit;transform:scale(1.025);animation:npec-hero-drift 10s ease-in-out infinite alternate;animation-play-state:paused}
 .semantic-site .m-hero[data-ambient-visible]::before{animation-play-state:running}
}
@keyframes npec-hero-drift{from{transform:scale(1.025) translateX(-.8%)}to{transform:scale(1.07) translateX(.8%)}}
