/* Generic card — used by the blog grid and any container that needs a panel. */
.ctr-card{
  background:var(--c-surface); border:1px solid var(--c-line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease;
}
.ctr-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md) }
.ctr-card-img{ display:block; aspect-ratio:3/2; overflow:hidden; background:var(--c-surface-2) }
.ctr-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease }
.ctr-card:hover .ctr-card-img img{ transform:scale(1.04) }
.ctr-card-body{ padding:1.25rem; display:flex; flex-direction:column; gap:.4rem; flex:1 }
.ctr-card-title{ font-size:1.1rem; margin:0 }
.ctr-card-title a{ text-decoration:none; color:var(--c-ink) }
.ctr-card-title a:hover{ color:var(--c-primary) }
.ctr-card-body p{ font-size:.94rem; color:var(--c-ink-2); margin:0; flex:1 }
@media (prefers-reduced-motion:reduce){ .ctr-card,.ctr-card-img img{ transition:none } }
