.bfc-counter-set,
.bfc-counter-set * {
	box-sizing: border-box;
}

.bfc-counter-set {
	width: 100%;
	font-family: var(--bfc-font-family, "ABeeZee", Arial, sans-serif);
}

.bfc-counters {
	display: grid;
	grid-template-columns: repeat(var(--bfc-columns-desktop, 4), minmax(0, 1fr));
	gap: var(--bfc-gap-desktop, 0);
	width: 100%;
	max-width: var(--bfc-max-width, 960px);
	margin: 0 auto;
	padding: var(--bfc-padding-y, 18px) var(--bfc-padding-x, 0);
	border: 0 !important;
	outline: 0 !important;
	background: var(--bfc-background, #ffffff);
	box-shadow: none !important;
	font-family: var(--bfc-font-family, "ABeeZee", Arial, sans-serif);
}

.elementor-widget-shortcode:has(.bfc-counter-set),
.elementor-widget-shortcode:has(.bfc-counter-set) > .elementor-widget-container,
.elementor-widget-html:has(.bfc-counter-set),
.elementor-widget-html:has(.bfc-counter-set) > .elementor-widget-container,
.elementor-widget-text-editor:has(.bfc-counter-set),
.elementor-widget-text-editor:has(.bfc-counter-set) > .elementor-widget-container,
.elementor-widget-shortcode:has(.bfc-counters),
.elementor-widget-shortcode:has(.bfc-counters) > .elementor-widget-container,
.elementor-widget-html:has(.bfc-counters),
.elementor-widget-html:has(.bfc-counters) > .elementor-widget-container,
.elementor-widget-text-editor:has(.bfc-counters),
.elementor-widget-text-editor:has(.bfc-counters) > .elementor-widget-container {
	border: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.bfc-counter {
	position: relative;
	display: grid;
	align-content: center;
	justify-items: center;
	min-width: 0;
	padding: 0 34px;
	text-align: center;
}

.bfc-counters.has-dividers .bfc-counter:not(:first-child)::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 1px;
	height: var(--bfc-divider-height, 86px);
	content: "";
	background: var(--bfc-divider, #c9c9c9);
	transform: translateY(-50%);
}

.bfc-counter-value {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 7px;
	width: 100%;
	color: var(--bfc-number, #000000);
	line-height: 0.95;
	white-space: nowrap;
}

.bfc-counter-number {
	display: inline-block;
	font-size: var(--bfc-number-size-desktop, 46px);
	font-weight: var(--bfc-number-weight, 800);
	letter-spacing: var(--bfc-letter-spacing, 0);
}

.bfc-counter-suffix {
	display: inline-block;
	color: var(--bfc-suffix, #000000);
	font-size: var(--bfc-suffix-size, 13px);
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}

.bfc-counter-suffix.is-empty {
	display: none;
}

.bfc-counter-label {
	width: 100%;
	margin-top: 5px;
	color: var(--bfc-label, #000000);
	font-size: var(--bfc-label-size, 16px);
	font-weight: var(--bfc-label-weight, 800);
	line-height: 1.1;
	letter-spacing: var(--bfc-letter-spacing, 0);
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.bfc-toggle-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 100%;
	margin: 20px auto 0;
	color: var(--bfc-toggle-text, #000000);
	font-family: var(--bfc-font-family, "ABeeZee", Arial, sans-serif);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	transform: scale(var(--bfc-toggle-scale, 1));
	transform-origin: center top;
}

.bfc-toggle-label {
	min-width: 0;
	max-width: 180px;
}

.bfc-toggle {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	width: 96px;
	height: 50px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.74), rgba(0, 0, 0, 0.06)),
		var(--bfc-toggle-track, #e7e7e5);
	box-shadow:
		inset 5px 5px 12px color-mix(in srgb, var(--bfc-toggle-shadow, #b6b6b2) 46%, transparent),
		inset -6px -6px 14px rgba(255, 255, 255, 0.88),
		0 10px 20px color-mix(in srgb, var(--bfc-toggle-shadow, #b6b6b2) 34%, transparent);
	cursor: pointer;
	transition: background-color 220ms ease, box-shadow 220ms ease;
	-webkit-tap-highlight-color: transparent;
}

.bfc-toggle.is-active {
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.38), rgba(0, 0, 0, 0.08)),
		var(--bfc-toggle-active, #b1b9b2);
}

.bfc-toggle:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--bfc-toggle-active, #b1b9b2) 72%, #000000);
	outline-offset: 4px;
}

.bfc-toggle-knob {
	position: absolute;
	top: 4px;
	left: 4px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background:
		radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.18) 58%, transparent 68%),
		var(--bfc-toggle-knob, #ffffff);
	box-shadow:
		0 8px 14px color-mix(in srgb, var(--bfc-toggle-shadow, #b6b6b2) 58%, transparent),
		-2px -2px 7px rgba(255, 255, 255, 0.86),
		inset -4px -4px 9px rgba(0, 0, 0, 0.08);
	transition: transform 260ms cubic-bezier(0.2, 0.9, 0.25, 1.12);
}

.bfc-toggle.is-active .bfc-toggle-knob {
	transform: translateX(46px);
}

@media (max-width: 1024px) {
	.bfc-counters {
		grid-template-columns: repeat(var(--bfc-columns-tablet, 2), minmax(0, 1fr));
		gap: var(--bfc-gap-tablet, 22px);
	}

	.bfc-counter {
		padding: 22px 24px;
	}

	.bfc-counters.has-dividers .bfc-counter::before {
		display: none;
	}

	.bfc-counter-number {
		font-size: var(--bfc-number-size-tablet, 40px);
	}

	.bfc-toggle-wrap {
		margin-top: 18px;
		gap: 14px;
	}
}

@media (max-width: 767px) {
	.bfc-counters {
		grid-template-columns: repeat(var(--bfc-columns-mobile, 1), minmax(0, 1fr));
		gap: var(--bfc-gap-mobile, 16px);
	}

	.bfc-counter {
		padding: 18px 18px;
	}

	.bfc-counter-value {
		gap: 6px;
	}

	.bfc-counter-number {
		font-size: var(--bfc-number-size-mobile, 36px);
	}

	.bfc-counter-suffix {
		font-size: max(10px, calc(var(--bfc-suffix-size, 13px) * 0.9));
	}

	.bfc-counter-label {
		font-size: max(11px, calc(var(--bfc-label-size, 16px) * 0.9));
	}

	.bfc-toggle-wrap {
		flex-wrap: wrap;
		gap: 10px 12px;
		margin-top: 16px;
		font-size: 13px;
	}

	.bfc-toggle {
		width: 82px;
		height: 44px;
	}

	.bfc-toggle-knob {
		width: 36px;
		height: 36px;
	}

	.bfc-toggle.is-active .bfc-toggle-knob {
		transform: translateX(38px);
	}
}
