/* BayWebServices lightweight motion system */
:root{--bws-motion:420ms;--bws-motion-slow:700ms;--bws-motion-fast:220ms}
.anim-speed-slow{--bws-motion:650ms;--bws-motion-slow:900ms;--bws-motion-fast:360ms}
.anim-speed-fast{--bws-motion:240ms;--bws-motion-slow:420ms;--bws-motion-fast:150ms}
.anim-off *,.anim-off *:before,.anim-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.anim-on{scroll-behavior:smooth}
.anim-on .site-top,.anim-on .client-top,.anim-on .admin-top{animation:bws-slide-down var(--bws-motion) ease both}
.anim-on.anim-hero .hero-site>*{animation:bws-fade-up var(--bws-motion-slow) cubic-bezier(.2,.8,.2,1) both}
.anim-on.anim-hero .hero-site>*:nth-child(2){animation-delay:120ms}
.anim-on.anim-bg .hero-site:before{animation:bws-pulse-bg 7s ease-in-out infinite alternate}
.anim-on.anim-cards .site-service-grid article,.anim-on.anim-cards .card,.anim-on.anim-cards .kpi,.anim-on.anim-cards .quick,.anim-on.anim-cards .theme-manager-card{transition:transform var(--bws-motion) ease,box-shadow var(--bws-motion) ease,border-color var(--bws-motion) ease}
.anim-on.anim-cards .site-service-grid article:hover,.anim-on.anim-cards .kpi:hover,.anim-on.anim-cards .quick:hover{transform:translateY(-6px)}
.anim-on.anim-cards .service-icon{animation:bws-float 4s ease-in-out infinite}
.anim-on.anim-counters .metrics strong{font-variant-numeric:tabular-nums}
.anim-on.anim-scroll .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--bws-motion-slow) ease,transform var(--bws-motion-slow) ease}
.anim-on.anim-scroll .reveal.is-visible{opacity:1;transform:none}
.anim-on .site-cta,.anim-on .btn,.anim-on .client-order{transition:transform var(--bws-motion-fast) ease,box-shadow var(--bws-motion-fast) ease,filter var(--bws-motion-fast) ease}
.anim-on .site-cta:hover,.anim-on .btn:hover,.anim-on .client-order:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,126,232,.22);filter:brightness(1.05)}
.anim-on .brand-mark{animation:bws-mark 3.5s ease-in-out infinite}
.anim-on .message-bubble{animation:bws-pop var(--bws-motion) ease both}
@keyframes bws-fade-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes bws-slide-down{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes bws-pulse-bg{from{opacity:.55;transform:scale(1)}to{opacity:1;transform:scale(1.04)}}
@keyframes bws-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes bws-mark{0%,100%{transform:rotate(0deg)}50%{transform:rotate(3deg)}}
@keyframes bws-pop{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.anim-on *,.anim-on *:before,.anim-on *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.anim-on.anim-scroll .reveal{opacity:1!important;transform:none!important}}
