/* Progressive enhancement: content stays readable with scripts disabled. */
.hero{isolation:isolate}.hero-image{animation:plant-drift 22s ease-in-out infinite alternate;transform-origin:center}.hero-content h1 em{display:inline-block;position:relative}.hero-content h1 em:after{content:'';position:absolute;left:0;bottom:-9px;height:3px;width:100%;background:linear-gradient(90deg,var(--yellow),#4fa8e8,transparent);transform-origin:left;animation:solve-line 1.3s ease-out both}.hero-content{animation:hero-enter .9s ease-out both}.motion-switch{position:fixed;bottom:20px;right:20px;z-index:40;background:#102b40;color:white;border:1px solid #ffffff80;border-radius:24px;padding:10px 16px;box-shadow:0 4px 18px #102b4030;font-size:12px}.service-card,.solution-card,.process-grid article{transition:transform .25s ease,box-shadow .25s ease}.service-card:hover,.solution-card:hover{transform:translateY(-6px);box-shadow:0 14px 35px #102b4014}.button{transition:transform .2s ease,box-shadow .2s ease}.button:hover{box-shadow:0 6px 18px #102b4025}.flow-lab{background:#102b40;color:#fff;border-radius:18px;padding:42px;overflow:hidden;position:relative}.flow-lab p{color:#c2d2df}.flow-lab .eyebrow{color:#ffdf28}.flow-lab h2{max-width:760px}.flow-controls{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.flow-controls button{border:1px solid #6d8597;background:transparent;color:#fff;padding:10px 18px;border-radius:30px}.flow-controls button[aria-pressed=true]{background:#ffdf28;color:#102b40;border-color:#ffdf28}.flow-track{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0;position:relative}.flow-node{position:relative;border:1px solid #587185;border-radius:10px;background:#17384f;padding:24px 18px;z-index:1}.flow-node span{display:block;color:#ffdf28;font-size:12px;letter-spacing:1px;margin-bottom:12px}.flow-node strong{font-size:18px}.flow-node:not(:last-child):after{content:'';position:absolute;top:50%;right:-19px;width:18px;height:3px;background:#ffdf28;animation:signal-pulse 2.4s ease-in-out infinite;animation-delay:calc(var(--i)*.4s)}.flow-node{animation:node-pulse 3.6s ease-in-out infinite;animation-delay:calc(var(--i)*.6s)}.flow-details{border-left:3px solid #ffdf28;padding:4px 0 4px 22px;min-height:95px}.flow-details h3{font-size:25px;margin-bottom:12px}.flow-note{font-size:12px;margin-top:24px}.reveal-in{animation:section-in .65s ease-out both}.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .reveal-in,.motion-paused .hero-content{animation:none!important}.motion-paused{scroll-behavior:auto}.flow-lab a{color:#ffdf28}@keyframes plant-drift{from{transform:scale(1)}to{transform:scale(1.065)}}@keyframes solve-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes hero-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes section-in{from{opacity:.55;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes signal-pulse{0%,100%{opacity:.25}50%{opacity:1}}@keyframes node-pulse{0%,100%{border-color:#587185}40%{border-color:#ffdf28}}@media(max-width:700px){.flow-lab{padding:26px 20px}.flow-track{grid-template-columns:1fr 1fr;gap:14px}.flow-node{padding:18px 12px}.flow-node:not(:last-child):after{display:none}.motion-switch{bottom:12px;right:12px}.flow-details{min-height:150px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{transform:none!important}}@media print{.motion-switch{display:none}.flow-lab{background:white;color:black}.flow-lab p{color:black}*{animation:none!important}}

/* Compact layout and animated industrial connections. */
.section{padding-top:58px;padding-bottom:58px}.service-hero{padding-top:36px;padding-bottom:48px}.hero{min-height:570px}.hero-content{padding-top:74px;padding-bottom:100px}.assessment-callout{margin-top:30px;margin-bottom:12px;padding:26px 32px}.section-heading{margin-bottom:28px}.service-card{padding:26px}.flow-lab{padding:30px}.flow-controls{margin:20px 0 12px}.flow-details{min-height:0}.flow-lab .actions{margin-top:20px}.flow-note{margin-top:14px}.connection-map{margin:0 0 22px}.connection-map svg{display:block;width:100%;height:auto;overflow:visible}.connection-wires path{stroke:#46677f;stroke-width:3;fill:none}.connection-signals path{fill:none;stroke:#ffdf28;stroke-width:3;stroke-dasharray:5 16;animation:connection-travel 2s linear infinite}.connection-signals path:nth-child(2n){stroke:#61c9ee;animation-delay:-.8s}.connection-device rect{fill:#17384f;stroke:#52748b;stroke-width:1}.connection-device circle{fill:#ffdf28;animation:connection-led 2.5s ease-in-out infinite}.connection-device text{fill:white;font:500 14px Arial,sans-serif}.connection-device .connection-sub{fill:#bdced9;font:12px Arial,sans-serif}@keyframes connection-travel{to{stroke-dashoffset:-84}}@keyframes connection-led{50%{opacity:.35}}@media(max-width:700px){.section{padding-top:38px;padding-bottom:38px}.hero{min-height:560px}.hero-content{padding-top:68px;padding-bottom:90px}.flow-lab{padding:24px 16px}.assessment-callout{padding:22px;margin-top:22px}.connection-map{margin:10px -6px 18px}.connection-device .connection-sub{display:none}.connection-device text{font-size:20px}.connection-device circle{display:none}.flow-details{min-height:0}}@media(prefers-reduced-motion:reduce){.connection-signals path,.connection-device circle{animation:none!important}}

.connection-mobile{display:none}@media(max-width:700px){.connection-map svg{display:none}.connection-mobile{display:flex;align-items:center;flex-direction:column}.connection-mobile>div{width:100%;border:1px solid #52748b;border-radius:8px;background:#17384f;padding:12px;text-align:center}.connection-mobile strong{display:block;font-size:15px;color:#fff}.connection-mobile span{display:block;font-size:12px;color:#bdced9}.connection-mobile i{display:block;width:3px;height:24px;background:repeating-linear-gradient(to top,#ffdf28 0 5px,transparent 5px 10px);background-size:3px 20px;animation:mobile-signal 1s linear infinite}@keyframes mobile-signal{to{background-position:0 -20px}}}@media(prefers-reduced-motion:reduce){.connection-mobile i{animation:none!important}}