Closes #21857, fixes #21650 (closed), and closes #21885 (closed) (dupe of #21650 (closed)).
The card image stretching affected .card-img, .card-img-top, and .card-img-bottom as we utilize flexbox and flex-direction: column on .card. Intrinsic image sizing is basically borked with flex due to the default stretch value for aligning the content. There's no real way around this it seems other than width: 100%; as no other flex property will address the aspect ratio.