/* ============================================================
 * NRC ACTION BALLOT TOOL — STYLESHEET
 * Palette: red #de120c, navy #011e6b, green #13aa22, white, near-black
 * Rules: no gray, no rounded corners, no drop shadows, flat design.
 * Third Branch PAC badge uses gold #c9a961 for judicial endorsements.
 * ============================================================ */

:root {
	--nrca-red: #de120c;
	--nrca-navy: #011e6b;
	--nrca-green: #13aa22;
	--nrca-black: #0d0d0d;
	--nrca-white: #ffffff;
	--nrca-cream: #f8f5ee;
	--nrca-gold: #c9a961;
}

/* ══════════════════════════════════════════════════════════
 * VOTER HUB PAGE — HERO & LAYOUT
 * ══════════════════════════════════════════════════════════ */

.voter-hub {
	font-family: "Proxima Nova", "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--nrca-black);
	background: var(--nrca-white);
}

.voter-hub .container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}

/* ── HERO ────────────────────────────────────────────── */
.voter-hub-hero {
	background: var(--nrca-white);
	padding: 60px 0 40px;
	border-bottom: 6px solid var(--nrca-black);
}

.voter-hub-hero .section-eyebrow {
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nrca-red);
	margin: 0 0 12px;
	padding: 0;
}

.voter-hub-hero h1 {
	font-size: clamp(40px, 6vw, 72px);
	font-weight: 900;
	line-height: 0.95;
	letter-spacing: -0.02em;
	margin: 0 0 20px;
	text-transform: uppercase;
	color: var(--nrca-black);
}

.voter-hub-hero h1 em {
	font-style: italic;
	color: var(--nrca-red);
	font-weight: 900;
}

.voter-hub-hero .hero-lead {
	font-size: 18px;
	line-height: 1.5;
	margin: 0;
	max-width: 720px;
	color: var(--nrca-black);
	font-weight: 500;
}

/* ── BALLOT TOOL SECTION WRAPPER ─────────────────────── */
.ballot-tool-section {
	background: var(--nrca-white);
	padding: 20px 0 0;
}

/* ══════════════════════════════════════════════════════════
 * BALLOT TOOL — FORM
 * ══════════════════════════════════════════════════════════ */

.ballot-tool-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 24px 80px;
	font-family: "Proxima Nova", "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--nrca-black);
	box-sizing: border-box;
}

.ballot-tool-header {
	margin-bottom: 32px;
	border-bottom: 4px solid var(--nrca-black);
	padding-bottom: 24px;
}

.ballot-tool-header h1 {
	font-size: clamp(32px, 5vw, 52px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
	text-transform: uppercase;
	color: var(--nrca-black);
}

.ballot-tool-header h1 em {
	font-style: italic;
	color: var(--nrca-red);
	font-weight: 900;
}

.ballot-tool-header p {
	font-size: 17px;
	line-height: 1.5;
	margin: 0;
	max-width: 640px;
	color: var(--nrca-black);
}

#ballot-form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0;
	margin-bottom: 20px;
	border: 3px solid var(--nrca-black);
}

#ballot-address {
	padding: 18px 20px;
	font-size: 17px;
	font-family: inherit;
	border: none;
	background: var(--nrca-white);
	color: var(--nrca-black);
	outline: none;
	width: 100%;
	box-sizing: border-box;
}

#ballot-address::placeholder {
	color: #666;
	opacity: 1;
}

#ballot-address:focus {
	background: var(--nrca-cream);
}

#ballot-submit {
	padding: 18px 32px;
	font-size: 15px;
	font-weight: 900;
	font-family: inherit;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border: none;
	background: var(--nrca-red);
	color: var(--nrca-white);
	cursor: pointer;
	transition: background 0.15s;
}

#ballot-submit:hover:not(:disabled) {
	background: var(--nrca-navy);
}

#ballot-submit:disabled {
	background: var(--nrca-black);
	cursor: wait;
	opacity: 0.7;
}

.ballot-helper {
	font-size: 14px;
	color: var(--nrca-black);
	line-height: 1.5;
	margin: 0 0 40px;
	padding-left: 16px;
	border-left: 3px solid var(--nrca-red);
}

.ballot-helper strong {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 13px;
}

/* ── STATE PANELS ────────────────────────────────────── */
#ballot-loading,
#ballot-error,
#ballot-results {
	display: none;
}

#ballot-loading.active,
#ballot-error.active,
#ballot-results.active {
	display: block;
}

#ballot-loading {
	padding: 60px 30px;
	text-align: center;
	background: var(--nrca-cream);
	border-left: 8px solid var(--nrca-red);
}

.ballot-spinner {
	display: inline-block;
	width: 40px;
	height: 40px;
	border: 4px solid var(--nrca-black);
	border-top-color: var(--nrca-red);
	animation: nrca-spin 0.8s linear infinite;
	margin-bottom: 20px;
}

@keyframes nrca-spin {
	to { transform: rotate(360deg); }
}

#ballot-loading p {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

#ballot-loading .ballot-loading-sub {
	font-size: 13px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	margin-top: 8px;
	opacity: 0.8;
}

#ballot-error {
	padding: 30px;
	background: var(--nrca-cream);
	border-left: 12px solid var(--nrca-red);
}

#ballot-error h3 {
	margin: 0 0 12px;
	font-size: 20px;
	font-weight: 900;
	color: var(--nrca-red);
	text-transform: uppercase;
}

#ballot-error p {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.5;
}

#ballot-error button {
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 800;
	font-family: inherit;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border: 2px solid var(--nrca-black);
	background: var(--nrca-white);
	color: var(--nrca-black);
	cursor: pointer;
}

#ballot-error button:hover {
	background: var(--nrca-black);
	color: var(--nrca-white);
}

/* ── RESULTS ─────────────────────────────────────────── */
#ballot-results {
	background: var(--nrca-white);
	border-top: 8px solid var(--nrca-red);
	padding-top: 12px;
}

.ballot-results-header {
	padding: 32px 0 24px;
	border-bottom: 4px solid var(--nrca-black);
	margin-bottom: 44px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	flex-wrap: wrap;
}

#ballot-results-address {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--nrca-red);
}

#ballot-results-address em {
	display: block;
	margin-top: 6px;
	font-style: normal;
	color: var(--nrca-black);
	font-weight: 900;
	font-size: 22px;
	text-transform: none;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

#ballot-summary {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--nrca-black);
	max-width: 560px;
}

#ballot-reset {
	padding: 12px 22px;
	font-size: 12px;
	font-weight: 900;
	font-family: inherit;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border: none;
	border-bottom: 2px solid var(--nrca-navy);
	background: transparent;
	color: var(--nrca-navy);
	cursor: pointer;
	white-space: nowrap;
	transition: color 0.15s, border-color 0.15s;
}

#ballot-reset:hover {
	color: var(--nrca-red);
	border-bottom-color: var(--nrca-red);
}

/* ── BALLOT GROUPS ───────────────────────────────────── */
.ballot-group {
	margin-bottom: 56px;
	counter-reset: race;
}

.ballot-group-title {
	font-size: 24px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin: 0 0 12px;
	padding: 16px 22px;
	background: var(--nrca-navy);
	color: var(--nrca-white);
	border-left: 10px solid var(--nrca-red);
	display: flex;
	align-items: center;
	gap: 14px;
}

.ballot-group-title::before {
	content: "★";
	color: var(--nrca-red);
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
}

/* ── RACE CARDS — editorial, no outer border ─────────── */
.race-card {
	background: transparent;
	border: none;
	margin: 0;
	padding: 28px 4px 20px;
	counter-increment: race;
	position: relative;
	border-top: 1px solid rgba(13, 13, 13, 0.15);
}

.race-card:first-of-type {
	border-top: none;
	padding-top: 16px;
}

/* Ballot question cards keep their own styling — don't apply this treatment */
.race-card.ballot-question-card {
	background: var(--nrca-white);
	border: 2px solid var(--nrca-black);
	border-left-width: 8px;
	padding: 28px 32px 32px;
	margin-bottom: 24px;
	border-top: 2px solid var(--nrca-black);
}

.race-title {
	font-size: 20px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	margin: 0 0 4px;
	color: var(--nrca-black);
	line-height: 1.15;
	display: flex;
	align-items: baseline;
	gap: 14px;
}

.race-title::before {
	content: counter(race, decimal-leading-zero);
	font-size: 24px;
	font-weight: 900;
	font-style: italic;
	color: var(--nrca-red);
	letter-spacing: -0.02em;
	line-height: 1;
	flex-shrink: 0;
}

/* Ballot question cards don't get race numbering */
.race-card.ballot-question-card {
	counter-increment: none;
}

.race-card.ballot-question-card .race-title::before {
	content: none;
}

.race-note {
	font-size: 14px;
	line-height: 1.5;
	color: var(--nrca-black);
	margin: 0 0 14px;
	padding: 0 0 0 38px;
	background: transparent;
	border: none;
	font-style: italic;
	opacity: 0.7;
}

.candidate-list {
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

/* ── CANDIDATE ROW — party-colored left bar, no wrapping border ─── */
.candidate-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px 14px 20px;
	background: var(--nrca-cream);
	border-left: 5px solid var(--nrca-black);
	flex-wrap: wrap;
	transition: background 0.15s;
}

.candidate-row:hover {
	background: #f0ebde;
}

/* Party-colored left indicator (applied via data-nrca-party attribute) */
.candidate-row[data-nrca-party="REP"] {
	border-left-color: var(--nrca-red);
}

.candidate-row[data-nrca-party="DEM"] {
	border-left-color: var(--nrca-navy);
}

.candidate-row.third-branch-endorsed {
	border-left-color: var(--nrca-gold);
	background: #fdf9ec;
}

.candidate-row.third-branch-endorsed:hover {
	background: #f9f2dd;
}

.candidate-row-empty {
	background: transparent;
	border-left: 5px solid rgba(13, 13, 13, 0.2);
	font-size: 14px;
	color: var(--nrca-black);
	padding: 12px 16px 12px 20px;
	opacity: 0.7;
}

.candidate-main {
	flex: 1 1 260px;
	min-width: 0;
}

.candidate-name {
	font-size: 17px;
	font-weight: 800;
	color: var(--nrca-black);
	display: block;
	line-height: 1.25;
}

.candidate-name-note {
	display: block;
	font-size: 13px;
	font-weight: 500;
	margin-top: 4px;
	color: var(--nrca-black);
	opacity: 0.75;
	font-style: italic;
}

.candidate-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.incumbent-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 4px 8px;
	background: var(--nrca-navy);
	color: var(--nrca-white);
}

.incumbent-badge svg {
	width: 10px;
	height: 10px;
}

.third-branch-badge {
	display: inline-block;
	font-size: 10px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 5px 9px;
	background: var(--nrca-gold);
	color: var(--nrca-white);
	white-space: nowrap;
}

/* Party pills */
.party-pill {
	display: inline-block;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
	padding: 4px 8px;
	min-width: 24px;
	text-align: center;
	text-transform: uppercase;
}

.party-pill.REP {
	background: var(--nrca-red);
	color: var(--nrca-white);
}

.party-pill.DEM {
	background: var(--nrca-navy);
	color: var(--nrca-white);
}

.party-pill.NP,
.party-pill.NPP,
.party-pill.IAP,
.party-pill.LIB,
.party-pill.GRE {
	background: var(--nrca-black);
	color: var(--nrca-white);
}

/* ── CANDIDATE PROFILE (LEARN MORE) ─────────────────── */
.nrca-cp-mount {
	flex-basis: 100%;
	min-width: 0;
	margin-top: 4px;
}

.nrca-cp-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: none;
	border-bottom: 2px solid var(--nrca-navy);
	color: var(--nrca-navy);
	padding: 3px 0;
	font-size: 12px;
	font-weight: 900;
	font-family: inherit;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: color 0.15s, border-color 0.15s;
}

.nrca-cp-toggle:hover {
	color: var(--nrca-red);
	border-bottom-color: var(--nrca-red);
}

.nrca-cp-toggle[aria-expanded="true"] {
	color: var(--nrca-red);
	border-bottom-color: var(--nrca-red);
}

.nrca-cp-toggle-icon {
	font-weight: 900;
	font-size: 14px;
	line-height: 1;
	display: inline-block;
	transition: transform 0.15s;
}

.nrca-cp-toggle[aria-expanded="true"] .nrca-cp-toggle-icon {
	transform: rotate(180deg);
}

.nrca-cp-panel {
	margin-top: 14px;
	padding: 24px 28px 4px;
	background: var(--nrca-cream);
	border: none;
	border-left: 5px solid var(--nrca-navy);
}

.nrca-cp-error {
	padding: 16px;
	background: var(--nrca-white);
	border-left: 4px solid var(--nrca-red);
	font-size: 14px;
	line-height: 1.5;
	color: var(--nrca-black);
	margin-bottom: 20px;
}

.nrca-cp-error strong {
	display: block;
	margin-bottom: 4px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--nrca-red);
	font-size: 13px;
}

.nrca-cp-section {
	margin-bottom: 20px;
}

.nrca-cp-section:last-of-type {
	margin-bottom: 24px;
}

.nrca-cp-section h5 {
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin: 0 0 6px;
	padding: 0;
	border: none;
	color: var(--nrca-red);
}

.nrca-cp-section p,
.nrca-cp-field-value {
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
	color: var(--nrca-black);
}

.nrca-cp-muted {
	color: var(--nrca-black);
	opacity: 0.55;
	font-style: italic;
}

.nrca-cp-section ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nrca-cp-section li {
	font-size: 15px;
	line-height: 1.5;
	padding: 8px 0 8px 20px;
	position: relative;
	border-bottom: 1px solid #e8e2d0;
	color: var(--nrca-black);
}

.nrca-cp-section li:last-child {
	border-bottom: none;
}

.nrca-cp-section li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 17px;
	width: 8px;
	height: 2px;
	background: var(--nrca-red);
}

/* ── TAKE ACTION NUDGE ──────────────────────────────── */
.nrca-cp-take-action {
	margin-top: 28px;
	padding: 20px;
	background: var(--nrca-navy);
	color: var(--nrca-white);
	text-align: center;
	border-left: 6px solid var(--nrca-red);
}

.nrca-cp-take-action-lead {
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 14px;
	color: var(--nrca-white);
	line-height: 1.3;
}

.nrca-cp-take-action-buttons {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

.nrca-cp-ta-donate,
.nrca-cp-ta-involved {
	display: inline-block;
	padding: 12px 22px;
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: all 0.15s;
}

.nrca-cp-ta-donate {
	background: var(--nrca-red);
	color: var(--nrca-white);
}

.nrca-cp-ta-donate:hover {
	background: var(--nrca-white);
	color: var(--nrca-red);
}

.nrca-cp-ta-involved {
	background: transparent;
	color: var(--nrca-white);
	border: 2px solid var(--nrca-white);
}

.nrca-cp-ta-involved:hover {
	background: var(--nrca-white);
	color: var(--nrca-navy);
}

/* ══════════════════════════════════════════════════════════
 * VOTER RESOURCES GRID (bottom of page)
 * ══════════════════════════════════════════════════════════ */

.voter-resources-grid {
	background: var(--nrca-navy);
	padding: 60px 0 80px;
	border-top: 8px solid var(--nrca-red);
}

.voter-resources-grid h2 {
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: -0.01em;
	color: var(--nrca-white);
	margin: 0 0 32px;
	padding-bottom: 16px;
	border-bottom: 4px solid var(--nrca-red);
}

.voter-resources-grid .resources-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.voter-resources-grid .resource-card {
	display: block;
	background: var(--nrca-white);
	color: var(--nrca-black);
	padding: 28px 24px;
	text-decoration: none;
	border-left: 6px solid var(--nrca-red);
	transition: all 0.15s;
	position: relative;
}

.voter-resources-grid .resource-card:hover {
	background: var(--nrca-cream);
	border-left-color: var(--nrca-navy);
	transform: translateX(4px);
}

.voter-resources-grid .resource-card::after {
	content: "→";
	position: absolute;
	top: 24px;
	right: 20px;
	font-size: 20px;
	font-weight: 900;
	color: var(--nrca-red);
	transition: transform 0.15s;
}

.voter-resources-grid .resource-card:hover::after {
	transform: translateX(4px);
}

.voter-resources-grid .card-eyebrow {
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nrca-red);
	margin: 0 0 8px;
	padding: 0;
}

.voter-resources-grid .resource-card h3 {
	font-size: 20px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
	color: var(--nrca-black);
	line-height: 1.15;
	padding-right: 32px;
}

.voter-resources-grid .resource-card p {
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
	color: var(--nrca-black);
	font-weight: 500;
}

/* ══════════════════════════════════════════════════════════
 * BALLOT QUESTION CARD — rich rendering for Question 6 & 7
 *
 * Two stance variants:
 *   .stance-yes  — recommendation is YES → GREEN accents
 *   .stance-no   — recommendation is NO  → RED accents
 * ══════════════════════════════════════════════════════════ */

.ballot-question-card {
	border-left-width: 8px;
	border-left-color: var(--nrca-navy);
	padding: 28px 32px 32px;
	position: relative;
	overflow: hidden;
}

.ballot-question-card.stance-yes {
	border-left-color: var(--nrca-green);
}

.ballot-question-card.stance-no {
	border-left-color: var(--nrca-red);
}

.ballot-question-card .race-title {
	font-size: 22px;
	margin: 0 100px 20px 0;
	padding-bottom: 16px;
	border-bottom: 3px solid var(--nrca-black);
	line-height: 1.15;
}

/* ── BIG MAGAZINE Q# BADGE (top-right corner) ─────────── */
.bq-number-badge {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: baseline;
	padding: 20px 22px 14px;
	color: var(--nrca-white);
	font-weight: 900;
	line-height: 0.85;
	letter-spacing: -0.02em;
	z-index: 2;
}

.ballot-question-card.stance-yes .bq-number-badge {
	background: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-number-badge {
	background: var(--nrca-red);
}

.bq-num-q {
	font-size: 26px;
	margin-right: 2px;
	font-style: italic;
}

.bq-num-n {
	font-size: 48px;
}

/* ── RECOMMENDATION BANNER — colored by stance ────────── */
.bq-recommends-banner {
	display: flex;
	align-items: center;
	gap: 16px;
	color: var(--nrca-white);
	padding: 18px 24px;
	margin: 0 -32px 28px;
	border-left: 10px solid var(--nrca-white);
	flex-wrap: wrap;
}

.ballot-question-card.stance-yes .bq-recommends-banner {
	background: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-recommends-banner {
	background: var(--nrca-red);
}

.bq-recommends-banner .bq-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--nrca-white);
	font-size: 22px;
	font-weight: 900;
	flex-shrink: 0;
}

.ballot-question-card.stance-yes .bq-recommends-banner .bq-check {
	color: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-recommends-banner .bq-check {
	color: var(--nrca-red);
}

.bq-banner-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bq-recommends-banner .bq-banner-label {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 800;
	opacity: 0.95;
}

.bq-recommends-banner .bq-banner-vote {
	font-size: 26px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1;
}

/* ── SECTION HEADERS with numeric eyebrow ─────────────── */
.bq-section {
	margin-bottom: 24px;
}

.bq-section-header {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 10px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--nrca-black);
}

.bq-section-header.light {
	border-bottom-color: rgba(255,255,255,0.3);
}

.bq-section-num {
	font-size: 22px;
	font-weight: 900;
	font-style: italic;
	color: var(--nrca-red);
	letter-spacing: -0.02em;
	line-height: 1;
}

.ballot-question-card.stance-yes .bq-section-num {
	color: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-section-num {
	color: var(--nrca-red);
}

.bq-section-header.light .bq-section-num {
	color: var(--nrca-white);
}

.bq-section-header h5 {
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0;
	padding: 0;
	border: none;
	color: var(--nrca-black);
	line-height: 1;
}

.bq-section-header.light h5 {
	color: var(--nrca-white);
}

.bq-section p {
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
	color: var(--nrca-black);
}

.bq-question-text {
	font-style: italic;
	padding: 16px 20px;
	background: var(--nrca-cream);
	border-left: 4px solid var(--nrca-navy);
	font-size: 15px !important;
	line-height: 1.55 !important;
	margin: 0 !important;
}

/* ── STAKES PULL-QUOTE ─────────────────────────────────── */
.bq-stakes {
	position: relative;
	margin: 0 0 24px;
	padding: 20px 24px 20px 60px;
	background: var(--nrca-cream);
	font-family: "Proxima Nova", "Montserrat", serif;
	font-size: 17px;
	line-height: 1.4;
	font-weight: 800;
	font-style: italic;
	color: var(--nrca-black);
	border-left: 6px solid var(--nrca-black);
}

.ballot-question-card.stance-yes .bq-stakes {
	border-left-color: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-stakes {
	border-left-color: var(--nrca-red);
}

.bq-stakes-mark {
	position: absolute;
	top: -10px;
	left: 14px;
	font-size: 72px;
	font-weight: 900;
	line-height: 1;
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
}

.ballot-question-card.stance-yes .bq-stakes-mark {
	color: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-stakes-mark {
	color: var(--nrca-red);
}

/* ── YES/NO MEANS GRID ────────────────────────────────── */
.bq-means-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.bq-means {
	background: var(--nrca-white);
	border: 2px solid var(--nrca-black);
	padding: 18px 20px;
	opacity: 0.55;
	transition: opacity 0.15s;
}

.bq-means-header {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nrca-black);
	margin-bottom: 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--nrca-black);
}

.bq-means p {
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
	color: var(--nrca-black);
}

/* Recommended stance — colored by stance semantics */
.bq-means.recommended {
	opacity: 1;
	border-width: 3px;
}

/* YES recommended → GREEN */
.stance-yes .bq-means-yes.recommended {
	border-color: var(--nrca-green);
	background: #f0fbf1;
}

.stance-yes .bq-means-yes.recommended .bq-means-header {
	color: var(--nrca-green);
	border-bottom-color: var(--nrca-green);
}

.stance-yes .bq-means-yes.recommended .bq-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: var(--nrca-green);
	color: var(--nrca-white);
	font-size: 15px;
	font-weight: 900;
	flex-shrink: 0;
}

/* NO recommended → RED */
.stance-no .bq-means-no.recommended {
	border-color: var(--nrca-red);
	background: #fdf1f0;
}

.stance-no .bq-means-no.recommended .bq-means-header {
	color: var(--nrca-red);
	border-bottom-color: var(--nrca-red);
}

.stance-no .bq-means-no.recommended .bq-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background: var(--nrca-red);
	color: var(--nrca-white);
	font-size: 15px;
	font-weight: 900;
	flex-shrink: 0;
}

/* ── NRC ACTION REASONING (accent color from stance) ──── */
.bq-reasoning {
	background: var(--nrca-navy);
	color: var(--nrca-white);
	padding: 24px 28px;
	margin: 24px -32px;
	border-left: 8px solid var(--nrca-white);
}

.ballot-question-card.stance-yes .bq-reasoning {
	border-left-color: var(--nrca-green);
}

.ballot-question-card.stance-no .bq-reasoning {
	border-left-color: var(--nrca-red);
}

.bq-reasoning p {
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
	color: var(--nrca-white);
}

/* ── TAKE ACTION ──────────────────────────────────────── */
.bq-take-action {
	background: var(--nrca-cream);
	padding: 22px 20px;
	margin: 24px -32px -32px;
	border-top: 4px solid var(--nrca-red);
	text-align: center;
}

.ballot-question-card.stance-yes .bq-take-action {
	border-top-color: var(--nrca-green);
}

.bq-ta-lead {
	font-size: 14px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 14px;
	color: var(--nrca-navy);
	line-height: 1.3;
}

.bq-ta-buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.bq-ta-donate,
.bq-ta-involved {
	display: inline-block;
	padding: 13px 26px;
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: all 0.15s;
}

.bq-ta-donate {
	background: var(--nrca-red);
	color: var(--nrca-white);
}

.bq-ta-donate:hover {
	background: var(--nrca-navy);
}

.bq-ta-involved {
	background: transparent;
	color: var(--nrca-navy);
	border: 2px solid var(--nrca-navy);
}

.bq-ta-involved:hover {
	background: var(--nrca-navy);
	color: var(--nrca-white);
}

/* ══════════════════════════════════════════════════════════
 * MOBILE
 * ══════════════════════════════════════════════════════════ */

@media (max-width: 900px) {
	.voter-resources-grid .resources-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

@media (max-width: 640px) {
	.voter-hub-hero {
		padding: 40px 0 30px;
	}

	.voter-hub-hero .container,
	.voter-resources-grid .container {
		padding: 0 16px;
	}

	.ballot-tool-wrap {
		padding: 24px 16px 60px;
	}

	#ballot-form {
		grid-template-columns: 1fr;
	}

	#ballot-address {
		border-bottom: 3px solid var(--nrca-black);
	}

	.candidate-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.candidate-main {
		flex: 1 1 100%;
		width: 100%;
	}

	.candidate-meta {
		gap: 8px;
	}

	.ballot-results-header {
		flex-direction: column;
	}

	#ballot-results-address em {
		font-size: 19px;
	}

	#ballot-reset {
		align-self: flex-start;
	}

	.ballot-group-title {
		font-size: 19px;
		padding: 14px 16px;
	}

	.race-card {
		padding: 22px 0 16px;
	}

	.race-card.ballot-question-card {
		padding: 24px 20px 24px;
	}

	.race-title {
		font-size: 17px;
		gap: 10px;
	}

	.race-title::before {
		font-size: 20px;
	}

	.race-note {
		padding-left: 32px;
	}

	.candidate-name {
		font-size: 16px;
	}

	.nrca-cp-panel {
		padding: 18px 20px 4px;
	}

	.nrca-cp-take-action-buttons {
		flex-direction: column;
	}

	.nrca-cp-ta-donate,
	.nrca-cp-ta-involved {
		width: 100%;
		box-sizing: border-box;
	}

	.voter-resources-grid {
		padding: 40px 0 50px;
	}

	/* Ballot question — stack on mobile */
	.ballot-question-card {
		padding: 24px 20px 24px;
	}

	.ballot-question-card .race-title {
		font-size: 18px;
		margin-right: 70px;
	}

	.bq-number-badge {
		padding: 12px 14px 8px;
	}

	.bq-num-q {
		font-size: 18px;
	}

	.bq-num-n {
		font-size: 32px;
	}

	.bq-recommends-banner,
	.bq-reasoning,
	.bq-take-action {
		margin-left: -20px;
		margin-right: -20px;
	}

	.bq-take-action {
		margin-bottom: -24px;
	}

	.bq-recommends-banner .bq-banner-vote {
		font-size: 22px;
	}

	.bq-means-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.bq-stakes {
		padding: 18px 20px 18px 48px;
		font-size: 15px;
	}

	.bq-stakes-mark {
		font-size: 56px;
		left: 10px;
	}

	.bq-ta-buttons {
		flex-direction: column;
	}

	.bq-ta-donate,
	.bq-ta-involved {
		width: 100%;
		box-sizing: border-box;
	}
}
