.grid-s,
.grid-m,
.grid-l,
.grid-xl,
.grid-xxl {
    display: grid;
    column-gap: 1rem;
    grid-auto-rows: min-content;
}

.grid-no_gap {column-gap: 0;}
.grid-gap_xl {column-gap: 2rem;}

.grid-s {grid-template-columns: repeat(3, 1fr);}
.grid-m {grid-template-columns: repeat(4, 1fr);}
.grid-l {grid-template-columns: repeat(4, 1fr);}
.grid-xl {grid-template-columns: repeat(4, 1fr);}
.grid-xxl {grid-template-columns: repeat(4, 1fr);}

@media only screen and (min-width: 768px) {
    .grid-s {grid-template-columns: repeat(4, 1fr);}
    .grid-xl {grid-template-columns: repeat(5, 1fr);}
    .grid-xxl {grid-template-columns: repeat(8, 1fr);}
}