.flex-between {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.flex {
    display: flex;
}

.gap-1 {
    gap: 4px
}

.gap-2 {
    gap: 8px
}

.gap-3 {
    gap: 12px
}

.h-right {
    display: flex;
    justify-content: flex-end;
}

.h-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-column {
    flex-direction: column;
}

.v-bottom {
    display: flex;
    align-items: flex-end;
}

.v-center {
    align-items: center;
}

.row {
    display: grid;
    gap: 24px;
    min-width: 100%;
}

.row-gap-l {
    gap: clamp(24px, 8vw, 90px);
}

.row-gap-xl {
    gap: clamp(24px, 8vw, 120px);
}

.row.auto-pair {
    grid-template-columns: auto 1fr;
    align-items: start;
}

.col-auto {
    width: auto;
    justify-self: start;
}

.col-dynamic {
    width: 100%;
}

.row.auto-pair {
    grid-template-columns: auto 1fr;
    /* auto width first, rest fills */
    align-items: center;
}

/* Breakpoints like Bootstrap */
@media (max-width: 575.98px) {

    /* xs */
    .row {
        grid-template-columns: repeat(1, 1fr);
    }
}

@media (min-width: 576px) {

    /* sm */
    .row {
        grid-template-columns: repeat(12, 1fr);
    }
}

@media (min-width: 768px) {

    /* md */
    .row {
        grid-template-columns: repeat(12, 1fr);
    }

    .col-stretch>div {
        height: 100%
    }
}

@media (min-width: 992px) {

    /* lg */
    .row {
        grid-template-columns: repeat(12, 1fr);
    }
}

/* Column spans */
[class*="col-xs-"] {
    grid-column: span 12;
}

[class*="col-sm-"] {
    grid-column: span 12;
}

[class*="col-md-"] {
    grid-column: span 12;
}

[class*="col-lg-"] {
    grid-column: span 12;
}

/* XS columns */
.col-xs-1 {
    grid-column: span 1;
}

.col-xs-2 {
    grid-column: span 2;
}

.col-xs-3 {
    grid-column: span 3;
}

.col-xs-4 {
    grid-column: span 4;
}

.col-xs-5 {
    grid-column: span 5;
}

.col-xs-6 {
    grid-column: span 6;
}

.col-xs-7 {
    grid-column: span 7;
}

.col-xs-8 {
    grid-column: span 8;
}

.col-xs-9 {
    grid-column: span 9;
}

.col-xs-10 {
    grid-column: span 10;
}

.col-xs-11 {
    grid-column: span 11;
}

.col-xs-12 {
    grid-column: span 12;
}

/* SM columns */
@media (min-width: 576px) {
    .col-sm-1 {
        grid-column: span 1;
    }

    .col-sm-2 {
        grid-column: span 2;
    }

    .col-sm-3 {
        grid-column: span 3;
    }

    .col-sm-4 {
        grid-column: span 4;
    }

    .col-sm-5 {
        grid-column: span 5;
    }

    .col-sm-6 {
        grid-column: span 6;
    }

    .col-sm-7 {
        grid-column: span 7;
    }

    .col-sm-8 {
        grid-column: span 8;
    }

    .col-sm-9 {
        grid-column: span 9;
    }

    .col-sm-10 {
        grid-column: span 10;
    }

    .col-sm-11 {
        grid-column: span 11;
    }

    .col-sm-12 {
        grid-column: span 12;
    }
}

/* MD columns */
@media (min-width: 768px) {
    .col-md-1 {
        grid-column: span 1;
    }

    .col-md-2 {
        grid-column: span 2;
    }

    .col-md-3 {
        grid-column: span 3;
    }

    .col-md-4 {
        grid-column: span 4;
    }

    .col-md-5 {
        grid-column: span 5;
    }

    .col-md-6 {
        grid-column: span 6;
    }

    .col-md-7 {
        grid-column: span 7;
    }

    .col-md-8 {
        grid-column: span 8;
    }

    .col-md-9 {
        grid-column: span 9;
    }

    .col-md-10 {
        grid-column: span 10;
    }

    .col-md-11 {
        grid-column: span 11;
    }

    .col-md-12 {
        grid-column: span 12;
    }
}

/* LG columns */
@media (min-width: 992px) {
    .col-lg-1 {
        grid-column: span 1;
    }

    .col-lg-2 {
        grid-column: span 2;
    }

    .col-lg-3 {
        grid-column: span 3;
    }

    .col-lg-4 {
        grid-column: span 4;
    }

    .col-lg-5 {
        grid-column: span 5;
    }

    .col-lg-6 {
        grid-column: span 6;
    }

    .col-lg-7 {
        grid-column: span 7;
    }

    .col-lg-8 {
        grid-column: span 8;
    }

    .col-lg-9 {
        grid-column: span 9;
    }

    .col-lg-10 {
        grid-column: span 10;
    }

    .col-lg-11 {
        grid-column: span 11;
    }

    .col-lg-12 {
        grid-column: span 12;
    }
}