/* A subtle moving highlight, limited to the six linked home service cards. */
.service-grid > .card {
  isolation: isolate;
  overflow: hidden;
  transform: none;
  transition: border-color .3s ease, transform .3s ease;
}

.service-grid > .card::before {
  content: "";
  position: absolute;
  inset: -100% 0 0;
  z-index: 0;
  pointer-events: none;
  /* One broad, transparent-edged field per cycle; matching edges avoid a seam. */
  background: radial-gradient(ellipse 130% 50% at 50% 50%, rgba(190,91,150,.27) 0%, rgba(226,162,202,.14) 52%, rgba(226,162,202,0) 100%) 0 0 / 100% 50% repeat-y;
  opacity: 0;
  animation: home-service-flow 10s linear infinite;
  animation-play-state: paused;
  /* Keep the original card colour visible as the glow gently appears. */
  transition: opacity 1.5s ease;
}

.service-grid > .card:nth-child(2)::before,
.service-grid > .card:nth-child(4)::before {
  background: radial-gradient(ellipse 130% 50% at 50% 50%, rgba(221,143,77,.27) 0%, rgba(245,193,150,.14) 52%, rgba(245,193,150,0) 100%) 0 0 / 100% 50% repeat-y;
}

.service-grid > .card > * { position: relative; z-index: 1; }
.service-grid > .card > .service-glyph { position: absolute; }

.service-grid > .card:focus-visible {
  transform: scale(1.01);
  outline: 3px solid #71315f;
  outline-offset: 3px;
}

.service-grid > .card:focus-visible::before {
  opacity: .55;
  animation-play-state: running;
  transition-delay: .25s;
}

@media (hover: hover) and (pointer: fine) {
  .service-grid > .card:hover { transform: scale(1.01); border-color: #cdb6c6; }
  .service-grid > .card:hover::before { opacity: .55; animation-play-state: running; transition-delay: .25s; }
}

@keyframes home-service-flow {
  from { transform: translateY(0); }
  to { transform: translateY(50%); }
}

@media (prefers-reduced-motion: reduce) {
  .service-grid > .card, .service-grid > .card::before { transition: none; }
  .service-grid > .card:hover, .service-grid > .card:focus-visible { transform: none; }
  .service-grid > .card::before { animation: none; transform: none; }
}
