/* Local responsive grid; no external stylesheet or JavaScript dependency. */
.row {
    --grid-gap-x: 1.5rem;
    --grid-gap-y: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(-1 * var(--grid-gap-y));
    margin-right: calc(-0.5 * var(--grid-gap-x));
    margin-left: calc(-0.5 * var(--grid-gap-x));
}
.row > * {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(0.5 * var(--grid-gap-x));
    padding-left: calc(0.5 * var(--grid-gap-x));
    margin-top: var(--grid-gap-y);
}
.row-cols-1 > * { flex: 0 0 auto; width: 100%; }
@media (min-width: 576px) { .row-cols-sm-2 > * { width: 50%; } }
@media (min-width: 768px) { .row-cols-md-3 > * { width: 33.33333333%; } }
@media (min-width: 992px) { .row-cols-lg-4 > * { width: 25%; } }
