.swapval-estimator {
	max-width: var(--swapval-max-width, 480px);
	margin: 0 auto;
	font-family: var(--swapval-font-family, inherit);
	background: var(--swapval-bg, #fff);
	border: 1px solid var(--swapval-border-color, #e2e2e2);
	border-radius: var(--swapval-radius, 12px);
	padding: 24px;
	box-shadow: 0 2px 10px rgba(0,0,0,.05);
	color: var(--swapval-text-color, #1d2327);
}
.swapval-progress {
	display: flex;
	gap: 8px;
	margin-bottom: 20px;
}
.swapval-step-dot {
	height: 6px;
	flex: 1;
	background: var(--swapval-border-color, #e5e5e5);
	border-radius: 4px;
}
.swapval-step-dot.active {
	background: var(--swapval-primary-color, #2563eb);
}
.swapval-estimator h3 {
	margin: 0 0 8px;
	font-size: 18px;
	color: var(--swapval-heading-color, #1d2327);
	font-family: var(--swapval-font-family, inherit);
}
.swapval-intro, .swapval-help {
	color: var(--swapval-muted-color, #666);
	font-size: 13px;
	margin-bottom: 16px;
}
.swapval-estimator label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin: 12px 0 4px;
	color: var(--swapval-text-color, #1d2327);
}
.swapval-estimator select,
.swapval-estimator input[type="text"],
.swapval-estimator input[type="email"],
.swapval-estimator input[type="tel"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--swapval-border-color, #d1d1d1);
	border-radius: var(--swapval-control-radius, 8px);
	font-size: 14px;
	box-sizing: border-box;
	font-family: var(--swapval-font-family, inherit);
	color: var(--swapval-text-color, #1d2327);
	background: var(--swapval-bg, #fff);
}
.swapval-question-row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid var(--swapval-border-color, #f0f0f0);
	font-weight: 400 !important;
	margin: 0 !important;
	cursor: pointer;
	color: var(--swapval-text-color, #1d2327);
}
.swapval-question-row input {
	margin-top: 3px;
	accent-color: var(--swapval-primary-color, #2563eb);
}
.swapval-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 20px;
}
.swapval-actions .button,
.swapval-estimator button {
	font-family: var(--swapval-font-family, inherit);
	border-radius: var(--swapval-control-radius, 8px);
}
.swapval-actions .button-primary,
.swapval-estimator button.button-primary {
	background: var(--swapval-primary-color, #2563eb);
	border-color: var(--swapval-primary-color, #2563eb);
	color: var(--swapval-primary-text-color, #fff);
}
.swapval-actions .button-link {
	color: var(--swapval-primary-color, #2563eb);
}
.swapval-result {
	text-align: center;
	background: var(--swapval-highlight-bg, #f0f7ff);
	border-radius: var(--swapval-control-radius, 10px);
	padding: 20px;
	margin-bottom: 20px;
}
.swapval-result-label {
	display: block;
	font-size: 13px;
	color: var(--swapval-highlight-text, #555);
}
.swapval-result-value {
	display: block;
	font-size: 32px;
	font-weight: 700;
	color: var(--swapval-primary-color, #1d4ed8);
	margin: 6px 0;
	font-family: var(--swapval-font-family, inherit);
}
.swapval-breakdown {
	list-style: none;
	padding: 0;
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--swapval-muted-color, #777);
	text-align: left;
}
.swapval-terms {
	font-size: 11px;
	color: var(--swapval-muted-color, #999);
	margin-top: 14px;
}
.swapval-confirmation {
	text-align: center;
	padding: 10px 0;
}
.swapval-confirmation .swapval-value {
	font-size: 28px;
	font-weight: 700;
	color: var(--swapval-primary-color, #1d4ed8);
	margin: 10px 0;
	font-family: var(--swapval-font-family, inherit);
}
.swapval-confirmation .swapval-code {
	display: inline-block;
	background: var(--swapval-heading-color, #111827);
	color: var(--swapval-primary-text-color, #fff);
	padding: 8px 16px;
	border-radius: var(--swapval-control-radius, 8px);
	font-family: monospace;
	font-size: 16px;
	letter-spacing: 1px;
	margin-bottom: 8px;
}
.swapval-code-hint {
	font-size: 12px;
	color: var(--swapval-muted-color, #777);
}
.swapval-error {
	background: var(--swapval-error-bg, #fef2f2);
	color: var(--swapval-error-text, #b91c1c);
	border-radius: var(--swapval-control-radius, 8px);
	padding: 10px 14px;
	margin-top: 14px;
	font-size: 13px;
}
.swapval-loading {
	text-align: center;
	font-size: 13px;
	color: var(--swapval-muted-color, #777);
	margin-top: 10px;
}

/* Product page trigger + modal */
.swapval-trigger-wrap {
	margin: 14px 0;
}
.swapval-open-estimator {
	width: 100%;
	font-family: var(--swapval-font-family, inherit);
	background: var(--swapval-primary-color, #2563eb);
	border-color: var(--swapval-primary-color, #2563eb);
	color: var(--swapval-primary-text-color, #fff);
	border-radius: var(--swapval-control-radius, 8px);
}
.swapval-modal {
	position: fixed;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(0,0,0,.5);
	z-index: 100000;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.swapval-modal-inner {
	position: relative;
	max-height: 90vh;
	overflow-y: auto;
	width: 100%;
	max-width: calc(var(--swapval-max-width, 480px) + 40px);
}
.swapval-modal-close {
	position: absolute;
	top: -10px;
	right: -10px;
	background: var(--swapval-heading-color, #111827);
	color: #fff;
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 18px;
	cursor: pointer;
	z-index: 2;
}
