One of the issues with the mobile view is that the css grid is keeping the rows next to each other.
There are 3 ways afaik to fix this:
Use grid only with larger screens using a media query and us the default order for mobile
Use grid for both and mobile and desktop but change grid-area to display items in one column in mobile and with a media query display as 2 columns for desktop
Use flex box and a media query to switch between flex-direction column and row
Perhaps adding a minimum height/width would help?