/* Additional movement, using the existing Accopia colours. */
.page-progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;background:linear-gradient(90deg,#286eae,#67c5e9,#286eae);transform:scaleX(0);transform-origin:left;pointer-events:none}
.services-page .service-card{position:relative;isolation:isolate;overflow:hidden}
.services-page .service-card:before{content:"";position:absolute;inset:0;background:radial-gradient(380px circle at var(--pointer-x,50%) var(--pointer-y,50%),#7ebfe725,transparent 75%);opacity:0;transition:opacity .4s;z-index:-1;pointer-events:none}
.services-page .service-card:hover:before,.services-page .service-card:focus-visible:before{opacity:1}
@media(prefers-reduced-motion:no-preference){
 .services-page .service-card,.services-page .reference-card{transition:transform .45s cubic-bezier(.16,.75,.2,1),box-shadow .45s,border-color .35s}
 .services-page .service-card:hover{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-7px);box-shadow:0 22px 45px #284f6b18}
 .services-page .round-arrow{transition:transform .45s,background .35s,color .35s}
 .services-page .service-card:hover .round-arrow{transform:rotate(45deg);background:#286eae;color:white}
 .services-page .service-tags span{transition:translate .35s,background .35s;transition-delay:calc(var(--tag-index,0)*35ms)}
 .services-page .service-card:hover .service-tags span{translate:0 -3px;background:#e6f2fb}
 .services-page .text-link{transition:letter-spacing .35s,color .35s}
 .services-page .service-card:hover .text-link{letter-spacing:.025em}
 .services-page h1 span{background:linear-gradient(100deg,#286eae 15%,#438bbf 36%,#7ac9e6 49%,#286eae 67%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:acc-title-flow 8s ease-in-out infinite}
 .services-page .home-showcase:after{content:"";position:absolute;width:350px;height:350px;border-radius:50%;right:-110px;bottom:-200px;border:1px solid #77b3db40;box-shadow:0 0 0 45px #9ac8e014,0 0 0 90px #9ac8e00e;z-index:0;pointer-events:none;animation:acc-orbit 10s ease-in-out infinite alternate}
 .services-page .hero-stage .concept-preview{animation:acc-panel-float 8s ease-in-out infinite;animation-play-state:paused}
 .services-page .hero-stage.motion-visible .concept-preview{animation-play-state:running}
 .services-page .floating-label{animation-duration:5s;box-shadow:0 8px 30px #286eae20}
 .services-page .concept-preview .window-dots{animation:acc-dots 3s ease-in-out infinite;animation-play-state:paused}
 .services-page .motion-visible .window-dots{animation-play-state:running}
 .services-page .concept-preview .mini-row{position:relative;overflow:hidden}
 .services-page .concept-preview .mini-row:after{content:"";position:absolute;inset:0;translate:-115% 0;background:linear-gradient(100deg,transparent,#9bcbea22,transparent);animation:acc-row-glint 8s ease-in-out infinite;animation-delay:calc(var(--row-index,0)*.6s);animation-play-state:paused;pointer-events:none}
 .services-page .motion-visible .mini-row:after{animation-play-state:running}
 .services-page .mini-shapes{animation:acc-shape-drift 9s ease-in-out infinite alternate}
 .services-page .process-grid article{position:relative}
 .services-page .process-grid article:before{content:"";position:absolute;left:0;top:-2px;height:3px;width:35px;background:linear-gradient(90deg,#286eae,#77c6e6);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,.75,.2,1);transition-delay:var(--entry-delay,0ms)}
 .services-page .process-grid article.motion-visible:before{transform:scaleX(1)}
 .services-page .process-grid article>span{display:inline-block;transition:translate .35s,color .35s}
 .services-page .process-grid article:hover>span{translate:5px 0;color:#56a9d6}
 .services-page .ref-image img{transition:transform .8s cubic-bezier(.16,.75,.2,1)}
 .services-page .reference-card:hover .ref-image img{transform:scale(1.055)}
 .services-page .service-option{transition:background .3s,border-color .3s,transform .3s}
 .services-page .service-option:hover{transform:translateY(-3px)}
 .services-page .service-option:has(input:checked){animation:acc-select .4s ease-out}
 .services-page .motion-enter{animation:acc-enter .85s cubic-bezier(.16,.75,.2,1) both;animation-delay:var(--entry-delay,0ms)}
 .services-page .project-cta .button{position:relative;overflow:hidden}
 .services-page .project-cta .button:after{content:"";position:absolute;inset:-60% -30%;background:linear-gradient(110deg,transparent 35%,#ffffff30 50%,transparent 65%);translate:-110% 0;animation:acc-cta-glint 7s ease-in-out infinite;animation-play-state:paused;pointer-events:none}
 .services-page .project-cta.motion-visible .button:after{animation-play-state:running}
 @keyframes acc-title-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
 @keyframes acc-panel-float{0%,100%{transform:perspective(1300px) rotateY(-5deg) rotateX(2deg) translateY(0)}50%{transform:perspective(1300px) rotateY(-2deg) rotateX(1deg) translateY(-12px)}}
 @keyframes acc-orbit{to{transform:translate(-30px,-20px) scale(1.12)}}
 @keyframes acc-dots{0%,100%{opacity:.45}50%{opacity:1}}
 @keyframes acc-row-glint{0%,55%{translate:-115% 0}85%,100%{translate:115% 0}}
 @keyframes acc-shape-drift{to{transform:rotate(-15deg) translate(-7px,12px)}}
 @keyframes acc-enter{from{opacity:0;translate:0 28px;filter:blur(2px)}to{opacity:1;translate:0 0;filter:blur(0)}}
 @keyframes acc-select{50%{transform:scale(1.025)}}
 @keyframes acc-cta-glint{0%,65%{translate:-110% 0}92%,100%{translate:110% 0}}
}
@media(prefers-reduced-motion:no-preference) and (max-width:760px){
 .services-page .hero-stage .concept-preview{animation-name:acc-panel-float-mobile}
 @keyframes acc-panel-float-mobile{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
}
@media(prefers-reduced-motion:reduce){.page-progress{display:none}.services-page .service-card:hover{transform:none}.services-page .motion-enter{opacity:1;translate:none;filter:none;animation:none}}
