@xlarge_media: 1200px;
@large_media: 992px;
@medium_media: 768px;
@small_media: 576px;

@xlarge_container: 1140px;
@large_container: 960px;
@medium_container: 720px;
@small_container: 540px;

@offset_padding: 15px;

.container,
.container-fluid {
	width: 100%;
	padding-right: @offset_padding;
	padding-left: @offset_padding;
	margin-right: auto;
	margin-left: auto;
}

.row {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin-right: -@offset_padding;
	margin-left: -@offset_padding;
}

@media print {
	.container {
		min-width: @large_media;
	}
}

@media (min-width: @small_media) {
	.container {
		max-width: @small_container;
	}
}
@media (min-width: @medium_media) {
	.container {
		max-width: @medium_container;
	}
}
@media (min-width: @large_media) {
	.container {
		max-width: @large_container;
	}
}
@media (min-width: @xlarge_media) {
  .container {
    max-width: @xlarge_container;
  	}
}

.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col,
.col-auto,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-sm,
.col-sm-auto,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-md,
.col-md-auto,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-lg,
.col-lg-auto,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-xl,
.col-xl-auto {
	position: relative;
	width: 100%;
	padding-right: @offset_padding;
	padding-left: @offset_padding;
}

.col,
.col-sm,
.col-md,
.col-lg,
.col-xl {
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -ms-flex-positive: 1;
  flex-grow: 1;
  max-width: 100%;
}
.col-auto,
.col-sm-auto,
.col-md-auto,
.col-lg-auto,
.col-xl-auto {
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.grid-loop(@columns) when (@columns > 0) {
  .col-@{columns} {
	-ms-flex: 0 0 @columns*8.333333%;
	flex: 0 0 @columns*8.333333%;
	max-width: @columns*8.333333%;
  }

	@media (min-width: small_media) {
		.col-sm-@{columns} {
			-ms-flex: 0 0 @columns*8.333333%;
			flex: 0 0 @columns*8.333333%;
			max-width: @columns*8.333333%;
		}
	}
	@media (min-width: medium_media) {
		.col-md-@{columns} {
			-ms-flex: 0 0 @columns*8.333333%;
			flex: 0 0 @columns*8.333333%;
			max-width: @columns*8.333333%;
		}
	}
	@media (min-width: large_media) {
		.col-lg-@{columns} {
			-ms-flex: 0 0 @columns*8.333333%;
			flex: 0 0 @columns*8.333333%;
			max-width: @columns*8.333333%;
		}
	}
	@media (min-width: xlarge_media) {
		.col-xl-@{columns} {
			-ms-flex: 0 0 @columns*8.333333%;
			flex: 0 0 @columns*8.333333%;
			max-width: @columns*8.333333%;
		}
	}
  .grid-loop(@columns - 1);
}
.grid-loop(12);