/**
 * Free Digital Marketing Report styles.
 *
 * The theme ships compiled Tailwind, so the report markup reuses that utility
 * vocabulary. Only rules the compiled bundle cannot provide live here:
 * print output, scroll offset for the pillar anchors, and reduced-motion.
 */

/* =================================================================
   COMPILED-BUNDLE SHIM — do not remove.

   The theme ships a PRE-COMPILED Tailwind bundle
   (themes/nemt-marketing/assets/css/tailwind.css) whose content scan does
   not include this plugin's PHP. Any utility class used only here is
   purged from that bundle and resolves to nothing.

   The 11 rules below were each verified ABSENT from the live bundle on
   2026-08-01. Without them the lead-form grid collapses, the pillar
   summary loses its columns, every "pass" indicator turns invisible, and
   screen-reader-only labels become visible text.

   Values mirror Tailwind's own output and reference the theme's CSS
   variables, so they stay correct if the palette changes. If the theme is
   ever rebuilt with this plugin in its content scan, these become
   harmless duplicates.
   ================================================================= */

.bg-growth { background-color: var(--color-growth, #10b981); }
.bg-slate-600 { background-color: var(--color-slate-600, #475569); }

.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.tracking-\[0\.25em\] { letter-spacing: 0.25em; }
.min-h-\[2\.4em\] { min-height: 2.4em; }
.scroll-mt-28 { scroll-margin-top: 7rem; }

.to-primary {
	--tw-gradient-to: var(--color-primary, #020617);
	--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}

.hover\:border-neon\/40:hover {
	border-color: color-mix(in oklab, var(--color-neon, #a3e635) 40%, transparent);
}

/* Screen-reader-only. Absent from the bundle, so the report's form labels
   would otherwise render as stray visible text above each input. */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

@media (min-width: 768px) {
	.md\:col-span-2 { grid-column: span 2 / span 2; }
	.md\:col-span-4 { grid-column: span 4 / span 4; }
}

/* ================= end shim ================= */

/* =================================================================
   PAGE VISUAL SYSTEM
   Ports the site's established visual language (eyebrow pills,
   gradient section rules, environment banding, de-boxed hairline
   rows) onto this page. Previously the page was built from raw
   utility classes while the rest of the site uses a bespoke system,
   which is why it read as flat and off-brand: 28 separate surfaces
   shared one recipe (dark fill + faint border + big radius).

   Depth here comes from the BACKGROUND changing between sections,
   not from adding more boxes.
   ================================================================= */

.nrx {
	--nrx-base: #020617;
	--nrx-plinth: #01040f;
	--nrx-stage: #0b1220;
	--nrx-panel: #0f172a;
	--nrx-lime: #a3e635;
	--nrx-indigo: #6366f1;
	--nrx-indigo-lt: #818cf8;
	--nrx-growth: #10b981;
	--nrx-ink: #f8fafc;
	--nrx-ink-3: #cbd5e1;
	--nrx-mute: #94a3b8;
	--nrx-mute-2: #64748b;
	--nrx-dim: #475569;
	--nrx-hair: rgba(255, 255, 255, 0.07);
	--nrx-gut: clamp(1.25rem, 4vw, 2.5rem);
	--nrx-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Section environments — adjacent sections never share a background. */
.nrx-sec {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(4rem, 7vw, 6.5rem);
	padding-inline: var(--nrx-gut);
}

.nrx-in {
	position: relative;
	z-index: 2;
	margin-inline: auto;
	width: 100%;
	max-width: 1180px;
}

.nrx-in--hero { max-width: 900px; }
.nrx-in--form { max-width: 760px; }
.nrx-in--prose { max-width: 780px; }

.nrx-env-hero {
	background:
		radial-gradient(circle at 78% 14%, rgba(99, 102, 241, 0.22), transparent 34%),
		radial-gradient(circle at 16% 90%, rgba(163, 230, 53, 0.09), transparent 30%),
		var(--nrx-base);
	padding-block: clamp(5rem, 8vw, 7rem) clamp(2.5rem, 4vw, 3.5rem);
}

.nrx-env-plinth {
	background:
		linear-gradient(180deg, rgba(99, 102, 241, 0.08), transparent 32%),
		radial-gradient(circle at 50% 0%, rgba(163, 230, 53, 0.12), transparent 38%),
		var(--nrx-plinth);
	border-top: 1px solid rgba(163, 230, 53, 0.14);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.nrx-env-stage {
	background: var(--nrx-stage);
	border-top: 1px solid var(--nrx-hair);
}

.nrx-env-flat { background: var(--nrx-base); }

/* Type */
.nrx-eyebrow {
	display: inline-flex;
	align-items: center;
	padding: 9px 15px;
	border: 1px solid rgba(163, 230, 53, 0.25);
	border-radius: 999px;
	background: rgba(2, 6, 23, 0.44);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: 0 0 36px rgba(163, 230, 53, 0.07);
	font-size: 0.6875rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.25em;
	color: var(--nrx-lime);
	margin-bottom: 1.5rem;
}

.nrx-h2 {
	font-size: clamp(1.9rem, 3.2vw, 2.75rem);
	font-weight: 900;
	font-style: italic;
	line-height: 1.04;
	letter-spacing: -0.035em;
	color: var(--nrx-ink);
	margin: 0;
}

/* Gradient rule under section titles — the site's own device. */
.nrx-rule::after {
	content: "";
	display: block;
	width: 84px;
	height: 4px;
	margin-top: 20px;
	border-radius: 99px;
	background: linear-gradient(90deg, var(--nrx-indigo), var(--nrx-lime));
}

.nrx-in--hero .nrx-rule::after { margin-inline: auto; }

.nrx-lead {
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	line-height: 1.68;
	color: var(--nrx-ink-3);
	margin: 1.25rem 0 0;
}

/* Scope strip — one hairline-divided row, replacing five identical tiles. */
.nrx-scope {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 2.5rem auto 0;
	max-width: 1000px;
	padding: 0;
	border-top: 1px solid var(--nrx-hair);
	border-bottom: 1px solid var(--nrx-hair);
	list-style: none;
}

.nrx-scope li {
	flex: 1 1 180px;
	padding: 1.15rem 1.25rem;
	border-left: 1px solid var(--nrx-hair);
	font-size: 0.6875rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--nrx-ink-3);
}

.nrx-scope li:first-child { border-left: 0; }

/* Trust pills */
.nrx-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.nrx-trust li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--nrx-hair);
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.5);
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--nrx-mute);
}

.nrx-trust li::before {
	content: "";
	width: 13px;
	height: 13px;
	flex: 0 0 13px;
	border-radius: 50%;
	background: rgba(163, 230, 53, 0.14);
	box-shadow: inset 0 0 0 1px rgba(163, 230, 53, 0.45);
}

/* Framing blocks above the form (why we ask / what we won't do). */
.nrx-frame {
	border-radius: 20px;
	padding: 1.6rem 1.75rem;
}

.nrx-frame + .nrx-frame { margin-top: 1rem; }

.nrx-frame--indigo {
	background: rgba(99, 102, 241, 0.07);
	border: 1px solid rgba(99, 102, 241, 0.22);
}

.nrx-frame--lime {
	background: rgba(163, 230, 53, 0.06);
	border: 1px solid rgba(163, 230, 53, 0.22);
}

.nrx-frame h3 {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin: 0 0 0.7rem;
}

.nrx-frame--indigo h3 { color: var(--nrx-indigo-lt); }
.nrx-frame--lime h3 { color: var(--nrx-lime); }

.nrx-frame p {
	color: var(--nrx-mute);
	font-size: 0.9rem;
	line-height: 1.7;
	margin: 0 0 0.7rem;
}

.nrx-frame p:last-child { margin-bottom: 0; }
.nrx-frame strong { color: #e2e8f0; }

/*
 * De-boxed rows. Replaces the stack of identical dark cards used for the
 * explainer and FAQ. Identity comes from an index numeral and a lime rule
 * rather than from another filled rectangle — this alone removes ten boxes.
 */
.nrx-rows {
	list-style: none;
	padding: 0;
	margin: 2.5rem 0 0;
	border-top: 1px solid var(--nrx-hair);
}

.nrx-row {
	position: relative;
	padding: 1.85rem 0 1.85rem 3.25rem;
	border-bottom: 1px solid var(--nrx-hair);
}

.nrx-row::before {
	content: attr(data-index);
	position: absolute;
	left: 0;
	top: 1.95rem;
	font-size: 0.8125rem;
	font-weight: 900;
	font-style: italic;
	letter-spacing: 0.06em;
	color: var(--nrx-dim);
}

.nrx-row::after {
	content: "";
	position: absolute;
	left: 1.75rem;
	top: 2rem;
	bottom: 2rem;
	width: 2px;
	border-radius: 99px;
	background: linear-gradient(180deg, var(--nrx-lime), rgba(163, 230, 53, 0));
}

/* Headings here are WHITE, not lime. Five lime headings in a stack destroys
   lime's meaning as the action colour — it must read as "click me". */
.nrx-row h3 {
	font-size: 1.0625rem;
	font-weight: 800;
	color: var(--nrx-ink);
	margin: 0 0 0.5rem;
}

.nrx-row p {
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--nrx-mute);
	margin: 0;
}

/* FAQ as a hairline accordion list. */
.nrx-faq {
	border-top: 1px solid var(--nrx-hair);
	margin-top: 2.5rem;
}

.nrx-faq details { border-bottom: 1px solid var(--nrx-hair); }

.nrx-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.4rem 0.25rem;
	cursor: pointer;
	list-style: none;
	font-size: 1rem;
	font-weight: 800;
	color: var(--nrx-ink);
}

.nrx-faq summary::-webkit-details-marker { display: none; }

.nrx-faq summary::after {
	content: "+";
	font-size: 1.35rem;
	font-weight: 900;
	line-height: 1;
	color: var(--nrx-lime);
	transition: transform 240ms var(--nrx-ease);
}

.nrx-faq details[open] summary::after { transform: rotate(45deg); }

.nrx-faq p {
	padding: 0 0.25rem 1.5rem;
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.72;
	color: var(--nrx-mute);
}

/* Tools grid — placed AFTER the closing CTA so it is not an exit ramp
   sitting immediately before the ask. */
.nrx-tools {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.875rem;
	margin-top: 2.5rem;
	padding: 0;
	list-style: none;
}

.nrx-tool {
	position: relative;
	overflow: hidden;
	display: block;
	padding: 1.5rem 1.4rem;
	background: var(--nrx-panel);
	border: 1px solid var(--nrx-hair);
	border-radius: 20px;
	text-decoration: none;
	transition: transform 300ms var(--nrx-ease), border-color 240ms ease, box-shadow 300ms ease;
}

.nrx-tool::before {
	content: attr(data-index);
	position: absolute;
	right: 14px;
	top: 10px;
	font-size: 40px;
	font-weight: 900;
	font-style: italic;
	line-height: 1;
	letter-spacing: -0.06em;
	color: rgba(99, 102, 241, 0.09);
}

.nrx-tool:hover {
	transform: translateY(-5px);
	border-color: rgba(163, 230, 53, 0.5);
	box-shadow: 0 26px 60px rgba(2, 6, 23, 0.5);
}

.nrx-tool strong {
	display: block;
	font-size: 0.9375rem;
	font-weight: 800;
	color: var(--nrx-ink);
	margin-bottom: 0.35rem;
	position: relative;
}

.nrx-tool span {
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--nrx-mute);
	position: relative;
}

/* Closing CTA — the site's own indigo band, not a near-black gradient. */
.nrx-cta {
	background: linear-gradient(135deg, #6366f1, #4338ca, #6366f1);
	background-size: 220% 220%;
	text-align: center;
}

.nrx-cta .nrx-h2 { color: #fff; }

.nrx-cta p {
	color: rgba(255, 255, 255, 0.87);
	font-size: 1rem;
	line-height: 1.7;
	margin: 1.1rem auto 2rem;
	max-width: 56ch;
}

.nrx-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 1.15rem 2.25rem;
	border-radius: 14px;
	background: var(--nrx-lime);
	color: #020617;
	font-size: 0.8125rem;
	font-weight: 900;
	font-style: italic;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
	box-shadow: 0 14px 40px -10px rgba(163, 230, 53, 0.45);
	transition: filter 220ms ease, box-shadow 220ms ease, transform 120ms ease;
}

.nrx-cta-btn:hover {
	filter: brightness(1.06);
	box-shadow: 0 18px 50px -8px rgba(163, 230, 53, 0.6);
}

.nrx-cta-btn:active { transform: scale(0.985); }

.nrx-cta-note {
	margin-top: 1.1rem;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 1023px) {
	.nrx-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.nrx-tools { grid-template-columns: 1fr; }
	.nrx-scope li {
		flex: 1 1 100%;
		border-left: 0;
		border-top: 1px solid var(--nrx-hair);
	}
	.nrx-scope li:first-child { border-top: 0; }
	.nrx-trust { justify-content: flex-start; }
	.nrx-frame { padding: 1.35rem 1.25rem; }
}

/* =================================================================
   GATED LEAD FORM
   Written as plain CSS with explicit values, not utility classes:
   the theme's Tailwind bundle is pre-compiled and does not scan this
   plugin, so any class not already used elsewhere in the theme is
   purged. Explicit CSS also gives the spacing and hierarchy control
   this section needs as the page's primary conversion element.
   ================================================================= */

.nemt-report-tool {
	--nrf-neon: #a3e635;
	--nrf-accent: #6366f1;
	--nrf-growth: #10b981;
	--nrf-ink: #f8fafc;
	--nrf-muted: #94a3b8;
	--nrf-dim: #64748b;
	--nrf-line: rgba(255, 255, 255, 0.09);
	--nrf-panel: #0f172a;
	--nrf-well: #020617;
	--nrf-danger: #f87171;
}

.nrf-shell {
	max-width: 52rem;
	margin: 0 auto;
}

/* The card is the focal object on the page — give it real elevation
   and a lit top edge rather than another flat dark rectangle. */
.nrf-card {
	position: relative;
	background:
		linear-gradient(180deg, rgba(99, 102, 241, 0.18) 0%, rgba(15, 23, 42, 0.96) 35%, #070c19 100%);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 24px;
	padding: clamp(2rem, 4vw, 3.25rem);
	box-shadow:
		0 34px 90px -24px rgba(0, 0, 0, 0.86),
		0 0 0 1px rgba(163, 230, 53, 0.06),
		inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* Lime hairline across the top edge — ties the card to the brand accent. */
.nrf-card::before {
	content: "";
	position: absolute;
	inset: -1px -1px auto -1px;
	height: 2px;
	border-radius: 28px 28px 0 0;
	background: linear-gradient(90deg, transparent, var(--nrf-neon), transparent);
	opacity: 0.65;
}

.nrf-head {
	margin-bottom: 2.25rem;
}

.nrf-eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nrf-neon);
	background: rgba(163, 230, 53, 0.09);
	border: 1px solid rgba(163, 230, 53, 0.22);
	border-radius: 999px;
	padding: 0.45rem 0.9rem;
	margin-bottom: 1.1rem;
}

.nrf-title {
	font-size: clamp(1.75rem, 4vw, 2.4rem);
	font-weight: 900;
	font-style: italic;
	letter-spacing: -0.02em;
	line-height: 1.05;
	color: var(--nrf-ink);
	margin: 0 0 0.6rem;
}

.nrf-sub {
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--nrf-muted);
	margin: 0;
	max-width: 34rem;
}

/* Two columns on desktop, one on mobile. Row gap deliberately larger
   than column gap so fields read as rows, not a dense block. */
.nrf-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem 1.25rem;
	margin-bottom: 1.75rem;
}

.nrf-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.nrf-field label {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nrf-muted);
	margin-bottom: 0.6rem;
}

.nrf-req {
	color: var(--nrf-neon);
	margin-left: 0.15rem;
}

.nrf-opt {
	color: var(--nrf-dim);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: none;
	font-size: 0.7rem;
}

.nrf-field input[type="text"],
.nrf-field input[type="email"],
.nrf-field input[type="tel"] {
	width: 100%;
	background: var(--nrf-well);
	border: 1px solid var(--nrf-line);
	border-radius: 14px;
	padding: 0.95rem 1.1rem;
	color: var(--nrf-ink);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.4;
	transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
	-webkit-appearance: none;
	appearance: none;
}

.nrf-legal {
	margin: -0.25rem 0 1.35rem;
	color: var(--nrf-muted);
	font-size: 0.76rem;
	line-height: 1.65;
}

.nrf-legal a {
	color: var(--nrf-neon);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.nrf-field input::placeholder {
	color: #475569;
	opacity: 1;
}

.nrf-field input:hover {
	border-color: rgba(255, 255, 255, 0.16);
}

.nrf-field input:focus {
	outline: none;
	border-color: var(--nrf-neon);
	background: #050b1a;
	box-shadow: 0 0 0 3px rgba(163, 230, 53, 0.16);
}

/* Error state is set by JS on the field wrapper. */
.nrf-field.is-invalid input {
	border-color: var(--nrf-danger);
	box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.12);
}

.nrf-err {
	display: none;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--nrf-danger);
	margin: 0.45rem 0 0;
}

.nrf-field.is-invalid .nrf-err {
	display: block;
}

.nrf-hint {
	font-size: 0.72rem;
	color: var(--nrf-dim);
	margin: 0.45rem 0 0;
	line-height: 1.45;
}

.nrf-field.is-invalid .nrf-hint {
	display: none;
}

/* Honeypot — visually and audibly gone, still fillable by bots. */
.nrf-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Contact preference — visually a peer of the form fields, not fine print.
   Offering a real "don't call me" choice is what makes the phone field
   acceptable, so it gets proper weight. */
.nrf-pref {
	border: 1px solid var(--nrf-line);
	border-radius: 16px;
	padding: 1.25rem 1.3rem;
	margin: 0 0 1.25rem;
	background: rgba(99, 102, 241, 0.05);
}

.nrf-pref legend {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nrf-muted);
	padding: 0 0.4rem;
	margin-left: -0.4rem;
}

.nrf-pref-opts {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-top: 0.9rem;
}

.nrf-pref-opts label {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	font-size: 0.85rem;
	font-weight: 500;
	color: #cbd5e1;
	cursor: pointer;
	padding: 0.55rem 0.75rem;
	border: 1px solid transparent;
	border-radius: 11px;
	transition: background 140ms ease, border-color 140ms ease;
	text-transform: none;
	letter-spacing: normal;
	margin: 0;
}

.nrf-pref-opts label:hover {
	background: rgba(255, 255, 255, 0.035);
	border-color: var(--nrf-line);
}

.nrf-pref-opts input[type="radio"] {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	accent-color: var(--nrf-neon);
	cursor: pointer;
}

.nrf-pref-opts input[type="radio"]:checked + span {
	color: var(--nrf-ink);
	font-weight: 600;
}

.nrf-pref .nrf-err {
	margin-top: 0.8rem;
}

.nrf-pref.is-invalid {
	border-color: var(--nrf-danger);
	background: rgba(248, 113, 113, 0.06);
}

.nrf-pref.is-invalid .nrf-err {
	display: block;
}

.nrf-consent {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid var(--nrf-line);
	border-radius: 16px;
	padding: 1.1rem 1.2rem;
	margin-bottom: 1.5rem;
	cursor: pointer;
}

.nrf-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.1rem;
	accent-color: var(--nrf-neon);
	cursor: pointer;
}

.nrf-consent span {
	font-size: 0.78rem;
	line-height: 1.6;
	color: var(--nrf-muted);
}

.nrf-consent a {
	color: var(--nrf-neon);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.nrf-consent.is-invalid {
	border-color: var(--nrf-danger);
	background: rgba(248, 113, 113, 0.06);
}

.nrf-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	width: 100%;
	background: var(--nrf-neon);
	color: #0a0f1e;
	border: 0;
	border-radius: 16px;
	padding: 1.15rem 1.5rem;
	font-size: 0.8rem;
	font-weight: 900;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 140ms ease, box-shadow 200ms ease, filter 140ms ease;
	box-shadow: 0 14px 34px -12px rgba(163, 230, 53, 0.6);
}

.nrf-submit:hover:not(:disabled) {
	transform: translateY(-1px);
	filter: brightness(1.06);
	box-shadow: 0 18px 40px -12px rgba(163, 230, 53, 0.7);
}

.nrf-submit:active:not(:disabled) {
	transform: translateY(0);
}

.nrf-submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	box-shadow: none;
}

.nrf-submit-icon {
	width: 1.1rem;
	height: 1.1rem;
}

.nrf-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

.nrf-trust li {
	position: relative;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--nrf-dim);
	padding-left: 1.05rem;
	white-space: nowrap;
}

.nrf-trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.34em;
	width: 0.6rem;
	height: 0.35rem;
	border-left: 2px solid var(--nrf-growth);
	border-bottom: 2px solid var(--nrf-growth);
	transform: rotate(-45deg);
}

.nrf-notice {
	border-radius: 14px;
	padding: 0.95rem 1.1rem;
	font-size: 0.85rem;
	line-height: 1.55;
	margin-bottom: 1.25rem;
}

.nrf-notice--warn {
	background: rgba(120, 53, 15, 0.35);
	border: 1px solid rgba(245, 158, 11, 0.28);
	color: #fcd34d;
}

.nrf-notice--error {
	background: rgba(127, 29, 29, 0.32);
	border: 1px solid rgba(248, 113, 113, 0.3);
	color: #fca5a5;
}

.nrf-notice.hidden {
	display: none;
}

@media (max-width: 640px) {
	.nrf-card {
		padding: 1.75rem 1.35rem;
		border-radius: 22px;
	}
	.nrf-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.nrf-trust {
		justify-content: flex-start;
		gap: 0.5rem 1rem;
	}
}

/* Anchor jumps from the pillar summary must clear the fixed header. */
.nemt-report [id^="pillar-"] {
	scroll-margin-top: 7rem;
}

/* Progress rows: keep row height stable as icons swap in and out. */
#nemt-report [data-stage-row] {
	min-height: 1.5rem;
}

#nemt-report [data-stage-row] [data-text] {
	transition: color 200ms ease;
}

/* The lead form sits on a gradient; keep inputs legible in both themes. */
.nemt-report-lead input::placeholder {
	opacity: 1;
}

.nemt-report-lead input:focus {
	outline: 2px solid transparent;
	outline-offset: 2px;
}

/* Visible focus ring for keyboard users — the theme's default is low contrast
   against the report's dark panels. */
.nemt-report a:focus-visible,
.nemt-report button:focus-visible,
.nemt-report input:focus-visible,
#nemt-report a:focus-visible,
#nemt-report button:focus-visible,
#nemt-report input:focus-visible {
	outline: 3px solid #a3e635;
	outline-offset: 2px;
	border-radius: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
	#nemt-report *,
	.nemt-report * {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------------------------------------------------------------
   Print / Save-as-PDF.
   Business owners forward this report internally, so it must print
   as a clean document rather than a screenshot of a dark website.
   --------------------------------------------------------------- */
@media print {
	/*
	 * Hide the page chrome explicitly rather than with
	 *   body > *:not(:has(#nemt-report-output))
	 * That selector hides EVERY direct child of <body> whenever no element
	 * with that id exists — i.e. any print before a report has been generated
	 * produces a completely blank page. Enumerating what to hide is verbose
	 * but cannot fail open.
	 */
	header,
	footer,
	nav,
	#main-nav,
	#wpadminbar,
	.nrx-env-hero,
	.nrx-env-plinth,
	.nrx-sticky,
	.nrx-cta,
	.nrx-tools,
	.nemt-report-lead,
	#nemt-report [data-form-wrap],
	#nemt-report [data-progress],
	[data-report-reset],
	[data-report-print] {
		display: none !important;
	}

	html,
	body {
		background: #ffffff !important;
		color: #0f172a !important;
	}

	.nemt-report,
	.nemt-report * {
		background: transparent !important;
		color: #0f172a !important;
		box-shadow: none !important;
		text-shadow: none !important;
	}

	.nemt-report > div {
		border: 1px solid #cbd5e1 !important;
		border-radius: 8px !important;
		padding: 16px !important;
		margin-bottom: 12px !important;
		break-inside: avoid;
		page-break-inside: avoid;
	}

	/* Keep the status colours meaningful in print. */
	.nemt-report .text-growth { color: #15803d !important; }
	.nemt-report .text-neon   { color: #3f6212 !important; }
	.nemt-report .text-yellow-400 { color: #a16207 !important; }
	.nemt-report .text-red-400,
	.nemt-report .text-red-500 { color: #b91c1c !important; }
	.nemt-report .text-slate-400,
	.nemt-report .text-slate-500 { color: #475569 !important; }

	.nemt-report .bg-growth { background: #15803d !important; }
	.nemt-report .bg-yellow-400 { background: #a16207 !important; }
	.nemt-report .bg-red-500 { background: #b91c1c !important; }
	.nemt-report .bg-slate-600 { background: #94a3b8 !important; }

	/* Decorative blur orbs waste ink. */
	.nemt-report .blur-\[120px\],
	.nemt-report .blur-\[100px\] {
		display: none !important;
	}

	a[href]::after {
		content: "";
	}
}
