/* K Pop-up — public styles */

.kpopup-root {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 999999;
}
.kpopup-root.kpopup-visible {
	display: flex;
}
body.kpopup-lock {
	overflow: hidden;
}

.kpopup-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
}

.kpopup-box {
	position: relative;
	z-index: 2;
	margin: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	box-sizing: border-box;
	font-family: inherit;
	line-height: 1.5;
}

/* Neutralise theme bleed: links/buttons/images inside the popup must not
   inherit decorative borders, shadows or backgrounds from the site theme. */
.kpopup-box a,
.kpopup-box a:hover,
.kpopup-box a:focus,
.kpopup-content a img {
	box-shadow: none;
	text-decoration: none;
	outline: none;
}
.kpopup-content a {
	display: block;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
}

/* ---- positions (3×3 grid) ---- */
/* vertical alignment */
.kpopup-pos-top-left, .kpopup-pos-top-center, .kpopup-pos-top, .kpopup-pos-top-right { align-items: flex-start; }
.kpopup-pos-center-left, .kpopup-pos-center, .kpopup-pos-center-right { align-items: center; }
.kpopup-pos-bottom-left, .kpopup-pos-bottom-center, .kpopup-pos-bottom, .kpopup-pos-bottom-right { align-items: flex-end; }
/* horizontal alignment */
.kpopup-pos-top-left, .kpopup-pos-center-left, .kpopup-pos-bottom-left { justify-content: flex-start; }
.kpopup-pos-top-center, .kpopup-pos-top, .kpopup-pos-center, .kpopup-pos-bottom-center, .kpopup-pos-bottom { justify-content: center; }
.kpopup-pos-top-right, .kpopup-pos-center-right, .kpopup-pos-bottom-right { justify-content: flex-end; }

/* breathing room when not centered on the screen */
.kpopup-pos-top-left .kpopup-box, .kpopup-pos-top-center .kpopup-box, .kpopup-pos-top .kpopup-box, .kpopup-pos-top-right .kpopup-box,
.kpopup-pos-center-left .kpopup-box, .kpopup-pos-center-right .kpopup-box,
.kpopup-pos-bottom-left .kpopup-box, .kpopup-pos-bottom-center .kpopup-box, .kpopup-pos-bottom .kpopup-box, .kpopup-pos-bottom-right .kpopup-box {
	margin: 24px;
}

/* ---- close button ----
   Floating circular button that stays legible over any background/image. */
.kpopup-close {
	position: absolute;
	top: -14px;
	right: -14px;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: #1a1a1a;
	color: #fff;
	font-size: 20px;
	line-height: 28px;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
	transition: transform 0.15s, background 0.15s;
	z-index: 5;
}
.kpopup-close:hover { background: #000; transform: scale(1.08); }

/* On bar layouts (top/bottom) keep the button inside the bar. */
.kpopup-pos-top .kpopup-close,
.kpopup-pos-bottom .kpopup-close { top: 10px; right: 14px; }

/* ---- content ---- */
.kpopup-content { word-wrap: break-word; }
.kpopup-content p:first-child { margin-top: 0; }
.kpopup-content p:last-child { margin-bottom: 0; }

/* ---- image type: chromeless, image IS the popup ---- */
.kpopup-type-image .kpopup-box { background: transparent; padding: 0; overflow: visible; }
.kpopup-type-image .kpopup-content,
.kpopup-type-image .kpopup-content a { line-height: 0; }
.kpopup-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: inherit;
}

/* ---- subscribe ---- */
.kpopup-sub-title { margin: 0 0 8px; font-size: 1.4em; }
.kpopup-sub-desc { margin: 0 0 16px; opacity: 0.85; }
.kpopup-sub-row { display: flex; gap: 8px; flex-wrap: wrap; }
.kpopup-sub-row input[type="email"] {
	flex: 1 1 180px;
	padding: 11px 13px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	font-size: 15px;
}
.kpopup-convert,
.kpopup-sub-row button {
	padding: 11px 20px;
	border: 0;
	border-radius: 6px;
	background: #2563eb;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.kpopup-convert:hover,
.kpopup-sub-row button:hover { background: #1d4fd7; }
.kpopup-sub-msg { margin: 12px 0 0; min-height: 1em; }
.kpopup-sub-ok { color: #1a7f37; font-weight: 600; }

/* ---- animations ---- */
.kpopup-visible .kpopup-box { animation-duration: 0.32s; animation-fill-mode: both; }
.kpopup-anim-fade.kpopup-visible .kpopup-box { animation-name: kpopupFade; }
.kpopup-anim-slide-down.kpopup-visible .kpopup-box { animation-name: kpopupSlideDown; }
.kpopup-anim-slide-up.kpopup-visible .kpopup-box { animation-name: kpopupSlideUp; }
.kpopup-anim-zoom.kpopup-visible .kpopup-box { animation-name: kpopupZoom; }

@keyframes kpopupFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes kpopupSlideDown { from { opacity: 0; transform: translateY(-40px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kpopupSlideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kpopupZoom { from { opacity: 0; transform: scale(0.85); } to { opacity: 1; transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
	.kpopup-visible .kpopup-box { animation: none; }
}

/* trigger button rendered by shortcode */
.kpopup-trigger-btn {
	display: inline-block;
	padding: 10px 18px;
	border: 0;
	border-radius: 6px;
	background: #2563eb;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}
.kpopup-trigger-btn:hover { background: #1d4fd7; }
