.dps-overlay[hidden] {
	display: none !important;
}

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

.dps-overlay {
	--dps-overlay-color: #000000;
	--dps-overlay-opacity: 1;
	--dps-duration: 420ms;
	--dps-easing: cubic-bezier(0, 0, 0.2, 1);
	--dps-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
	--dps-radius: 12px;
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(16px, 4vw, 48px);
	opacity: 0;
	perspective: 1400px;
	pointer-events: none;
	transition: opacity var(--dps-duration) var(--dps-easing);
	width: 100vw;
	max-width: none;
	height: 100vh;
	max-height: none;
	margin: 0;
	border: 0;
	background: transparent;
	color: inherit;
}

dialog.dps-overlay::backdrop {
	background: transparent;
}

.dps-popup-source.dps-overlay[open] {
	display: flex !important;
}

.dps-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.dps-overlay__scrim {
	position: absolute;
	inset: 0;
	background: var(--dps-overlay-color);
	opacity: var(--dps-overlay-opacity);
}

.dps-overlay__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 1080px);
	max-height: min(88vh, 960px);
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	outline: none;
	border-radius: var(--dps-radius);
	box-shadow: var(--dps-shadow);
	transform: translateY(0);
	transition:
		transform var(--dps-duration) var(--dps-easing),
		opacity var(--dps-duration) var(--dps-easing),
		filter var(--dps-duration) var(--dps-easing);
}

.dps-overlay[data-animation="fade_in"] .dps-overlay__dialog {
	opacity: 0;
}

.dps-overlay[data-animation="fade_in"].is-open .dps-overlay__dialog {
	opacity: 1;
}

.dps-overlay[data-animation="bounce"] .dps-overlay__dialog {
	opacity: 0;
	transform: scale(0.82);
}

.dps-overlay[data-animation="bounce"].is-open .dps-overlay__dialog {
	opacity: 1;
	transform: scale(1);
	transition-timing-function: cubic-bezier(0.2, 1.45, 0.35, 1);
}

.dps-overlay[data-animation="flip_vertical"] .dps-overlay__dialog {
	opacity: 0;
	transform: rotateX(-72deg);
	transform-origin: 50% 0;
}

.dps-overlay[data-animation="flip_vertical"].is-open .dps-overlay__dialog {
	opacity: 1;
	transform: rotateX(0);
}

.dps-overlay[data-animation="flip_horizontal"] .dps-overlay__dialog {
	opacity: 0;
	transform: rotateY(-72deg);
	transform-origin: 0 50%;
}

.dps-overlay[data-animation="flip_horizontal"].is-open .dps-overlay__dialog {
	opacity: 1;
	transform: rotateY(0);
}

.dps-overlay[data-animation="spin_in"] .dps-overlay__dialog {
	opacity: 0;
	transform: rotate(-18deg) scale(0.88);
}

.dps-overlay[data-animation="spin_in"].is-open .dps-overlay__dialog {
	opacity: 1;
	transform: rotate(0) scale(1);
}

.dps-overlay[data-animation="slide_top"] .dps-overlay__dialog,
.dps-overlay[data-animation="slide_bottom"] .dps-overlay__dialog,
.dps-overlay[data-animation="slide_left"] .dps-overlay__dialog,
.dps-overlay[data-animation="slide_right"] .dps-overlay__dialog {
	opacity: 0;
}

.dps-overlay[data-animation="slide_top"] .dps-overlay__dialog {
	transform: translateY(-42px);
}

.dps-overlay[data-animation="slide_bottom"] .dps-overlay__dialog {
	transform: translateY(42px);
}

.dps-overlay[data-animation="slide_left"] .dps-overlay__dialog {
	transform: translateX(-42px);
}

.dps-overlay[data-animation="slide_right"] .dps-overlay__dialog {
	transform: translateX(42px);
}

.dps-overlay[data-animation="slide_top"].is-open .dps-overlay__dialog,
.dps-overlay[data-animation="slide_bottom"].is-open .dps-overlay__dialog,
.dps-overlay[data-animation="slide_left"].is-open .dps-overlay__dialog,
.dps-overlay[data-animation="slide_right"].is-open .dps-overlay__dialog {
	opacity: 1;
	transform: translate(0, 0);
}

.dps-overlay__body > .et_pb_section,
.dps-overlay__body > .et_pb_row,
.dps-overlay__body > .et_pb_row_inner {
	width: 100%;
}

.dps-overlay__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: #161616;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
	cursor: pointer;
	font-size: 26px;
	line-height: 1;
}

.dps-overlay__close:hover,
.dps-overlay__close:focus {
	background: #ffffff;
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.dps-overlay {
		align-items: flex-start;
		padding: 20px 12px;
	}

	.dps-overlay__dialog {
		max-height: calc(100vh - 40px);
	}
}
