Lining up a title/body/button row across several cards is awkward with plain grid — each card computes its own tracks, so if title heights differ, the button rows end up staggered. The classic fix was measuring every card's title height in JS and forcing them to the tallest one.
`grid-template-columns: subgrid` (or rows) lets a child grid inherit its parent's track lines instead of defining new ones. A single parent grid spanning multiple cards decides "this row is N px," and every child aligns to it automatically.
Check caniuse/MDN baseline for support. Without it, measuring element heights in JS and forcing a shared `min-height`, or falling back to table layout, are the usual workarounds.
When to use
Aligning internal rows (title/body/CTA) across a grid of cards down to the pixel.