/* AIDUS Quote Engine v0.3.2 - frontend styles
 * Mobile-first. Uses AIDUS brand colour via CSS custom property.
 *
 * v0.3.2:
 *   - Warning panel: text-align left in body (was inheriting centre from
 *     parent section), tighter title, stacked equal-width buttons on
 *     mobile, side-by-side flex on tablet+.
 *   - Lock UI: trust pills now compact so they fit 2-3 per row on mobile
 *     instead of stacking one per row. Lock my quote button full-width
 *     on mobile (capped 320px).
 *   - "Try different measurements" rendered as a quiet text link below
 *     the lock card instead of a competing outline button.
 *
 * v0.3.1:
 *   - Stepper input wrap fills full field row.
 *   - Stepper buttons bumped to 56px for visual balance.
 *
 * v0.3.0:
 *   - Bigger radio cards, stepper +/- buttons, section completion ticks,
 *     animated count-up on reveal, polish pass on focus/hover/transitions.
 *
 * v0.2.4: Polished lock UI.
 */

.aidus-qe {
	--aidus-qe-primary: #0F6E56;
	--aidus-qe-primary-soft: #E1F5EE;
	--aidus-qe-primary-soft-2: #F0FAF6;
	--aidus-qe-primary-dark: #0a4f3e;
	--aidus-qe-warning: #b07a00;
	--aidus-qe-warning-soft: #fff7e0;
	--aidus-qe-warning-border: #e8d27a;
	--aidus-qe-text: #1a1a1a;
	--aidus-qe-text-soft: #5a5a5a;
	--aidus-qe-border: #e5e5e5;
	--aidus-qe-border-soft: #ececec;
	--aidus-qe-bg: #ffffff;
	--aidus-qe-radius: 14px;
	--aidus-qe-radius-sm: 10px;
	--aidus-qe-radius-lg: 18px;
	--aidus-qe-shadow: 0 2px 8px rgba(0,0,0,0.04);
	--aidus-qe-ease: cubic-bezier(0.2, 0.8, 0.2, 1);

	max-width: 720px;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	color: var(--aidus-qe-text);
	line-height: 1.5;
	/* v0.3.2: ensure quote tool baseline is left-aligned even when parent section centres */
	text-align: left;
}

.aidus-qe *, .aidus-qe *::before, .aidus-qe *::after { box-sizing: border-box; }

.aidus-qe-form {
	background: var(--aidus-qe-bg);
	border-radius: var(--aidus-qe-radius);
	padding: 1.75rem 1.35rem 1.5rem;
	box-shadow: var(--aidus-qe-shadow);
	border: 1px solid var(--aidus-qe-border);
}

@media (min-width: 560px) {
	.aidus-qe-form { padding: 2rem 1.75rem 1.75rem; }
}

.aidus-qe-section { border: none; padding: 0; margin: 0 0 1.85rem; }
.aidus-qe-section:last-of-type { margin-bottom: 1rem; }

.aidus-qe-section__title {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--aidus-qe-primary);
	padding: 0;
	margin: 0 0 1rem;
}

.aidus-qe-section__title-text {
	display: inline-block;
}

.aidus-qe-section__tick {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--aidus-qe-primary);
	color: #ffffff;
	flex: 0 0 20px;
	opacity: 0;
	transform: scale(0.5);
	transition: opacity 220ms var(--aidus-qe-ease), transform 320ms var(--aidus-qe-ease);
}
.aidus-qe-section__tick svg { width: 12px; height: 12px; }
.aidus-qe-section[data-section-complete="true"] .aidus-qe-section__tick {
	opacity: 1;
	transform: scale(1);
}

.aidus-qe-unit-toggle {
	display: flex; align-items: center; gap: 0.5rem;
	margin: 0 0 1rem; padding: 0.5rem 0.75rem;
	background: #fafafa; border-radius: var(--aidus-qe-radius-sm);
	border: 1px solid var(--aidus-qe-border); flex-wrap: wrap;
}
.aidus-qe-unit-toggle__label { font-size: 0.85rem; color: var(--aidus-qe-text-soft); margin-right: 0.25rem; }
.aidus-qe-unit-toggle__option {
	display: inline-flex; align-items: center; gap: 0.35rem;
	padding: 0.3rem 0.7rem; border-radius: 999px; cursor: pointer; font-size: 0.85rem;
	transition: background-color 160ms var(--aidus-qe-ease);
}
.aidus-qe-unit-toggle__option input[type="radio"] { accent-color: var(--aidus-qe-primary); margin: 0; }
.aidus-qe-unit-toggle__option:has(input:checked) {
	background: var(--aidus-qe-primary-soft); color: var(--aidus-qe-primary); font-weight: 500;
}

.aidus-qe-section__fields { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 560px) {
	.aidus-qe-section__fields { grid-template-columns: 1fr 1fr; }
	.aidus-qe-field--full, .aidus-qe-field--radio { grid-column: 1 / -1; }
}

.aidus-qe-field__label { display: block; font-size: 0.95rem; font-weight: 500; margin-bottom: 0.45rem; color: var(--aidus-qe-text); }
.aidus-qe-field__required { color: var(--aidus-qe-primary); }
.aidus-qe-field__input-wrap { position: relative; display: flex; align-items: stretch; }

.aidus-qe-field input[type="number"],
.aidus-qe-field input[type="text"],
.aidus-qe-field input[type="email"],
.aidus-qe-field select {
	width: 100%; padding: 0.8rem 0.95rem; font-size: 1rem; line-height: 1.3;
	border: 1.5px solid var(--aidus-qe-border); border-radius: var(--aidus-qe-radius-sm);
	background: #fdfdfd; color: var(--aidus-qe-text); font-family: inherit;
	transition: border-color 160ms var(--aidus-qe-ease), background-color 160ms var(--aidus-qe-ease), box-shadow 160ms var(--aidus-qe-ease);
	-webkit-appearance: none; appearance: none; -moz-appearance: textfield;
}

.aidus-qe-field input[type="number"]::-webkit-outer-spin-button,
.aidus-qe-field input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none; margin: 0;
}

.aidus-qe-field input:focus, .aidus-qe-field select:focus {
	outline: none; border-color: var(--aidus-qe-primary);
	background: #ffffff; box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft);
}

.aidus-qe-field__unit {
	position: absolute; right: 0.95rem; top: 50%; transform: translateY(-50%);
	font-size: 0.85rem; color: var(--aidus-qe-text-soft); pointer-events: none;
}

.aidus-qe-field--select select {
	background-image: linear-gradient(45deg, transparent 50%, var(--aidus-qe-text-soft) 50%),
		linear-gradient(135deg, var(--aidus-qe-text-soft) 50%, transparent 50%);
	background-position: calc(100% - 18px) center, calc(100% - 12px) center;
	background-size: 6px 6px; background-repeat: no-repeat; padding-right: 2.5rem;
}

/* Radio cards */
.aidus-qe-field__radios {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.625rem;
}
@media (min-width: 480px) {
	.aidus-qe-field__radios { grid-template-columns: 1fr 1fr; }
}

.aidus-qe-field__radio {
	position: relative;
	min-width: 0;
	min-height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 1rem 1.15rem;
	border: 2px solid var(--aidus-qe-border);
	border-radius: var(--aidus-qe-radius-sm);
	background: #ffffff;
	cursor: pointer;
	font-size: 0.98rem;
	text-align: center;
	transition:
		border-color 180ms var(--aidus-qe-ease),
		background-color 180ms var(--aidus-qe-ease),
		transform 180ms var(--aidus-qe-ease),
		box-shadow 180ms var(--aidus-qe-ease);
}
.aidus-qe-field__radio:hover {
	border-color: #c9ddd5;
	background: #fafdfb;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(15, 110, 86, 0.08);
}
.aidus-qe-field__radio:focus-within {
	border-color: var(--aidus-qe-primary);
	box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft);
	outline: none;
}
.aidus-qe-field__radio input[type="radio"] {
	accent-color: var(--aidus-qe-primary);
	margin: 0;
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}
.aidus-qe-field__radio:has(input:checked) {
	border-color: var(--aidus-qe-primary);
	background: var(--aidus-qe-primary-soft);
	font-weight: 600;
	box-shadow: 0 2px 10px rgba(15, 110, 86, 0.14);
}
.aidus-qe-field__radio:has(input:checked):hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(15, 110, 86, 0.18);
}
.aidus-qe-field__radio-text { line-height: 1.3; }

/* Stepper */
.aidus-qe-field__input-wrap--stepper {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
}
.aidus-qe-stepper-btn {
	flex: 0 0 56px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--aidus-qe-border);
	background: #f7faf9;
	color: var(--aidus-qe-primary);
	cursor: pointer;
	padding: 0;
	font-family: inherit;
	transition:
		background-color 160ms var(--aidus-qe-ease),
		color 160ms var(--aidus-qe-ease),
		border-color 160ms var(--aidus-qe-ease),
		transform 80ms var(--aidus-qe-ease);
}
.aidus-qe-stepper-btn svg { width: 20px; height: 20px; pointer-events: none; }
.aidus-qe-stepper-btn:first-child {
	border-radius: var(--aidus-qe-radius-sm) 0 0 var(--aidus-qe-radius-sm);
	border-right: none;
}
.aidus-qe-stepper-btn:last-child {
	border-radius: 0 var(--aidus-qe-radius-sm) var(--aidus-qe-radius-sm) 0;
	border-left: none;
}
.aidus-qe-stepper-btn:hover {
	background: var(--aidus-qe-primary-soft);
	border-color: var(--aidus-qe-primary);
	color: var(--aidus-qe-primary-dark);
}
.aidus-qe-stepper-btn:active {
	background: var(--aidus-qe-primary);
	color: #ffffff;
	transform: scale(0.94);
}
.aidus-qe-stepper-btn:focus-visible {
	outline: none;
	background: var(--aidus-qe-primary-soft);
	border-color: var(--aidus-qe-primary);
	box-shadow: 0 0 0 3px var(--aidus-qe-primary-soft);
	z-index: 1;
}
.aidus-qe-field__input-wrap--stepper input[type="number"] {
	flex: 1 1 auto;
	min-width: 0;
	border-radius: 0;
	border-left-width: 0;
	border-right-width: 0;
	text-align: center;
	font-weight: 600;
	font-size: 1.15rem;
	padding: 0.85rem 0.4rem;
	-moz-appearance: textfield;
}
.aidus-qe-field__input-wrap--stepper input[type="number"]:focus {
	box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft);
	border-left-color: var(--aidus-qe-primary);
	border-right-color: var(--aidus-qe-primary);
	border-left-width: 0;
	border-right-width: 0;
	position: relative;
	z-index: 1;
}

@keyframes aidus-qe-input-pulse {
	0%   { background-color: var(--aidus-qe-primary-soft); }
	100% { background-color: #fdfdfd; }
}
.aidus-qe-field input.is-pulsing {
	animation: aidus-qe-input-pulse 240ms var(--aidus-qe-ease);
}

.aidus-qe-field__help { margin: 0.4rem 0 0; font-size: 0.82rem; color: var(--aidus-qe-text-soft); line-height: 1.4; }

.aidus-qe-actions { margin-top: 1.5rem; display: flex; justify-content: center; }

.aidus-qe-submit {
	background: var(--aidus-qe-primary); color: #ffffff; border: none;
	padding: 0.95rem 2.25rem; font-size: 1rem; font-weight: 600; border-radius: 999px;
	cursor: pointer; font-family: inherit;
	transition:
		transform 160ms var(--aidus-qe-ease),
		box-shadow 220ms var(--aidus-qe-ease),
		background-color 160ms var(--aidus-qe-ease);
	box-shadow: 0 4px 12px rgba(15, 110, 86, 0.22);
	min-width: 220px;
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	letter-spacing: -0.005em;
}
.aidus-qe-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(15, 110, 86, 0.32);
	background: var(--aidus-qe-primary-dark);
}
.aidus-qe-submit:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(15, 110, 86, 0.22); }
.aidus-qe-submit:disabled { opacity: 0.65; cursor: wait; transform: none; box-shadow: 0 2px 8px rgba(15, 110, 86, 0.22); }
.aidus-qe-submit:focus-visible {
	outline: none;
	box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft), 0 6px 16px rgba(15, 110, 86, 0.28);
}
.aidus-qe-submit--compact { min-width: 0; padding: 0.7rem 1.5rem; font-size: 0.95rem; font-weight: 500; }

.aidus-qe-secondary {
	background: transparent; color: var(--aidus-qe-primary); border: 1.5px solid var(--aidus-qe-primary);
	padding: 0.7rem 1.5rem; font-size: 0.95rem; font-weight: 500; border-radius: 999px;
	cursor: pointer; font-family: inherit;
	transition: background-color 160ms var(--aidus-qe-ease), transform 120ms var(--aidus-qe-ease);
}
.aidus-qe-secondary:hover { background: var(--aidus-qe-primary-soft); transform: translateY(-1px); }
.aidus-qe-secondary:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft); }

.aidus-qe-warning[hidden],
.aidus-qe-result[hidden],
.aidus-qe-form[hidden],
.aidus-qe-result__override[hidden],
.aidus-qe-result__lock-form[hidden],
.aidus-qe-result__lock-success[hidden],
.aidus-qe-result__lock-error[hidden],
.aidus-qe-result__lock-prompt[hidden] {
	display: none !important;
}

.aidus-qe-result__override {
	display: flex; align-items: flex-start; gap: 0.55rem;
	max-width: 32rem; margin: 0.75rem auto 0; padding: 0.65rem 0.9rem;
	background: var(--aidus-qe-warning-soft); border: 1px solid var(--aidus-qe-warning-border);
	border-radius: var(--aidus-qe-radius-sm); font-size: 0.85rem; color: var(--aidus-qe-text);
	text-align: left; line-height: 1.45;
}
.aidus-qe-result__override-icon {
	flex: 0 0 18px; display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; background: var(--aidus-qe-warning); color: #ffffff;
	border-radius: 50%; font-weight: 700; font-size: 0.7rem; line-height: 1; margin-top: 0.1rem;
}

/* ============================================================
 * v0.3.2: Warning panel — balanced + readable
 * ============================================================ */
.aidus-qe-warning {
	background: var(--aidus-qe-warning-soft);
	border: 1px solid var(--aidus-qe-warning-border);
	border-radius: var(--aidus-qe-radius);
	padding: 1.25rem;
	margin-top: 1rem;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas: "icon body" "actions actions";
	gap: 0.75rem 1rem;
	align-items: start;
	animation: aidus-qe-fadein 280ms var(--aidus-qe-ease);
	text-align: left;
}
@media (min-width: 560px) {
	.aidus-qe-warning { grid-template-areas: "icon body" "icon actions"; }
}
.aidus-qe-warning__icon {
	grid-area: icon;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--aidus-qe-warning);
	color: #ffffff;
	border-radius: 50%;
	font-weight: 700;
	font-size: 1.1rem;
}
.aidus-qe-warning__body { grid-area: body; text-align: left; }
.aidus-qe-warning__title {
	margin: 0 0 0.4rem;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--aidus-qe-warning);
	text-align: left;
}
.aidus-qe-warning__message {
	margin: 0;
	font-size: 0.9rem;
	color: var(--aidus-qe-text);
	line-height: 1.5;
	text-align: left;
}
.aidus-qe-warning__actions {
	grid-area: actions;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}
@media (min-width: 560px) {
	.aidus-qe-warning__actions {
		flex-direction: row;
		gap: 0.625rem;
		margin-top: 0.5rem;
	}
}
.aidus-qe-warning__actions .aidus-qe-submit,
.aidus-qe-warning__actions .aidus-qe-secondary {
	width: 100%;
	min-width: 0;
	padding: 0.8rem 1.5rem;
	font-size: 0.95rem;
}
@media (min-width: 560px) {
	.aidus-qe-warning__actions .aidus-qe-submit,
	.aidus-qe-warning__actions .aidus-qe-secondary {
		width: auto;
		flex: 1 1 0;
	}
}

.aidus-qe-result {
	background: var(--aidus-qe-bg); border-radius: var(--aidus-qe-radius);
	padding: 2.25rem 1.5rem 1.75rem; text-align: center;
	box-shadow: var(--aidus-qe-shadow); border: 1px solid var(--aidus-qe-border);
	animation: aidus-qe-fadein 320ms var(--aidus-qe-ease);
}

@keyframes aidus-qe-fadein {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}

.aidus-qe-result__intro {
	font-size: 0.9rem; color: var(--aidus-qe-text-soft);
	text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 1rem;
}
.aidus-qe-result__price {
	display: flex; flex-direction: column; align-items: center;
	gap: 0.25rem; margin: 0.5rem 0 1.25rem;
}
.aidus-qe-result__from-label, .aidus-qe-result__to-label {
	font-size: 0.85rem; color: var(--aidus-qe-text-soft);
	text-transform: uppercase; letter-spacing: 0.06em; margin-top: 0.5rem;
}
.aidus-qe-result__from-label { margin-top: 0; }
.aidus-qe-result__from {
	font-size: 3rem;
	font-weight: 700;
	color: var(--aidus-qe-primary);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
}
@media (min-width: 560px) { .aidus-qe-result__from { font-size: 3.75rem; } }
.aidus-qe-result__to {
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--aidus-qe-text);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.aidus-qe-result__type {
	display: inline-block; background: var(--aidus-qe-primary-soft); color: var(--aidus-qe-primary);
	font-size: 0.85rem; font-weight: 500; padding: 0.35rem 0.85rem;
	border-radius: 999px; margin: 0.5rem 0;
}

.aidus-qe-result__trust {
	margin: 1.25rem auto; max-width: 32rem;
	background: var(--aidus-qe-primary-soft); border-radius: var(--aidus-qe-radius);
	padding: 1.1rem 1.25rem; text-align: left;
}
.aidus-qe-result__trust-message {
	margin: 0 0 0.65rem; font-size: 0.98rem; font-weight: 500;
	color: var(--aidus-qe-primary-dark); text-align: center;
}
.aidus-qe-result__includes { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; }
.aidus-qe-result__includes li { position: relative; padding-left: 1.5rem; font-size: 0.88rem; color: var(--aidus-qe-text); }
.aidus-qe-result__includes li::before {
	content: "\2713"; position: absolute; left: 0;
	color: var(--aidus-qe-primary); font-weight: 700;
}

.aidus-qe-result__note {
	font-size: 0.88rem; color: var(--aidus-qe-text-soft); max-width: 32rem;
	margin: 0.75rem auto 1.5rem; line-height: 1.55; font-style: italic;
}

.aidus-qe-result__actions {
	display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap;
	margin-top: 1rem;
}

/* v0.3.2: "Try different measurements" as quiet text link */
.aidus-qe-result__restart {
	background: transparent;
	border: none;
	color: var(--aidus-qe-text-soft);
	padding: 0.5rem 1rem;
	font-size: 0.88rem;
	font-weight: 500;
	cursor: pointer;
	font-family: inherit;
	text-decoration: underline;
	text-decoration-color: rgba(0, 0, 0, 0.25);
	text-underline-offset: 4px;
	transition:
		color 160ms var(--aidus-qe-ease),
		text-decoration-color 160ms var(--aidus-qe-ease);
}
.aidus-qe-result__restart:hover {
	color: var(--aidus-qe-primary);
	text-decoration-color: var(--aidus-qe-primary);
}
.aidus-qe-result__restart:focus-visible {
	outline: none;
	color: var(--aidus-qe-primary);
	text-decoration-color: var(--aidus-qe-primary);
	box-shadow: 0 0 0 4px var(--aidus-qe-primary-soft);
	border-radius: 4px;
}

.aidus-qe-error {
	background: #fff5f5; color: #b03030; border: 1px solid #f2c5c5;
	border-radius: var(--aidus-qe-radius-sm); padding: 0.85rem 1rem;
	margin-top: 0.75rem; font-size: 0.92rem;
}

/* ============================================================
 * Polished Lock my quote UI
 * ============================================================ */
.aidus-qe-result__lock {
	max-width: 34rem;
	margin: 1rem auto 1rem;
	padding: 1.85rem 1.5rem 1.5rem;
	background: linear-gradient(155deg, var(--aidus-qe-primary-soft) 0%, var(--aidus-qe-primary-soft-2) 100%);
	border: 1.5px solid var(--aidus-qe-primary);
	border-radius: var(--aidus-qe-radius-lg);
	text-align: center;
	box-shadow: 0 4px 18px rgba(15, 110, 86, 0.10);
	position: relative;
}

.aidus-qe-result__lock-prompt { text-align: center; }

.aidus-qe-result__lock-icon {
	width: 56px;
	height: 56px;
	margin: 0 auto 0.9rem;
	background: var(--aidus-qe-primary);
	color: #ffffff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 16px rgba(15, 110, 86, 0.28);
}
.aidus-qe-result__lock-icon svg { width: 28px; height: 28px; }

.aidus-qe-result__lock-title {
	margin: 0 0 0.4rem;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--aidus-qe-primary-dark);
	letter-spacing: -0.01em;
}

.aidus-qe-result__lock-desc {
	margin: 0 auto 1.1rem;
	font-size: 0.95rem;
	color: var(--aidus-qe-text);
	line-height: 1.5;
	max-width: 28rem;
}

/* v0.3.2: Compact trust pills — 2-3 per row on mobile instead of stacking */
.aidus-qe-result__lock-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem 0.45rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}
.aidus-qe-result__lock-trust li {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.25rem 0.65rem;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid #cfe9dd;
	border-radius: 999px;
	font-size: 0.78rem;
	color: var(--aidus-qe-text);
	font-weight: 500;
	line-height: 1.3;
	white-space: nowrap;
}
.aidus-qe-result__lock-trust li::before {
	content: "\2713";
	color: var(--aidus-qe-primary);
	font-weight: 700;
	font-size: 0.8rem;
}

/* v0.3.2: Lock my quote button — full width on mobile */
.aidus-qe-result__lock-reveal {
	width: 100%;
	max-width: 320px;
	min-width: 0;
	padding: 0.9rem 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	box-shadow: 0 6px 18px rgba(15, 110, 86, 0.32);
}
.aidus-qe-result__lock-reveal:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(15, 110, 86, 0.38);
}
.aidus-qe-result__lock-reveal svg { width: 18px; height: 18px; flex-shrink: 0; }

.aidus-qe-result__lock-form {
	text-align: left;
	animation: aidus-qe-fadein 240ms var(--aidus-qe-ease);
}
.aidus-qe-result__lock-form-header { text-align: center; margin-bottom: 1.1rem; }
.aidus-qe-result__lock-form-header .aidus-qe-result__lock-title { font-size: 1.15rem; margin-bottom: 0.3rem; }
.aidus-qe-result__lock-form-header .aidus-qe-result__lock-desc { font-size: 0.9rem; margin-bottom: 0; }

.aidus-qe-result__lock-fields { grid-template-columns: 1fr; gap: 0.85rem; }
.aidus-qe-result__lock-fields .aidus-qe-field input { background: #ffffff; }

.aidus-qe-field__optional { color: var(--aidus-qe-text-soft); font-weight: 400; font-size: 0.85em; }

.aidus-qe-result__lock-consent {
	display: flex; align-items: flex-start; gap: 0.55rem;
	margin: 1rem 0 0; padding: 0.5rem 0;
	font-size: 0.85rem; color: var(--aidus-qe-text); line-height: 1.45; cursor: pointer;
}
.aidus-qe-result__lock-consent input[type="checkbox"] {
	margin-top: 0.18rem; accent-color: var(--aidus-qe-primary); flex: 0 0 auto;
	width: 16px; height: 16px;
}

.aidus-qe-result__lock-actions {
	display: flex; flex-wrap: wrap; gap: 0.5rem;
	margin-top: 1.1rem; justify-content: center;
}
.aidus-qe-result__lock-actions .aidus-qe-submit { min-width: 200px; padding: 0.85rem 1.75rem; font-weight: 600; }
.aidus-qe-result__lock-actions .aidus-qe-submit svg { width: 16px; height: 16px; }

.aidus-qe-result__lock-privacy {
	margin: 0.95rem 0 0; font-size: 0.78rem;
	color: var(--aidus-qe-text-soft); line-height: 1.45;
	text-align: center;
}
.aidus-qe-result__lock-privacy a { color: var(--aidus-qe-primary); text-decoration: underline; }

.aidus-qe-result__lock-error {
	margin-top: 0.85rem; padding: 0.65rem 0.9rem;
	background: #fff5f5; color: #b03030;
	border: 1px solid #f2c5c5; border-radius: var(--aidus-qe-radius-sm);
	font-size: 0.88rem;
}

.aidus-qe-result__lock-success {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0.5rem 0.5rem 0.25rem;
	animation: aidus-qe-fadein 320ms var(--aidus-qe-ease);
}
.aidus-qe-result__lock-tick-wrap {
	width: 64px;
	height: 64px;
	background: var(--aidus-qe-primary);
	color: #ffffff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1rem;
	box-shadow: 0 8px 20px rgba(15, 110, 86, 0.35);
	animation: aidus-qe-tick-pop 500ms cubic-bezier(0.34, 1.56, 0.64, 1) 80ms both;
}
.aidus-qe-result__lock-tick-wrap svg { width: 32px; height: 32px; }
.aidus-qe-result__lock-success-title {
	margin: 0 0 0.4rem;
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--aidus-qe-primary-dark);
	letter-spacing: -0.01em;
}
.aidus-qe-result__lock-success-msg {
	margin: 0;
	font-size: 0.95rem;
	color: var(--aidus-qe-text);
	line-height: 1.5;
	max-width: 28rem;
}
@keyframes aidus-qe-tick-pop {
	0%   { transform: scale(0); opacity: 0; }
	60%  { transform: scale(1.15); opacity: 1; }
	100% { transform: scale(1); opacity: 1; }
}

.aidus-qe-honeypot {
	position: absolute; left: -9999px;
	width: 1px; height: 1px; overflow: hidden; pointer-events: none;
}

@media (max-width: 559px) {
	.aidus-qe-form { padding: 1.5rem 1.1rem 1.35rem; }
	.aidus-qe-actions { margin-top: 1.75rem; }
	.aidus-qe-submit {
		width: 100%;
		min-width: 0;
		max-width: 320px;
	}
	.aidus-qe-result { padding: 2rem 1.1rem 1.35rem; }
	.aidus-qe-result__lock { padding: 1.5rem 1.1rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
	.aidus-qe-section__tick,
	.aidus-qe-field__radio,
	.aidus-qe-stepper-btn,
	.aidus-qe-submit,
	.aidus-qe-secondary,
	.aidus-qe-result,
	.aidus-qe-result__lock-form,
	.aidus-qe-result__lock-success {
		transition-duration: 0ms !important;
		animation-duration: 0ms !important;
		animation-iteration-count: 1 !important;
	}
}
