Fix background-size: cover/contain for image ratio ≠ 1