// ============================================================================
// :: MEDIA
// ============================================================================
.m-video {
	position: relative;
}

// ============================================================================
// :: Components
// ============================================================================
.m-video__container {
	position: relative;

	display: flex;
	justify-content: center;
	align-items: center;
	width: 100vw;
	height: 60rem;
	overflow: hidden;

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

.m-video__placeholder {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;

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

	opacity: 0.53;

	transition: opacity 0.3s ease-in-out;

	pointer-events: none;
}

.m-video__content {
	position: absolute;

	align-self: flex-start;
	width: 90%;
	margin-top: 13rem;

	text-align: center;

	@include respond-at($screen-medium-base) {
		width: 50%;
	}
}

.m-video__video {
	position: relative;
	z-index: 999;

	width: auto !important; /* stylelint-disable-line */
	min-width: 60%;
	height: 100%;

	opacity: 0;

	visibility: hidden;
}

.m-video__content__title,
.m-video__content__text,
.m-video__content__text p {
	color: $text-color-white;

	transform: translateY(0);
}

.m-video__content__title {
	transition:
		opacity 0.4s ease-in-out,
		transform 0.4s ease-in-out 0.2s;
}

.m-video__content__text {
	margin-top: 2rem;
	margin-bottom: 4rem;
}

.m-video__content__text,
.m-video__content__text p {
	transition:
		opacity 0.4s ease-in-out,
		transform 0.4s ease-in-out;
}

.m-video__content__text p {

	& + p {
		margin-top: 2rem;
	}
}

.m-video__button {
	position: absolute;

	border: none;
	border-radius: 50%;

	background-color: transparent;

	transform: translateX(-50%);
	transform-origin: center center;

	transition: transform 0.3s ease-in-out;

	cursor: pointer;

	&::before {
		font-size: $font-size-5x-large;

		color: $text-color-white;
		opacity: 0.6;
	}

	&:focus:not(:hover) {
		box-shadow: 0 0 0 0.1rem $outline-color-green;
		outline: none;

		transform: translateX(-50%) scale(1.2);
	}
}

.m-video--contained {
	height: 100%;

	.m-video__container {
		width: 100%;
		height: 100%;
	}
}

.m-video__button--centered,
.m-video__placeholder--centered {
	top: 50%;
	left: 50%;

	margin-top: 0;

	transform: translate(-50%, -50%);
}

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

	&.is-playing {

		.m-video__placeholder {
			opacity: 0;
		}

		.m-video__content__title,
		.m-video__content__text {
			opacity: 0;

			transform: translateY(-1rem);
		}

		.m-video__content__text {
			transition:
				opacity 0.4s ease-in-out,
				transform 0.4s ease-in-out 0.1s;
		}

		.m-video__content__title {
			transition:
				opacity 0.4s ease-in-out,
				transform 0.4s ease-in-out;
		}

		.m-video__button {
			opacity: 0;
		}

		.m-video__video {
			opacity: 1;

			visibility: visible;
		}
	}
}

// ============================================================================
// :: Modifiers
// ============================================================================
.m-video--content {

	.m-video__container {
		width: 100%;
		height: 0;
		padding-bottom: 56.25%;
	}

	.m-video__content {
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;

		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: 100%;
		margin: 0 auto;
		padding: 2rem;
	}

	.m-video__content__text {
		@include respond-to($screen-small-base) {
			margin-top: 1rem;
			margin-bottom: 2rem;
		}
	}

	.m-video__video {
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;

		/* stylelint-disable */
		width: 100% !important;
		/* stylelint-enable */
		height: 100%;
		margin: 0;
	}

	.m-video__button {
		position: relative;

		margin: 0;

		transform: none;
	}
}
