/* Refined interaction and motion system. */
.scroll-progress{position:fixed;z-index:100;top:0;left:0;height:3px;width:var(--scroll-progress,0%);background:linear-gradient(90deg,var(--red),#ff716a);box-shadow:0 2px 10px rgba(214,40,40,.5);transition:width .08s linear}.service-card,.industry-card,.part-card,.quote-grid blockquote{will-change:transform;transform-style:preserve-3d}.service-card:before,.industry-card:before,.part-card:before{content:'';position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.15),transparent 34%);opacity:0;transition:opacity .35s}.service-card:hover:before,.industry-card:hover:before,.part-card:hover:before{opacity:1}.service-card:hover,.industry-card:hover,.part-card:hover{transform:translateY(-8px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .2s ease,box-shadow .3s ease}.service-image,.industry-img,.part-img{overflow:hidden;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .4s}.service-card:hover .service-image,.industry-card:hover .industry-img,.part-card:hover .part-img{filter:saturate(1) contrast(1.08);transform:scale(1.04)}.button{position:relative;overflow:hidden}.button:after{content:'';position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%) scale(0);transition:transform .55s ease}.button:hover:after{transform:translate(-50%,-50%) scale(18)}.button>*{position:relative;z-index:1}.button:hover b,.text-link:hover b{transform:translateX(4px)}.button b,.text-link b{transition:transform .25s ease}.stats svg{transition:transform .35s ease,filter .35s}.stats div:hover svg{transform:rotate(-8deg) scale(1.13);filter:drop-shadow(0 5px 6px rgba(214,40,40,.22))}.back-to-top{position:fixed;z-index:80;right:28px;bottom:28px;width:47px;height:47px;border:0;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;box-shadow:0 12px 24px rgba(214,40,40,.28);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(15px) scale(.9);transition:.3s}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 16px 28px rgba(214,40,40,.4)}.back-to-top span{font-size:21px;line-height:1}.eyebrow:after{content:'';display:inline-block;width:0;height:1px;margin-left:0;background:var(--red);vertical-align:middle;transition:width .5s ease .2s}.in-view .eyebrow:after{width:30px;margin-left:10px}@media(max-width:700px){.back-to-top{right:16px;bottom:16px;width:42px;height:42px}}@media(prefers-reduced-motion:reduce){.scroll-progress,.back-to-top{transition:none}.service-card:hover,.industry-card:hover,.part-card:hover{transform:none}.service-image,.industry-img,.part-img{transition:none}}

/* Purposeful ambient motion: a restrained engineering blueprint behind white sections. */
main{overflow:hidden}.services,.industry,.parts,.testimonials{position:relative;isolation:isolate}.services>* ,.industry>* ,.parts>* ,.testimonials>*{position:relative;z-index:1}.services:before,.industry:before,.parts:before,.testimonials:before{content:'';position:absolute;z-index:0;inset:-30%;pointer-events:none;opacity:.48;background-image:linear-gradient(rgba(7,19,29,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(7,19,29,.035) 1px,transparent 1px),radial-gradient(circle at 72% 32%,rgba(214,40,40,.10),transparent 17%);background-size:54px 54px,54px 54px,auto;animation:blueprint-drift 24s linear infinite}.industry:before{animation-direction:reverse;animation-duration:30s}.parts:before{opacity:.3}.testimonials:before{opacity:.25;animation-duration:34s}@keyframes blueprint-drift{to{transform:translate3d(54px,54px,0)}}

/* Hero proof points react as individual glass panels, without changing their layout. */
.hero-facts div{position:relative;transition:background .3s ease,transform .3s ease}.hero-facts div:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 16%,rgba(255,255,255,.11) 50%,transparent 72%);transform:translateX(-115%);transition:transform .55s ease}.hero-facts div:hover{background:rgba(255,255,255,.065);transform:translateX(-6px)}.hero-facts div:hover:after{transform:translateX(115%)}.hero-facts svg{transition:transform .32s ease,filter .32s ease}.hero-facts div:hover svg{transform:scale(1.14) rotate(-6deg);filter:drop-shadow(0 5px 7px rgba(214,40,40,.38))}.hero-facts b{transition:color .25s ease,text-shadow .25s ease}.hero-facts div:hover b{color:#fff;text-shadow:0 0 16px rgba(255,255,255,.24)}

/* More considered contact action: crisp edge, moving highlight and stronger hover feedback. */
.header-cta{min-width:246px!important;border-radius:4px!important;grid-template-columns:24px auto!important;gap:0 8px!important;padding:13px 18px!important;box-shadow:0 10px 22px rgba(125,12,16,.22),inset 0 1px rgba(255,255,255,.22)!important;transition:transform .28s ease,box-shadow .28s ease,filter .28s ease!important}.header-cta:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#ff8078;box-shadow:0 0 10px rgba(255,185,180,.6)}.header-cta:after{width:140px!important;height:140px!important;right:-69px!important;top:-74px!important;transition:transform .4s ease}.header-cta:hover{filter:saturate(1.08);box-shadow:0 15px 27px rgba(125,12,16,.32),inset 0 1px rgba(255,255,255,.28)!important;transform:translateY(-3px) scale(.95)!important}.header-cta:hover:after{transform:scale(1.18)}.header-cta span{font-size:17px!important;align-self:center}.header-cta b{font-size:15px!important;letter-spacing:.015em}.header-cta small{font-size:8px!important;letter-spacing:.01em}

@media(prefers-reduced-motion:reduce){.services:before,.industry:before,.parts:before,.testimonials:before{animation:none}.hero-facts div,.hero-facts svg,.header-cta{transition:none}.hero-facts div:hover{transform:none}}

/* A common live language for every functional icon across the site. */
.hero-facts svg,.stats svg,.service-card i,.watch i,.approach li:before,.socials a,.header-top a,.slider-arrows button,.header-cta span{will-change:transform;transition:transform .28s ease,background .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease}.hero-facts svg,.stats svg,.service-card i,.approach li:before{animation:icon-breathe 3.6s ease-in-out infinite}.service-card:nth-child(2) i,.stats div:nth-child(2) svg,.hero-facts div:nth-child(2) svg{animation-delay:.35s}.service-card:nth-child(3) i,.stats div:nth-child(3) svg,.hero-facts div:nth-child(3) svg{animation-delay:.7s}.service-card:nth-child(4) i,.hero-facts div:nth-child(4) svg{animation-delay:1.05s}.service-card:hover i{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 8px 15px rgba(214,40,40,.32);transform:translateY(-5px) rotate(-9deg) scale(1.13)}.watch:hover i{background:var(--red);border-color:var(--red);transform:scale(1.12);box-shadow:0 0 0 7px rgba(214,40,40,.14)}.approach li:hover:before{color:#fff;background:var(--red);box-shadow:0 0 0 5px rgba(214,40,40,.13);transform:scale(1.13)}.socials a:hover,.header-top a:hover{color:#fff!important;background:var(--red)!important;border-color:var(--red)!important;transform:translateY(-4px) rotate(8deg);box-shadow:0 7px 14px rgba(214,40,40,.24)}.slider-arrows button:hover{color:#fff;background:var(--red);border-color:var(--red);transform:translateY(-3px);box-shadow:0 8px 14px rgba(214,40,40,.2)}.header-cta:hover span{transform:rotate(18deg) scale(1.16)}@keyframes icon-breathe{0%,100%{filter:drop-shadow(0 0 0 rgba(214,40,40,0))}50%{filter:drop-shadow(0 4px 5px rgba(214,40,40,.16))}}
@media(prefers-reduced-motion:reduce){.hero-facts svg,.stats svg,.service-card i,.approach li:before{animation:none}}
/* Navigation is deliberately quiet at rest, then precise and responsive on intent. */
.main-nav a{position:relative;isolation:isolate;transition:color .22s ease,letter-spacing .22s ease,transform .22s ease!important}.main-nav a:before{content:'';position:absolute;left:-10px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--red);opacity:0;transform:translateY(-50%) scale(0);transition:opacity .2s ease,transform .2s ease}.main-nav a:hover{color:var(--red)!important;letter-spacing:.035em;transform:translateY(-1px)}.main-nav a:hover:before,.main-nav a.active:before{opacity:1;transform:translateY(-50%) scale(1)}.main-nav a:focus-visible,.socials a:focus-visible,.header-top a:focus-visible{outline:2px solid var(--red);outline-offset:4px}.main-nav a.active{font-weight:800}.main-nav a.active:after{box-shadow:0 2px 8px rgba(214,40,40,.2)}

/* Page sections appear with a restrained editorial lift as they enter view. */
.section-motion{opacity:.92;transform:translateY(18px);transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1)}.section-motion.section-live{opacity:1;transform:none}.partner-card,.capability-card,.contact-card,.service-nav-card{transition:transform .32s cubic-bezier(.22,.61,.36,1),box-shadow .32s ease,border-color .32s ease}.partner-card:hover,.capability-card:hover,.contact-card:hover,.service-nav-card:hover{transform:translateY(-7px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));box-shadow:0 18px 36px rgba(7,19,29,.12);border-color:rgba(214,40,40,.3)}.site-footer a{transition:color .22s ease,transform .22s ease}.site-footer .footer-links a:hover{color:#fff;transform:translateX(4px)}.site-footer .footer-links h3:after{content:'';display:block;width:24px;height:2px;margin-top:8px;background:var(--red);transition:width .25s ease}.site-footer .footer-links>div:hover h3:after{width:40px}@media(prefers-reduced-motion:reduce){.section-motion{opacity:1;transform:none;transition:none}.partner-card:hover,.capability-card:hover,.contact-card:hover,.service-nav-card:hover{transform:none}.main-nav a{transition:none}}

/* Shared CTA polish — keeps the industrial system sharp across every page. */
.button{position:relative;isolation:isolate;min-height:52px;padding:0 22px!important;border:1px solid transparent!important;border-radius:2px!important;box-shadow:0 9px 19px rgba(168,23,23,.19),inset 0 1px 0 rgba(255,255,255,.18);font-size:10px!important;letter-spacing:.055em!important;overflow:hidden;transition:transform .28s cubic-bezier(.22,.61,.36,1),background .28s,box-shadow .28s,border-color .28s!important}.button:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(105deg,rgba(255,255,255,.16),transparent 37%);opacity:.7;transition:transform .4s cubic-bezier(.22,.61,.36,1)}.button:hover{transform:translateY(-3px)!important;box-shadow:0 15px 27px rgba(168,23,23,.28),inset 0 1px 0 rgba(255,255,255,.24)!important}.button:hover:before{transform:translateX(24%)}.button:active{transform:translateY(-1px)!important;box-shadow:0 7px 14px rgba(168,23,23,.2)!important}.button b{display:inline-block;margin-left:3px;transition:transform .28s cubic-bezier(.22,.61,.36,1)}.button:hover b{transform:translateX(5px)}.button.light{border-color:rgba(7,19,29,.08)!important;box-shadow:0 9px 20px rgba(0,0,0,.13),inset 0 1px 0 rgba(255,255,255,.8)!important}.button.light:hover{box-shadow:0 14px 27px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.9)!important}.header-cta{position:relative;min-height:58px;border:1px solid rgba(255,255,255,.24);border-radius:3px!important;box-shadow:0 10px 22px rgba(168,23,23,.24),inset 0 1px 0 rgba(255,255,255,.2)!important;overflow:hidden;transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s!important}.header-cta:after{content:'';position:absolute;width:88px;height:88px;right:-41px;top:-41px;border-radius:50%;background:rgba(255,255,255,.12);transition:transform .36s cubic-bezier(.22,.61,.36,1)}.header-cta>*{position:relative;z-index:1}.header-cta:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(168,23,23,.3),inset 0 1px 0 rgba(255,255,255,.25)!important}.header-cta:hover:after{transform:scale(1.35)}.hero-actions>a:not(.button),.about-secondary,.direct-actions>a:not(.button),.final-actions>a:not(.button),.services-final-cta>div:last-child>a:not(.button){position:relative;transition:color .25s,border-color .25s,transform .25s}.hero-actions>a:not(.button):hover,.about-secondary:hover,.direct-actions>a:not(.button):hover,.final-actions>a:not(.button):hover,.services-final-cta>div:last-child>a:not(.button):hover{color:var(--red);border-color:var(--red);transform:translateX(3px)}.button:focus-visible,.header-cta:focus-visible,.hero-actions>a:focus-visible,.about-secondary:focus-visible,.direct-actions>a:focus-visible,.final-actions>a:focus-visible{outline:3px solid rgba(214,40,40,.34);outline-offset:4px}@media(max-width:600px){.button{min-height:50px;padding:0 18px!important}.header-cta{min-height:54px}}
