.bannerscalc-widget {
	--bc-cyan: #00c2d1;
	--bc-magenta: #ec1e79;
	--bc-yellow: #ffd400;
	--bc-ink: #14141a;
	--bc-border: #e4e4e8;

	max-width: 420px;
	background: #fff;
	border: 1px solid var(--bc-border);
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	font-family: inherit;
}

.bannerscalc-heading {
	font-weight: 700;
	font-size: 15px;
	color: var(--bc-ink);
	margin-bottom: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.bannerscalc-field {
	margin-bottom: 14px;
}

.bannerscalc-field label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: #6b6b76;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 6px;
}

.bannerscalc-input {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--bc-border);
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 15px;
	color: var(--bc-ink);
	background: #fafafa;
}

.bannerscalc-input:focus {
	outline: none;
	border-color: var(--bc-cyan);
	background: #fff;
}

.bannerscalc-row {
	display: flex;
	gap: 12px;
}

.bannerscalc-dim {
	flex: 1;
}

.bannerscalc-input-suffix {
	position: relative;
}

.bannerscalc-input-suffix input {
	padding-right: 34px;
}

.bannerscalc-input-suffix span {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 13px;
	color: #9a9aa4;
	pointer-events: none;
}

.bannerscalc-stepper {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--bc-border);
	border-radius: 8px;
	overflow: hidden;
	background: #fafafa;
}

.bannerscalc-stepper input {
	border: none;
	background: transparent;
	text-align: center;
	flex: 1;
	border-radius: 0;
}

.bannerscalc-stepper input:focus {
	background: transparent;
}

.bannerscalc-stepper button {
	width: 38px;
	border: none;
	background: transparent;
	font-size: 18px;
	color: var(--bc-ink);
	cursor: pointer;
}

.bannerscalc-stepper button:hover {
	background: #f0f0f3;
}

.bannerscalc-price-box {
	background: var(--bc-ink);
	border-radius: 12px;
	padding: 16px 18px;
	margin: 18px 0 14px;
	text-align: left;
}

.bannerscalc-price-label {
	color: #b6b6c2;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
}

.bannerscalc-price {
	color: #fff;
	font-size: 30px;
	font-weight: 800;
	line-height: 1.3;
}

.bannerscalc-price-note {
	color: #8c8c98;
	font-size: 11px;
	margin-top: 2px;
}

.bannerscalc-error {
	display: none;
	color: var(--bc-yellow);
	font-size: 12px;
	margin-top: 6px;
}

.bannerscalc-cta {
	display: block;
	text-align: center;
	background: var(--bc-magenta);
	color: #fff !important;
	font-weight: 700;
	font-size: 15px;
	padding: 13px 20px;
	border-radius: 999px;
	text-decoration: none !important;
	transition: opacity 0.15s ease;
}

.bannerscalc-cta:hover {
	opacity: 0.9;
}
