.ecsm-popup {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	transition: opacity 180ms ease;
	z-index: 999999;
}

.ecsm-popup.is-active {
	opacity: 1;
	pointer-events: auto;
}

.ecsm-popup__overlay {
	background: var(--ecsm-popup-overlay, rgba(0, 0, 0, 0.65));
	inset: 0;
	position: absolute;
}

.ecsm-popup__panel {
	box-shadow: 0 24px 80px rgba(15, 23, 42, 0.28);
	max-height: calc(100vh - 32px);
	overflow: auto;
	position: relative;
	transform: translateY(0) scale(1);
	transition: transform 220ms ease, opacity 220ms ease;
	z-index: 1;
}

.ecsm-popup--fade .ecsm-popup__panel {
	opacity: 0;
}

.ecsm-popup--fade.is-active .ecsm-popup__panel {
	opacity: 1;
}

.ecsm-popup--fade-scale .ecsm-popup__panel {
	opacity: 0;
	transform: scale(0.94);
}

.ecsm-popup--fade-scale.is-active .ecsm-popup__panel {
	opacity: 1;
	transform: scale(1);
}

.ecsm-popup--slide-up .ecsm-popup__panel {
	opacity: 0;
	transform: translateY(28px);
}

.ecsm-popup--slide-up.is-active .ecsm-popup__panel {
	opacity: 1;
	transform: translateY(0);
}

.ecsm-popup--slide-down .ecsm-popup__panel {
	opacity: 0;
	transform: translateY(-28px);
}

.ecsm-popup--slide-down.is-active .ecsm-popup__panel {
	opacity: 1;
	transform: translateY(0);
}

.ecsm-popup--top {
	align-items: flex-start;
	padding-top: 32px;
}

.ecsm-popup--bottom {
	align-items: flex-end;
	padding-bottom: 32px;
}

.ecsm-popup--top-left,
.ecsm-popup--top-right,
.ecsm-popup--bottom-left,
.ecsm-popup--bottom-right {
	padding: 32px;
}

.ecsm-popup--top-left {
	align-items: flex-start;
	justify-content: flex-start;
}

.ecsm-popup--top-right {
	align-items: flex-start;
	justify-content: flex-end;
}

.ecsm-popup--bottom-left {
	align-items: flex-end;
	justify-content: flex-start;
}

.ecsm-popup--bottom-right {
	align-items: flex-end;
	justify-content: flex-end;
}

.ecsm-popup__close {
	align-items: center;
	appearance: none;
	background: #ffffff;
	border: 0;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22);
	border-radius: 999px;
	color: #111827;
	cursor: pointer;
	display: inline-flex;
	font-size: 24px;
	height: 34px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: max(18px, env(safe-area-inset-right));
	top: max(18px, env(safe-area-inset-top));
	transition: background-color 160ms ease, color 160ms ease;
	width: 34px;
	z-index: 3;
}

.ecsm-popup__close:hover,
.ecsm-popup__close:focus {
	background: #111827;
	color: #000;
}

.ecsm-popup__close:hover,
.ecsm-popup__close:focus {
	color: #ffffff;
}

.ecsm-popup__content > .elementor {
	margin-left: auto;
	margin-right: auto;
}

.ecsm-popup-trigger,
.ecsm-popup-close-trigger {
	align-items: center;
	background: #111827;
	border: 0;
	border-radius: 10px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	line-height: 1.2;
	padding: 14px 22px;
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.ecsm-popup-trigger:hover,
.ecsm-popup-trigger:focus,
.ecsm-popup-close-trigger:hover,
.ecsm-popup-close-trigger:focus {
	color: #fff;
	transform: translateY(-1px);
}

.ecsm-popup-close-trigger {
	background: #ffffff;
	color: #111827;
}

body.ecsm-popup-open {
	overflow: hidden;
}

@media (max-width: 767px) {
	.ecsm-popup,
	.ecsm-popup--top-left,
	.ecsm-popup--top-right,
	.ecsm-popup--bottom-left,
	.ecsm-popup--bottom-right {
		padding: 16px;
	}

	.ecsm-popup__panel {
		max-height: calc(100vh - 32px);
		width: 100% !important;
	}
}
