.container { width: 100%; margin: 0 auto; padding: 0 1.5rem; box-sizing: border-box; }
.row { display: flex; flex-wrap: wrap; margin-right: -1.5rem; margin-left: -1.5rem; }
[class*="col-"] { padding: 0 1.5rem; box-sizing: border-box; }
.col { flex: 1 0 0%; max-width: 100%; }

:root { --columns: 12; }

.col-1  { flex: 0 0 8.3333%;  max-width: 8.3333%;  }
.col-2  { flex: 0 0 16.6666%; max-width: 16.6666%; }
.col-3  { flex: 0 0 25%;      max-width: 25%;      }
.col-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
.col-5  { flex: 0 0 41.6666%; max-width: 41.6666%; }
.col-6  { flex: 0 0 50%;      max-width: 50%;      }
.col-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
.col-8  { flex: 0 0 66.6666%; max-width: 66.6666%; }
.col-9  { flex: 0 0 75%;      max-width: 75%;      }
.col-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
.col-11 { flex: 0 0 91.6666%; max-width: 91.6666%; }
.col-12 { flex: 0 0 100%;     max-width: 100%;     }

.m-1 { margin: 1rem }
.mt-1 { margin-top: 1rem }
.mb-1 { margin-bottom: 1rem }
.ml-1 { margin-left: 1rem }
.mr-1 { margin-right: 1rem }
.mx-1 { margin-left: 1rem; margin-right: 1rem }
.my-1 { margin-top: 1rem; margin-bottom: 1rem }
.m-2 { margin: 2rem }

@media (min-width: 576px) {
	.col-sm-1  { flex: 0 0 8.3333%;  max-width: 8.3333%;  }
	.col-sm-2  { flex: 0 0 16.6666%; max-width: 16.6666%; }
	.col-sm-3  { flex: 0 0 25%;      max-width: 25%;      }
	.col-sm-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.col-sm-5  { flex: 0 0 41.6666%; max-width: 41.6666%; }
	.col-sm-6  { flex: 0 0 50%;      max-width: 50%;      }
	.col-sm-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
	.col-sm-8  { flex: 0 0 66.6666%; max-width: 66.6666%; }
	.col-sm-9  { flex: 0 0 75%;      max-width: 75%;      }
	.col-sm-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
	.col-sm-11 { flex: 0 0 91.6666%; max-width: 91.6666%; }
	.col-sm-12 { flex: 0 0 100%;     max-width: 100%;     }
}

@media (min-width: 768px) {
	.col-md-1  { flex: 0 0 8.3333%;  max-width: 8.3333%;  }
	.col-md-2  { flex: 0 0 16.6666%; max-width: 16.6666%; }
	.col-md-3  { flex: 0 0 25%;      max-width: 25%;      }
	.col-md-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.col-md-5  { flex: 0 0 41.6666%; max-width: 41.6666%; }
	.col-md-6  { flex: 0 0 50%;      max-width: 50%;      }
	.col-md-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
	.col-md-8  { flex: 0 0 66.6666%; max-width: 66.6666%; }
	.col-md-9  { flex: 0 0 75%;      max-width: 75%;      }
	.col-md-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
	.col-md-11 { flex: 0 0 91.6666%; max-width: 91.6666%; }
	.col-md-12 { flex: 0 0 100%;     max-width: 100%;     }
}

@media (min-width: 992px) {
	.col-lg-1  { flex: 0 0 8.3333%;  max-width: 8.3333%;  }
	.col-lg-2  { flex: 0 0 16.6666%; max-width: 16.6666%; }
	.col-lg-3  { flex: 0 0 25%;      max-width: 25%;      }
	.col-lg-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.col-lg-5  { flex: 0 0 41.6666%; max-width: 41.6666%; }
	.col-lg-6  { flex: 0 0 50%;      max-width: 50%;      }
	.col-lg-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
	.col-lg-8  { flex: 0 0 66.6666%; max-width: 66.6666%; }
	.col-lg-9  { flex: 0 0 75%;      max-width: 75%;      }
	.col-lg-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
	.col-lg-11 { flex: 0 0 91.6666%; max-width: 91.6666%; }
	.col-lg-12 { flex: 0 0 100%;     max-width: 100%;     }
}

@media (min-width: 1200px) {
	.col-xl-1  { flex: 0 0 8.3333%;  max-width: 8.3333%;  }
	.col-xl-2  { flex: 0 0 16.6666%; max-width: 16.6666%; }
	.col-xl-3  { flex: 0 0 25%;      max-width: 25%;      }
	.col-xl-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.col-xl-5  { flex: 0 0 41.6666%; max-width: 41.6666%; }
	.col-xl-6  { flex: 0 0 50%;      max-width: 50%;      }
	.col-xl-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
	.col-xl-8  { flex: 0 0 66.6666%; max-width: 66.6666%; }
	.col-xl-9  { flex: 0 0 75%;      max-width: 75%;      }
	.col-xl-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
	.col-xl-11 { flex: 0 0 91.6666%; max-width: 91.6666%; }
	.col-xl-12 { flex: 0 0 100%;     max-width: 100%;     }
}
