html.jsweb-popup-open { overflow: hidden; }
.jsweb-popup-root { position: fixed; inset: 0; z-index: 999999; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.jsweb-popup-root.is-visible { opacity: 1; }
.jsweb-popup-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .62); opacity: 0; pointer-events: none; }
.jsweb-popup-root.has-overlay .jsweb-popup-overlay { opacity: 1; pointer-events: auto; }
.jsweb-popup-dialog { position: absolute; width: 600px; width: var(--jsweb-popup-width, 600px); max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); height: var(--jsweb-popup-height, auto); background: #fff; border-radius: 8px; box-shadow: 0 18px 60px rgba(0, 0, 0, .3); pointer-events: auto; transform: scale(.96); transition: transform .2s ease; }
.jsweb-popup-root.is-visible .jsweb-popup-dialog { transform: scale(1); }
.jsweb-popup-dialog .jsweb-popup-close { appearance: none !important; -webkit-appearance: none !important; position: absolute !important; z-index: 20 !important; top: 12px !important; right: 12px !important; display: flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; width: 38px !important; min-width: 38px !important; max-width: 38px !important; height: 38px !important; min-height: 38px !important; max-height: 38px !important; margin: 0 !important; padding: 0 !important; border: 1px solid rgba(255,255,255,.28) !important; border-radius: 999px !important; outline: 0; background: rgba(17,17,17,.88) !important; color: #fff !important; text-align: center !important; text-decoration: none !important; text-transform: none !important; cursor: pointer !important; box-shadow: 0 4px 14px rgba(0,0,0,.28) !important; transform: none !important; transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease !important; }
.jsweb-popup-dialog .jsweb-popup-close span { display: block !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; color: inherit !important; font-family: Arial, Helvetica, sans-serif !important; font-size: 25px !important; font-style: normal !important; font-weight: 400 !important; line-height: 1 !important; transform: translateY(-1px); }
.jsweb-popup-dialog .jsweb-popup-close:hover { background: #000 !important; box-shadow: 0 6px 18px rgba(0,0,0,.34) !important; transform: scale(1.06) !important; }
.jsweb-popup-dialog .jsweb-popup-close:focus-visible { outline: 3px solid rgba(255,255,255,.9) !important; outline-offset: 2px !important; }
.jsweb-popup-content { width: 100%; height: 100%; max-height: calc(100vh - 32px); overflow: auto; border-radius: inherit; }
.jsweb-popup-content > a { display: block; color: inherit; text-decoration: none; }
.jsweb-popup-type-html { padding: 28px; box-sizing: border-box; }
.jsweb-popup-type-background { position: relative; min-height: 120px; padding: 0; box-sizing: border-box; isolation: isolate; }
.jsweb-popup-background { position: absolute; z-index: 0; inset: 0; border-radius: inherit; background-position: center; background-repeat: no-repeat; background-size: cover; }
.jsweb-popup-background-content { position: relative; z-index: 1; padding: 28px; box-sizing: border-box; }
.jsweb-popup-background-content > :first-child { margin-top: 0; }
.jsweb-popup-background-content > :last-child { margin-bottom: 0; }
.jsweb-popup-type-html > :first-child, .jsweb-popup-type-html > a > :first-child { margin-top: 0; }
.jsweb-popup-type-html > :last-child, .jsweb-popup-type-html > a > :last-child { margin-bottom: 0; }
.jsweb-popup-type-image img, .jsweb-popup-type-video video, .jsweb-popup-type-video iframe { display: block; width: 100%; max-width: 100%; height: auto; border: 0; }
.jsweb-popup-type-video iframe { aspect-ratio: 16 / 9; }
.jsweb-position-center .jsweb-popup-dialog { top: 50%; left: 50%; transform: translate(-50%, -50%) scale(.96); }
.jsweb-position-center.is-visible .jsweb-popup-dialog { transform: translate(-50%, -50%) scale(1); }
.jsweb-position-top .jsweb-popup-dialog { top: 24px; left: 50%; transform: translateX(-50%) scale(.96); }
.jsweb-position-top.is-visible .jsweb-popup-dialog, .jsweb-position-bottom.is-visible .jsweb-popup-dialog { transform: translateX(-50%) scale(1); }
.jsweb-position-bottom .jsweb-popup-dialog { bottom: 24px; left: 50%; transform: translateX(-50%) scale(.96); }
.jsweb-position-top-left .jsweb-popup-dialog { top: 24px; left: 24px; }
.jsweb-position-top-right .jsweb-popup-dialog { top: 24px; right: 24px; }
.jsweb-position-bottom-left .jsweb-popup-dialog { bottom: 24px; left: 24px; }
.jsweb-position-bottom-right .jsweb-popup-dialog { right: 24px; bottom: 24px; }
@media (max-width: 767px) {
	.jsweb-popup-root.desktop-only { display: none !important; }
	.jsweb-popup-dialog { width: calc(100vw - 32px); max-height: calc(100vh - 32px); }
	.jsweb-popup-dialog .jsweb-popup-close { top: 10px !important; right: 10px !important; width: 36px !important; min-width: 36px !important; max-width: 36px !important; height: 36px !important; min-height: 36px !important; max-height: 36px !important; }
	.jsweb-position-top-left .jsweb-popup-dialog, .jsweb-position-top-right .jsweb-popup-dialog { top: 16px; right: auto; left: 50%; transform: translateX(-50%) scale(.96); }
	.jsweb-position-bottom-left .jsweb-popup-dialog, .jsweb-position-bottom-right .jsweb-popup-dialog { right: auto; bottom: 16px; left: 50%; transform: translateX(-50%) scale(.96); }
	.jsweb-position-top-left.is-visible .jsweb-popup-dialog, .jsweb-position-top-right.is-visible .jsweb-popup-dialog, .jsweb-position-bottom-left.is-visible .jsweb-popup-dialog, .jsweb-position-bottom-right.is-visible .jsweb-popup-dialog { transform: translateX(-50%) scale(1); }
	.jsweb-popup-type-html { padding: 22px; }
	.jsweb-popup-background-content { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) { .jsweb-popup-root, .jsweb-popup-dialog { transition: none; } }
