Лаконичный и бытрый способ как сделать так, чтобы бы блоки сами переносились при измении ширины. Бех указания положения и размеров на разных брейкпоинтах:
.list {
display: grid;
//290 - это минимальный размер мобилок + 2 паддинга по бокам по 15px
grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
}