.service-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--panel);
  border: 2px solid var(--text);
  border-radius: var(--radius);
  transition: transform 160ms ease, box-shadow 160ms ease;
}
.service-card:hover {
  transform: translate(-4px, -4px);
  box-shadow: var(--hard-shadow);
}

.service-card-media {
  position: relative;
  aspect-ratio: 16/10;
  border-bottom: 2px solid var(--text);
}
.service-card-media-frame {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--panel-soft);
}
.service-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  transition: transform 300ms ease;
}
.service-card:hover .service-card-media img { transform: scale(1.05); }

.service-card-media-empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: 2.6rem;
  color: var(--accent);
  background: var(--panel-soft);
}

.service-card-icon {
  position: absolute;
  left: 16px;
  bottom: -20px;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 1.2rem;
  border: 2px solid var(--text);
  box-shadow: var(--hard-shadow-sm);
}

.service-card-body {
  padding: 32px 24px 28px;
  flex: 1;
}

.service-number {
  font-family: var(--font-display);
  font-size: 2.2rem;
  color: var(--accent);
  line-height: 1;
}
