/* Backdrop */
.backdrop {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--black);
	z-index: 2;
	opacity: 0.6;
	transition: opacity 0.4s, z-index 0s;
}

.video-modal__backdrop,
.contact-modal__backdrop {
	z-index: 3;
}

body:has(.modal:not(.hidden)) {
	overflow: hidden;
}

/* Modal */
.modal.hidden .backdrop {
	opacity: 0;
	transition: opacity 0.4s, z-index 0.4s;
	z-index: -1;
}

.modal.hidden .modal__content {
	z-index: -1;
	transition: bottom 0.4s, opacity 0.4s 0.1s, z-index 0s 0.4s;
	bottom: 40%;
	opacity: 0;
}

/* Video modal */
.video-modal {
	position: fixed;
	width: 60vw;
	background-color: var(--black);
	z-index: 4;
	transition: bottom 0.4s, opacity 0.4s 0s, z-index 0s 0s;
}

.video-modal.hidden {
	z-index: -1;
	transition: bottom 0.4s, opacity 0.4s 0.1s, z-index 0s 0.4s;
	bottom: 40%;
	opacity: 0;
}

.video-modal__header {
	height: 50px;
	display: flex;
	align-items: center;
	background-color: var(--white);
}

.video-modal__title {
	padding-left: 20px;
}

.video-modal .video {
	aspect-ratio: 16/9;
}

@media (max-width: 1200px) {
	.video-modal {
		width: 90vw;
	}
}

/* Contact modal */
.contact-modal {
	position: fixed;
	width: 450px;
	background-color: var(--white);
	z-index: 4;
	transition: bottom 0.4s, opacity 0.4s 0s, z-index 0s 0s;
	padding: 20px;
}

.contact-modal__title {
	font-size: 2rem;
	font-family: Antonio;
	font-weight: 600;
	color: var(--primary);
}

.contact-modal__email {
	display: block;
	text-align: right;
	padding-top: 30px;
	padding-bottom: 10px;
}

.contact-modal__linkedin {
	display: block;
	text-align: right;
	padding-bottom: 30px;
}

@media (max-width: 450px) {
	.contact-modal {
		width: 100vw;
		margin: 0;
	}
}