Hi there,
The issue is definitely coming from this CSS you’ve added:
@media(min-width: 769px) {
.woocommerce ul.products li.product a img {
width: 250px !important;
height: 250px !important;
}
}
I’m not aware of a CSS solution to keep them square and not changing the quality at the same time unfortunately.
The best solution would be to upload images that are already in 1:1 ratio (square) so you can use either width or height property in the CSS to avoid the blurry-ness.