:root {
	--grid-gap: var(--space-s);
}

.row {
	display: flex;
	flex-wrap: wrap;
	margin-left: calc(var(--grid-gap) * -0.5);
	margin-right: calc(var(--grid-gap) * -0.5);
	max-width: 100vw;
}

.col-1 {width: 8.33333333%;}
.col-2 {width: 16.66666667%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33333333%;}
.col-5 {width: 41.66666667%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33333333%;}
.col-8 {width: 66.66666667%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33333333%;}
.col-11 {width: 91.66666667%;}
.col-12 {width: 100%;}

.row > * {
	flex: 0 0 auto;
	padding: calc(var(--grid-gap) * 0.5);
}

.row > .col {flex: 1;}

.row.no-spacing .col {
	padding: 0;
}

/* Grid Gap */
.row.grid-gap-none > *,
.row.grid-gap-none {--grid-gap: 0;}
.row.grid-gap-s > *,
.row.grid-gap-s {--grid-gap: var(--space-s);}
.row.grid-gap-m > *,
.row.grid-gap-m {--grid-gap: var(--space-m);}
.row.grid-gap-l > *,
.row.grid-gap-l {--grid-gap: var(--space-l);}
.row.grid-gap-xl > *,
.row.grid-gap-xl {--grid-gap: var(--space-xxl);}
.row.grid-gap-xxl > *,
.row.grid-gap-xxl {--grid-gap: var(--space-xxxxl);}

.row.grid-gap-x-none > *,
.row.grid-gap-x-none {margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0;}
	
.row.grid-gap-y-none > *,
.row.grid-gap-y-none {padding-bottom: 0; padding-top: 0;}

@media (max-width: 991.98px) {
	.row:not(.no-responsive) {
		margin-left: 0;
		margin-right: 0;
	}
	
	.row:not(.no-responsive) > * {
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
	}
	
	.row:not(.no-responsive) > .col {
		flex: auto;
		width: 100%;
	}
	
	.row.mb-invert > .col:first-child {
		order: 2;
	}
	
	.row:not(.no-responsive) .col-1,
	.row:not(.no-responsive) .col-2,
	.row:not(.no-responsive) .col-3,
	.row:not(.no-responsive) .col-4,
	.row:not(.no-responsive) .col-5,
	.row:not(.no-responsive) .col-6,
	.row:not(.no-responsive) .col-7,
	.row:not(.no-responsive) .col-8,
	.row:not(.no-responsive) .col-9,
	.row:not(.no-responsive) .col-10,
	.row:not(.no-responsive) .col-11,
	.row:not(.no-responsive) .col-12 {width: 100%;}
	
	/* Grid Gap Mobile */
	.row.mb-grid-gap-none > *,
	.row.mb-grid-gap-none {--grid-gap: 0;}
	.row.mb-grid-gap-s > *,
	.row.mb-grid-gap-s {--grid-gap: var(--space-s);}
	.row.mb-grid-gap-m > *,
	.row.mb-grid-gap-m {--grid-gap: var(--space-m);}
	.row.mb-grid-gap-l > *,
	.row.mb-grid-gap-l {--grid-gap: var(--space-l);}
	.row.mb-grid-gap-xl > *,
	.row.mb-grid-gap-xl {--grid-gap: var(--space-xxl);}
	.row.mb-grid-gap-xxl > *,
	.row.mb-grid-gap-xxl {--grid-gap: var(--space-xxxxl);}
	
	.row.mb-grid-gap-x-none > *,
	.row.mb-grid-gap-x-none {margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0;}
	
	.row.mb-grid-gap-y-none > *,
	.row.mb-grid-gap-y-none {padding-bottom: 0; padding-top: 0;}
}