/* ============== Shared form ============== */
:root { --nkt-nl-accent: #f5761a; --nkt-nl-accent-hover: #ed6e00; --nkt-nl-on-accent: #fff; } /* sites override on .nkt-nl-popup / .nkt-nl-inline */
.nkt-nl-content { font-family: 'mundial', 'Inter', Arial, sans-serif; }
.nkt-nl-intro { margin: 0 0 14px; font-size: 15px; line-height: 1.45; color: #333; }
.nkt-nl-intro[hidden] { display: none; }
.nkt-nl-links { margin: 14px 0 0; font-size: 14px; line-height: 1.5; color: #555; }
.nkt-nl-links[hidden] { display: none; }
.nkt-nl-links-label { display: block; margin: 0 0 4px; font-weight: 600; color: #333; }
.nkt-nl-links a { color: var(--nkt-nl-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.nkt-nl-links-sep { margin: 0 8px; opacity: 0.6; }
.nkt-nl-eyebrow {
	font-size: 11px; font-weight: 600; letter-spacing: 0.12em;
	text-transform: uppercase; color: var(--nkt-nl-accent); margin: 0 0 8px;
}
.nkt-nl-headline {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 24px; font-weight: 600; color: #1a1a1a;
	margin: 0 0 14px; line-height: 1.25; text-transform: none; letter-spacing: normal;
}
.nkt-nl-bullets {
	list-style: none; padding: 0; margin: 0 0 22px;
}
.nkt-nl-bullets li {
	font-size: 14px; color: #555; padding: 5px 0 5px 20px;
	position: relative; line-height: 1.45;
}
.nkt-nl-bullets li::before {
	content: '\2022'; position: absolute; left: 0;
	color: var(--nkt-nl-accent); font-weight: 700;
}
.nkt-nl-form { margin: 0; }
.nkt-nl-input-row { display: flex; gap: 8px; }
.nkt-nl-email {
	flex: 1; min-width: 0; padding: 12px 16px;
	border: 1px solid #ddd; border-radius: 10px;
	font-size: 14px; color: #222; outline: none;
	transition: border-color 0.2s; -webkit-appearance: none;
	font-family: inherit;
}
.nkt-nl-email:focus { border-color: var(--nkt-nl-accent); }
.nkt-nl-submit {
	padding: 12px 22px; background: var(--nkt-nl-accent); color: var(--nkt-nl-on-accent, #fff);
	border: none; border-radius: 10px; font-size: 14px;
	font-weight: 600; cursor: pointer; white-space: nowrap;
	transition: background 0.2s; font-family: inherit;
}
.nkt-nl-submit:hover { background: var(--nkt-nl-accent-hover); }
.nkt-nl-submit[disabled] { opacity: 0.6; cursor: wait; }
.nkt-nl-privacy {
	font-size: 12px; color: #555; margin: 10px 0 0; line-height: 1.4;
}
.nkt-nl-error {
	font-size: 12px; color: #c62828; margin: 8px 0 0;
}
.nkt-nl-success { text-align: center; padding: 10px 0; }
.nkt-nl-success-heading {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 20px; font-weight: 600; color: #1a1a1a; margin: 0 0 8px;
}
.nkt-nl-success-message { font-size: 14px; color: #555; margin: 0; }

/* ============== Popup ============== */
.nkt-nl-popup {
	position: fixed; inset: 0; z-index: 9999;
}
.nkt-nl-popup[hidden] { display: none; }
.nkt-nl-popup-backdrop {
	position: absolute; inset: 0;
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0; transition: opacity 0.3s ease;
}
.nkt-nl-popup-card {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -50%) scale(0.95);
	opacity: 0;
	transition: opacity 0.35s ease, transform 0.35s ease;
	width: 420px; max-width: calc(100vw - 40px);
	background: #fff; border-radius: 16px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.25);
	overflow: hidden;
}
.nkt-nl-popup-accent {
	height: 4px;
	background: linear-gradient(90deg, var(--nkt-nl-accent-hover), var(--nkt-nl-accent));
}
.nkt-nl-mobile-hint { display: none; padding: 10px 0 0; text-align: center; }
.nkt-nl-mobile-hint span {
	display: inline-block; width: 36px; height: 4px;
	background: #ddd; border-radius: 2px;
}
.nkt-nl-close {
	position: absolute; top: 14px; right: 14px;
	width: 32px; height: 32px; border: none; background: transparent;
	cursor: pointer; border-radius: 50%; display: flex;
	align-items: center; justify-content: center;
	font-size: 20px; color: #666; line-height: 1;
	transition: color 0.2s;
}
.nkt-nl-close:hover { color: #1a1a1a; }
.nkt-nl-close:focus-visible, .nkt-nl-inline-close:focus-visible, .nkt-nl-submit:focus-visible { outline: 2px solid #1a1a1a; outline-offset: 2px; }
.nkt-nl-popup-body { padding: 28px 32px; }

.nkt-nl-popup.is-visible .nkt-nl-popup-backdrop { opacity: 1; }
.nkt-nl-popup.is-visible .nkt-nl-popup-card {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

/* Phones: a compact panel that slides up from the bottom and leaves the page readable and
   usable: no dimmed backdrop, no blocking layer (Google's "intrusive interstitial" line). */
@media (max-width: 600px) {
	.nkt-nl-popup { pointer-events: none; inset: auto 0 0 0; }
	.nkt-nl-popup-backdrop { display: none; }
	.nkt-nl-popup-card {
		position: relative; top: auto; left: 0;
		transform: translateY(100%);
		width: 100%; max-width: 100%;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.18);
		pointer-events: auto;
	}
	.nkt-nl-popup.is-visible .nkt-nl-popup-card { transform: translateY(0); }
	.nkt-nl-popup-body { padding: 18px 20px calc(18px + env(safe-area-inset-bottom)); }
	.nkt-nl-popup .nkt-nl-eyebrow { display: none; }
	.nkt-nl-popup .nkt-nl-headline { font-size: 19px; margin: 0 36px 8px 0; }
	.nkt-nl-popup .nkt-nl-intro { font-size: 14px; margin: 0 0 12px; }
	.nkt-nl-popup .nkt-nl-bullets { display: none; }
	.nkt-nl-close { top: 8px; right: 8px; }
	.nkt-nl-email { font-size: 16px; } /* 16px stops iOS zooming into the field */
}

/* Placement block (nkt_newsletter_render_inline with a section wrapper) */
.nkt-nl-section { padding: 48px 20px; }
@media (max-width: 600px) {
	.nkt-nl-section { padding: 32px 16px; }
	.nkt-nl-inline { padding: 22px 20px; }
	.nkt-nl-input-row { flex-wrap: wrap; }
	.nkt-nl-inline .nkt-nl-submit { flex: 1 0 100%; }
}

/* ============== Inline + Spotlight ============== */
.nkt-nl-inline {
	position: relative;
	background: #fff; color: #1a1a1a;
	max-width: 560px; margin: 0 auto;
	padding: 28px 32px;
	border-radius: 16px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
	transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.nkt-nl-inline-close {
	position: absolute; top: 10px; right: 10px;
	width: 28px; height: 28px; border: none; background: transparent;
	cursor: pointer; font-size: 18px; color: #666; line-height: 1;
	border-radius: 50%; transition: color 0.2s;
}
.nkt-nl-inline-close:hover { color: #1a1a1a; }
.nkt-nl-inline[hidden] { display: none; }

.nkt-nl-spotlight-overlay {
	position: fixed; inset: 0;
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
	z-index: 50;
}
.nkt-nl-spotlight-overlay.is-visible { opacity: 1; }

.nkt-nl-inline.is-spotlit {
	z-index: 51;
	transform: scale(1.02);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.nkt-nl-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.nkt-nl-content [hidden] { display: none !important; } /* theme list/paragraph styles must not un-hide empty slots */
.nkt-nl-form .nkt-nl-email { border-radius: 10px; background: #fff; border: 1px solid #ccc; box-shadow: none; } /* beat theme input[type=email] rules */
.nkt-nl-form .nkt-nl-email:focus { border-color: var(--nkt-nl-accent); }

/* ===== Theme isolation =====
   GeneratePress styles every button:hover/:focus { color:#fff; background:#3f3f3f } (plus its
   own padding), which turned the x into a dark oval. Restate our buttons' states with enough
   specificity to win. Submit = the site's CTA (Find a Center): brand orange, white text, pill. */
.nkt-nl-form .nkt-nl-submit,
.nkt-nl-form .nkt-nl-submit:hover,
.nkt-nl-form .nkt-nl-submit:focus {
	color: var(--nkt-nl-on-accent, #fff); border: 0; border-radius: 999px;
	padding: 12px 24px; font-weight: 600; line-height: 1.2; box-shadow: none;
}
.nkt-nl-form .nkt-nl-submit { background: var(--nkt-nl-accent); }
.nkt-nl-form .nkt-nl-submit:hover,
.nkt-nl-form .nkt-nl-submit:focus { background: var(--nkt-nl-accent-hover); }
.nkt-nl-form .nkt-nl-email { border-radius: 999px; padding: 12px 18px; }

.nkt-nl-popup .nkt-nl-close,
.nkt-nl-inline .nkt-nl-inline-close {
	padding: 0; min-width: 0; min-height: 0; border: 0; box-shadow: none;
	background: transparent; color: #666; border-radius: 50%; line-height: 1;
}
.nkt-nl-popup .nkt-nl-close:hover,
.nkt-nl-popup .nkt-nl-close:focus,
.nkt-nl-inline .nkt-nl-inline-close:hover,
.nkt-nl-inline .nkt-nl-inline-close:focus {
	background: #f2f2f2; color: #1a1a1a;
}
