.flex-row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -16px;
	margin-left: -16px;

	&.nowrap {
		flex-wrap: nowrap;
	}

	& > * {
		box-sizing: border-box;
		flex-shrink: 0;
		width: 100%;
		max-width: 100%;
		padding-right: 16px;
		padding-left: 16px;
	}

	&.row-0 {
		margin-left: 0;
		margin-right: 0;
		& > * {
			padding-left: 0;
			padding-right: 0;
		}
	}
	&.row-4 {
		margin-left: -2px;
		margin-right: -2px;
		& > * {
			padding-left: 2px;
			padding-right: 2px;
		}
	}
	&.row-8 {
		margin-left: -4px;
		margin-right: -4px;
		& > * {
			padding-left: 4px;
			padding-right: 4px;
		}
	}
	&.row-10 {
		margin-left: -5px;
		margin-right: -5px;
		& > * {
			padding-left: 5px;
			padding-right: 5px;
		}
	}
	&.row-12 {
		margin-left: -6px;
		margin-right: -6px;
		& > * {
			padding-left: 6px;
			padding-right: 6px;
		}
	}
	&.row-16 {
		margin-left: -8px;
		margin-right: -8px;
		& > * {
			padding-left: 8px;
			padding-right: 8px;
		}
	}
	&.row-20 {
		margin-left: -10px;
		margin-right: -10px;
		& > * {
			padding-left: 10px;
			padding-right: 10px;
		}
	}
	&.row-24 {
		margin-left: -12px;
		margin-right: -12px;
		& > * {
			padding-left: 12px;
			padding-right: 12px;
		}
	}
	&.row-32 {
		margin-left: -16px;
		margin-right: -16px;
		& > * {
			padding-left: 16px;
			padding-right: 16px;
		}
	}
	&.row-48 {
		margin-left: -24px;
		margin-right: -24px;
		& > * {
			padding-left: 24px;
			padding-right: 24px;
		}
	}
	&.row-80 {
		margin-left: -40px;
		margin-right: -40px;
		& > * {
			padding-left: 40px;
			padding-right: 40px;
		}
	}

	&.row-cols-auto > * {
		flex: 0 0 auto;
		width: auto;
	}
	&.row-cols-1 > * {
		flex: 0 0 auto;
		width: 100%;
	}
	&.row-cols-2 > * {
		flex: 0 0 auto;
		width: 50%;
	}
	&.row-cols-3 > * {
		flex: 0 0 auto;
		width: 33.3333333333%;
	}
	&.row-cols-4 > * {
		flex: 0 0 auto;
		width: 25%;
	}
	&.row-cols-5 > * {
		flex: 0 0 auto;
		width: 20%;
	}
	&.row-cols-6 > * {
		flex: 0 0 auto;
		width: 16.6666666667%;
	}

	.flex-col {
		flex: 1 0 0%;
	}
	.flex-col-auto {
		flex: 0 0 auto;
		width: auto;
	}
	.flex-col-1 {
		flex: 0 0 auto;
		width: 8.3333333333%;
	}
	.flex-col-2 {
		flex: 0 0 auto;
		width: 16.6666666667%;
	}
	.flex-col-3 {
		flex: 0 0 auto;
		width: 25%;
	}
	.flex-col-4 {
		flex: 0 0 auto;
		width: 33.3333333333%;
	}
	.flex-col-5 {
		flex: 0 0 auto;
		width: 41.6666666667%;
	}
	.flex-col-6 {
		flex: 0 0 auto;
		width: 50%;
	}
	.flex-col-7 {
		flex: 0 0 auto;
		width: 58.3333333333%;
	}
	.flex-col-8 {
		flex: 0 0 auto;
		width: 66.6666666667%;
	}
	.flex-col-9 {
		flex: 0 0 auto;
		width: 75%;
	}
	.flex-col-10 {
		flex: 0 0 auto;
		width: 83.3333333333%;
	}
	.flex-col-11 {
		flex: 0 0 auto;
		width: 91.6666666667%;
	}
	.flex-col-12 {
		flex: 0 0 auto;
		width: 100%;
	}

	.offset-1 {
		margin-left: 8.3333333333%;
	}
	.offset-2 {
		margin-left: 16.6666666667%;
	}
	.offset-3 {
		margin-left: 25%;
	}
	.offset-4 {
		margin-left: 33.3333333333%;
	}
	.offset-5 {
		margin-left: 41.6666666667%;
	}
	.offset-6 {
		margin-left: 50%;
	}
	.offset-7 {
		margin-left: 58.3333333333%;
	}
	.offset-8 {
		margin-left: 66.6666666667%;
	}
	.offset-9 {
		margin-left: 75%;
	}
	.offset-10 {
		margin-left: 83.3333333333%;
	}
	.offset-11 {
		margin-left: 91.6666666667%;
	}

	@media (min-width: 576px) {
		.flex-col-sm {
			flex: 1 0 0%;
		}
		&.row-cols-sm-auto > * {
			flex: 0 0 auto;
			width: auto;
		}
		&.row-cols-sm-1 > * {
			flex: 0 0 auto;
			width: 100%;
		}
		&.row-cols-sm-2 > * {
			flex: 0 0 auto;
			width: 50%;
		}
		&.row-cols-sm-3 > * {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		&.row-cols-sm-4 > * {
			flex: 0 0 auto;
			width: 25%;
		}
		&.row-cols-sm-5 > * {
			flex: 0 0 auto;
			width: 20%;
		}
		&.row-cols-sm-6 > * {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}

		.flex-col-sm-auto {
			flex: 0 0 auto;
			width: auto;
		}
		.flex-col-sm-1 {
			flex: 0 0 auto;
			width: 8.3333333333%;
		}
		.flex-col-sm-2 {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}
		.flex-col-sm-3 {
			flex: 0 0 auto;
			width: 25%;
		}
		.flex-col-sm-4 {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		.flex-col-sm-5 {
			flex: 0 0 auto;
			width: 41.6666666667%;
		}
		.flex-col-sm-6 {
			flex: 0 0 auto;
			width: 50%;
		}
		.flex-col-sm-7 {
			flex: 0 0 auto;
			width: 58.3333333333%;
		}
		.flex-col-sm-8 {
			flex: 0 0 auto;
			width: 66.6666666667%;
		}
		.flex-col-sm-9 {
			flex: 0 0 auto;
			width: 75%;
		}
		.flex-col-sm-10 {
			flex: 0 0 auto;
			width: 83.3333333333%;
		}
		.flex-col-sm-11 {
			flex: 0 0 auto;
			width: 91.6666666667%;
		}
		.flex-col-sm-12 {
			flex: 0 0 auto;
			width: 100%;
		}

		.offset-sm-0 {
			margin-left: 0;
		}
		.offset-sm-1 {
			margin-left: 8.3333333333%;
		}
		.offset-sm-2 {
			margin-left: 16.6666666667%;
		}
		.offset-sm-3 {
			margin-left: 25%;
		}
		.offset-sm-4 {
			margin-left: 33.3333333333%;
		}
		.offset-sm-5 {
			margin-left: 41.6666666667%;
		}
		.offset-sm-6 {
			margin-left: 50%;
		}
		.offset-sm-7 {
			margin-left: 58.3333333333%;
		}
		.offset-sm-8 {
			margin-left: 66.6666666667%;
		}
		.offset-sm-9 {
			margin-left: 75%;
		}
		.offset-sm-10 {
			margin-left: 83.3333333333%;
		}
		.offset-sm-11 {
			margin-left: 91.6666666667%;
		}
	}
	@media (min-width: 768px) {
		.flex-col-md {
			flex: 1 0 0%;
		}

		&.row-cols-md-auto > * {
			flex: 0 0 auto;
			width: auto;
		}
		&.row-cols-md-1 > * {
			flex: 0 0 auto;
			width: 100%;
		}
		&.row-cols-md-2 > * {
			flex: 0 0 auto;
			width: 50%;
		}
		&.row-cols-md-3 > * {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		&.row-cols-md-4 > * {
			flex: 0 0 auto;
			width: 25%;
		}
		&.row-cols-md-5 > * {
			flex: 0 0 auto;
			width: 20%;
		}
		&.row-cols-md-6 > * {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}

		.flex-col-md-auto {
			flex: 0 0 auto;
			width: auto;
		}
		.flex-col-md-1 {
			flex: 0 0 auto;
			width: 8.3333333333%;
		}
		.flex-col-md-2 {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}
		.flex-col-md-3 {
			flex: 0 0 auto;
			width: 25%;
		}
		.flex-col-md-4 {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		.flex-col-md-5 {
			flex: 0 0 auto;
			width: 41.6666666667%;
		}
		.flex-col-md-6 {
			flex: 0 0 auto;
			width: 50%;
		}
		.flex-col-md-7 {
			flex: 0 0 auto;
			width: 58.3333333333%;
		}
		.flex-col-md-8 {
			flex: 0 0 auto;
			width: 66.6666666667%;
		}
		.flex-col-md-9 {
			flex: 0 0 auto;
			width: 75%;
		}
		.flex-col-md-10 {
			flex: 0 0 auto;
			width: 83.3333333333%;
		}
		.flex-col-md-11 {
			flex: 0 0 auto;
			width: 91.6666666667%;
		}
		.flex-col-md-12 {
			flex: 0 0 auto;
			width: 100%;
		}

		.offset-md-0 {
			margin-left: 0;
		}
		.offset-md-1 {
			margin-left: 8.3333333333%;
		}
		.offset-md-2 {
			margin-left: 16.6666666667%;
		}
		.offset-md-3 {
			margin-left: 25%;
		}
		.offset-md-4 {
			margin-left: 33.3333333333%;
		}
		.offset-md-5 {
			margin-left: 41.6666666667%;
		}
		.offset-md-6 {
			margin-left: 50%;
		}
		.offset-md-7 {
			margin-left: 58.3333333333%;
		}
		.offset-md-8 {
			margin-left: 66.6666666667%;
		}
		.offset-md-9 {
			margin-left: 75%;
		}
		.offset-md-10 {
			margin-left: 83.3333333333%;
		}
		.offset-md-11 {
			margin-left: 91.6666666667%;
		}
	}
	@media (min-width: 992px) {
		.flex-col-lg {
			flex: 1 0 0%;
		}

		&.row-cols-lg-auto > * {
			flex: 0 0 auto;
			width: auto;
		}
		&.row-cols-lg-1 > * {
			flex: 0 0 auto;
			width: 100%;
		}
		&.row-cols-lg-2 > * {
			flex: 0 0 auto;
			width: 50%;
		}
		&.row-cols-lg-3 > * {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		&.row-cols-lg-4 > * {
			flex: 0 0 auto;
			width: 25%;
		}
		&.row-cols-lg-5 > * {
			flex: 0 0 auto;
			width: 20%;
		}
		&.row-cols-lg-6 > * {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}

		.flex-col-lg-auto {
			flex: 0 0 auto;
			width: auto;
		}
		.flex-col-lg-1 {
			flex: 0 0 auto;
			width: 8.3333333333%;
		}
		.flex-col-lg-2 {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}
		.flex-col-lg-3 {
			flex: 0 0 auto;
			width: 25%;
		}
		.flex-col-lg-4 {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		.flex-col-lg-5 {
			flex: 0 0 auto;
			width: 41.6666666667%;
		}
		.flex-col-lg-6 {
			flex: 0 0 auto;
			width: 50%;
		}
		.flex-col-lg-7 {
			flex: 0 0 auto;
			width: 58.3333333333%;
		}
		.flex-col-lg-8 {
			flex: 0 0 auto;
			width: 66.6666666667%;
		}
		.flex-col-lg-9 {
			flex: 0 0 auto;
			width: 75%;
		}
		.flex-col-lg-10 {
			flex: 0 0 auto;
			width: 83.3333333333%;
		}
		.flex-col-lg-11 {
			flex: 0 0 auto;
			width: 91.6666666667%;
		}
		.flex-col-lg-12 {
			flex: 0 0 auto;
			width: 100%;
		}

		.offset-lg-0 {
			margin-left: 0;
		}
		.offset-lg-1 {
			margin-left: 8.3333333333%;
		}
		.offset-lg-2 {
			margin-left: 16.6666666667%;
		}
		.offset-lg-3 {
			margin-left: 25%;
		}
		.offset-lg-4 {
			margin-left: 33.3333333333%;
		}
		.offset-lg-5 {
			margin-left: 41.6666666667%;
		}
		.offset-lg-6 {
			margin-left: 50%;
		}
		.offset-lg-7 {
			margin-left: 58.3333333333%;
		}
		.offset-lg-8 {
			margin-left: 66.6666666667%;
		}
		.offset-lg-9 {
			margin-left: 75%;
		}
		.offset-lg-10 {
			margin-left: 83.3333333333%;
		}
		.offset-lg-11 {
			margin-left: 91.6666666667%;
		}
	}
	@media (min-width: 1200px) {
		.flex-col-xl {
			flex: 1 0 0%;
		}

		&.row-cols-xl-auto > * {
			flex: 0 0 auto;
			width: auto;
		}
		&.row-cols-xl-1 > * {
			flex: 0 0 auto;
			width: 100%;
		}
		&.row-cols-xl-2 > * {
			flex: 0 0 auto;
			width: 50%;
		}
		&.row-cols-xl-3 > * {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		&.row-cols-xl-4 > * {
			flex: 0 0 auto;
			width: 25%;
		}
		&.row-cols-xl-5 > * {
			flex: 0 0 auto;
			width: 20%;
		}
		&.row-cols-xl-6 > * {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}

		.flex-col-xl-auto {
			flex: 0 0 auto;
			width: auto;
		}
		.flex-col-xl-1 {
			flex: 0 0 auto;
			width: 8.3333333333%;
		}
		.flex-col-xl-2 {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}
		.flex-col-xl-3 {
			flex: 0 0 auto;
			width: 25%;
		}
		.flex-col-xl-4 {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		.flex-col-xl-5 {
			flex: 0 0 auto;
			width: 41.6666666667%;
		}
		.flex-col-xl-6 {
			flex: 0 0 auto;
			width: 50%;
		}
		.flex-col-xl-7 {
			flex: 0 0 auto;
			width: 58.3333333333%;
		}
		.flex-col-xl-8 {
			flex: 0 0 auto;
			width: 66.6666666667%;
		}
		.flex-col-xl-9 {
			flex: 0 0 auto;
			width: 75%;
		}
		.flex-col-xl-10 {
			flex: 0 0 auto;
			width: 83.3333333333%;
		}
		.flex-col-xl-11 {
			flex: 0 0 auto;
			width: 91.6666666667%;
		}
		.flex-col-xl-12 {
			flex: 0 0 auto;
			width: 100%;
		}

		.offset-xl-0 {
			margin-left: 0;
		}
		.offset-xl-1 {
			margin-left: 8.3333333333%;
		}
		.offset-xl-2 {
			margin-left: 16.6666666667%;
		}
		.offset-xl-3 {
			margin-left: 25%;
		}
		.offset-xl-4 {
			margin-left: 33.3333333333%;
		}
		.offset-xl-5 {
			margin-left: 41.6666666667%;
		}
		.offset-xl-6 {
			margin-left: 50%;
		}
		.offset-xl-7 {
			margin-left: 58.3333333333%;
		}
		.offset-xl-8 {
			margin-left: 66.6666666667%;
		}
		.offset-xl-9 {
			margin-left: 75%;
		}
		.offset-xl-10 {
			margin-left: 83.3333333333%;
		}
		.offset-xl-11 {
			margin-left: 91.6666666667%;
		}
	}
	@media (min-width: 1400px) {
		.flex-col-xxl {
			flex: 1 0 0%;
		}

		&.row-cols-xxl-auto > * {
			flex: 0 0 auto;
			width: auto;
		}
		&.row-cols-xxl-1 > * {
			flex: 0 0 auto;
			width: 100%;
		}
		&.row-cols-xxl-2 > * {
			flex: 0 0 auto;
			width: 50%;
		}
		&.row-cols-xxl-3 > * {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		&.row-cols-xxl-4 > * {
			flex: 0 0 auto;
			width: 25%;
		}
		&.row-cols-xxl-5 > * {
			flex: 0 0 auto;
			width: 20%;
		}
		&.row-cols-xxl-6 > * {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}

		.flex-col-xxl-auto {
			flex: 0 0 auto;
			width: auto;
		}
		.flex-col-xxl-1 {
			flex: 0 0 auto;
			width: 8.3333333333%;
		}
		.flex-col-xxl-2 {
			flex: 0 0 auto;
			width: 16.6666666667%;
		}
		.flex-col-xxl-3 {
			flex: 0 0 auto;
			width: 25%;
		}
		.flex-col-xxl-4 {
			flex: 0 0 auto;
			width: 33.3333333333%;
		}
		.flex-col-xxl-5 {
			flex: 0 0 auto;
			width: 41.6666666667%;
		}
		.flex-col-xxl-6 {
			flex: 0 0 auto;
			width: 50%;
		}
		.flex-col-xxl-7 {
			flex: 0 0 auto;
			width: 58.3333333333%;
		}
		.flex-col-xxl-8 {
			flex: 0 0 auto;
			width: 66.6666666667%;
		}
		.flex-col-xxl-9 {
			flex: 0 0 auto;
			width: 75%;
		}
		.flex-col-xxl-10 {
			flex: 0 0 auto;
			width: 83.3333333333%;
		}
		.flex-col-xxl-11 {
			flex: 0 0 auto;
			width: 91.6666666667%;
		}
		.flex-col-xxl-12 {
			flex: 0 0 auto;
			width: 100%;
		}

		.offset-xxl-0 {
			margin-left: 0;
		}
		.offset-xxl-1 {
			margin-left: 8.3333333333%;
		}
		.offset-xxl-2 {
			margin-left: 16.6666666667%;
		}
		.offset-xxl-3 {
			margin-left: 25%;
		}
		.offset-xxl-4 {
			margin-left: 33.3333333333%;
		}
		.offset-xxl-5 {
			margin-left: 41.6666666667%;
		}
		.offset-xxl-6 {
			margin-left: 50%;
		}
		.offset-xxl-7 {
			margin-left: 58.3333333333%;
		}
		.offset-xxl-8 {
			margin-left: 66.6666666667%;
		}
		.offset-xxl-9 {
			margin-left: 75%;
		}
		.offset-xxl-10 {
			margin-left: 83.3333333333%;
		}
		.offset-xxl-11 {
			margin-left: 91.6666666667%;
		}
	}
}

.justify-content-start {
	justify-content: flex-start !important;
}
.justify-content-end {
	justify-content: flex-end !important;
}
.justify-content-center {
	justify-content: center !important;
}
.justify-content-between {
	justify-content: space-between !important;
}
.justify-content-around {
	justify-content: space-around !important;
}
.justify-content-evenly {
	justify-content: space-evenly !important;
}
.align-items-start {
	align-items: flex-start !important;
}
.align-items-end {
	align-items: flex-end !important;
}
.align-items-center {
	align-items: center !important;
}
.align-items-baseline {
	align-items: baseline !important;
}
.align-items-stretch {
	align-items: stretch !important;
}
.align-content-start {
	align-content: flex-start !important;
}
.align-content-end {
	align-content: flex-end !important;
}
.align-content-center {
	align-content: center !important;
}
.align-content-between {
	align-content: space-between !important;
}
.align-content-around {
	align-content: space-around !important;
}
.align-content-stretch {
	align-content: stretch !important;
}
.align-self-auto {
	align-self: auto !important;
}
.align-self-start {
	align-self: flex-start !important;
}
.align-self-end {
	align-self: flex-end !important;
}
.align-self-center {
	align-self: center !important;
}
.align-self-baseline {
	align-self: baseline !important;
}
.align-self-stretch {
	align-self: stretch !important;
}