/* Start custom CSS */body.elementor-page-8311 .sp4-h2 span { color: #FF6600; }
body.elementor-page-8311 [data-id="4ef3f39f"] span:nth-of-type(1), body.elementor-page-8311 [data-id="4ef3f39f"] span:nth-of-type(2), body.elementor-page-8311 [data-id="2defb3b0"] span:nth-of-type(1) { color: #FF6600; }

/* Hero headings: word-by-word reveal on load */
body.elementor-page-8311 .sp4-hero-h span { display: inline-block; animation: sp4-word 1s cubic-bezier(.25,.46,.45,.94) both; }
body.elementor-page-8311 [data-id="4ef3f39f"] span:nth-of-type(2) { animation-delay: .12s; }
body.elementor-page-8311 [data-id="4ef3f39f"] span:nth-of-type(3) { animation-delay: .24s; }
body.elementor-page-8311 [data-id="2defb3b0"] span:nth-of-type(1) { animation-delay: .36s; }
body.elementor-page-8311 [data-id="2defb3b0"] span:nth-of-type(2) { animation-delay: .48s; }
@keyframes sp4-word { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }

/* Hero background video sits behind the content (the theme's MediaElement wrapper breaks the default positioning) */
body.elementor-page-8311 .e-background-video__media { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; z-index: 0; overflow: hidden; }
body.elementor-page-8311 .e-background-video__media .mejs-inner, body.elementor-page-8311 .e-background-video__media .mejs-mediaelement, body.elementor-page-8311 .e-background-video__media mediaelementwrapper { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; }
body.elementor-page-8311 .e-background-video__media video { width: 100% !important; height: 100% !important; object-fit: cover; }
body.elementor-page-8311 .e-background-video__media .mejs-controls, body.elementor-page-8311 .e-background-video__media .mejs-layers { display: none !important; }

/* Image zoom on card hover */
body.elementor-page-8311 .sp4-zoom { transition: transform 1s cubic-bezier(.19,1,.22,1); }
body.elementor-page-8311 .sp4-svc-card:hover .sp4-zoom, body.elementor-page-8311 .sp4-team-card:hover .sp4-zoom { transform: scale(1.1); }

/* Client logo marquee */
@keyframes sp4-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
body.elementor-page-8311 .sp4-marquee-track { animation: sp4-marquee 65s linear infinite; }
body.elementor-page-8311 .sp4-marquee-track:hover { animation-play-state: paused; }

/* Testimonial slider: 4s hold, 2s slide */
@keyframes sp4-testi { 0%, 22.2% { transform: translateX(0); } 33.3%, 55.5% { transform: translateX(-100%); } 66.6%, 88.8% { transform: translateX(-200%); } 100% { transform: translateX(-300%); } }
body.elementor-page-8311 .sp4-testi-track { animation: sp4-testi 18s ease-in-out infinite; }
@keyframes sp4-dot-a { 0%, 27% { opacity: 1; } 28%, 93% { opacity: .2; } 94%, 100% { opacity: 1; } }
@keyframes sp4-dot-b { 0%, 27% { opacity: .2; } 28%, 60% { opacity: 1; } 61%, 100% { opacity: .2; } }
@keyframes sp4-dot-c { 0%, 60% { opacity: .2; } 61%, 93% { opacity: 1; } 94%, 100% { opacity: .2; } }
body.elementor-page-8311 [data-id="6f2f82d6"] { animation: sp4-dot-a 18s infinite; }
body.elementor-page-8311 [data-id="7c29c1f3"] { animation: sp4-dot-b 18s infinite; }
body.elementor-page-8311 [data-id="15ff4c0a"] { animation: sp4-dot-c 18s infinite; }
body.elementor-page-8311 [data-id="2baebcbf"]:hover .sp4-testi-track, body.elementor-page-8311 [data-id="2baebcbf"]:hover .sp4-dot { animation-play-state: paused; }

/* Counters: count up from 0 once, over 2s, when each one is half in view, then stay on the number.
   The card's --sp4-seen flips to 1 on a view timeline; the count itself is time-based and stays paused until then.
   Browsers without scroll timelines show the final number; browsers without style queries run the count on load. */
@property --sp4-n { syntax: '<integer>'; initial-value: 0; inherits: true; }
@property --sp4-seen { syntax: '<integer>'; initial-value: 0; inherits: true; }
@keyframes sp4-count { from { --sp4-n: 0; } to { --sp4-n: var(--sp4-to); } }
@keyframes sp4-seen { from { --sp4-seen: 0; } to { --sp4-seen: 1; } }
body.elementor-page-8311 [data-id="139ff896"] { --sp4-to: 426; }
body.elementor-page-8311 [data-id="55f9b0a3"] { --sp4-to: 352; }
body.elementor-page-8311 [data-id="505e8a0b"] { --sp4-to: 5; }
body.elementor-page-8311 [data-id="45f249ab"] { --sp4-to: 3; }
@supports (animation-timeline: view()) {
  body.elementor-page-8311 :has(> .sp4-count-num) { animation: sp4-seen linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
  body.elementor-page-8311 .sp4-count-num { position: relative; color: transparent; counter-reset: sp4c var(--sp4-n); animation: sp4-count 2s cubic-bezier(.16, 1, .3, 1) both; }
  body.elementor-page-8311 .sp4-count-num::after { content: counter(sp4c); position: absolute; inset: 0; color: #181817; }
  @container style(--sp4-seen: 0) { body.elementor-page-8311 .sp4-count-num { animation-play-state: paused; } }
}

@media (prefers-reduced-motion: reduce) {
  body.elementor-page-8311 [data-interaction-id] { transform: none !important; opacity: 1 !important; }
  body.elementor-page-8311 .sp4-hero-h span, body.elementor-page-8311 .sp4-marquee-track, body.elementor-page-8311 .sp4-testi-track, body.elementor-page-8311 .sp4-dot { animation: none !important; }
  body.elementor-page-8311 .sp4-dot:first-child { opacity: 1; }
  body.elementor-page-8311 .sp4-count-num { animation: none !important; color: #181817 !important; }
  body.elementor-page-8311 .sp4-count-num::after { content: none !important; }
  body.elementor-page-8311 .e-background-video__media { display: none !important; }
}/* End custom CSS */