/* Responsive, lightweight motion for the home Services cards. */
#services .home-services-grid {
  perspective: 1200px;
}

#services .home-service-card {
  --service-index: 0;
  --spot-x: 76%;
  --spot-y: 18%;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  isolation: isolate;
  transform: translateZ(0);
  will-change: transform;
  transition: transform .38s cubic-bezier(.2,.75,.2,1), border-color .28s ease, box-shadow .38s ease, background .38s ease !important;
}

#services.services-motion-ready .home-service-card {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(.985);
}

#services.services-motion-ready .home-service-card.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transition-delay: calc(var(--service-index) * 90ms) !important;
}

#services .home-service-card::before {
  z-index: 3;
  height: 2px;
  background-size: 180% 100% !important;
  animation: service-border-flow 5s linear infinite;
  transition: opacity .28s ease, height .28s ease;
}

#services .home-service-card::after {
  z-index: 0;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  border-radius: inherit !important;
  background: radial-gradient(320px circle at var(--spot-x) var(--spot-y), rgba(83, 220, 255, .17), rgba(137, 92, 255, .07) 34%, transparent 68%) !important;
  opacity: .55;
  transition: opacity .32s ease;
}

#services .home-service-card > * {
  position: relative;
  z-index: 2;
}

#services .home-service-card:hover,
#services .home-service-card:focus-visible,
#services .home-service-card.is-interacting {
  transform: translate3d(0, -8px, 0) rotateX(var(--tilt-y)) rotateY(var(--tilt-x)) !important;
  border-color: rgba(77, 220, 246, .48) !important;
  background: linear-gradient(165deg, rgba(15, 31, 57, .94), rgba(8, 15, 37, .97)) !important;
  box-shadow: 0 28px 64px rgba(0, 0, 0, .38), 0 0 34px rgba(53, 231, 255, .12), inset 0 1px 0 rgba(255, 255, 255, .09) !important;
}

/* The shared calm UI intentionally neutralizes generic card hover motion.
   This section opts back in with a scoped selector that cannot affect other cards. */
html body.home-no-js #services.home-services-section .home-services-grid .home-service-card:hover,
html body.home-no-js #services.home-services-section .home-services-grid .home-service-card:focus-visible,
html body.home-no-js #services.home-services-section .home-services-grid .home-service-card.is-interacting {
  transform: translate3d(0, -8px, 0) rotateX(var(--tilt-y)) rotateY(var(--tilt-x)) !important;
  border-top-color: rgba(77, 220, 246, .48) !important;
  border-right-color: rgba(77, 220, 246, .48) !important;
  border-bottom-color: rgba(77, 220, 246, .48) !important;
  border-left-color: rgba(77, 220, 246, .48) !important;
}

#services .home-service-card:hover::before,
#services .home-service-card:focus-visible::before,
#services .home-service-card.is-interacting::before {
  height: 3px;
  opacity: 1;
}

#services .home-service-card:hover::after,
#services .home-service-card:focus-visible::after,
#services .home-service-card.is-interacting::after {
  opacity: 1;
}

#services .home-service-icon {
  transition: transform .38s cubic-bezier(.2,.8,.2,1), color .28s ease, box-shadow .32s ease;
}

#services .home-service-card:hover .home-service-icon,
#services .home-service-card:focus-visible .home-service-icon {
  color: #d9fbff;
  transform: translateY(-3px) rotate(-4deg) scale(1.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 0 30px rgba(53,231,255,.25);
}

#services .home-service-card h3 {
  transition: color .25s ease, transform .32s ease, text-shadow .32s ease;
}

#services .home-service-card:hover h3,
#services .home-service-card:focus-visible h3 {
  color: #f8fdff;
  transform: translateX(3px);
  text-shadow: 0 0 20px rgba(115, 232, 255, .2);
}

#services .home-service-visual {
  isolation: isolate;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .36s ease, border-color .3s ease;
}

#services .home-service-visual::before { z-index: 0; }

#services .home-service-visual::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: -30%;
  top: -25%;
  width: 26%;
  height: 150%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(147, 240, 255, .14), transparent);
  animation: service-visual-sheen 5.4s ease-in-out infinite;
  pointer-events: none;
}

#services .home-service-card:nth-child(2) .home-service-visual::after { animation-delay: 1.05s; }
#services .home-service-card:nth-child(3) .home-service-visual::after { animation-delay: 2.1s; }

#services .home-service-card:hover .home-service-visual,
#services .home-service-card:focus-visible .home-service-visual {
  transform: translateY(-3px) scale(1.015);
  box-shadow: inset 0 0 0 1px rgba(102, 225, 249, .15), inset 0 1px 0 rgba(255,255,255,.08), 0 14px 30px rgba(0, 0, 0, .2);
}

#services .service-radar-ring {
  z-index: 2;
  animation: service-radar-breathe 2.8s ease-in-out infinite;
}

#services .service-radar-ring::before {
  animation: service-radar-spin 7s linear infinite;
  border-top-color: rgba(240, 138, 216, .62) !important;
  border-right-color: rgba(53, 231, 255, .54) !important;
}

#services .service-radar-dot { z-index: 3; animation: service-dot-pulse 2.2s ease-in-out infinite; }
#services .service-radar-dot.two { animation-delay: .55s; }
#services .service-radar-dot.three { animation-delay: 1.1s; }

#services .service-chart-bars { z-index: 2; }
#services .service-chart-bars i {
  transform-origin: 50% 100%;
  animation: service-bar-live 3.2s ease-in-out infinite alternate;
  animation-delay: calc(var(--service-bar-index, 0) * 110ms);
}
#services .service-chart-bars i:nth-child(1) { --service-bar-index: 1; }
#services .service-chart-bars i:nth-child(2) { --service-bar-index: 2; }
#services .service-chart-bars i:nth-child(3) { --service-bar-index: 3; }
#services .service-chart-bars i:nth-child(4) { --service-bar-index: 4; }
#services .service-chart-bars i:nth-child(5) { --service-bar-index: 5; }
#services .service-chart-bars i:nth-child(6) { --service-bar-index: 6; }
#services .service-chart-bars i:nth-child(7) { --service-bar-index: 7; }

#services .service-monitor-line { z-index: 2; }
#services .service-monitor-line polyline {
  stroke-dasharray: 620;
  stroke-dashoffset: 620;
  animation: service-line-draw 4.8s cubic-bezier(.35,.05,.2,1) infinite;
}

#services .home-service-features li {
  transition: color .25s ease, transform .28s ease;
}

#services .home-service-card:hover .home-service-features li,
#services .home-service-card:focus-visible .home-service-features li {
  color: rgba(239, 248, 255, .95);
  transform: translateX(3px);
}
#services .home-service-card:hover .home-service-features li:nth-child(2) { transition-delay: 35ms; }
#services .home-service-card:hover .home-service-features li:nth-child(3) { transition-delay: 70ms; }

#services .home-service-cta {
  isolation: isolate;
  overflow: hidden;
  background-size: 160% 100% !important;
  transition: transform .3s ease, box-shadow .32s ease, background-position .45s ease;
}

#services .home-service-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  transform: translateX(-110%);
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.18) 48%, transparent 76%);
  transition: transform .62s ease;
}

#services .home-service-cta svg { transition: transform .3s ease; }
#services .home-service-card:hover .home-service-cta,
#services .home-service-card:focus-visible .home-service-cta {
  transform: translateY(-2px);
  background-position: 100% 50%;
  box-shadow: 0 15px 34px rgba(88,104,255,.32), inset 0 1px 0 rgba(255,255,255,.34);
}
#services .home-service-card:hover .home-service-cta::before,
#services .home-service-card:focus-visible .home-service-cta::before { transform: translateX(110%); }
#services .home-service-card:hover .home-service-cta svg,
#services .home-service-card:focus-visible .home-service-cta svg { transform: translateX(4px); }

@keyframes service-border-flow { to { background-position: 180% 0; } }
@keyframes service-visual-sheen { 0%,22% { left:-30%; opacity:0; } 46% { opacity:1; } 72%,100% { left:112%; opacity:0; } }
@keyframes service-radar-breathe { 0%,100% { box-shadow:0 0 16px rgba(53,231,255,.08); } 50% { box-shadow:0 0 30px rgba(53,231,255,.2); } }
@keyframes service-radar-spin { to { transform: rotate(360deg); } }
@keyframes service-dot-pulse { 0%,100% { transform:scale(.78); opacity:.55; } 50% { transform:scale(1.2); opacity:1; } }
@keyframes service-bar-live { 0% { transform:scaleY(.72); filter:saturate(.88); } 100% { transform:scaleY(1); filter:saturate(1.2); } }
@keyframes service-line-draw { 0% { stroke-dashoffset:620; opacity:.35; } 42%,78% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:-80; opacity:.45; } }

@media (min-width: 900px) and (max-width: 1100px) {
  body.home-no-js #services .home-services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  body.home-no-js #services .home-service-card { min-height: 400px; padding: 20px; border-radius: 18px; }
  body.home-no-js #services .home-service-card h3 { font-size: 20px; }
  body.home-no-js #services .home-service-card > p { font-size: 13px; line-height: 1.5; }
  body.home-no-js #services .home-service-visual { height: 116px; margin: 18px 0; }
  body.home-no-js #services .home-service-features { font-size: 11px; gap: 8px; }
}

@media (min-width: 640px) and (max-width: 899px) {
  body.home-no-js #services .home-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  body.home-no-js #services .home-service-card { min-height: 410px; padding: 22px; }
  body.home-no-js #services .home-service-card:last-child { grid-column: 1 / -1; min-height: 370px; }
}

@media (max-width: 639px) {
  body.home-no-js #services .home-services-grid { grid-template-columns: 1fr; gap: 14px; }
  body.home-no-js #services .home-service-card { min-height: 380px; padding: 20px; border-radius: 18px; }
  body.home-no-js #services .home-service-visual { height: 116px; margin: 18px 0; }
  body.home-no-js #services .home-service-card h3 { margin-top: 17px; font-size: 21px; }
  body.home-no-js #services .home-service-card > p { min-height: 0; font-size: 14px; }
  body.home-no-js #services .home-service-features { margin-bottom: 18px; gap: 8px; }
}

@media (hover: none) {
  #services .home-service-card:active {
    transform: scale(.985) !important;
    border-color: rgba(77, 220, 246, .46) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #services .home-service-card,
  #services .home-service-card::before,
  #services .home-service-visual::after,
  #services .service-radar-ring,
  #services .service-radar-ring::before,
  #services .service-radar-dot,
  #services .service-chart-bars i,
  #services .service-monitor-line polyline {
    animation: none !important;
    transition-duration: .01ms !important;
  }
  #services.services-motion-ready .home-service-card { opacity: 1; transform: none; }
  #services .home-service-card:hover,
  #services .home-service-card:focus-visible { transform: none !important; }
}
