/**
 * FM Counter Stats
 */

.fm-counter-stats,
.fm-counter-stats *,
.fm-counter-stats *::before,
.fm-counter-stats *::after {
	box-sizing: border-box;
}

.elementor-widget-flowmax-counter-stats,
.elementor-widget-flowmax-counter-stats>.elementor-widget-container {
	width: 100%;
	max-width: 100%;
}

.fm-counter-stats {
	--fm-cs-max-width: 100%;
	--fm-cs-columns: 4;
	--fm-cs-gap: 18px;
	--fm-cs-card-bg: #ffffff;
	--fm-cs-border: rgba(15, 23, 42, 0.1);
	--fm-cs-accent: #24448c;
	--fm-cs-number: #0f172a;
	--fm-cs-label: rgba(15, 23, 42, 0.72);
	--fm-cs-muted: rgba(15, 23, 42, 0.62);
	--fm-cs-radius: 22px;
	--fm-cs-card-padding: 24px;
	position: relative;
	width: 100%;
	max-width: var(--fm-cs-max-width);
	margin-left: 0;
	margin-right: auto;
	color: var(--fm-cs-number);
}

/* Shared stat parts */

.fm-counter-stats__grid {
	display: grid;
	gap: var(--fm-cs-gap);
}

.fm-counter-stats__item {
	position: relative;
	min-width: 0;
	opacity: 0;
	transform: translate3d(0, 14px, 0);
	transition:
		opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: calc(var(--fm-cs-index, 0) * 80ms);
}

.fm-counter-stats.is-ready .fm-counter-stats__item,
.fm-counter-stats.is-reduced-motion .fm-counter-stats__item,
.elementor-editor-active .fm-counter-stats__item,
.elementor-element-edit-mode .fm-counter-stats__item {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.fm-counter-stats__card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	padding: var(--fm-cs-card-padding);
	border: 1px solid var(--fm-cs-border);
	border-radius: var(--fm-cs-radius);
	background: var(--fm-cs-card-bg);
	overflow: hidden;
}

.fm-counter-stats__item-eyebrow {
	margin: 0 0 8px;
	color: var(--fm-cs-accent);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.fm-counter-stats__value-wrap {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.08em;
	margin: 0 0 6px;
}

.fm-counter-stats__prefix,
.fm-counter-stats__value {
	color: var(--fm-cs-number);
	font-size: clamp(2rem, 4vw, 2.8rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}

.fm-counter-stats__label {
	margin: 0;
	color: var(--fm-cs-label);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.45;
}

/* Proof Row */

.fm-counter-stats--proof-row .fm-counter-stats__grid {
	grid-template-columns: repeat(var(--fm-cs-columns), minmax(0, 1fr));
}

.fm-counter-stats--proof-row .fm-counter-stats__card {
	border: 0;
	border-radius: 0;
	background: transparent;
	padding: 0 clamp(12px, 2vw, 20px);
}

.fm-counter-stats--proof-row .fm-counter-stats__item:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 12%;
	right: calc(var(--fm-cs-gap) * -0.5);
	width: 1px;
	height: 76%;
	background: var(--fm-cs-border);
}

.fm-counter-stats--proof-row.fm-counter-stats--no-dividers .fm-counter-stats__item::after {
	display: none;
}

.fm-counter-stats--proof-row .fm-counter-stats__value-wrap {
	justify-content: inherit;
}

/* Bento Metrics */

.fm-counter-stats--bento-metrics .fm-counter-stats__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: minmax(120px, auto);
}

.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured {
	grid-row: span 2;
}

.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured .fm-counter-stats__card {
	min-height: 100%;
	background:
		linear-gradient(145deg, color-mix(in srgb, var(--fm-cs-accent) 10%, #ffffff), var(--fm-cs-card-bg)),
		var(--fm-cs-card-bg);
}

.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured .fm-counter-stats__value,
.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured .fm-counter-stats__prefix {
	font-size: clamp(2.6rem, 5vw, 3.6rem);
}

.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured .fm-counter-stats__label {
	font-size: 1.05rem;
}

/* Signal Strip */

.fm-counter-stats--signal-strip {
	--fm-cs-strip-bg: color-mix(in srgb, var(--fm-cs-card-bg) 82%, transparent);
	--fm-cs-strip-border: color-mix(in srgb, var(--fm-cs-border) 80%, transparent);
}

.fm-counter-stats--signal-strip .fm-counter-stats__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 14px 18px;
	border: 1px solid var(--fm-cs-strip-border);
	border-radius: 999px;
	background:
		linear-gradient(180deg, color-mix(in srgb, #ffffff 68%, transparent), transparent),
		var(--fm-cs-strip-bg);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.fm-counter-stats--signal-strip .fm-counter-stats__item {
	flex: 1 1 auto;
	min-width: 0;
	opacity: 0;
}

.fm-counter-stats--signal-strip .fm-counter-stats__item:not(:last-child) {
	border-right: 1px solid var(--fm-cs-strip-border);
	margin-right: clamp(12px, 2vw, 20px);
	padding-right: clamp(12px, 2vw, 20px);
}

.fm-counter-stats--signal-strip .fm-counter-stats__card {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 6px 10px;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.fm-counter-stats--signal-strip .fm-counter-stats__value-wrap {
	margin: 0;
	gap: 0;
}

.fm-counter-stats--signal-strip .fm-counter-stats__prefix,
.fm-counter-stats--signal-strip .fm-counter-stats__value {
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	font-weight: 700;
}

.fm-counter-stats--signal-strip .fm-counter-stats__label {
	margin: 0;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--fm-cs-muted);
	white-space: nowrap;
}

.fm-counter-stats--signal-strip .fm-counter-stats__item {
	flex: 1 1 0;
}

/* Impact Metrics */

.fm-counter-stats--impact-metrics {
	--fm-cs-impact-size: clamp(3rem, 5vw, 5.5rem);
	--fm-cs-impact-label: clamp(0.78rem, 1vw, 0.95rem);
	--fm-cs-gap: clamp(18px, 2.5vw, 42px);
	width: 100%;
	max-width: none;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: flex-end;
	width: 100%;
	gap: var(--fm-cs-gap);
}

.fm-counter-stats--impact-metrics .fm-counter-stats__item {
	flex: 1 1 0;
	min-width: 0;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__card {
	display: block;
	height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__prefix,
.fm-counter-stats--impact-metrics .fm-counter-stats__value {
	font-size: var(--fm-cs-impact-size);
	font-weight: 500;
	line-height: 0.92;
	letter-spacing: -0.06em;
	white-space: nowrap;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__value-wrap {
	display: flex;
	align-items: baseline;
	justify-content: flex-start;
	margin: 0 0 14px;
	gap: 0;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__label {
	position: relative;
	margin: 0;
	padding-top: 12px;
	border-top: 0;
	color: var(--fm-cs-label);
	font-size: var(--fm-cs-impact-label);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.fm-counter-stats--impact-metrics .fm-counter-stats__label::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 90%;
	height: 1px;
	background: var(--fm-cs-border);
}

/* Sticky Count Story */

.fm-counter-stats--sticky-story,
.elementor-widget-flowmax-counter-stats .fm-counter-stats--sticky-story {
	width: 100%;
	max-width: none;
	overflow: visible;
}

.fm-counter-stats--sticky-story {
	--fm-cs-story-size: clamp(3.6rem, 7.2vw, 7.2rem);
	--fm-cs-story-label: clamp(0.95rem, 1.25vw, 1.12rem);
	--fm-cs-story-gap: clamp(40px, 6vw, 104px);
	--fm-cs-stage-width: min(100%, 460px);
}

.fm-counter-stats--sticky-story .fm-counter-stats__pin {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 100vh;
	padding: clamp(40px, 7vh, 88px) clamp(20px, 4vw, 52px);
}

.fm-counter-stats--sticky-story .fm-counter-stats__layout {
	display: grid;
	grid-template-columns: minmax(360px, 1.16fr) minmax(320px, 0.84fr);
	gap: var(--fm-cs-story-gap);
	align-items: center;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
}

.fm-counter-stats--sticky-story .fm-counter-stats__intro {
	max-width: 48rem;
}

.fm-counter-stats--sticky-story .fm-counter-stats__story-heading {
	margin: 0;
	color: var(--fm-cs-number);
	font-size: clamp(2.35rem, 4.5vw, 4.5rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.05em;
}

.fm-counter-stats--sticky-story .fm-counter-stats__story-text {
	margin: clamp(14px, 2vh, 20px) 0 0;
	max-width: 43rem;
	color: var(--fm-cs-muted);
	font-size: clamp(1rem, 1.25vw, 1.125rem);
	font-weight: 400;
	line-height: 1.65;
}

.fm-counter-stats--sticky-story .fm-counter-stats__steps {
	position: relative;
	display: grid;
	gap: clamp(26px, 4vw, 44px);
	width: var(--fm-cs-stage-width);
	justify-self: center;
	overflow: visible;
}

.fm-counter-stats--sticky-story.has-sticky-story-js .fm-counter-stats__steps {
	display: block;
	height: min(74vh, 620px);
	min-height: 460px;
}

.fm-counter-stats--sticky-story .fm-counter-stats__step {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 1;
	transform: none;
}

.fm-counter-stats--sticky-story.has-sticky-story-js .fm-counter-stats__step {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	pointer-events: none;
	transform: translateY(-50%);
	will-change: opacity, filter, transform;
}

.fm-counter-stats--sticky-story .fm-counter-stats__item {
	width: 100%;
	opacity: 1;
	transform: none;
	filter: none;
}

.fm-counter-stats--sticky-story .fm-counter-stats__card {
	display: block;
	height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
	text-align: center;
}

.fm-counter-stats--sticky-story .fm-counter-stats__prefix,
.fm-counter-stats--sticky-story .fm-counter-stats__value {
	font-size: var(--fm-cs-story-size);
	font-weight: 500;
	line-height: 0.92;
	letter-spacing: -0.06em;
	white-space: nowrap;
}

.fm-counter-stats--sticky-story .fm-counter-stats__value-wrap {
	display: flex;
	align-items: baseline;
	justify-content: center;
	margin: 0 0 clamp(12px, 2vh, 18px);
	gap: 0;
	perspective: 900px;
}

.fm-counter-stats--sticky-story .fm-counter-stats__label {
	--fm-cs-divider-scale: 1;
	position: relative;
	margin: 0;
	padding-top: 14px;
	color: var(--fm-cs-label);
	font-size: var(--fm-cs-story-label);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.01em;
}

.fm-counter-stats--sticky-story .fm-counter-stats__label::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 90%;
	height: 1px;
	background: var(--fm-cs-border);
	transform: translateX(-50%) scaleX(var(--fm-cs-divider-scale));
	transform-origin: center;
}

.fm-counter-stats--sticky-story.is-static .fm-counter-stats__steps {
	height: auto;
	min-height: 0;
}

.fm-counter-stats--sticky-story.is-static .fm-counter-stats__step {
	top: auto;
	transform: none;
	opacity: 1;
	filter: none;
}

/* Responsive */

@media (max-width: 1024px) {
	.fm-counter-stats--proof-row {
		--fm-cs-columns: 2;
	}

	.fm-counter-stats--bento-metrics .fm-counter-stats__grid {
		grid-template-columns: 1fr 1fr;
	}

	.fm-counter-stats--impact-metrics .fm-counter-stats__grid {
		gap: clamp(20px, 3vw, 36px);
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__layout {
		grid-template-columns: minmax(280px, 1.12fr) minmax(260px, 0.88fr);
		gap: clamp(28px, 4vw, 56px);
		padding-left: clamp(18px, 3vw, 32px);
		padding-right: clamp(18px, 3vw, 32px);
	}
}

@media (max-width: 767px) {
	.fm-counter-stats--proof-row {
		--fm-cs-columns: 1;
	}

	.fm-counter-stats--proof-row .fm-counter-stats__item:not(:last-child)::after {
		display: none;
	}

	.fm-counter-stats--proof-row .fm-counter-stats__card {
		padding: 0;
	}

	.fm-counter-stats--bento-metrics .fm-counter-stats__grid {
		grid-template-columns: 1fr;
	}

	.fm-counter-stats--bento-metrics .fm-counter-stats__item--featured {
		grid-row: span 1;
	}

	.fm-counter-stats--impact-metrics .fm-counter-stats__grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.fm-counter-stats--impact-metrics .fm-counter-stats__prefix,
	.fm-counter-stats--impact-metrics .fm-counter-stats__value {
		font-size: clamp(2.65rem, 16vw, 4.25rem);
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__layout {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 32px;
		padding-bottom: 32px;
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__steps {
		padding: 0;
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__intro {
		position: relative;
		top: auto;
		transform: none;
		max-width: none;
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__step {
		min-height: auto;
		padding: 28px 0;
	}

	.fm-counter-stats--sticky-story .fm-counter-stats__prefix,
	.fm-counter-stats--sticky-story .fm-counter-stats__value {
		font-size: clamp(2.75rem, 14vw, 4.5rem);
	}

	.fm-counter-stats--signal-strip .fm-counter-stats__grid {
		flex-direction: column;
		align-items: stretch;
		border-radius: 24px;
		padding: 16px;
	}

	.fm-counter-stats--signal-strip .fm-counter-stats__item {
		padding-right: 0;
	}

	.fm-counter-stats--signal-strip .fm-counter-stats__item:not(:last-child) {
		border-right: 0;
		margin-right: 0;
		padding-right: 0;
		border-bottom: 1px solid var(--fm-cs-strip-border);
		margin-bottom: 10px;
		padding-bottom: 10px;
	}

	.fm-counter-stats--signal-strip .fm-counter-stats__card {
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fm-counter-stats__item {
		opacity: 1;
		transform: none;
		transition: none;
	}
}