.tpc-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: var(--tpc-background-color); border: 1px solid var(--tpc-border-color);
  border-radius: var(--tpc-border-radius); transition: box-shadow var(--tpc-transition);
}
.tpc-card:hover { box-shadow: var(--tpc-shadow-md); }
.tpc-card__media { background: var(--tpc-surface-color); }
.tpc-card__image { display: block; width: 100%; max-width: var(--tpc-card-image-size, 100%); margin-inline: auto; aspect-ratio: 1; object-fit: var(--tpc-image-fit, contain); }
.tpc-card__body { display: flex; flex-direction: column; gap: var(--tpc-space-2); padding: var(--tpc-space-4); }
.tpc-card__title { font-size: var(--tpc-text-lg); }
.tpc-card__title a { text-decoration: none; }
.tpc-card__title a::after { content: ""; position: absolute; inset: 0; }
.tpc-card__title a:focus-visible::after { outline: 3px solid var(--tpc-focus-color); outline-offset: 2px; }
.tpc-card__text { color: var(--tpc-muted-color); }
.tpc-card__text > :last-child { margin-bottom: 0; }
