/**
 * 0.0 - Banner
 */

.banner {
	position: relative;
	width: 100%;
	display: block;
}

.banner__inner {
	position: relative;
	display: block;
	height: 94vh;
	z-index: 1;
	background-color: var(--color-dark);
}

@media screen and (max-width: 480px) {
	.banner__inner {
		height: 90vh;
	}
}

.banner__image,
.banner__mask,
.banner__preloader {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;	
}

.banner__image {
	z-index: -1;
}

.banner__image img {
	width: 100%;
	height: 100%;
	display: block;
	overflow: hidden;
	object-fit: cover;
	object-position: center center;
	filter: grayscale(var(--grayscale));
}

.banner__mask {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: var(--image-mask-50);
}

.banner__mask::before,
.banner__mask::after {
	content: "";
	position: absolute;
	left: 0;
	height: 30%;
	width: 100%;
	display: block;
}

.banner__mask::before {
	top: 0;
	height: 30%;
	background-image: var(--image-mask-top-50);
}

.banner__mask::after {
	bottom: 0;
	background-image: var(--image-mask-bottom-50);
}

.banner__preloader {
	z-index: 3;
	opacity: 1;
	background-color: var(--color-dark);
	transition: opacity .6s ease;
}

.banner__preloader.complete {
	opacity: 0;
}

.banner__text {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 3;
}

.banner__text .container {
	height: 100%;
}

.banner__title-container {
	position: relative;
	padding-bottom: 6vh;
	display: grid;
	justify-items: start;
	align-items: end;
	justify-content: start;
	align-content: end;
	height: 100%;
	width: 100%;
	text-align: left;
}

.banner__small-title {
	color: var(--color-white);
	line-height: 1.2em;
	margin-bottom: 15px;
}

.banner__title {
	display: block;
	z-index: 1;
	color: var(--color-white);
	line-height: 1em;
}

.banner__title span {
	color: var(--color-accent-light);
}

.banner__intro {
	max-width: 860px;
}

@media screen and (max-width: 767px) {
	.banner__intro {
		font-size: 1.125rem;
	}
}