
.cards {
    --column-gap: 2rem;
    --row-gap: 2rem;
    --font-size: var(--root-font-size); /* Reset, use REM */
}

.cards[data-maximum-columns="2"] {
    --column-gap: 1.5rem;
}

.cards[data-maximum-columns="3"] {
    --column-gap: 1.5rem;
}

@media (min-width: 48rem) {
    .cards[data-maximum-columns="2"] {
        --column-gap: 4rem;
    }
}

.cards {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
}

@media (min-width: 30rem) {
    .cards[data-maximum-columns="2"],
    .cards[data-maximum-columns="3"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 62rem) {
    .cards[data-maximum-columns="3"] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.cards {
    font-size: var(--font-size, 1rem);
    grid-column-gap: var(--column-gap, 2rem);
    grid-row-gap: var(--row-gap, 2rem);
}

.cards[data-maximum-columns="1"] {
    grid-row-gap: 0;
}
