/*
 * Komponente: Impact-Ring (.stat / .ring-wrap) – animierte Ring-Statistik mit
 * Zähl-Animation, siehe CLAUDE.md Abschnitt 11.4. Das eigentliche Zählen/die
 * Ring-Fill-Animation übernimmt assets/js/components/impact-ring-counter.js.
 */
.impact-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 8px;
}

.stat {
	text-align: center;
}

.ring-wrap {
	position: relative;
	width: 130px;
	height: 130px;
	margin: 0 auto 16px;
}

.ring-wrap svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.ring-bg {
	fill: none;
	stroke: var(--cream-deep);
	stroke-width: 6;
}

.ring-fg {
	fill: none;
	stroke: var(--herzenswald-gruen);
	stroke-width: 6;
	stroke-linecap: round;
	stroke-dasharray: 345;
	stroke-dashoffset: 345;
	transition: stroke-dashoffset 1.4s cubic-bezier(.2, .7, .2, 1);
}

.stat.in-view .ring-fg {
	stroke-dashoffset: 40;
}

.ring-num {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: 700;
	color: var(--erdbraun);
}

.stat .lbl {
	font-size: 13px;
	color: var(--erdbraun-70);
	text-transform: uppercase;
	letter-spacing: .05em;
	font-weight: 700;
}

/* Breakpoint 980px – siehe CLAUDE.md Abschnitt 11.3 */
@media (max-width: 980px) {
	.impact-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Breakpoint 560px – letzte Verdichtung für kleine Screens */
@media (max-width: 560px) {
	.impact-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 12px;
	}

	.ring-wrap {
		width: 96px;
		height: 96px;
	}
}
