/* Endocare Ankieta — scoped styles (eca-) */
@font-face {
	font-family: 'Parkinsans';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/parkinsans-300.ttf') format('truetype');
}
@font-face {
	font-family: 'Parkinsans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/parkinsans-400.ttf') format('truetype');
}
@font-face {
	font-family: 'Parkinsans';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/parkinsans-500.ttf') format('truetype');
}
@font-face {
	font-family: 'Parkinsans';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/parkinsans-600.ttf') format('truetype');
}

.eca-root {
	overflow-x: hidden;
	max-width: 100%;
	width: 100%;
	/* na mobile: tylko pionowy scroll strony — bez panowania w bok */
	touch-action: pan-y;
	--eca-brand: #40005C;
	--eca-brand-deep: #3B1053;
	--eca-brand-mid: #6B3FA0;
	--eca-gold: #EFCF7D;
	--eca-gold-hover: #E8C363;
	--eca-gold-accent: #EBC873;
	--eca-gold-cta-hover: #E3BB57;
	--eca-gold-soft: #FBF3DF;
	--eca-gold-mark: #B8902F;
	--eca-gold-done: #8A6D1F;
	--eca-text: #2E2237;
	--eca-text-2: #574C63;
	--eca-muted: #8C7BA3;
	--eca-muted-2: #A99CBB;
	--eca-bg: #FBFAF8;
	--eca-card: #FFFFFF;
	--eca-input-bg: #FDFCFB;
	--eca-selected-bg: #F6F2FB;
	--eca-err-row: #FDF7F6;
	--eca-border: #ECE6DC;
	--eca-input-border: #DCD3E8;
	--eca-sep: #F1ECE4;
	--eca-acds-border: #E8E2D9;
	--eca-err: #B5433A;
	--eca-err-border: #D98A81;
	--eca-err-border-2: #E0AFA8;
	--eca-ok: #4C7A42;
	--eca-ok-border: #9CC48F;
	--eca-progress-track: #DCD2F6;
	--eca-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--eca-pop: cubic-bezier(0.34, 1.56, 0.64, 1);
	--eca-max: 900px;

	box-sizing: border-box;
	color: var(--eca-text);
	background: var(--eca-bg);
	font-family: 'Parkinsans', system-ui, sans-serif;
	font-weight: 400;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	margin: 0;
}

.eca-root *,
.eca-root *::before,
.eca-root *::after {
	box-sizing: border-box;
}

.eca-root button,
.eca-root input {
	font-family: inherit;
}
.eca-root input::placeholder {
	color: #B8ACC9;
	font-weight: 300;
}

.eca-root a {
	color: var(--eca-brand-deep);
	text-decoration: none;
}
.eca-root a:hover {
	color: var(--eca-brand-mid);
}

.eca-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
}

/* Stepper — ścieżka etapów (kliniczny przebieg, nie „pigułki”) */
.eca-stepper {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 250, 248, 0.96);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	/* bez border-bottom — rozdzielaczem jest sam pasek postępu */
	border-bottom: none;
	overflow-x: hidden;
	max-width: 100%;
}
.eca-stepper__inner {
	max-width: min(var(--eca-max), 100%);
	margin: 0 auto;
	/* bez dolnego paddingu — pasek postępu styka się z border-bottom */
	padding: 14px clamp(14px, 3vw, 28px) 0;
	box-sizing: border-box;
	width: 100%;
}
.eca-stepper__meta {
	display: flex;
	align-items: baseline;
	justify-content: flex-start;
	gap: 12px;
	margin-bottom: 14px;
}
.eca-stepper__count {
	margin: 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--eca-muted);
}
.eca-stepper__count-kicker {
	color: var(--eca-muted-2);
}
.eca-stepper__count strong {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--eca-brand-deep);
	letter-spacing: 0.04em;
}
.eca-stepper__count-of {
	font-variant-numeric: tabular-nums;
	color: var(--eca-muted);
}
.eca-stepper__current {
	/* desktop: nazwa jest pod aktywnym kółkiem — tu nie powielamy */
	display: none;
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--eca-brand-deep);
	letter-spacing: -0.02em;
	text-align: right;
	margin-left: auto;
}
.eca-stepper__path {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0;
	position: relative;
	isolation: isolate;
}
/* Tor łączący węzły */
.eca-stepper__path::before {
	content: '';
	position: absolute;
	top: 15px;
	left: calc(100% / 12);
	right: calc(100% / 12);
	height: 2px;
	background: var(--eca-progress-track);
	border-radius: 999px;
	z-index: 0;
	pointer-events: none;
}
.eca-step {
	flex: 1 1 0;
	min-width: 0;
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
}
.eca-root .eca-step__btn,
.eca-root span.eca-step__btn {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 8px !important;
	width: 100% !important;
	max-width: 104px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: default;
	color: inherit !important;
	font: inherit !important;
	text-align: center !important;
	text-transform: none !important;
	min-height: 0 !important;
	min-width: 0 !important;
}
.eca-root .eca-step__btn[data-go-step],
.eca-root span.eca-step__btn[data-go-step] {
	cursor: pointer;
}
.eca-root .eca-step__btn[data-go-step]:hover .eca-step__node {
	transform: translateY(-1px);
	border-color: var(--eca-brand-mid) !important;
}
.eca-root .eca-step__btn:focus-visible {
	outline: 2px solid var(--eca-brand-mid);
	outline-offset: 3px;
	border-radius: 10px;
}
.eca-root .eca-step__node {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	max-width: 32px !important;
	max-height: 32px !important;
	aspect-ratio: 1 / 1 !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	border: 1.5px solid var(--eca-input-border) !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	box-shadow: 0 0 0 4px var(--eca-bg) !important;
	color: var(--eca-muted) !important;
	transition: background 0.25s var(--eca-ease), border-color 0.25s, color 0.25s, transform 0.2s;
}
.eca-step__label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--eca-muted);
	line-height: 1.25;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.eca-step.is-active .eca-step__node {
	background: var(--eca-brand) !important;
	background-color: var(--eca-brand) !important;
	border-color: var(--eca-brand) !important;
	color: #fff !important;
	transform: scale(1.06);
}
.eca-step.is-active .eca-step__label {
	color: var(--eca-brand-deep);
	font-weight: 600;
}
.eca-step.is-done .eca-step__node {
	background: var(--eca-gold-soft) !important;
	background-color: var(--eca-gold-soft) !important;
	border-color: var(--eca-gold-mark) !important;
	color: var(--eca-gold-done) !important;
	font-size: 14px !important;
}
.eca-step.is-done .eca-step__label {
	color: #5A4A6E;
}
.eca-progress {
	height: 3px;
	border-radius: 0;
	background: rgba(64, 0, 92, 0.06);
	margin: 14px 0 0;
	overflow: hidden;
}
.eca-progress__bar {
	height: 100%;
	background: linear-gradient(90deg, var(--eca-brand) 0%, var(--eca-brand-mid) 100%);
	border-radius: 0;
	transition: width 0.55s var(--eca-ease);
	width: 0;
}

/* Main */
.eca-main {
	max-width: min(var(--eca-max), 100%);
	width: 100%;
	margin: 0 auto;
	padding: clamp(18px, 3.5vw, 28px) clamp(14px, 4.5vw, 24px) 88px;
	box-sizing: border-box;
	overflow-x: hidden;
	min-width: 0;
}

/* Utility — tylko reset */
.eca-utility {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px 18px;
	flex-wrap: wrap;
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(64, 0, 92, 0.07);
}
/*
 * Reset jako zwykły link (<a>) — Elementor/motyw często maluje wszystkie <button>
 * na żółty CTA; link omija te reguły.
 */
.eca-root a.eca-utility__reset,
.eca-root .eca-utility__reset {
	display: inline !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--eca-muted) !important;
	font-family: inherit !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	padding: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	width: auto !important;
	height: auto !important;
	cursor: pointer;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	text-decoration-color: rgba(140, 123, 163, 0.45) !important;
	transition: color 0.2s;
	white-space: nowrap;
}
.eca-root a.eca-utility__reset:hover,
.eca-root a.eca-utility__reset:focus,
.eca-root .eca-utility__reset:hover,
.eca-root .eca-utility__reset:focus {
	color: var(--eca-brand-deep) !important;
	text-decoration-color: var(--eca-brand-deep) !important;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

.eca-resume {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	background: #F6F2FB;
	border: 1px solid #E4D8F2;
	border-radius: 12px;
	padding: 12px 16px;
	margin-bottom: 22px;
	font-size: 13.5px;
	color: var(--eca-brand-deep);
	animation: eca-fadeUp 0.35s var(--eca-ease) both;
}
.eca-root .eca-resume a[data-eca-dismiss-resume],
.eca-root .eca-resume button {
	background: none !important;
	background-color: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--eca-brand-mid) !important;
	font-weight: 500 !important;
	font-size: 13px !important;
	cursor: pointer;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	padding: 4px !important;
	min-height: 0 !important;
}

.eca-section {
	animation: eca-fadeUp 0.35s ease;
}
.eca-section__eyebrow {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--eca-muted);
	margin-bottom: 10px;
}
.eca-section h2 {
	margin: 0 0 10px;
	font-size: clamp(23px, 6vw, 29px);
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--eca-text);
}
.eca-section__desc {
	margin: 0 0 24px;
	color: var(--eca-text-2);
	font-size: 15.5px;
	font-weight: 300;
	line-height: 1.6;
	max-width: 660px;
}
.eca-section__desc em {
	font-style: normal;
	font-weight: 500;
	color: var(--eca-brand-deep);
}
.eca-section__head {
	margin-bottom: 20px;
}
.eca-section__head + .eca-scale {
	margin-top: 4px;
}

.eca-card {
	background: var(--eca-card);
	border: 1px solid var(--eca-border);
	border-radius: 18px;
	padding: clamp(20px, 5vw, 36px);
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	min-width: 0;
}

.eca-fields {
	display: flex;
	flex-direction: column;
	gap: 26px;
	min-width: 0;
	max-width: 100%;
}
.eca-fields__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 22px;
	min-width: 0;
}
.eca-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	max-width: 100%;
}
.eca-field label {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--eca-text-2);
}
/* !important — Elementor/motyw nadpisują inputy (fioletowe/żółte tła) */
.eca-root .eca-field input[type='text'] {
	height: 50px !important;
	border-radius: 10px !important;
	border: 1.5px solid var(--eca-input-border) !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	padding: 0 16px !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 50px !important;
	color: var(--eca-text) !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.2s, box-shadow 0.2s;
	width: 100% !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.eca-root .eca-field input[type='text']:focus,
.eca-root .eca-field input[type='text']:focus-visible {
	border-color: var(--eca-brand-mid) !important;
	background: #fff !important;
	background-color: #fff !important;
	box-shadow: 0 0 0 3px rgba(107, 63, 160, 0.18) !important;
}
.eca-root .eca-field input[type='text']:-webkit-autofill,
.eca-root .eca-field input[type='text']:-webkit-autofill:hover,
.eca-root .eca-field input[type='text']:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--eca-text) !important;
	caret-color: var(--eca-text) !important;
	border: 1.5px solid var(--eca-input-border) !important;
	box-shadow: 0 0 0 1000px #fff inset !important;
	transition: background-color 99999s ease-out;
}
.eca-root .eca-field input[type='text']:-webkit-autofill:focus {
	border-color: var(--eca-brand-mid) !important;
	box-shadow: 0 0 0 1000px #fff inset, 0 0 0 3px rgba(107, 63, 160, 0.18) !important;
}
.eca-root .eca-field input.is-error {
	border-color: var(--eca-err-border) !important;
	background: #fff !important;
}
.eca-field__hint {
	font-size: 13px;
	font-weight: 500;
}
.eca-field__hint.is-error {
	color: var(--eca-err);
}
.eca-field__hint.is-ok {
	color: var(--eca-ok);
}
.eca-field__hint.is-muted {
	color: var(--eca-muted);
}

.eca-pesel {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: clamp(2px, 1.1vw, 6px);
	margin-top: 2px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	/* nie wychodź poza kartę — komórki skalują się flexem */
	overflow-x: hidden;
	padding: 4px 0 6px;
}
/* PESEL — cyfry wyśrodkowane; odporne na style motywu */
.eca-root .eca-field .eca-pesel input[type='text'],
.eca-root .eca-pesel input[type='text'] {
	flex: 1 1 0 !important;
	width: 0 !important;
	min-width: 0 !important;
	max-width: 44px !important;
	height: clamp(44px, 12vw, 54px) !important;
	padding: 0 !important;
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	line-height: 1 !important;
	border-radius: clamp(6px, 1.5vw, 10px) !important;
	border: 1.5px solid var(--eca-input-border) !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	font-size: clamp(15px, 3.8vw, 20px) !important;
	font-weight: 500 !important;
	font-variant-numeric: tabular-nums;
	color: var(--eca-text) !important;
	outline: none !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.eca-root .eca-field .eca-pesel input[type='text']:focus,
.eca-root .eca-pesel input[type='text']:focus {
	border-color: var(--eca-brand-mid) !important;
	background: #fff !important;
	box-shadow: 0 0 0 2px rgba(107, 63, 160, 0.18) !important;
	z-index: 1;
	position: relative;
}
.eca-field .eca-pesel input[type='text'].is-ok,
.eca-pesel input[type='text'].is-ok {
	border-color: var(--eca-ok-border);
}
.eca-field .eca-pesel input[type='text'].is-error,
.eca-pesel input[type='text'].is-error {
	border-color: var(--eca-err-border);
	animation: eca-shake 0.4s ease;
}
.eca-pesel__gap {
	/* wizualna przerwa po 6. cyfrze — bez stałego px poza flexem */
	margin-right: clamp(2px, 1.6vw, 8px);
}

@media (max-width: 640px) {
	.eca-pesel {
		gap: 3px;
		padding: 2px 0 4px;
	}
	.eca-field .eca-pesel input[type='text'],
	.eca-pesel input[type='text'] {
		height: 46px;
		font-size: 16px; /* iOS: bez auto-zoomu */
		max-width: none; /* pełny podział szerokości karty */
		border-radius: 8px;
	}
	.eca-pesel__gap {
		margin-right: 3px;
	}
}

/* Skala — klucz pomocniczy (tekst), nie konkuruje z chipami etapów */
.eca-scale {
	margin: 0 0 28px;
	border: 1px solid rgba(64, 0, 92, 0.1);
	border-radius: 12px;
	background: #F8F6F3;
	overflow: hidden;
}
.eca-scale__summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}
.eca-scale__summary::-webkit-details-marker {
	display: none;
}
.eca-scale__summary-left {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1;
}
.eca-scale__kicker {
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--eca-gold-mark);
}
.eca-scale__title {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--eca-brand-deep);
	letter-spacing: -0.01em;
}
.eca-scale__chevron {
	width: 8px;
	height: 8px;
	border-right: 1.5px solid var(--eca-muted);
	border-bottom: 1.5px solid var(--eca-muted);
	transform: rotate(45deg);
	margin: 0 2px 4px;
	transition: transform 0.2s var(--eca-ease);
	flex-shrink: 0;
}
.eca-scale[open] .eca-scale__chevron {
	transform: rotate(-135deg);
	margin-bottom: 0;
	margin-top: 4px;
}
.eca-scale__list {
	list-style: none;
	margin: 0;
	padding: 12px 14px 14px;
	display: grid;
	/* desktop: max 4 w wierszu → 4+3 dla skali 7 */
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	border-top: 1px solid rgba(64, 0, 92, 0.07);
}
@media (max-width: 820px) and (min-width: 641px) {
	.eca-scale__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.eca-scale__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	padding: 14px 12px;
	border-radius: 10px;
	background: #fff;
	text-align: center;
	box-sizing: border-box;
	min-height: 100%;
}
.eca-scale__num {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--eca-brand);
	background: #fff;
	font-size: 13px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--eca-brand-deep);
	letter-spacing: 0;
}
.eca-scale__label {
	font-size: 12.5px;
	font-weight: 400;
	color: var(--eca-text-2);
	line-height: 1.4;
	text-wrap: pretty;
	text-align: center;
	width: 100%;
}
.eca-scale__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.eca-qcard {
	background: #fff;
	border: 1px solid var(--eca-border);
	border-radius: 18px;
	/* bez paddingu — tło błędu wiersza ma iść edge-to-edge */
	padding: 0;
	overflow: hidden;
}
.eca-q {
	padding: 22px clamp(16px, 4vw, 28px);
	border-top: 1px solid var(--eca-sep);
	transition: background 0.3s;
	animation: eca-rowIn 0.5s var(--eca-ease) both;
}
.eca-q:first-child {
	border-top: none;
}
.eca-q.is-missing {
	background: var(--eca-err-row);
	/* separator też w tonie błędu — bez białej „szczeliny” między wierszami */
	border-top-color: rgba(181, 67, 58, 0.12);
}
.eca-q.is-missing + .eca-q.is-missing {
	border-top-color: rgba(181, 67, 58, 0.12);
}
.eca-q__top {
	display: flex;
	gap: 18px;
	align-items: baseline;
	margin-bottom: 16px;
}
.eca-q__num {
	flex-shrink: 0;
	width: 30px;
	font-size: 13px;
	font-weight: 500;
	color: var(--eca-muted-2);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.05em;
}
.eca-q.is-missing .eca-q__num {
	color: var(--eca-err);
}
.eca-q__text {
	margin: 0;
	font-size: 16.5px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--eca-text);
	text-wrap: pretty;
}
.eca-likert {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	padding-left: 48px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.eca-root .eca-likert__btn,
.eca-root span.eca-likert__btn {
	box-sizing: border-box !important;
	flex: 0 0 44px;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	max-width: 44px !important;
	max-height: 44px !important;
	aspect-ratio: 1 / 1 !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 50% !important;
	border: 1.5px solid var(--eca-input-border) !important;
	background: #fff !important;
	background-color: #fff !important;
	background-image: none !important;
	box-shadow: none !important;
	color: var(--eca-text-2) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-align: center !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer;
	font-variant-numeric: tabular-nums;
	user-select: none;
	-webkit-user-select: none;
	transition: border-color 0.18s, background 0.18s, color 0.18s, transform 0.18s, box-shadow 0.18s;
}
.eca-root .eca-likert__btn:hover,
.eca-root span.eca-likert__btn:hover {
	border-color: var(--eca-brand) !important;
	background: #fff !important;
	color: var(--eca-brand-deep) !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(64, 0, 92, 0.14) !important;
}
.eca-root .eca-likert__btn:active {
	transform: scale(0.92);
}
.eca-root .eca-likert__btn.is-active,
.eca-root span.eca-likert__btn.is-active {
	background: var(--eca-brand) !important;
	background-color: var(--eca-brand) !important;
	border-color: var(--eca-brand) !important;
	color: #fff !important;
	animation: eca-pop 0.32s var(--eca-pop);
}
.eca-root .eca-likert__btn:focus-visible {
	outline: 2px solid var(--eca-brand-mid);
	outline-offset: 2px;
}
.eca-q.is-missing .eca-likert__btn:not(.is-active) {
	border-color: var(--eca-err-border-2) !important;
}
.eca-q__picked {
	padding-left: 48px;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 500;
	color: var(--eca-brand-mid);
	animation: eca-fadeUp 0.35s var(--eca-ease) both;
}
.eca-q__miss {
	padding-left: 48px;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 500;
	color: var(--eca-err);
}

.eca-group-title {
	margin: 0 0 12px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--eca-brand-deep);
	text-transform: uppercase;
	letter-spacing: 0.12em;
}
.eca-group {
	margin-bottom: 30px;
}

/* ACDS */
.eca-acds {
	background: #fff;
	border: 1px solid var(--eca-border);
	border-radius: 18px;
	padding: clamp(20px, 5vw, 28px) clamp(16px, 5vw, 36px);
	margin-bottom: 16px;
	transition: border-color 0.25s;
	animation: eca-rowIn 0.5s var(--eca-ease) both;
}
.eca-acds.is-missing {
	border-color: var(--eca-err-border-2);
}
.eca-acds__text {
	margin: 0;
	font-size: 16.5px;
	font-weight: 500;
	line-height: 1.5;
}
.eca-acds__opts {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-left: 48px;
}
.eca-acds__opt {
	display: flex;
	align-items: center;
	gap: 14px;
	text-align: left;
	width: 100%;
	min-height: 48px;
	padding: 11px 16px;
	border-radius: 10px;
	border: 1px solid var(--eca-acds-border);
	background: #fff;
	cursor: pointer;
	transition: border-color 0.18s, background 0.18s, transform 0.18s;
	color: var(--eca-text);
}
.eca-acds__opt:hover {
	border-color: var(--eca-brand);
	transform: translateX(3px);
}
.eca-acds__opt.is-active {
	background: var(--eca-selected-bg);
	border-color: var(--eca-brand);
}
.eca-acds__badge {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1px solid var(--eca-input-border);
	background: #fff;
	color: var(--eca-text-2);
	font-size: 12px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.eca-acds__opt.is-active .eca-acds__badge {
	background: var(--eca-brand);
	border-color: var(--eca-brand);
	color: #fff;
	animation: eca-pop 0.32s var(--eca-pop);
}
.eca-acds__opt-text {
	font-size: 15px;
	line-height: 1.45;
}

/* Summary */
.eca-summary {
	background: #fff;
	border: 1px solid var(--eca-border);
	border-radius: 18px;
	padding: 10px clamp(18px, 5vw, 36px);
	margin-bottom: 18px;
}
.eca-summary__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding: 16px 0;
	border-bottom: 1px solid var(--eca-sep);
}
.eca-summary__row:last-child {
	border-bottom: none;
}
.eca-summary__label {
	font-size: 11.5px;
	font-weight: 500;
	color: var(--eca-muted);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}
.eca-summary__name {
	font-size: 17.5px;
	font-weight: 500;
}
.eca-summary__pesel {
	font-size: 14px;
	font-weight: 300;
	color: var(--eca-text-2);
	font-variant-numeric: tabular-nums;
}
.eca-summary__value {
	font-size: 13.5px;
	color: var(--eca-ok);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.eca-root .eca-linkish,
.eca-root button.eca-linkish {
	background: none !important;
	background-color: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--eca-brand-deep) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	cursor: pointer;
	padding: 8px !important;
	min-height: 0 !important;
}
.eca-root .eca-linkish:hover,
.eca-root button.eca-linkish:hover {
	color: var(--eca-brand-mid) !important;
	background: none !important;
}

.eca-consents {
	background: #fff;
	border: 1px solid var(--eca-border);
	border-radius: 18px;
	padding: clamp(20px, 5vw, 28px) clamp(18px, 5vw, 36px);
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.eca-consents.is-error {
	border-color: var(--eca-err-border-2);
}
.eca-consent {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	text-align: left;
	color: inherit;
}
.eca-consent__box {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	border-radius: 6px;
	border: 1px solid var(--eca-input-border);
	background: #fff;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	transition: all 0.15s;
	margin-top: 1px;
}
.eca-consent.is-checked .eca-consent__box {
	background: var(--eca-brand-deep);
	border-color: var(--eca-brand-deep);
	animation: eca-pop 0.28s var(--eca-pop);
}
.eca-consent__text {
	font-size: 14.5px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--eca-text);
}
.eca-consent-err {
	color: var(--eca-err);
	font-size: 13.5px;
	font-weight: 500;
}

/* Success */
.eca-success {
	display: flex;
	justify-content: center;
	padding: 30px 0;
	animation: eca-fadeUp 0.4s ease;
}
.eca-success__card {
	background: #fff;
	border: 1px solid var(--eca-border);
	border-radius: 20px;
	padding: clamp(32px, 8vw, 56px) clamp(20px, 6vw, 52px);
	max-width: 560px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}
.eca-success__badge {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: 1px solid var(--eca-gold-accent);
	background: var(--eca-gold-soft);
	color: var(--eca-brand-deep);
	font-size: 26px;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	animation: eca-pop 0.6s var(--eca-pop) 0.15s both;
}
.eca-success h2 {
	margin: 6px 0 0;
	font-size: clamp(23px, 6vw, 29px);
	font-weight: 500;
}
.eca-success p {
	margin: 0;
	color: var(--eca-text-2);
	font-size: 15.5px;
	font-weight: 300;
	line-height: 1.65;
	text-wrap: pretty;
}
.eca-success__cta {
	margin-top: 10px;
	background: var(--eca-gold-accent);
	color: var(--eca-brand-deep) !important;
	font-weight: 600;
	font-size: 14.5px;
	padding: 13px 28px;
	border-radius: 999px;
	transition: background 0.2s;
}
.eca-success__cta:hover {
	background: var(--eca-gold-cta-hover);
	color: var(--eca-brand-deep) !important;
}

/* Nav */
.eca-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px 16px;
	flex-wrap: wrap;
	margin-top: 34px;
}
.eca-nav__back {
	background: none;
	border: none;
	color: var(--eca-brand-deep);
	font-size: 14.5px;
	font-weight: 500;
	padding: 12px 0;
	cursor: pointer;
}
.eca-nav__back:hover {
	color: var(--eca-brand-mid);
}
.eca-nav__right {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-left: auto;
}
.eca-nav__count {
	font-size: 13px;
	color: var(--eca-muted);
	font-variant-numeric: tabular-nums;
}
.eca-nav__next {
	background: var(--eca-gold);
	border: none;
	color: var(--eca-text);
	font-size: 15px;
	font-weight: 600;
	padding: 14px 32px;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
}
.eca-nav__next:hover:not(:disabled) {
	background: var(--eca-gold-hover);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(64, 0, 92, 0.16);
}
.eca-nav__next:active:not(:disabled) {
	transform: translateY(0) scale(0.97);
	box-shadow: none;
}
.eca-nav__next:disabled {
	opacity: 0.7;
	cursor: wait;
}
.eca-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid rgba(46, 34, 55, 0.25);
	border-top-color: var(--eca-text);
	border-radius: 50%;
	animation: eca-spin 0.7s linear infinite;
}

.eca-alert {
	background: var(--eca-err-row);
	border: 1px solid var(--eca-err-border-2);
	color: var(--eca-err);
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 18px;
	animation: eca-fadeUp 0.3s ease;
}

@keyframes eca-fadeUp {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes eca-rowIn {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}
@keyframes eca-pop {
	0% { transform: scale(0.82); }
	55% { transform: scale(1.09); }
	100% { transform: scale(1); }
}
@keyframes eca-shake {
	0%, 100% { transform: translateX(0); }
	22% { transform: translateX(-6px); }
	50% { transform: translateX(5px); }
	78% { transform: translateX(-2px); }
}
@keyframes eca-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
	.eca-stepper {
		top: env(safe-area-inset-top, 0);
		padding-left: env(safe-area-inset-left, 0);
		padding-right: env(safe-area-inset-right, 0);
	}
	.eca-stepper__inner {
		padding: 12px 14px 0;
	}
	.eca-stepper__meta {
		margin-bottom: 12px;
		align-items: center;
		justify-content: space-between;
	}
	.eca-stepper__current {
		/* mobile: etykiety pod kółkami ukryte — zostaw nazwę etapu */
		display: block;
		font-size: 16px;
	}
	/* Na mobile etykiety pod kółkami chowamy — nazwa jest w meta */
	.eca-step__label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
	.eca-step__btn {
		gap: 0;
		max-width: none;
	}
	.eca-step__node {
		width: 30px;
		height: 30px;
		font-size: 11px;
		box-shadow: 0 0 0 3px var(--eca-bg);
	}
	.eca-stepper__path::before {
		top: 14px;
		left: 18px;
		right: 18px;
	}
	.eca-progress {
		margin-top: 12px;
	}
	.eca-main {
		padding: 16px 14px calc(72px + env(safe-area-inset-bottom, 0px));
	}
	.eca-utility {
		justify-content: flex-end;
		margin-bottom: 16px;
	}
	.eca-section__desc {
		font-size: 15px;
	}
	.eca-scale__summary {
		padding: 12px 14px;
	}
	.eca-scale__list {
		/* mobile: jeden bloczek pod drugim */
		grid-template-columns: 1fr;
		padding: 12px;
		gap: 8px;
	}
	.eca-scale__item {
		padding: 12px 14px;
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		text-align: left;
		gap: 12px;
	}
	.eca-scale__label {
		font-size: 13.5px;
	}
	.eca-card {
		padding: 18px 14px;
	}
	.eca-q {
		padding: 18px 14px;
	}
	.eca-q__top {
		gap: 12px;
		margin-bottom: 14px;
	}
	.eca-q__text {
		font-size: 15.5px;
	}
	.eca-likert,
	.eca-q__picked,
	.eca-q__miss,
	.eca-acds__opts {
		padding-left: 0;
	}
	.eca-likert {
		gap: 4px;
		width: 100%;
		max-width: 100%;
		justify-content: space-between;
		flex-wrap: nowrap;
		padding-left: 0;
	}
	/* Idealne kółka: szerokość z flexa, wysokość = szerokość (aspect-ratio) */
	.eca-root .eca-likert__btn,
	.eca-root span.eca-likert__btn {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: 44px !important;
		height: auto !important;
		min-height: 0 !important;
		aspect-ratio: 1 / 1 !important;
		font-size: 13px !important;
	}
	.eca-utility {
		justify-content: flex-end;
	}
	.eca-field input[type='text'] {
		font-size: 16px; /* bez auto-zoomu iOS */
	}
	.eca-acds {
		padding: 18px 14px;
	}
	.eca-acds__text {
		font-size: 15.5px;
	}
	.eca-acds__opt {
		padding: 12px 12px;
		min-height: 48px;
	}
	.eca-acds__opt-text {
		font-size: 14.5px;
	}
	.eca-summary {
		padding: 8px 14px;
	}
	.eca-consents {
		padding: 18px 14px;
	}
	.eca-nav {
		margin-top: 28px;
		gap: 12px;
		padding-bottom: env(safe-area-inset-bottom, 0);
	}
	.eca-nav__back {
		min-height: 44px;
		padding: 10px 0;
	}
	.eca-nav__next {
		padding: 14px 22px;
		width: 100%;
		justify-content: center;
		min-height: 48px;
	}
	.eca-nav__right {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.eca-nav__count {
		text-align: center;
	}
	.eca-success__card {
		padding: 28px 18px;
	}
}

/* Bardzo wąskie telefony (iPhone SE / 320–360) */
@media (max-width: 380px) {
	.eca-pesel {
		gap: 2px;
	}
	.eca-field .eca-pesel input[type='text'],
	.eca-pesel input[type='text'] {
		height: 44px;
		font-size: 16px;
		border-radius: 7px;
	}
	.eca-pesel__gap {
		margin-right: 2px;
	}
	.eca-root .eca-likert__btn,
	.eca-root span.eca-likert__btn {
		max-width: 38px !important;
		font-size: 12px !important;
	}
	.eca-likert {
		gap: 3px;
	}
	.eca-root .eca-step__node {
		width: 30px !important;
		height: 30px !important;
		min-width: 30px !important;
		min-height: 30px !important;
		max-width: 30px !important;
		max-height: 30px !important;
	}
	.eca-section h2 {
		font-size: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.eca-root *,
	.eca-root *::before,
	.eca-root *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
