/* ========================
   MODAL STYLES
========================== */
.modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(var(--black-rgb), .5);
	transition: opacity .3s ease, visibility .3s ease;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	z-index: 1000;
}
.modal.show {
	display: block;
	opacity: 1;
	visibility: visible;
}

.modal-dialog {
	position: relative;
	margin: 1.75rem auto;
	pointer-events: none;
	transition: transform .3s ease;
}

/* Sizes */
.modal-sm {
	max-width: 320px;
}
.modal-md {
	max-width: 540px;
}
.modal-lg {
	max-width: 840px;
}
.modal-xl {
	max-width: 1120px;
}

/* Position Variation */
.modal-center {
	display: flex;
	align-items: center;
	min-height: calc(100% - 3.5rem);
}
.modal-top {
	margin-top: 0;
}
.modal-right {
	height: 100%;
	margin-right: 0;
	margin-left: auto;
	max-width: 480px;
}
/*.modal-bottom {
	margin-top: auto;
	margin-bottom: 0;
} */
.modal-bottom {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	margin-top: auto;
	margin-bottom: 0;
}

.modal-bottom .modal-dialog {
	width: 100%;
	max-width: 540px;
	margin-bottom: 0;
	margin-left: auto;
	margin-right: auto;
}
.modal-left {
	height: 100%;
	margin-right: auto;
	margin-left: 0;
	max-width: 480px;
}
.modal-content {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	pointer-events: auto;
	background-color: var(--white);
	border-radius: 0;
	box-shadow: 0 0.5rem 1rem rgba(var(--black-rgb), .2);
	outline: 0;
}

/* Content Styles For Various Positions */
.modal-right .modal-content,
.modal-left .modal-content {
	height: 100%;
	border-radius: 0;
}
.modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 2rem;
	border-bottom: 1px solid var(--light-gray);
}
.modal-title {
	margin: 0;
	font-weight: 600;
	line-height: 1.5;
}
.modal-sm .modal-title {
	font-size: 1.8rem;
}
.modal-header .modal-close {
	padding: .5rem;
	margin: -0.5rem -0.5rem -0.5rem auto;
	background-color: transparent;
	border: 0;
	font-size: 1.8rem;
	cursor: pointer;
	color: var(--gray);
	transition: color 0.15s ease-in-out;
}
.modal-header .modal-close:hover {
	color: var(--dark);
}
.modal-header .modal-close:focus {
	outline: 0;
}
.modal-body {
	position: relative;
	flex: 1 1 auto;
	max-height: calc(100vh - 10rem);
	padding: 1.5rem 2rem;
	overflow-y: auto;
}
.modal-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: .5rem;
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--light-gray);
}

/* Alert Modal */
.modal-alert .modal-header {
	color: var(--white);
	background-color: var(--danger);
}
.modal-alert .modal-header .modal-close {
	color: rgba(var(--white-rgb), .8);
}
.modal-alert .modal-header .modal-close:hover {
	color: var(--white);
}
.alert-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 1rem;
	color: var(--danger);
	font-size: 3rem;
}

/* Confirmation Modal */
.modal-confirm .modal-header {
	color: var(--white);
	background-color: var(--primary);
}
.modal-confirm .modal-header .modal-close {
	color: rgba(var(--white-rgb), .8);
}
.modal-confirm .modal-header .modal-close:hover {
	color: var(--white);
}
.confirm-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 1rem;
	color: var(--primary);
	font-size: 3rem;
}

/* Image Modal */
.modal-image .modal-body {
	padding: 0;
	text-align: center;
}
.modal-image img {
	max-width: 100%;
	max-height: 70vh;
	object-fit: contain;
}

/* Animations */
.modal.show .modal-dialog {
	transform: none;
}
.modal .modal-dialog {
	transform: translateY(-50px);
}
.modal-right .modal-dialog {
	transform: translateX(50px);
}
.modal-left .modal-dialog {
	transform: translateX(-50px);
}
.modal-bottom .modal-dialog {
	transform: translateY(50px);
}

/* Resopnsive */
@media (max-width: 992px) {
	.modal-xl {
		max-width: 90%;
	}
	.modal-lg {
		max-width: 90%;
	}
}

@media (max-width: 768px) {
	.modal-md {
		max-width: 90%;
	}
	.modal-right,
	.modal-left {
		max-width: 80%;
	}
	.modal .btn {
		width: 100%;
	}
}

@media (max-width: 576px) {
	.modal-sm {
		max-width: 90%;
	}
	.modal-dialog {
		margin: 1rem auto;
	}
	.modal-header {
		padding: 1rem 1.5rem;
	}
	.modal-body {
		padding: 1.5rem;
	}
	.modal-footer {
		padding: 1rem 1.5rem;
	}
	.modal-bottom .modal-dialog {
		max-width: 100%;
		margin: 0 auto;
	}
}
