.sp-card .gal__media {
  overflow: hidden;
}

.sp-card--intero .gal__media {
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(var(--mob-magenta-rgb), .14), transparent 62%),
    radial-gradient(110% 90% at 50% 100%, rgba(var(--mob-cyan-rgb), .1), transparent 60%),
    rgba(var(--ink-900-rgb), .55);
}

.sp-card--intero .gal__img {
  object-fit: contain;
  padding: clamp(1rem, .6rem + 2vw, 2rem);
  box-sizing: border-box;
}

.sp-card__cap {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-2);
}

.sp-card__cap:not(:has(*)) {
  display: none;
}

.sp-card__desc {
  display: block;
  color: var(--text-muted);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
}

.sp-card__visit {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  margin-top: auto;
  padding-top: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--mob-cyan);
  transition: color var(--dur-1) linear, gap var(--dur-2) var(--ease-out);
}

.sp-card__visit svg {
  flex: none;
}

.sp-card:has(.gal__link:hover) .sp-card__visit,
.sp-card:has(.gal__link:focus-visible) .sp-card__visit {
  gap: .7em;
  color: var(--mob-magenta-2);
}
