:root {
    --gutter-size:4px;
}

/* The grid class is only used when a child row is a gutters */
.grid {
    overflow:hidden;
}

/* The row is always a parent of columns, and never used in any other place */
.row {
    display:flex;
    flex-wrap:wrap;
}
.row.gutters {
    margin-top:calc(-2 * var(--gutter-size));
    margin-left:calc(-1 * var(--gutter-size));
    margin-right:calc(-1 * var(--gutter-size));
}

/* Columns should always have a row parent, and always add up to 12 */
[class*='col-'] {
    flex: 0 0 auto;
}
.gutters>[class*='col-'] {
    margin-top:calc(2 * var(--gutter-size));
    padding-left:var(--gutter-size);
    padding-right:var(--gutter-size);
}

/* Small sizes always exist */
.col-sm-1 {
    width:calc((1/12) * 100%);
}
.col-sm-2 {
    width:calc((2/12) * 100%);
}
.col-sm-3 {
    width:25%;
}
.col-sm-4 {
    width:calc((4/12) * 100%);
}
.col-sm-5 {
    width:calc((5/12) * 100%);
}
.col-sm-6 {
    width:50%;
}
.col-sm-7 {
    width:calc((7/12) * 100%);
}
.col-sm-8 {
    width:calc((8/12) * 100%);
}
.col-sm-9 {
    width:75%;
}
.col-sm-10 {
    width:calc((10/12) * 100%);
}
.col-sm-11 {
    width:calc((11/12) * 100%);
}
.col-sm-12 {
    width:100%;
}

/* Medium Breakpoint */
@media (min-width:600px) {

    .col-md-1 {
        width:calc((1/12) * 100%);
    }
    .col-md-2 {
        width:calc((2/12) * 100%);
    }
    .col-md-3 {
        width:25%;
    }
    .col-md-4 {
        width:calc((4/12) * 100%);
    }
    .col-md-5 {
        width:calc((5/12) * 100%);
    }
    .col-md-6 {
        width:50%;
    }
    .col-md-7 {
        width:calc((7/12) * 100%);
    }
    .col-md-8 {
        width:calc((8/12) * 100%);
    }
    .col-md-9 {
        width:75%;
    }
    .col-md-10 {
        width:calc((10/12) * 100%);
    }
    .col-md-11 {
        width:calc((11/12) * 100%);
    }
    .col-md-12 {
        width:100%;
    }
}

/* Large Breakpoint */
@media (min-width:1000px) {

    .col-lg-1 {
        width:calc((1/12) * 100%);
    }
    .col-lg-2 {
        width:calc((2/12) * 100%);
    }
    .col-lg-3 {
        width:25%;
    }
    .col-lg-4 {
        width:calc((4/12) * 100%);
    }
    .col-lg-5 {
        width:calc((5/12) * 100%);
    }
    .col-lg-6 {
        width:50%;
    }
    .col-lg-7 {
        width:calc((7/12) * 100%);
    }
    .col-lg-8 {
        width:calc((8/12) * 100%);
    }
    .col-lg-9 {
        width:75%;
    }
    .col-lg-10 {
        width:calc((10/12) * 100%);
    }
    .col-lg-11 {
        width:calc((11/12) * 100%);
    }
    .col-lg-12 {
        width:100%;
    }
}

