* {
    padding   : 0;
    margin    : 0;
    box-sizing: border-box;
}

:root {
    --width-container   : 1170px;
    --bg-dark           : #ccc;
    --column-space      : 10px;
    --column-space-small: 5px;
}

.container {
    max-width: var(--width-container);
    margin   : 0 auto;
    padding: 0 10px;
}

.row {
    display     : flex;
    flex-wrap   : wrap;
    margin-left : calc(0px - var(--column-space));
    margin-right: calc(0px - var(--column-space));
}

.row-collapse {
    margin-left : 0;
    margin-right: 0;
}

.row.row-collapse > .col {
    padding: 0;
}

.row.row-space > .col {
    padding-bottom: calc(2 * var(--column-space));
}

.row-small {
    margin-left : calc(0px - var(--column-space-small));
    margin-right: calc(0px - var(--column-space-small));
}

.row.row-small > .col {
    padding: calc(0px - 2*var(--column-space-small));
}

.row.row-start .col {
    justify-content: flex-start;
}

.row.row-end .col {
    justify-content: end;
}

.row.row-center .col {
    justify-content: center;
}

.col {
    padding: 0 var(--column-space);
}

.col-1 {
    flex-basis: calc(100%/(12/1));
    width     : calc(100%/(12/1));
}

.col-2 {
    flex-basis: calc(100%/(12/2));
    width     : calc(100%/(12/2));
}

.col-3 {
    flex-basis: calc(100%/(12/3));
    width     : calc(100%/(12/3));
}

.col-4 {
    flex-basis: calc(100%/(12/4));
    width     : calc(100%/(12/4));
}

.col-5 {
    flex-basis: calc(100%/(12/5));
    width     : calc(100%/(12/5));
}

.col-6 {
    flex-basis: calc(100%/(12/6));
    width     : calc(100%/(12/6));
}

.col-7 {
    flex-basis: calc(100%/(12/7));
    width     : calc(100%/(12/7));
}

.col-8 {
    flex-basis: calc(100%/(12/8));
    width     : calc(100%/(12/8));
}

.col-9 {
    flex-basis: calc(100%/(12/9));
    width     : calc(100%/(12/9));
}

.col-10 {
    flex-basis: calc(100%/(12/10));
    width     : calc(100%/(12/10));
}

.col-11 {
    flex-basis: calc(100%/(12/11));
    width     : calc(100%/(12/11));
}

.col-12 {
    flex-basis: calc(100%/(12/12));
    width     : calc(100%/(12/12));
}

@media all and (min-width: 576px) {
    .col-sm-1 {
        flex-basis: 8.3333333333%;
        max-width : 8.3333333333%;
    }

    .col-sm-2 {
        flex-basis: 16.6666666667%;
        max-width : 16.6666666667%;
    }

    .col-sm-3 {
        flex-basis: 25%;
        max-width : 25%;
        /*100%/(12/3)*/
    }

    .col-sm-4 {
        flex-basis: 33.3333333333%;
        max-width : 33.3333333333%;
    }

    .col-sm-5 {
        flex-basis: 41.6666666667%;
        max-width : 41.6666666667%;
    }

    .col-sm-6 {
        flex-basis: 50%;
        max-width : 50%;
    }

    .col-sm-7 {
        flex-basis: 58.3333333333%;
        max-width : 58.3333333333%;
    }

    .col-sm-8 {
        flex-basis: 66.6666666667%;
        max-width : 66.6666666667%;
    }

    .col-sm-9 {
        flex-basis: 75%;
        max-width : 75%;
    }

    .col-sm-10 {
        flex-basis: 83.3333333333%;
        max-width : 83.3333333333%;
    }

    .col-sm-11 {
        flex-basis: 91.6666666667%;
        max-width : 91.6666666667%;
    }

    .col-sm-12 {
        flex-basis: 100%;
        max-width : 100%;
    }
}

@media all and (min-width: 768px) {
    .col-md-1 {
        flex-basis: 8.3333333333%;
        max-width : 8.3333333333%;
    }

    .col-md-2 {
        flex-basis: 16.6666666667%;
        max-width : 16.6666666667%;
    }

    .col-md-3 {
        flex-basis: 25%;
        max-width : 25%;
        /*100%/(12/3)*/
    }

    .col-md-4 {
        flex-basis: 33.3333333333%;
        max-width : 33.3333333333%;
    }

    .col-md-5 {
        flex-basis: 41.6666666667%;
        max-width : 41.6666666667%;
    }

    .col-md-6 {
        flex-basis: 50%;
        max-width : 50%;
    }

    .col-md-7 {
        flex-basis: 58.3333333333%;
        max-width : 58.3333333333%;
    }

    .col-md-8 {
        flex-basis: 66.6666666667%;
        max-width : 66.6666666667%;
    }

    .col-md-9 {
        flex-basis: 75%;
        max-width : 75%;
    }

    .col-md-10 {
        flex-basis: 83.3333333333%;
        max-width : 83.3333333333%;
    }

    .col-md-11 {
        flex-basis: 91.6666666667%;
        max-width : 91.6666666667%;
    }

    .col-md-12 {
        flex-basis: 100%;
        max-width : 100%;
    }
}

@media all and (min-width: 992px) {
    .col-lg-1 {
        flex-basis: 8.3333333333%;
        max-width : 8.3333333333%;
    }

    .col-lg-2 {
        flex-basis: 16.6666666667%;
        max-width : 16.6666666667%;
    }

    .col-lg-3 {
        flex-basis: 25%;
        max-width : 25%;
        /*100%/(12/3)*/
    }

    .col-lg-4 {
        flex-basis: 33.3333333333%;
        max-width : 33.3333333333%;
    }

    .col-lg-5 {
        flex-basis: 41.6666666667%;
        max-width : 41.6666666667%;
    }

    .col-lg-6 {
        flex-basis: 50%;
        max-width : 50%;
    }

    .col-lg-7 {
        flex-basis: 58.3333333333%;
        max-width : 58.3333333333%;
    }

    .col-lg-8 {
        flex-basis: 66.6666666667%;
        max-width : 66.6666666667%;
    }

    .col-lg-9 {
        flex-basis: 75%;
        max-width : 75%;
    }

    .col-lg-10 {
        flex-basis: 83.3333333333%;
        max-width : 83.3333333333%;
    }

    .col-lg-11 {
        flex-basis: 91.6666666667%;
        max-width : 91.6666666667%;
    }

    .col-lg-12 {
        flex-basis: 100%;
        max-width : 100%;
    }
}

@media all and (min-width: 1200px) {
    .col-xl-1 {
        flex-basis: 8.3333333333%;
        max-width : 8.3333333333%;
    }

    .col-xl-2 {
        flex-basis: 16.6666666667%;
        max-width : 16.6666666667%;
    }

    .col-xl-3 {
        flex-basis: 25%;
        max-width : 25%;
        /*100%/(12/3)*/
    }

    .col-xl-4 {
        flex-basis: 33.3333333333%;
        max-width : 33.3333333333%;
    }

    .col-xl-5 {
        flex-basis: 41.6666666667%;
        max-width : 41.6666666667%;
    }

    .col-xl-6 {
        flex-basis: 50%;
        max-width : 50%;
    }

    .col-xl-7 {
        flex-basis: 58.3333333333%;
        max-width : 58.3333333333%;
    }

    .col-xl-8 {
        flex-basis: 66.6666666667%;
        max-width : 66.6666666667%;
    }

    .col-xl-9 {
        flex-basis: 75%;
        max-width : 75%;
    }

    .col-xl-10 {
        flex-basis: 83.3333333333%;
        max-width : 83.3333333333%;
    }

    .col-xl-11 {
        flex-basis: 91.6666666667%;
        max-width : 91.6666666667%;
    }

    .col-xl-12 {
        flex-basis: 100%;
        max-width : 100%;
    }
}

@media all and (min-width: 1400px) {
    .col-xxl-1 {
        flex-basis: 8.3333333333%;
        max-width : 8.3333333333%;
    }

    .col-xxl-2 {
        flex-basis: 16.6666666667%;
        max-width : 16.6666666667%;
    }

    .col-xxl-3 {
        flex-basis: 25%;
        max-width : 25%;
        /*100%/(12/3)*/
    }

    .col-xxl-4 {
        flex-basis: 33.3333333333%;
        max-width : 33.3333333333%;
    }

    .col-xxl-5 {
        flex-basis: 41.6666666667%;
        max-width : 41.6666666667%;
    }

    .col-xxl-6 {
        flex-basis: 50%;
        max-width : 50%;
    }

    .col-xxl-7 {
        flex-basis: 58.3333333333%;
        max-width : 58.3333333333%;
    }

    .col-xxl-8 {
        flex-basis: 66.6666666667%;
        max-width : 66.6666666667%;
    }

    .col-xxl-9 {
        flex-basis: 75%;
        max-width : 75%;
    }

    .col-xxl-10 {
        flex-basis: 83.3333333333%;
        max-width : 83.3333333333%;
    }

    .col-xxl-11 {
        flex-basis: 91.6666666667%;
        max-width : 91.6666666667%;
    }

    .col-xxl-12 {
        flex-basis: 100%;
        max-width : 100%;
    }
}