/* =========================================================
 * NationVoice — Footer Widget
 * Fully isolated under .nv-footer-wrapper
 * ========================================================= */

.nv-footer-wrapper {
	/* Brand variables */
	--nv-primary: #3c4d8c;
	--nv-secondary: #6b0024;
	--nv-accent: #ff6716;
	--nv-highlight: #ffff99;

	--nv-footer-bg: #0a1828;
	--nv-footer-bottom-bg: #060f1c;
	--nv-footer-divider: rgba(255, 255, 255, 0.08);

	--nv-text-soft: rgba(255, 255, 255, 0.78);
	--nv-link: rgba(255, 255, 255, 0.85);
	--nv-link-hover: var(--nv-accent);
	--nv-white: #ffffff;

	--nv-radius-sm: 6px;
	--nv-radius-md: 12px;
	--nv-radius-pill: 999px;
	--nv-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.20);

	--nv-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--nv-trans: 0.3s var(--nv-ease);

	--nv-font-body: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nv-font-heading: Georgia, 'Times New Roman', serif;

	font-family: var(--nv-font-body);
	color: var(--nv-text-soft);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.nv-footer-wrapper *,
.nv-footer-wrapper *::before,
.nv-footer-wrapper *::after {
	box-sizing: border-box;
}

/* Defeat Elementor / Hello / Salient bleed */
.elementor-page .nv-footer-wrapper,
.e-con .nv-footer-wrapper,
.elementor-widget-container .nv-footer-wrapper {
	color: var(--nv-text-soft) !important;
	font-family: var(--nv-font-body) !important;
}

/* =========================================================
 * FOOTER FRAME
 * ========================================================= */
.nv-footer-wrapper .nv-footer {
	width: 100%;
	background-color: var(--nv-footer-bg);
	color: var(--nv-text-soft);
	overflow: hidden;
}

.nv-footer-wrapper .nv-footer__container {
	max-width: 1320px;
	margin: 0 auto;
	padding: 80px 32px 48px;
	width: 100%;
}

.nv-footer-wrapper .nv-footer__top {
	border-bottom: 1px solid var(--nv-footer-divider);
}

/* =========================================================
 * COLUMNS
 * ========================================================= */
.nv-footer-wrapper .nv-footer__cols {
	display: grid;
	grid-template-columns: 1fr 1fr 1.4fr;
	gap: 64px;
	align-items: start;
	margin-bottom: 56px;
}

.nv-footer-wrapper .nv-footer__cols--1 { grid-template-columns: 1fr; }
.nv-footer-wrapper .nv-footer__cols--2 { grid-template-columns: 1fr 1fr; }
.nv-footer-wrapper .nv-footer__cols--3 { grid-template-columns: 1fr 1fr 1fr; }
.nv-footer-wrapper .nv-footer__cols--4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

.nv-footer-wrapper .nv-footer__col {
	min-width: 0;
}

.nv-footer-wrapper .nv-footer__col-title {
	margin: 0 0 24px;
	font-family: var(--nv-font-body) !important;
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 1.5px;
	color: var(--nv-white) !important;
	text-transform: uppercase;
	line-height: 1.3;
}

.nv-footer-wrapper .nv-footer__address-title {
	margin: 24px 0 8px;
	font-family: var(--nv-font-body) !important;
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0.5px;
	color: var(--nv-white) !important;
	line-height: 1.3;
}

/* Quick Links */
.nv-footer-wrapper .nv-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nv-footer-wrapper .nv-footer__links li { margin: 0; }

.nv-footer-wrapper .nv-footer__link {
	display: inline-block;
	font-family: var(--nv-font-body) !important;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 1px;
	color: var(--nv-link) !important;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: color var(--nv-trans), transform var(--nv-trans);
}

.nv-footer-wrapper .nv-footer__link:hover {
	color: var(--nv-link-hover) !important;
	transform: translateX(4px);
}

/* Contact column */
.nv-footer-wrapper .nv-footer__email,
.nv-footer-wrapper .nv-footer__address {
	margin: 0;
	font-family: var(--nv-font-body) !important;
	font-style: normal;
	font-size: 15px;
	line-height: 1.7;
	color: var(--nv-text-soft) !important;
}

.nv-footer-wrapper .nv-footer__email a {
	color: inherit !important;
	text-decoration: none !important;
	transition: color var(--nv-trans);
}

.nv-footer-wrapper .nv-footer__email a:hover {
	color: var(--nv-link-hover) !important;
}

/* =========================================================
 * NEWSLETTER FORM
 * ========================================================= */
.nv-footer-wrapper .nv-footer__col--news {
	min-width: 0;
}

.nv-footer-wrapper .nv-footer__news-heading {
	margin: 0 0 24px;
	font-family: var(--nv-font-body) !important;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.25;
	color: var(--nv-white) !important;
	max-width: 480px;
}

.nv-footer-wrapper .nv-footer__form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 460px;
}

.nv-footer-wrapper .nv-footer__input {
	width: 100%;
	padding: 14px 18px;
	background-color: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: 4px;
	font-family: var(--nv-font-body) !important;
	font-size: 15px;
	color: var(--nv-white) !important;
	outline: none;
	transition: border-color var(--nv-trans), background var(--nv-trans);
}

.nv-footer-wrapper .nv-footer__input::placeholder {
	color: rgba(255, 255, 255, 0.55);
	opacity: 1;
}

.nv-footer-wrapper .nv-footer__input:focus {
	border-color: var(--nv-accent);
	background-color: rgba(255, 255, 255, 0.10) !important;
}

.nv-footer-wrapper .nv-footer__submit {
	align-self: flex-start;
	padding: 12px 26px;
	background-color: #264653 !important;
	color: var(--nv-white) !important;
	border: 0;
	border-radius: 4px;
	font-family: var(--nv-font-body) !important;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.3px;
	cursor: pointer;
	transition: background var(--nv-trans), transform var(--nv-trans);
	box-shadow: var(--nv-shadow-md);
}

.nv-footer-wrapper .nv-footer__submit:hover {
	background-color: #1f3b46 !important;
	transform: translateY(-1px);
}

.nv-footer-wrapper .nv-footer__submit:active {
	transform: translateY(0);
}

/* reCAPTCHA placeholder (visual only) */
.nv-footer-wrapper .nv-footer__captcha {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	width: fit-content;
	padding: 12px 14px;
	background-color: #f9f9f9;
	border: 1px solid #d3d3d3;
	border-radius: 4px;
	color: #000 !important;
	font-family: 'Roboto', var(--nv-font-body) !important;
	font-size: 13px;
}

.nv-footer-wrapper .nv-footer__captcha-box {
	width: 24px;
	height: 24px;
	background: #fff;
	border: 2px solid #c1c1c1;
	border-radius: 2px;
	flex-shrink: 0;
}

.nv-footer-wrapper .nv-footer__captcha-label {
	color: #000 !important;
	margin-right: 12px;
}

.nv-footer-wrapper .nv-footer__captcha-logo {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.nv-footer-wrapper .nv-footer__captcha-mark {
	font-size: 10px;
	color: #555 !important;
	letter-spacing: 0.5px;
}

/* =========================================================
 * SOCIAL ROW
 * ========================================================= */
.nv-footer-wrapper .nv-footer__social {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
}

.nv-footer-wrapper .nv-footer__social li { margin: 0; }

.nv-footer-wrapper .nv-footer__social a {
	font-family: var(--nv-font-body) !important;
	font-size: 15px;
	font-weight: 500;
	color: var(--nv-link) !important;
	text-decoration: underline !important;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
	transition: color var(--nv-trans);
}

.nv-footer-wrapper .nv-footer__social a:hover {
	color: var(--nv-link-hover) !important;
}

/* =========================================================
 * MARQUEE — INFINITE SCROLL OUTLINED TEXT
 * ========================================================= */
.nv-footer-wrapper .nv-footer__marquee {
	width: 100%;
	overflow: hidden;
	font-family: var(--nv-font-heading) !important;
	font-weight: 700;
	font-size: 110px;
	line-height: 1.1;
	user-select: none;
	padding: 24px 0;
	mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
}

.nv-footer-wrapper .nv-footer__marquee-track {
	display: inline-flex;
	gap: 0;
	white-space: nowrap;
	will-change: transform;
	animation: nv-marquee-left 30s linear infinite;
}

.nv-footer-wrapper .nv-footer__marquee--right .nv-footer__marquee-track {
	animation-name: nv-marquee-right;
}

.nv-footer-wrapper .nv-footer__marquee-content {
	display: inline-flex;
	align-items: center;
	gap: 40px;
	flex-shrink: 0;
	padding-right: 40px; /* gap between the two duplicates so seam is invisible */
}

.nv-footer-wrapper .nv-footer__marquee-content span {
	display: inline-block;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.55);
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.nv-footer-wrapper .nv-footer__marquee-sep {
	-webkit-text-stroke: 0 !important;
	-webkit-text-fill-color: rgba(255, 255, 255, 0.55) !important;
	color: rgba(255, 255, 255, 0.55) !important;
	font-size: 0.8em;
	transform: translateY(-0.1em);
}

.nv-footer-wrapper .nv-footer__marquee--pause-hover:hover .nv-footer__marquee-track {
	animation-play-state: paused;
}

@keyframes nv-marquee-left {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@keyframes nv-marquee-right {
	from { transform: translateX(-50%); }
	to   { transform: translateX(0); }
}

/* =========================================================
 * BOTTOM BAR
 * ========================================================= */
.nv-footer-wrapper .nv-footer__bottom {
	background-color: var(--nv-footer-bottom-bg);
	border-top: 1px solid var(--nv-footer-divider);
	padding: 28px 0;
}

.nv-footer-wrapper .nv-footer__bottom .nv-footer__container {
	padding-top: 0;
	padding-bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: center;
}

.nv-footer-wrapper .nv-footer__bottom-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.nv-footer-wrapper .nv-footer__bottom-link {
	font-family: var(--nv-font-body) !important;
	font-size: 14px;
	color: var(--nv-link) !important;
	text-decoration: none !important;
	transition: color var(--nv-trans);
}

.nv-footer-wrapper .nv-footer__bottom-link:hover {
	color: var(--nv-link-hover) !important;
}

.nv-footer-wrapper .nv-footer__bottom-text {
	margin: 0;
	font-family: var(--nv-font-body) !important;
	font-size: 13px;
	color: var(--nv-text-soft) !important;
	text-align: center;
}

/* =========================================================
 * RESPONSIVE
 * ========================================================= */
@media (max-width: 1024px) {
	.nv-footer-wrapper .nv-footer__cols {
		grid-template-columns: 1fr 1fr;
		gap: 48px;
	}
	.nv-footer-wrapper .nv-footer__col--news {
		grid-column: 1 / -1;
	}
	.nv-footer-wrapper .nv-footer__container {
		padding: 64px 24px 40px;
	}
	.nv-footer-wrapper .nv-footer__news-heading {
		font-size: 26px;
	}
	.nv-footer-wrapper .nv-footer__marquee {
		font-size: 70px;
		padding: 18px 0;
	}
}

@media (max-width: 768px) {
	.nv-footer-wrapper .nv-footer__cols {
		grid-template-columns: 1fr;
		gap: 40px;
		margin-bottom: 40px;
	}
	.nv-footer-wrapper .nv-footer__container {
		padding: 56px 20px 32px;
	}
	.nv-footer-wrapper .nv-footer__col-title { font-size: 16px; }
	.nv-footer-wrapper .nv-footer__news-heading { font-size: 22px; max-width: 100%; }
	.nv-footer-wrapper .nv-footer__marquee {
		font-size: 44px;
		padding: 14px 0;
	}
	.nv-footer-wrapper .nv-footer__marquee-content {
		gap: 24px;
		padding-right: 24px;
	}
	.nv-footer-wrapper .nv-footer__bottom-row {
		flex-direction: column;
		gap: 8px;
	}
	.nv-footer-wrapper .nv-footer__social {
		gap: 20px;
	}
	.nv-footer-wrapper .nv-footer__form {
		max-width: 100%;
	}
	.nv-footer-wrapper .nv-footer__captcha {
		width: 100%;
	}
}

/* =========================================================
 * REDUCED MOTION
 * ========================================================= */
@media (prefers-reduced-motion: reduce) {
	.nv-footer-wrapper *,
	.nv-footer-wrapper *::before,
	.nv-footer-wrapper *::after {
		transition-duration: 0.01ms !important;
	}
	.nv-footer-wrapper .nv-footer__marquee-track {
		animation: none !important;
	}
}
