:root {
	--gutter-size:10px;
	--gutter-size-large:20px;
}

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

/* A row is only ever used as a parent to columns */
.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));
}
.row.gutters-large {
	margin-top:calc(-2 * var(--gutter-size-large));
	margin-left:calc(-1 * var(--gutter-size-large));
	margin-right:calc(-1 * var(--gutter-size-large));
}

/* Columns should always have a parent that is a row, and their numbers should add 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);
}
.gutters-large>[class*='col-'] {
	margin-top:calc(2 * var(--gutter-size-large));
	padding-left:var(--gutter-size-large);
	padding-right:var(--gutter-size-large);
}


.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%;
}


.col-sm-1fifth {
	width:20%;
}
.col-sm-2fifth {
	width:40%;
}
.col-sm-3fifth {
	width:60%;
}
.col-sm-4fifth {
	width:80%;
}

.col-md-1fifth {
	width:20%;
}
.col-md-2fifth {
	width:40%;
}
.col-md-3fifth {
	width:60%;
}
.col-md-4fifth {
	width:80%;
}

.col-lg-1fifth {
	width:20%;
}
.col-lg-2fifth {
	width:40%;
}
.col-lg-3fifth {
	width:60%;
}
.col-lg-4fifth {
	width:80%;
}

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

	.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%;
	}

	.col-md-1fifth {
		width:20%;
	}
	.col-md-2fifth {
		width:40%;
	}
	.col-md-3fifth {
		width:60%;
	}
	.col-md-4fifth {
		width:80%;
	}
}

/* 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%;
	}

	.col-lg-1fifth {
		width:20%;
	}
	.col-lg-2fifth {
		width:40%;
	}
	.col-lg-3fifth {
		width:60%;
	}
	.col-lg-4fifth {
		width:80%;
	}
}