Servus,
das Problem ist, dass die Reihen eine feste Anzahl mit Produkten haben, in Deinem Fall 3.
Oft wird das so gelöst, dass die Ansicht von 3 Produkten pro Reihe ab einer bestimmten Displaybreite direkt auf ein Produkt pro Reihe springt.
Dazu müsstest Du im CSS eine Media Query für den Bereich angeben.
So in der Richtung:
@media all and (max-width: 680px) {
div.product, div.category {width: 100%;}
}
Es gibt auch noch die Möglichkeit, die Ansichten komplett umzubauen, so dass die Produkte nicht als feste Anzahl pro Reihe (rows) angezeigt werden, sondern nur entsprechend einer bestimmten minimalen und maximalen Breite ihre Position verändern, aber das ist ein wenig mehr Arbeit.
So short
Stefan