/* Small, consistent responses; all content stays usable without animation. */
.service-icon .icon-energy{fill:currentColor;fill-opacity:.06}
.service-icon .icon-cell{fill:currentColor;stroke:none}
.service-icon .icon-tile{fill:currentColor;fill-opacity:0}
.service-icon .icon-rays{transform-origin:12px 12px}
.service-icon .icon-rails{opacity:.4}
.service-icon .icon-bar{transform-origin:0 16px}
.desktop-nav a::after{width:100%;transform:scaleX(0);transform-origin:left;transition:transform 240ms ease}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,.desktop-nav a[aria-current="location"]::after{transform:scaleX(1)}
.desktop-nav a[aria-current="location"],.mobile-menu a[aria-current="location"]{color:var(--sky)}
.mobile-menu a{position:relative;transition:color 220ms ease}
.mobile-menu a::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:2px;background:var(--sky);transform:scaleX(0);transform-origin:left;transition:transform 240ms ease}
.mobile-menu a[aria-current="location"]::after{transform:scaleX(1)}
.service-card,.news-card{transition:transform 260ms ease,box-shadow 260ms ease,border-color 260ms ease}
.button,.header-cta,.menu-button,.mobile-contact>a,.social-link{transition:background-color 220ms ease,color 220ms ease,border-color 220ms ease,box-shadow 220ms ease,transform 180ms ease}
.text-link,.service-link,.news-link{transition:color 220ms ease,text-decoration-color 220ms ease}
.service-link .link-arrow{width:18px;height:18px;flex:none;margin-left:auto;align-self:center;stroke:currentColor;stroke-width:1.6;fill:none;transition:transform 220ms ease}
.service-link{gap:12px}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .service-card:hover,.news-card:hover{transform:translateY(-3px);border-color:#9ab8e9;box-shadow:0 14px 32px #102b5112}
 .service-link:hover .link-arrow,.service-link:focus-visible .link-arrow{transform:translateX(3px)}
}
@media(prefers-reduced-motion:no-preference){
 .button:not(:disabled):active,.header-cta:active,.menu-button:active,.mobile-contact>a:active,.social-link:active{transform:scale(.985)}
}
@media(hover:none),(pointer:coarse){
 .service-card:hover,.news-card:hover,.service-card:hover .service-media img{transform:none}
}
@media(prefers-reduced-motion:reduce){
 .service-card,.news-card,.service-media img,.service-link .link-arrow{transform:none!important}
}
@media print{
 .service-card,.news-card{opacity:1!important;transform:none!important;box-shadow:none!important}
}
