.service-hero-visual {
  position: relative;
  aspect-ratio: 3 / 4;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.service-hero-lottie,
.service-hero-lottie svg {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.service-hero-lottie--contained {
  position: absolute;
  inset: 24px;
  width: auto !important;
  height: auto !important;
}

.real-work-image img { object-fit: contain; background: #fff; }
.real-work-image figcaption { margin-top: 12px; color: var(--muted); font-size: .82rem; text-align: center; }

.website-project-preview { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.website-project-preview-image img {
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  background: #fff;
}

.content-service-grid {
  align-items: stretch;
}

.content-service-card {
  position: relative;
  min-height: 280px;
  overflow: hidden;
  outline: none;
  isolation: isolate;
  transition: transform .3s ease, border-color .3s ease, background-color .3s ease, box-shadow .3s ease;
}

.content-service-card::after {
  position: absolute;
  inset: auto 0 0;
  z-index: -1;
  height: 5px;
  content: '';
  background: linear-gradient(90deg, var(--purple), var(--pink));
  opacity: 0;
  transition: opacity .3s ease;
}

.content-service-card .icon-box,
.content-service-card h3 {
  transition: transform .3s ease;
}

.content-service-card p {
  position: absolute;
  right: 30px;
  bottom: 24px;
  left: 30px;
  margin: 0;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .3s ease, transform .3s ease;
}

.content-service-card:hover,
.content-service-card:focus-visible {
  border-color: #eadcf8;
  background: #fffafd;
  box-shadow: 0 18px 38px rgba(76, 29, 149, .1);
  transform: translateY(-4px);
}

.content-service-card:hover::after,
.content-service-card:focus-visible::after,
.content-service-card:hover p,
.content-service-card:focus-visible p {
  opacity: 1;
}

.content-service-card:hover .icon-box,
.content-service-card:hover h3,
.content-service-card:focus-visible .icon-box,
.content-service-card:focus-visible h3 {
  transform: translateY(-8px);
}

.content-service-card:hover p,
.content-service-card:focus-visible p {
  transform: translateY(0);
}

.content-service-card:focus-visible {
  box-shadow: 0 0 0 4px rgba(192, 132, 252, .18), 0 18px 38px rgba(76, 29, 149, .1);
}

@media (max-width: 900px) {
  .service-hero-visual {
    aspect-ratio: 16 / 9;
  }

  .service-hero-lottie--square {
    position: absolute;
    inset: 12px;
    width: auto !important;
    height: auto !important;
  }

  .service-hero-lottie--contained {
    inset: 12px;
  }

  .content-service-card {
    min-height: 0;
  }

  .content-service-card p {
    position: static;
    margin: 10px 0 0;
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .content-service-card,
  .content-service-card::after,
  .content-service-card .icon-box,
  .content-service-card h3,
  .content-service-card p {
    transition: none;
  }
}
