/* Animated properties are limited to transform and opacity. */
.button{transition:transform 180ms ease-out}
.button>span{transition:transform 180ms ease-out}
.button:active{transform:scale(.98)}
.text-link{position:relative;border-bottom:0;padding-bottom:6px}
.text-link:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(.72);transform-origin:left;transition:transform 220ms ease-out}
.text-link:focus-visible:after{transform:scaleX(1)}
.business-cards article,.quality-grid article{transition:transform 240ms cubic-bezier(.2,.65,.3,1)}
.guide-list b{transition:transform 200ms ease-out}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid #ff7900;outline-offset:2px}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:#ff7900;transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}
@media(hover:hover) and (pointer:fine){
  .button:hover>span{transform:translate3d(4px,0,0)}
  .text-link:hover:after{transform:scaleX(1)}
  .business-cards article:hover,.quality-grid article:hover{transform:translate3d(0,-4px,0)}
  .guide-list li:hover b{transform:translate3d(4px,0,0)}
}
@media(min-width:901px) and (pointer:fine){
  .orb{animation:light-breathe 6s ease-in-out infinite;animation-play-state:paused}
  .orb-item:nth-child(2) .orb{animation-delay:-2s}
  .orb-item:nth-child(3) .orb{animation-delay:-4s}
  .motion-visible .orb{animation-play-state:running}
}
@keyframes light-breathe{0%,100%{transform:scale(.98);opacity:.84}50%{transform:scale(1.025);opacity:1}}
.motion-paused .orb{animation-play-state:paused!important}
@media(max-width:900px),(pointer:coarse){
  .button,.button>span,.text-link:after{transition-duration:120ms}
  .business-cards article,.quality-grid article,.guide-list b{transition:none}
  .button:hover{transform:none}
  .button:active{transform:scale(.98)}
}

/* Subtle editorial motion across the site; no animated layout properties. */
.product-concept-art,.track-photo svg,.photo-card>img{transition:transform .65s cubic-bezier(.2,.65,.3,1)}
.product-concepts article,.value-grid article,.operations article,.process-steps li{transition:transform .3s cubic-bezier(.2,.65,.3,1)}
.header nav a{position:relative}
.header nav a:after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:#ff7900;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.header nav a[aria-current=page]:after{transform:scaleX(1)}
.floating-consultation .send-icon{transition:transform .3s ease}
.faq-list summary:focus-visible{outline:2px solid #ff7900;outline-offset:5px}
@media(hover:hover) and (pointer:fine){
.product-concepts article:hover .product-concept-art,.track-grid article:hover .track-photo svg,.photo-card:hover>img{transform:scale(1.025)}
.value-grid article:hover,.operations article:hover,.process-steps li:hover{transform:translate3d(0,-5px,0)}
.header nav a:hover:after{transform:scaleX(1)}
.floating-consultation:hover .send-icon{transform:translate3d(3px,-3px,0) rotate(-5deg)}
.care-glow.motion-visible{animation:care-soft-breathe 6s ease-in-out infinite}
.care-feature-ion .care-glow{animation-delay:-3s}
}
@keyframes care-soft-breathe{0%,100%{transform:scale(.98);opacity:.88}50%{transform:scale(1.025);opacity:1}}
.motion-paused .care-glow{animation-play-state:paused!important}


/* Calm title-only motion: keep all photography and care graphics stationary. */
.product-concept-art,.track-photo svg,.photo-card>img,.care-glow,.orb{animation:none!important;transition:none!important}
.product-concepts article:hover .product-concept-art,.track-grid article:hover .track-photo svg,.photo-card:hover>img,.care-feature:hover .care-glow{transform:none!important}
.business-cards article:hover,.quality-grid article:hover,.value-grid article:hover,.operations article:hover,.process-steps li:hover{transform:none!important}
/* One restrained light sweep, plus compositor-only chart growth. */
.track-stat strong{position:relative;display:inline-block;overflow:hidden;isolation:isolate}
.track-stat strong:after{content:'';position:absolute;inset:-20% -40%;pointer-events:none;background:linear-gradient(110deg,transparent 38%,rgba(255,228,184,.15) 44%,rgba(255,244,224,.7) 50%,rgba(255,228,184,.15) 56%,transparent 62%);mix-blend-mode:screen;opacity:0;transform:translate3d(-100%,0,0)}
.track-stat strong.stat-shine:after{animation:stat-light-pass 2s ease-in-out infinite}
@keyframes stat-light-pass{0%{transform:translate3d(-100%,0,0);opacity:0}20%{opacity:.75}80%{opacity:.75}100%{transform:translate3d(100%,0,0);opacity:0}}

