// ============================================================================
// :: HERO
// ============================================================================
.m-hero {
	position: relative;
	z-index: $z-index-base;

	display: block;
	width: 100%;
	height: 50rem;
	overflow: hidden;

	background-color: $background-color-grey-extra-light;

	&:not(.js-m-hero) {
		z-index: $z-index-high + 1;

		overflow: visible;

		.m-hero__background {
			transform: scaleX(0);
		}

		.m-hero__content {
			opacity: 1;

			transform: translateX(0);
		}

		.m-hero__image-container {
			overflow: hidden;
		}

		.m-hero__image {
			transform: translateX(0) scale(1.5);

			@include respond-at($screen-small-base) {
				transform: translateX(0) scale(1);
			}
		}
	}

	&:not(.m-hero--placeholder) {

		.m-hero__title {
			text-shadow: $text-shadow;
		}

		.m-hero__subtitle {
			text-shadow: $text-shadow-dark;
		}
	}

	+ .m-section--overlap {

		z-index: $z-index-highest;

		margin-top: -7rem;
		padding-top: 0;
	}
}

// ============================================================================
// :: Elements
// ============================================================================
.m-hero__background {
	content: "";

	position: absolute;
	top: 0;
	left: 0;
	z-index: $z-index-highest;

	display: block;
	width: 100%;
	height: 100%;

	background-color: $background-color-white;

	transform: scaleX(1);
	transform-origin: right center;

	transition: transform 1.8s cubic-bezier(0.23, 1, 0.32, 1);
}

.m-hero__image-container {
	position: absolute;
	top: 0;
	left: 0;

	display: block;
	width: 100%;
	height: 100%;

	background-color: $background-color-black;

	will-change: transform;

	&::after {
		content: "";

		position: absolute;
		top: 0;
		left: 0;

		display: block;

		width: 100%;
		height: 100%;

		background-color: $background-color-black;
		opacity: 0.1;
	}
}

.m-hero__image {
	position: absolute;

	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;

	opacity: 0.97;

	transform: translateX(-10rem) scale(1.1);

	transition: transform 1.4s cubic-bezier(0.23, 1, 0.32, 1);
}

.m-hero__content-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 95%;
	max-width: 84rem;
	height: 100%;
	margin: 0 auto;

	@include respond-at($screen-medium-base) {
		display: block;
		padding-top: 17.4rem;
	}
}

.m-hero__content {
	z-index: $z-index-high;

	width: 100%;

	opacity: 0;

	transition: opacity 1s ease-in-out;
}

.m-hero__title {
	text-align: center;

	color: $text-color-white;
}

.m-hero__subtitle {
	margin-top: 1.5rem;

	text-align: center;

	color: $text-color-white;
}

.m-hero__text {
	margin-top: 1.5rem;

	font-family: $font-family-roboto;
	font-weight: $font-weight-bold;
	text-align: center;

	color: $text-color-white;
}

.m-hero__search {
	width: 100%;
	margin-top: 1.5rem;

	@include respond-to($screen-small-base) {
		position: absolute !important; /* stylelint-disable-line */

		box-shadow: $box-shadow;
	}
}

.m-hero__overlay {

	&.o-overlay {
		position: fixed;
		top: 0;
		left: 0;
		z-index: $z-index-lowest;

		width: 100vw;
		height: 100vh;
	}
}

// ============================================================================
// :: Modifiers
// ============================================================================
.m-hero--placeholder {

	.m-hero__image-container {
		display: none;
	}

	.m-hero__content > * {
		color: $text-color;
	}
}

.m-hero--blog {
	height: 50rem;

	.m-hero__title {
		font-size: $font-size-3x-large;

		@include respond-at($screen-small-base) {
			font-size: $font-size-4x-large;
		}

		@include respond-to($screen-small-base) {
			line-height: $line-height-4x-large;
		}
	}

	.m-hero__subtitle {
		font-size: $font-size-1x-large;

		@include respond-at($screen-small-base) {
			font-size: $font-size-2x-large;
		}
	}
}

.m-hero--blurred {

	&:not(.js-m-hero) {

		.m-hero__image {
			filter: blur(1.2rem);

			transform: scale(1.1);
		}
	}
}

.m-hero--no-shadow {

	// Overwrite used in gezochte batterijen campagne. Classes were nested to
	// deep. By overwriting the class this way yet another !important was spared
	&.m-hero:not(.m-hero--placeholder) .m-hero__title,
	.m-hero__title {
		text-shadow: none;
	}
}

// ============================================================================
// :: States
// ============================================================================
.m-hero {

	&.is-animated {

		.m-hero__background {
			transform: scaleX(0);
		}

		.m-hero__content {
			opacity: 1;

			transform: translateX(0);
		}

		.m-hero__image {
			transform: translateX(0) scale(1.5);

			@include respond-at($screen-small-base) {
				transform: translateX(0) scale(1);
			}
		}

		&.m-hero--blurred {

			.m-hero__image {
				transform: scale(1.1);

				@include respond-at($screen-small-base) {
					transform: translateX(0) scale(1.1);
				}
			}
		}
	}
}
