/**
 * Grid Classic & CSS grid
 */


.container-xxl {
	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
}

.container-xl {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding-left: var(--container-gap);
	padding-right: var(--container-gap);
	position: relative;
}

.container,
.container-l,
.container-m,
.container-s,
.container-xs,
.container-xxs {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding-left: var(--container-gap);
	padding-right: var(--container-gap);
}

.container {
	max-width: var(--container);
}

.container-l {
	max-width: var(--container-l);
}

.container-m {
	max-width: var(--container-m);
}

.container-s {
	max-width: var(--container-s);
}

.container-xs {
	max-width: var(--container-xs);
}

.container-xxs {
	max-width: var(--container-xxs);
}

.container [class*='container'],
.container [class*='container-'],
.container-xl [class*='container-'],
.container-l [class*='container-'],
.container-m [class*='container-'],
.container-s [class*='container-'],
.container-xs [class*='container-'],
.container-xxs [class*='container-'] {
	padding-left: 0;
	padding-right: 0;
}

@media screen and (max-width: 1600px) {
	.container-xl {
		padding-left: var(--container-gap);
		padding-right: var(--container-gap);
	}
}

@media screen and (max-width: 1200px) {
	.container-xl {
		padding-left: 0;
		padding-right: 0;
	}
}

@media screen and (max-width: 767px) {
	.container-mobile {
		padding-left: 0;
		padding-right: 0;
	}
}

/* CSS Grid */
.grid-1,
.grid-2,
.grid-3,
.grid-4,
.grid-5,
.grid-1-3,
.grid-1-4,
.grid-1-1-2,
.grid-2-1-1,
.grid-3-1-1-1 {
	display: grid;
	row-gap: var(--grid-gap);
	column-gap: var(--grid-gap);	
}

.grid-2 {
	grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
	grid-template-columns: repeat(4, 1fr);
}

.grid-5 {
	grid-template-columns: repeat(5, 1fr);
}

.grid-6 {
	grid-template-columns: repeat(6, 1fr);
}

.grid-2-1-1 {
	grid-template-columns: 2fr 1fr 1fr;
}

.grid-1-1-2 {
	grid-template-columns: 1fr 1fr 2fr;
}

.grid-1-3 {
	grid-template-columns: 1fr 3fr;
}

.grid-1-4 {
	grid-template-columns: 1fr 4fr;
}

.grid-3-1-1-1 { 
	grid-template-columns: 3fr 1fr 1fr 1fr;	
}

@media screen and (max-width: 980px) {
	.grid-4,
	.grid-3-1-1-1 {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.grid-6 {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 767px) {
	.grid-2,
	.grid-3,
	.grid-4,
	.grid-5,
	.grid-6,
	.grid-1-1-2,
	.grid-2-1-1,
	.grid-3-1-1-1,
	.grid-1-3,
	.grid-1-4 {
		grid-template-columns: 1fr;
		column-gap: 0px;
	}
}

/* content grid and positions */
.content-grid {
	display: grid;
	justify-items: center;
	align-items: center;
}

.content-grid-inner {
	padding-top: var(--line-height);
	padding-bottom: var(--line-height);
	padding-left: 30px;
	padding-right: 30px;
}

.content-text-center { text-align: center; }
.content-text-left { text-align: left; }
.content-text-right { text-align: right; }
.content-v-align-top { align-items: start; }
.content-v-align-center { align-items: center; }
.content-v-align-bottom { align-items: end; }
.content-h-align-left { justify-items: start; }
.content-h-align-center { justify-items: center; }
.content-h-align-right { justify-items: end; }

/* when use with .content-grid apply to .content-grid-inner child */
.content-size-small { max-width: var(--content-width-small); }
.content-size-medium { max-width: var(--content-width-medium); }
.content-size-large { max-width: var(--content-width-large); }

@media screen and (max-width: 767px) {
	.content-v-align-top,
	.content-v-align-center,
	.content-v-align-bottom { 
		align-items: start;
	}
	
	.content-h-align-left {
		justify-items: start;
	}
	
	.content-h-align-center,
	.content-h-align-right {
		justify-items: center;
	}
}

/* classic grid */
.col-2,
.col-3,
.col-4,
.col-6 {
	display: inline-block;
	min-height: 1px;
	float: left;
}

.col-1 {
	width: 100%;
}

.col-2 {
	width: 50%;
}

.col-3 {
	width: 33.333331%;
}

.col-4 {
	width: 25%;
}

.col-6 {
	width: 16.66666667%;
}

@media screen and (max-width: 980px) {
	.col-4,
	.col-5 {
		width: 50%;
	}
	
	.col-6 {
		width: 33.333331%;
	}
}

@media screen and (max-width: 767px) {
	.col-2,
	.col-4,
	.col-6 {
		width: 50%;
	}
}

@media screen and (max-width: 480px) {
	.col-2,
	.col-3,
	.col-4,
	.col-6 {
		display: block;
		float: none;
		width: 100%;
	}
}

.container-decor {
	z-index: 1;
	position: relative;
}

.container-decor::before {
	content: "";
	position: absolute;
	top: 30px;
	left: -30px;
	height: 100%;
	width: 25%;
	z-index: -1;
	display: block;
	border: 0px solid var(--color-link);
}

.container-decor::after {
	content: "";
	position: absolute;
	right: -30px;
	top: 50%;
	height: 75%;
	width: 60px;
	z-index: -1;
	display: block;
	transform: translateY(-50%);
	background-color: var(--color-light);
}

@media screen and (max-width: 980px) {
	.container-decor::before {
		content: "";
		position: absolute;
		top: 30px;
		left: -50px;
		height: 100%;
		width: 25%;
		z-index: -1;
		display: block;
		background-color: var(--color-light);
	}
}