/* ==========================================================================
   NFCR stats  [nfcr_stats]  (navy panels by default; --light = white cards on the page)
   ========================================================================== */

.nfcr-stats { margin-top: 4px; font-family: var(--nfcr-font); }

.nfcr-stats .nfcr-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nfcr-stats .nfcr-stats__grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nfcr-stats .nfcr-stats__grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.nfcr-stats .nfcr-stat {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 24px 26px;
	list-style: none;
	border: 1px solid var(--nfcr-on-dark-line);
	border-radius: var(--nfcr-r-chip);
}
.nfcr-stats .nfcr-stat__value {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -1px;
	color: var(--nfcr-orange-soft);
}
.nfcr-stats .nfcr-stat__label {
	margin-top: 6px;
	font-size: var(--nfcr-fs-ui);
	font-weight: 500;
	line-height: 1.6;
	color: var(--nfcr-on-dark-strong);
}

/* Optional description under the label */
.nfcr-stats .nfcr-stat__text {
	margin-top: 8px;
	font-size: var(--nfcr-fs-small);
	line-height: 1.6;
	color: var(--nfcr-on-dark-text);
}

/* Dots: x of 100 */
.nfcr-stats .nfcr-stat__dots {
	display: grid;
	grid-template-columns: repeat(20, 7px);
	gap: 4px;
	margin-top: 16px;
}
.nfcr-stats .nfcr-stat__dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .22); }
.nfcr-stats .nfcr-stat__dots span.is-on { background: var(--nfcr-orange-soft); }

/* People: x of 10 */
.nfcr-stats .nfcr-stat__people { display: flex; align-items: flex-end; gap: 7px; margin-top: 16px; }
.nfcr-stats .nfcr-stat__person { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.nfcr-stats .nfcr-stat__person span:first-child { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, .22); }
.nfcr-stats .nfcr-stat__person span:last-child { width: 15px; height: 20px; border-radius: 7px 7px 3px 3px; background: rgba(255, 255, 255, .22); }
.nfcr-stats .nfcr-stat__person.is-on span { background: var(--nfcr-orange-soft); }

/* Line: marker (range) or filled bar */
.nfcr-stats .nfcr-stat__line {
	position: relative;
	height: 7px;
	margin-top: 26px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .16);
}
.nfcr-stats .nfcr-stat__line--bar { margin-top: 16px; }
.nfcr-stats .nfcr-stat__fill {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: var(--nfcr-stat-pos);
	border-radius: 4px;
	background: rgba(255, 138, 92, .35);
}
.nfcr-stats .nfcr-stat__line--bar .nfcr-stat__fill { min-width: 6px; background: var(--nfcr-orange-soft); }
.nfcr-stats .nfcr-stat__knob {
	position: absolute;
	top: 50%;
	left: var(--nfcr-stat-pos);
	width: 17px;
	height: 17px;
	box-sizing: border-box;
	border: 3px solid var(--nfcr-navy);
	border-radius: 50%;
	background: var(--nfcr-orange-soft);
	transform: translate(-50%, -50%);
}
.nfcr-stats .nfcr-stat__scale {
	display: flex;
	justify-content: space-between;
	margin-top: 8px;
	font-size: 12px;
	color: var(--nfcr-on-dark-muted);
}

.nfcr-stats .nfcr-stats__source {
	margin: 22px 0 0;
	font-size: var(--nfcr-fs-meta);
	line-height: 1.5;
	color: #A7B9DD;
}

/* ---- Light: white cards on the page background ---- */
.nfcr-stats--light { margin-top: 0; }
.nfcr-stats--light .nfcr-stat {
	padding: 28px 30px;
	background: var(--nfcr-white);
	border: 0;
	border-radius: var(--nfcr-r-card);
	box-shadow: var(--nfcr-shadow);
}
.nfcr-stats--light .nfcr-stat__value { font-size: var(--nfcr-fs-h2); color: var(--nfcr-navy); }
.nfcr-stats--light .nfcr-stat__label {
	font-size: var(--nfcr-fs-h3);
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -.3px;
	color: var(--nfcr-navy);
}
.nfcr-stats--light .nfcr-stat__text { margin-bottom: 20px; color: var(--nfcr-text); }
.nfcr-stats--light .nfcr-stat__line { margin-top: auto; background: var(--nfcr-surface); }
.nfcr-stats--light .nfcr-stat__line--bar .nfcr-stat__fill { background: var(--nfcr-accent); }
.nfcr-stats--light .nfcr-stat__scale { color: var(--nfcr-label); }
.nfcr-stats--light .nfcr-stat__dots span,
.nfcr-stats--light .nfcr-stat__person span { background: var(--nfcr-line-chip); }
.nfcr-stats--light .nfcr-stat__dots span.is-on,
.nfcr-stats--light .nfcr-stat__person.is-on span { background: var(--nfcr-accent); }
.nfcr-stats--light .nfcr-stats__source { color: var(--nfcr-text-2); }

/* ---- Filled (navy panel): soft white cards, white numbers (Where your money goes) ---- */
.nfcr-stats--filled .nfcr-stat { background: rgba(255, 255, 255, .08); }
.nfcr-stats--filled .nfcr-stat__value { color: #fff; }
.nfcr-stats--filled .nfcr-stat__label { font-weight: 500; color: var(--nfcr-on-dark-link); }

@media (max-width: 1024px) {
	.nfcr-stats .nfcr-stats__grid--cols-3,
	.nfcr-stats .nfcr-stats__grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.nfcr-stats .nfcr-stats__grid { grid-template-columns: minmax(0, 1fr) !important; gap: 14px; }
	.nfcr-stats .nfcr-stat { padding: 20px 22px; }
	.nfcr-stats .nfcr-stat__value { font-size: 30px; }
	.nfcr-stats .nfcr-stat__dots { grid-template-columns: repeat(20, minmax(0, 7px)); gap: 3px; }
}

/* Words instead of a number (e.g. "America's Best Charities"): smaller, any background and breakpoint */
.nfcr-stats .nfcr-stat__value.nfcr-stat__value--text {
	font-size: var(--nfcr-fs-h3-xl);
	line-height: 1.25;
	letter-spacing: -.4px;
}

/* ---- 0.9.22 Plain (navy panel, no cards): big white numbers, soft labels; a number can be orange (Home) ---- */
.nfcr-stats--plain .nfcr-stats__grid { gap: 36px; }
.nfcr-stats--plain .nfcr-stat { padding: 0; border: 0; border-radius: 0; }
.nfcr-stats--plain .nfcr-stat__value { font-size: var(--nfcr-fs-band-stat); font-weight: 600; line-height: 1; letter-spacing: -.04em; color: #fff; }
.nfcr-stats--plain .nfcr-stat--accent .nfcr-stat__value { color: var(--nfcr-accent); }
.nfcr-stats--plain .nfcr-stat__label { margin-top: 8px; font-size: var(--nfcr-fs-small); line-height: 1.5; color: var(--nfcr-on-dark-soft); }
@media (max-width: 1024px) {
	.nfcr-stats--plain .nfcr-stats__grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
}


/* ---- Rule style (0.9.25, Who We Are: Our impact): big numbers, a thin rule above, dividers between columns ---- */
.nfcr-stats--rule { margin-top: 0; }
.nfcr-stats--rule .nfcr-stats__grid { gap: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
.nfcr-stats--rule .nfcr-stat { padding: 30px 28px 6px 0; margin-right: 28px; border-right: 1px solid rgba(255, 255, 255, .14); }
.nfcr-stats--rule .nfcr-stat__value { font-size: var(--nfcr-fs-rule-stat); font-weight: 700; line-height: 1.05; letter-spacing: -1.5px; text-wrap: balance; }
.nfcr-stats--rule .nfcr-stat__value--text { font-size: var(--nfcr-fs-h2-sm); }
.nfcr-stats--rule .nfcr-stat__label { margin-top: 12px; font-size: var(--nfcr-fs-ui); line-height: 1.6; color: var(--nfcr-on-dark-link); }
@media (max-width: 1024px) {
	.nfcr-stats--rule .nfcr-stats__grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
	.nfcr-stats--rule .nfcr-stat:nth-child(even) { border-right: 0; margin-right: 0; }
	.nfcr-stats--rule .nfcr-stat:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .14); }
}
@media (max-width: 767px) {
	.nfcr-stats--rule .nfcr-stats__grid--cols-4 { grid-template-columns: minmax(0, 1fr); }
	.nfcr-stats--rule .nfcr-stat { margin-right: 0; padding-right: 0; border-right: 0; }
	.nfcr-stats--rule .nfcr-stat + .nfcr-stat { border-top: 1px solid rgba(255, 255, 255, .14); }
}

/* ---- Donut layout (0.9.25, Who We Are: Financials): ring + sentence, then small white cards ---- */
.nfcr-stats--donut { display: flex; flex-direction: column; gap: 28px; margin-top: 0; }
.nfcr-stats--donut .nfcr-stats__lead { display: flex; align-items: center; gap: 28px; }
.nfcr-donut {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	background: conic-gradient(var(--nfcr-orange) 0 var(--nfcr-donut, 0%), var(--nfcr-line-chip) var(--nfcr-donut, 0%) 100%);
}
.nfcr-donut__value {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 112px;
	height: 112px;
	border-radius: 50%;
	background: var(--nfcr-wash);
	font-size: var(--nfcr-fs-h2-sm);
	font-weight: 700;
	letter-spacing: -1px;
	color: var(--nfcr-navy);
}
.nfcr-stats--donut .nfcr-stats__lead-text { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.5; color: var(--nfcr-navy); }
.nfcr-stats--donut .nfcr-stats__grid { gap: 14px; }
.nfcr-stats--donut .nfcr-stat {
	padding: 20px 20px 22px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 4px 14px rgba(2, 20, 60, .05);
}
.nfcr-stats--donut .nfcr-stat__value { font-size: var(--nfcr-fs-figure); letter-spacing: -.8px; line-height: 1.2; }
.nfcr-stats--donut .nfcr-stat__label { margin-top: 6px; font-size: var(--nfcr-fs-meta); line-height: 1.5; font-weight: 400; color: var(--nfcr-text-2); }
@media (max-width: 767px) {
	.nfcr-stats--donut .nfcr-stats__lead { flex-direction: column; align-items: flex-start; gap: 16px; }
	.nfcr-stats--donut .nfcr-stats__grid--cols-3 { grid-template-columns: minmax(0, 1fr); }
}
