.service-card {
  display: block;
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
  isolation: isolate;
}

.service-card article {
  min-height: inherit;
}

.service-card__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 550ms ease;
}

.service-card__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.66),
    rgba(0, 0, 0, 0.06) 64%
  );
  transition: background-color 450ms ease;
}

.service-card__content {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 28px 24px 20px;
  background:
    linear-gradient(
      to top,
      rgba(3, 22, 38, 0.96),
      rgba(8, 126, 229, 0.5) 58%,
      rgba(8, 126, 229, 0)
    );
  transform: translateY(calc(100% - 88px));
  transition: transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.service-card__content h3 {
  display: flex;
  align-items: flex-end;
  height: 2.3em;
  margin-bottom: 12px;
}

.service-card__content p {
  max-width: 34ch;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9rem;
  line-height: 1.45;
}

.service-card__link {
  margin-top: 18px;
  color: var(--color-accent);
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (hover: hover) {
  .service-card:hover .service-card__image,
  .service-card:focus-visible .service-card__image {
    transform: scale(1.015);
  }

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

@media (hover: none), (pointer: coarse), (max-width: 620px) {
  .service-card__content {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-card__image,
  .service-card__content {
    transition-duration: 1ms;
  }
}
