/**
 * CreditPro — styles publics.
 * Tout est confiné sous .creditpro : aucune classe générique, aucun effet de bord sur le thème.
 */

.creditpro {
	/* Couleurs de marque, surchargées depuis les réglages. */
	--cp-primary: #0B1B36;
	--cp-secondary: #16294B;
	--cp-accent: #2E63F6;
	--cp-accent-ink: #FFFFFF;
	--cp-primary-ink: #FFFFFF;

	/* Neutres. */
	--cp-canvas: #F6F8FC;
	--cp-surface: #FFFFFF;
	--cp-line: #E4E9F2;
	--cp-line-soft: #EFF2F8;
	--cp-ink: #101828;
	--cp-muted: #667085;
	--cp-faint: #98A2B3;
	--cp-success: #0E9F6E;
	--cp-danger: #B42318;
	--cp-danger-bg: #FEF3F2;
	--cp-accent-soft: #EEF3FF;

	/* Typographie. */
	--cp-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
	--cp-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	/* Formes. */
	--cp-r-lg: 18px;
	--cp-r: 12px;
	--cp-r-sm: 9px;
	--cp-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 16px 40px -24px rgba(11, 27, 54, .30);
	--cp-shadow-deep: 0 30px 70px -34px rgba(11, 27, 54, .62);

	box-sizing: border-box;
	font-family: var(--cp-sans);
	color: var(--cp-ink);
	line-height: 1.6;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	font-variant-numeric: tabular-nums;
}

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

.creditpro p,
.creditpro h1,
.creditpro h2,
.creditpro h3,
.creditpro dl,
.creditpro dt,
.creditpro dd,
.creditpro ol,
.creditpro ul,
.creditpro li,
.creditpro fieldset,
.creditpro legend {
	margin: 0;
	padding: 0;
}

.creditpro ol,
.creditpro ul {
	list-style: none;
}

.creditpro fieldset {
	border: 0;
	min-width: 0;
}

.creditpro-i {
	display: block;
	flex: 0 0 auto;
}

/* --------------------------------------------------------------------
   Ossature de page
   ----------------------------------------------------------------- */

.creditpro-page {
	background: var(--cp-canvas);
	padding: clamp(28px, 5vw, 72px) clamp(16px, 4vw, 40px);

	/* Le bloc se mesure lui-même : dans une colonne Elementor, la fenêtre
	   est large alors que l'espace disponible ne l'est pas. Les media
	   queries seules laisseraient les grilles à deux colonnes dans un
	   conteneur étroit. */
	container-type: inline-size;
	container-name: creditpro;
}

.creditpro-shell {
	max-width: 1160px;
	margin: 0 auto;
}

.creditpro-shell--narrow {
	max-width: 860px;
}

.creditpro-head {
	margin-bottom: clamp(28px, 4vw, 44px);
}

.creditpro-head--center {
	text-align: center;
}

.creditpro-head--center .creditpro-brand,
.creditpro-head--center .creditpro-progress {
	justify-content: center;
}

.creditpro-head--center .creditpro-sub {
	margin-left: auto;
	margin-right: auto;
}

/* Marque */

.creditpro-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 26px;
}

.creditpro-brand__logo {
	max-height: 40px;
	width: auto;
	display: block;
}

.creditpro-brand__mark {
	width: 22px;
	height: 22px;
	background: var(--cp-primary);
	transform: rotate(45deg);
	border-radius: 4px;
}

.creditpro-brand__name {
	font-family: var(--cp-serif);
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--cp-primary);
}

/* Fil de progression global */

.creditpro-progress {
	display: flex;
	align-items: center;
	gap: 0;
	flex-wrap: wrap;
	margin-bottom: 26px;
}

.creditpro-progress__item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--cp-faint);
	padding-right: 14px;
	margin-right: 14px;
	position: relative;
}

.creditpro-progress__item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 14px;
	height: 1px;
	background: var(--cp-line);
}

.creditpro-progress__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1.5px solid var(--cp-line);
	background: var(--cp-surface);
}

.creditpro-progress__item.is-done .creditpro-progress__dot {
	background: var(--cp-success);
	border-color: var(--cp-success);
}

.creditpro-progress__item.is-done {
	color: var(--cp-muted);
}

.creditpro-progress__item.is-current {
	color: var(--cp-primary);
	font-weight: 600;
}

.creditpro-progress__item.is-current .creditpro-progress__dot {
	background: var(--cp-accent);
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 4px rgba(46, 99, 246, .16);
}

/* Titres */

.creditpro-eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cp-accent);
	margin-bottom: 12px !important;
}

.creditpro-display {
	font-family: var(--cp-serif);
	font-size: clamp(31px, 4.4vw, 50px);
	line-height: 1.08;
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--cp-primary);
	margin-bottom: 14px !important;
}

.creditpro-sub {
	font-size: 16px;
	line-height: 1.6;
	color: var(--cp-muted);
	max-width: 56ch;
}

.creditpro-kicker {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cp-muted);
	display: flex;
	align-items: center;
	gap: 8px;
}

.creditpro-kicker--light {
	color: rgba(255, 255, 255, .62);
}

.creditpro-legal {
	margin-top: 30px;
	font-size: 12.5px;
	line-height: 1.65;
	color: var(--cp-faint);
	max-width: 92ch;
}

.creditpro-legal p + p {
	margin-top: 6px !important;
}

.creditpro-legal--center {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	max-width: 68ch;
}

/* Cartes */

.creditpro-card {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r-lg);
	box-shadow: var(--cp-shadow);
}

.creditpro-card--pad {
	padding: clamp(20px, 2.6vw, 30px);
}

/* --------------------------------------------------------------------
   PAGE 1 — Simulateur
   ----------------------------------------------------------------- */

.creditpro-simgrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.78fr);
	gap: 22px;
	align-items: start;
}

.creditpro-simgrid__controls {
	display: grid;
	gap: 18px;
	min-width: 0;
}

.creditpro-slider {
	padding: clamp(22px, 2.6vw, 30px);
}

.creditpro-slider__head {
	margin-bottom: 22px;
}

.creditpro-figure {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px !important;
}

.creditpro-figure__value {
	font-size: clamp(32px, 3.8vw, 44px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--cp-primary);
}

.creditpro-figure__unit {
	font-size: 16px;
	font-weight: 600;
	color: var(--cp-muted);
}

.creditpro-figure__aside {
	margin-left: auto;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-accent);
	background: var(--cp-accent-soft);
	border-radius: 999px;
	padding: 4px 12px;
	white-space: nowrap;
}

.creditpro-scale {
	display: flex;
	justify-content: space-between;
	margin-top: 10px;
	font-size: 12px;
	color: var(--cp-faint);
}

/* Curseur */

.creditpro-range {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 34px;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: none;
	display: block;
	cursor: pointer;
	touch-action: pan-y;
}

.creditpro-range::-webkit-slider-runnable-track {
	height: 6px;
	border-radius: 999px;
	background:
		linear-gradient(90deg, var(--cp-accent), var(--cp-primary)) 0 / var(--cp-fill, 0%) 100% no-repeat,
		var(--cp-line);
}

.creditpro-range::-moz-range-track {
	height: 6px;
	border-radius: 999px;
	background: var(--cp-line);
}

.creditpro-range::-moz-range-progress {
	height: 6px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--cp-accent), var(--cp-primary));
}

.creditpro-range::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 28px;
	height: 28px;
	margin-top: -11px;
	border-radius: 50%;
	background: var(--cp-surface);
	border: 2px solid var(--cp-primary);
	box-shadow: 0 3px 10px rgba(11, 27, 54, .25);
	transition: transform .15s ease, box-shadow .15s ease;
}

.creditpro-range::-moz-range-thumb {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--cp-surface);
	border: 2px solid var(--cp-primary);
	box-shadow: 0 3px 10px rgba(11, 27, 54, .25);
	transition: transform .15s ease, box-shadow .15s ease;
}

.creditpro-range:hover::-webkit-slider-thumb,
.creditpro-range:active::-webkit-slider-thumb {
	transform: scale(1.08);
}

.creditpro-range:hover::-moz-range-thumb,
.creditpro-range:active::-moz-range-thumb {
	transform: scale(1.08);
}

.creditpro-range:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 6px rgba(46, 99, 246, .22);
}

.creditpro-range:focus-visible::-moz-range-thumb {
	box-shadow: 0 0 0 6px rgba(46, 99, 246, .22);
}

/* Bandeau de taux */

.creditpro-ratebar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 22px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r);
}

.creditpro-ratebar__value {
	font-size: 19px;
	font-weight: 700;
	color: var(--cp-primary);
	letter-spacing: -0.01em;
}

/* Panneau de résultat */

.creditpro-quote {
	position: sticky;
	top: 24px;
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(255, 255, 255, .10), transparent 60%),
		linear-gradient(165deg, var(--cp-primary) 0%, var(--cp-secondary) 100%);
	color: #FFFFFF;
	border-radius: var(--cp-r-lg);
	padding: clamp(26px, 3vw, 34px);
	box-shadow: var(--cp-shadow-deep);
	min-width: 0;
}

.creditpro-quote__value {
	display: flex;
	align-items: baseline;
	gap: 9px;
	flex-wrap: wrap;
	margin-top: 14px !important;
	font-size: clamp(38px, 4.6vw, 54px);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1;
	color: #FFFFFF;
	transition: opacity .18s ease;
}

.creditpro-quote__value.is-updating {
	opacity: .45;
}

.creditpro-quote__cur {
	font-size: 17px;
	font-weight: 600;
	color: rgba(255, 255, 255, .72);
	letter-spacing: 0;
}

.creditpro-quote__per {
	margin-top: 4px !important;
	font-size: 13.5px;
	color: rgba(255, 255, 255, .6);
}

.creditpro-quote__list {
	margin: 26px 0 26px !important;
	border-top: 1px solid rgba(255, 255, 255, .16);
}

.creditpro-quote__list > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
	font-size: 14px;
}

.creditpro-quote__list dt {
	color: rgba(255, 255, 255, .66);
}

.creditpro-quote__list dd {
	font-weight: 700;
	white-space: nowrap;
}

.creditpro-quote__fine {
	margin-top: 14px !important;
	text-align: center;
	font-size: 12px;
	color: rgba(255, 255, 255, .55);
}

/* --------------------------------------------------------------------
   Boutons
   ----------------------------------------------------------------- */

.creditpro-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	padding: 15px 26px;
	border: 1px solid transparent;
	border-radius: var(--cp-r);
	font-family: var(--cp-sans);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, opacity .16s ease;
}

.creditpro-btn--block {
	width: 100%;
}

.creditpro-btn--accent {
	background: var(--cp-accent);
	color: var(--cp-accent-ink);
	box-shadow: 0 12px 26px -14px rgba(46, 99, 246, .9);
}

.creditpro-btn--primary {
	background: var(--cp-primary);
	color: var(--cp-primary-ink);
}

.creditpro-btn--ghost {
	background: var(--cp-surface);
	border-color: var(--cp-line);
	color: var(--cp-ink);
}

.creditpro-btn:hover {
	transform: translateY(-1px);
	text-decoration: none;
}

.creditpro-btn--ghost:hover {
	border-color: var(--cp-primary);
}

.creditpro-btn:active {
	transform: translateY(0);
}

.creditpro-btn:focus-visible {
	outline: 3px solid var(--cp-accent);
	outline-offset: 3px;
}

.creditpro-quote .creditpro-btn:focus-visible {
	outline-color: #FFFFFF;
}

.creditpro-btn[disabled],
.creditpro-btn.is-loading {
	opacity: .65;
	cursor: progress;
	transform: none;
}

/* --------------------------------------------------------------------
   PAGE 2 — Demande
   ----------------------------------------------------------------- */

/* Carte de récapitulatif */

.creditpro-recap {
	background:
		radial-gradient(110% 80% at 100% 0%, rgba(255, 255, 255, .10), transparent 62%),
		linear-gradient(160deg, var(--cp-primary), var(--cp-secondary));
	color: #FFFFFF;
	border-radius: var(--cp-r-lg);
	padding: clamp(22px, 3vw, 32px);
	box-shadow: var(--cp-shadow-deep);
	margin-bottom: 26px;
}

.creditpro-recap__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 22px;
}

.creditpro-recap__edit {
	font-size: 13px;
	font-weight: 600;
	color: rgba(255, 255, 255, .82);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.creditpro-recap__edit:hover {
	color: #FFFFFF;
}

.creditpro-recap__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.creditpro-recap__value {
	font-size: clamp(19px, 2.1vw, 25px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
	color: #FFFFFF;
	white-space: nowrap;
}

.creditpro-recap__cell.is-accent .creditpro-recap__value {
	color: #A9C6FF;
}

.creditpro-recap__label {
	margin-top: 4px !important;
	font-size: 12.5px;
	color: rgba(255, 255, 255, .58);
}

.creditpro-recap__rows {
	margin-top: 24px !important;
	padding-top: 8px;
	border-top: 1px solid rgba(255, 255, 255, .16);
}

.creditpro-recap__rows > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 0;
	font-size: 14px;
}

.creditpro-recap__rows dt {
	color: rgba(255, 255, 255, .64);
}

.creditpro-recap__rows dd {
	font-weight: 700;
}

/* Étapes du formulaire */

.creditpro-steps {
	display: flex;
	align-items: center;
	gap: 0;
	margin-bottom: 30px;
	overflow-x: auto;
	scrollbar-width: none;
	padding-bottom: 2px;
}

.creditpro-steps::-webkit-scrollbar {
	display: none;
}

.creditpro-steps__item {
	display: flex;
	align-items: center;
	gap: 9px;
	flex: 1 1 0;
	min-width: 0;
	position: relative;
	padding-right: 12px;
}

.creditpro-steps__item:not(:last-child)::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--cp-line);
	min-width: 12px;
}

.creditpro-steps__item span {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid var(--cp-line);
	background: var(--cp-surface);
	font-size: 12px;
	font-weight: 700;
	color: var(--cp-faint);
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.creditpro-steps__item em {
	font-style: normal;
	font-size: 13px;
	color: var(--cp-faint);
	white-space: nowrap;
}

.creditpro-steps__item.is-done span {
	background: var(--cp-success);
	border-color: var(--cp-success);
	color: #FFFFFF;
}

.creditpro-steps__item.is-done em {
	color: var(--cp-muted);
}

.creditpro-steps__item.is-current span {
	background: var(--cp-primary);
	border-color: var(--cp-primary);
	color: #FFFFFF;
}

.creditpro-steps__item.is-current em {
	color: var(--cp-primary);
	font-weight: 600;
}

/* Sections d'étape */

.creditpro-step {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r-lg);
	padding: clamp(22px, 3vw, 34px);
	box-shadow: var(--cp-shadow);
	margin-bottom: 18px;
}

.creditpro-js .creditpro-step {
	display: none;
	margin-bottom: 0;
}

.creditpro-js .creditpro-step.is-active {
	display: block;
	animation: creditpro-in .28s ease both;
}

@keyframes creditpro-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.creditpro-step__title {
	font-family: var(--cp-serif);
	font-size: clamp(21px, 2.4vw, 27px);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--cp-primary);
	margin-bottom: 6px !important;
}

.creditpro-step__hint {
	font-size: 14px;
	color: var(--cp-muted);
	margin-bottom: 26px !important;
}

/* Champs */

.creditpro-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.creditpro-field {
	grid-column: span 2;
	min-width: 0;
}

.creditpro-field--half {
	grid-column: span 1;
}

.creditpro-field--full {
	grid-column: span 2;
}

.creditpro-input-wrap {
	position: relative;
}

.creditpro-input {
	width: 100%;
	max-width: 100%;
	min-height: 60px;
	padding: 26px 16px 10px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r);
	font-family: var(--cp-sans);
	font-size: 15.5px;
	color: var(--cp-ink);
	line-height: 1.35;
	box-shadow: none;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
	appearance: none;
	-webkit-appearance: none;
}

.creditpro-input:hover {
	border-color: #CFD8E8;
}

.creditpro-input:focus,
.creditpro-input:focus-visible {
	outline: none;
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 4px rgba(46, 99, 246, .13);
}

.creditpro-label {
	position: absolute;
	left: 17px;
	top: 19px;
	font-size: 15px;
	color: var(--cp-muted);
	pointer-events: none;
	transition: top .16s ease, font-size .16s ease, color .16s ease, letter-spacing .16s ease;
}

.creditpro-input:focus ~ .creditpro-label,
.creditpro-input:not(:placeholder-shown) ~ .creditpro-label,
.creditpro-input[type="date"] ~ .creditpro-label,
.creditpro-field--select .creditpro-label {
	top: 9px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--cp-muted);
}

.creditpro-input:focus ~ .creditpro-label {
	color: var(--cp-accent);
}

.creditpro-label--static {
	position: static;
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cp-muted);
	margin-bottom: 10px;
}

.creditpro-req {
	color: var(--cp-accent);
	margin-left: 3px;
}

.creditpro-suffix {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-2px);
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-faint);
	pointer-events: none;
}

.creditpro-field.has-suffix .creditpro-input {
	padding-right: 62px;
}

.creditpro-caret {
	position: absolute;
	right: 18px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 1.8px solid var(--cp-muted);
	border-bottom: 1.8px solid var(--cp-muted);
	transform: rotate(45deg);
	pointer-events: none;
}

.creditpro-textarea {
	min-height: 130px;
	padding: 16px;
	resize: vertical;
}

.creditpro-help {
	margin-top: 7px !important;
	font-size: 12.5px;
	color: var(--cp-faint);
}

.creditpro-error {
	margin-top: 7px !important;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--cp-danger);
}

.creditpro-field.is-invalid .creditpro-input {
	border-color: var(--cp-danger);
	background: var(--cp-danger-bg);
}

/* Cartes de choix */

.creditpro-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	max-width: 420px;
}

.creditpro-choice {
	position: relative;
	display: block;
	cursor: pointer;
}

.creditpro-choice input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.creditpro-choice__box {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 16px 18px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r);
	font-size: 15px;
	color: var(--cp-muted);
	transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.creditpro-choice__box em {
	font-style: normal;
	font-weight: 600;
}

.creditpro-choice:hover .creditpro-choice__box {
	border-color: #CFD8E8;
}

.creditpro-choice input:checked ~ .creditpro-choice__box {
	border-color: var(--cp-primary);
	background: var(--cp-primary);
	color: #FFFFFF;
	box-shadow: 0 10px 24px -16px rgba(11, 27, 54, .9);
}

.creditpro-choice input:focus-visible ~ .creditpro-choice__box {
	outline: 3px solid var(--cp-accent);
	outline-offset: 2px;
}

/* Vérification */

.creditpro-review {
	margin-bottom: 24px;
}

.creditpro-review__group + .creditpro-review__group {
	margin-top: 20px;
}

.creditpro-review__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cp-muted);
	margin-bottom: 10px !important;
}

.creditpro-review__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--cp-line-soft);
	font-size: 14.5px;
}

.creditpro-review__row span:first-child {
	color: var(--cp-muted);
}

.creditpro-review__row span:last-child {
	font-weight: 600;
	text-align: right;
	word-break: break-word;
}

/* Consentements */

.creditpro-consents {
	display: grid;
	gap: 14px;
	margin-bottom: 22px;
}

.creditpro-consent__label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--cp-ink);
}

.creditpro-consent__label input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
}

.creditpro-consent__box {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border: 1.5px solid #C3CBDC;
	border-radius: 6px;
	background: var(--cp-surface);
	position: relative;
	transition: background .16s ease, border-color .16s ease;
}

.creditpro-consent__box::after {
	content: "";
	position: absolute;
	left: 7px;
	top: 3px;
	width: 6px;
	height: 11px;
	border-right: 2.4px solid #FFFFFF;
	border-bottom: 2.4px solid #FFFFFF;
	transform: rotate(45deg) scale(.4);
	opacity: 0;
	transition: opacity .14s ease, transform .14s ease;
}

.creditpro-consent__label input:checked ~ .creditpro-consent__box {
	background: var(--cp-accent);
	border-color: var(--cp-accent);
}

.creditpro-consent__label input:checked ~ .creditpro-consent__box::after {
	opacity: 1;
	transform: rotate(45deg) scale(1);
}

.creditpro-consent__label input:focus-visible ~ .creditpro-consent__box {
	outline: 3px solid var(--cp-accent);
	outline-offset: 3px;
}

.creditpro-consent.is-invalid .creditpro-consent__box {
	border-color: var(--cp-danger);
}

.creditpro-consent__text a {
	color: var(--cp-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Navigation entre étapes */

.creditpro-submit {
	margin-top: 24px;
}

.creditpro-stepnav {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 20px;
}

.creditpro-js .creditpro-stepnav {
	display: flex;
}

.creditpro-stepnav__count {
	font-size: 12.5px;
	color: var(--cp-faint);
	white-space: nowrap;
}

/* Alertes */

.creditpro-alert {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 18px;
	border-radius: var(--cp-r);
	margin-bottom: 20px;
	font-size: 14.5px;
}

.creditpro-alert--error {
	background: var(--cp-danger-bg);
	border: 1px solid rgba(180, 35, 24, .28);
	color: var(--cp-danger);
}

.creditpro-alert--error span {
	color: #7A2019;
}

.creditpro-alert--info {
	background: var(--cp-accent-soft);
	border: 1px solid rgba(46, 99, 246, .2);
	color: var(--cp-primary);
}

.creditpro-alert a {
	color: var(--cp-accent);
	font-weight: 600;
}

/* Piège à robots */

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

/* --------------------------------------------------------------------
   PAGE 3 — Confirmation
   ----------------------------------------------------------------- */

.creditpro-seal {
	width: 72px;
	height: 72px;
	margin: 8px auto 22px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cp-success);
	background: var(--cp-surface);
	border: 1.5px solid rgba(14, 159, 110, .4);
	box-shadow: 0 0 0 8px rgba(14, 159, 110, .07);
	animation: creditpro-seal .5s cubic-bezier(.2, .8, .3, 1) both;
}

@keyframes creditpro-seal {
	from {
		opacity: 0;
		transform: scale(.82);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.creditpro-confgrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 18px;
	align-items: start;
}

.creditpro-page--confirm .creditpro-card {
	margin-bottom: 18px;
}

.creditpro-page--confirm .creditpro-confgrid .creditpro-card {
	margin-bottom: 0;
}

/* Grille de données */

.creditpro-datagrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 22px;
	margin-top: 18px !important;
}

.creditpro-datagrid__item {
	padding: 14px 0;
	border-top: 1px solid var(--cp-line-soft);
	min-width: 0;
}

.creditpro-datagrid__item:nth-child(1),
.creditpro-datagrid__item:nth-child(2) {
	border-top: 0;
	padding-top: 0;
}

.creditpro-datagrid dt {
	font-size: 12.5px;
	color: var(--cp-muted);
	margin-bottom: 3px;
}

.creditpro-datagrid dd {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--cp-primary);
	word-break: break-word;
}

.creditpro-datagrid__item.is-accent dd {
	color: var(--cp-accent);
}

.creditpro-refline {
	margin-top: 18px !important;
	padding-top: 14px;
	border-top: 1px solid var(--cp-line-soft);
	font-size: 13px;
	color: var(--cp-muted);
}

/* Timeline */

.creditpro-timeline {
	margin-top: 20px !important;
}

.creditpro-timeline__item {
	display: flex;
	gap: 16px;
	padding-bottom: 22px;
	position: relative;
}

.creditpro-timeline__item:last-child {
	padding-bottom: 0;
}

.creditpro-timeline__item:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 17px;
	top: 36px;
	bottom: 4px;
	width: 1px;
	background: var(--cp-line);
}

.creditpro-timeline__num {
	flex: 0 0 auto;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: var(--cp-accent-soft);
	color: var(--cp-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	position: relative;
	z-index: 1;
}

.creditpro-timeline__body {
	display: block;
	padding-top: 4px;
}

.creditpro-timeline__body strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-ink);
}

.creditpro-timeline__body span {
	display: block;
	font-size: 13.5px;
	color: var(--cp-muted);
	margin-top: 2px;
}

/* Documents */

.creditpro-docs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: 20px;
}

.creditpro-doc {
	display: flex;
	gap: 14px;
	min-width: 0;
}

.creditpro-doc__icon {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: var(--cp-r-sm);
	background: var(--cp-accent-soft);
	color: var(--cp-primary);
	display: flex;
	align-items: center;
	justify-content: center;
}

.creditpro-doc__body strong {
	display: block;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--cp-ink);
	margin-bottom: 3px;
}

.creditpro-doc__body span {
	display: block;
	font-size: 13px;
	line-height: 1.5;
	color: var(--cp-muted);
}

/* Bandeaux d'information */

.creditpro-notice {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 20px;
	border-radius: var(--cp-r);
	margin-bottom: 14px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
}

.creditpro-notice--accent {
	background: var(--cp-accent-soft);
	border-color: rgba(46, 99, 246, .2);
}

.creditpro-notice__icon {
	flex: 0 0 auto;
	color: var(--cp-primary);
	margin-top: 2px;
}

.creditpro-notice--accent .creditpro-notice__icon {
	color: var(--cp-accent);
}

.creditpro-notice__body strong {
	display: block;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--cp-ink);
}

.creditpro-notice__body span {
	display: block;
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--cp-muted);
	margin-top: 2px;
}

.creditpro-notice--accent .creditpro-notice__body span {
	color: var(--cp-secondary);
}

.creditpro-endnav {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 26px;
}

/* --------------------------------------------------------------------
   Responsive
   ----------------------------------------------------------------- */

@media (max-width: 1100px) {
	.creditpro-simgrid {
		grid-template-columns: 1fr;
	}

	.creditpro-quote {
		position: static;
	}
}

@media (max-width: 900px) {
	.creditpro-recap__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.creditpro-confgrid {
		grid-template-columns: 1fr;
	}

	.creditpro-docs {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.creditpro-steps__item em {
		display: none;
	}

	.creditpro-steps__item {
		flex: 1 1 auto;
		padding-right: 8px;
	}
}

@media (max-width: 720px) {
	.creditpro-page {
		padding: 26px 16px 40px;
	}

	.creditpro-fields {
		grid-template-columns: 1fr;
	}

	.creditpro-field,
	.creditpro-field--half,
	.creditpro-field--full {
		grid-column: span 1;
	}

	.creditpro-datagrid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.creditpro-datagrid__item:nth-child(2) {
		border-top: 1px solid var(--cp-line-soft);
		padding-top: 14px;
	}

	.creditpro-choices {
		max-width: none;
	}

	.creditpro-endnav .creditpro-btn {
		width: 100%;
	}

	.creditpro-stepnav {
		flex-wrap: wrap;
	}

	.creditpro-stepnav .creditpro-btn {
		flex: 1 1 45%;
	}

	.creditpro-stepnav__count {
		order: 3;
		width: 100%;
		text-align: center;
	}

	.creditpro-figure__aside {
		margin-left: 0;
	}

	.creditpro-progress__item {
		font-size: 12px;
		padding-right: 10px;
		margin-right: 10px;
	}
}

@media (max-width: 420px) {
	.creditpro-recap__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.creditpro-recap__value {
		white-space: normal;
	}

	.creditpro-quote__list > div,
	.creditpro-recap__rows > div,
	.creditpro-review__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}

	.creditpro-review__row span:last-child {
		text-align: left;
	}

	.creditpro-btn {
		width: 100%;
	}
}

/* --------------------------------------------------------------------
   Accessibilité
   ----------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.creditpro *,
	.creditpro *::before,
	.creditpro *::after {
		transition-duration: .001ms !important;
		animation-duration: .001ms !important;
	}
}

@media print {
	.creditpro-btn,
	.creditpro-range,
	.creditpro-stepnav {
		display: none !important;
	}

	.creditpro-page {
		background: #FFFFFF;
	}
}

/* --------------------------------------------------------------------
   Portail de dépôt des documents
   ----------------------------------------------------------------- */

.creditpro-shell--tight {
	max-width: 720px;
	margin: 0 auto;
}

.creditpro-title--center {
	text-align: center;
}

.creditpro-lede--center {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10px !important;
}

.creditpro-page--portal .creditpro-card {
	margin-bottom: 16px;
}

.creditpro-upload {
	display: block;
	margin-top: 24px;
}

.creditpro-uprow {
	padding: 18px 0;
	border-bottom: 1px solid var(--cp-line-soft);
}

.creditpro-uprow:first-child {
	padding-top: 0;
}

.creditpro-uprow__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}

.creditpro-uprow__tick {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--cp-accent-soft);
	color: var(--cp-primary);
	flex: 0 0 auto;
}

.creditpro-uprow.is-done .creditpro-uprow__tick {
	background: rgba(14, 159, 110, .12);
	color: var(--cp-success);
}

.creditpro-uprow__label {
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-ink);
}

.creditpro-uprow__state {
	margin-left: auto;
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-success);
	background: rgba(14, 159, 110, .1);
	border-radius: 999px;
	padding: 3px 10px;
}

.creditpro-filefield {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 16px;
	border: 1px dashed #C7D0E2;
	border-radius: var(--cp-r);
	background: #FBFCFE;
	cursor: pointer;
	transition: border-color .16s ease, background .16s ease;
}

.creditpro-filefield:hover {
	border-color: var(--cp-accent);
	background: var(--cp-accent-soft);
}

.creditpro-filefield input[type="file"] {
	position: absolute;
	inset: 0;
	opacity: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
}

.creditpro-filefield__btn {
	flex: 0 0 auto;
	font-size: 14px;
	font-weight: 600;
	color: var(--cp-primary);
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r-sm);
	padding: 9px 16px;
}

.creditpro-filefield__name {
	font-size: 13.5px;
	color: var(--cp-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

.creditpro-upload .creditpro-help {
	margin: 18px 0 18px !important;
	text-align: center;
}

.creditpro-cta {
	text-align: center;
}

.creditpro-cta__text {
	margin: 12px 0 20px !important;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--cp-muted);
}

@media (max-width: 560px) {
	.creditpro-filefield {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		gap: 8px;
	}

	.creditpro-uprow__state {
		margin-left: 0;
	}
}

/* --------------------------------------------------------------------
   Sélecteur de langue
   ----------------------------------------------------------------- */

.creditpro-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 26px;
}

.creditpro-topbar .creditpro-brand {
	margin-bottom: 0;
}

.creditpro-langs {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 4px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: 999px;
}

.creditpro-langs__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 30px;
	padding: 0 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--cp-muted);
	text-decoration: none;
	transition: background .16s ease, color .16s ease;
}

.creditpro-langs__item:hover {
	background: var(--cp-accent-soft);
	color: var(--cp-accent);
	text-decoration: none;
}

.creditpro-langs__item.is-active {
	background: var(--cp-primary);
	color: #FFFFFF;
}

.creditpro-langs__item:focus-visible {
	outline: 3px solid var(--cp-accent);
	outline-offset: 2px;
}

@media (max-width: 560px) {
	.creditpro-topbar {
		flex-direction: column;
		align-items: flex-start;
	}

	.creditpro-langs {
		width: 100%;
		justify-content: space-between;
	}

	.creditpro-langs__item {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* Sélecteur de langue déroulant */

.creditpro-langpick {
	position: relative;
}

.creditpro-langpick__toggle {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 8px 14px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: 999px;
	font-family: var(--cp-sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--cp-ink);
	cursor: pointer;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.creditpro-langpick__toggle:hover {
	border-color: var(--cp-accent);
}

.creditpro-langpick__toggle:focus-visible {
	outline: 3px solid var(--cp-accent);
	outline-offset: 2px;
}

.creditpro-flag {
	display: block;
	border-radius: 2px;
	flex: 0 0 auto;
	box-shadow: 0 0 0 1px rgba(16, 24, 40, .08);
}

.creditpro-langpick__caret {
	width: 6px;
	height: 6px;
	margin-left: 2px;
	border-right: 1.6px solid var(--cp-muted);
	border-bottom: 1.6px solid var(--cp-muted);
	transform: rotate(45deg) translate(-2px, -2px);
}

.creditpro-langpick__menu {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 40;
	min-width: 190px;
	padding: 6px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r);
	box-shadow: 0 18px 40px -20px rgba(11, 27, 54, .5);
	display: none;
}

.creditpro-langpick.is-open .creditpro-langpick__menu {
	display: block;
}

.creditpro-langpick__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	border-radius: var(--cp-r-sm);
	font-size: 14px;
	color: var(--cp-ink);
	text-decoration: none;
	transition: background .14s ease;
}

.creditpro-langpick__item:hover {
	background: var(--cp-accent-soft);
	text-decoration: none;
}

.creditpro-langpick__item.is-active {
	background: var(--cp-primary);
	color: #FFFFFF;
	font-weight: 600;
}

/* Sans JavaScript, le menu reste accessible au survol et au clavier. */
.creditpro-langpick:focus-within .creditpro-langpick__menu {
	display: block;
}

@media (max-width: 560px) {
	.creditpro-langpick,
	.creditpro-langpick__toggle {
		width: 100%;
		justify-content: center;
	}

	.creditpro-langpick__menu {
		left: 0;
		right: 0;
	}
}

/* Aide sous un champ */

.creditpro-help--field {
	margin: 6px 0 0 !important;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--cp-muted);
}

.creditpro-field[hidden] {
	display: none;
}

.creditpro-error {
	margin: 6px 0 0 !important;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-danger, #B42318);
}

/* Confirmation d'enregistrement des coordonnées bancaires */

.creditpro-saved {
	border-left: 3px solid var(--cp-success, #0E9F6E);
	text-align: center;
}

.creditpro-saved__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: rgba(14, 159, 110, .12);
	color: var(--cp-success, #0E9F6E);
}

.creditpro-saved__title {
	margin: 0 0 6px !important;
	font-size: 17px;
	font-weight: 700;
	color: var(--cp-ink);
}

.creditpro-saved__text {
	margin: 0 auto !important;
	max-width: 46ch;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cp-muted);
}

.creditpro-summary--saved {
	margin-top: 20px;
	text-align: left;
}

.creditpro-note {
	margin: 12px 0 0 !important;
	padding: 10px 14px;
	background: var(--cp-accent-soft);
	border-radius: var(--cp-r-sm);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--cp-primary);
}

/* Copie d'une information de paiement */

.creditpro-copy {
	margin-left: 10px;
	padding: 4px 10px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: 999px;
	font-family: var(--cp-sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-accent);
	cursor: pointer;
	transition: background .14s ease;
}

.creditpro-copy:hover {
	background: var(--cp-accent-soft);
}

.creditpro-copy.is-done {
	color: var(--cp-success, #0E9F6E);
	border-color: rgba(14, 159, 110, .35);
}

.creditpro-note--message {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	color: var(--cp-ink);
	font-weight: 400;
	line-height: 1.6;
}

/* Séparateur interne d'un formulaire */

.creditpro-sep {
	height: 1px;
	margin: 26px 0 22px;
	background: var(--cp-line);
}

.creditpro-field.is-invalid input,
.creditpro-field.is-invalid .creditpro-filefield {
	border-color: var(--cp-danger, #B42318);
}

/* Modale du parcours client */

.creditpro-modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(11, 27, 54, .7);
	backdrop-filter: blur(3px);
}

.creditpro-modal[hidden] {
	display: none;
}

.creditpro-modal__box {
	width: 100%;
	max-width: 460px;
	padding: 32px 28px 26px;
	background: var(--cp-surface);
	border-radius: 18px;
	box-shadow: 0 40px 90px -30px rgba(11, 27, 54, .7);
	text-align: center;
	max-height: 92vh;
	overflow-y: auto;
}

.creditpro-modal__icon {
	width: 52px;
	height: 52px;
	margin: 0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--cp-accent-soft);
	color: var(--cp-accent);
}

.creditpro-modal__title {
	margin: 0 0 12px !important;
	font-family: var(--cp-serif);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: var(--cp-primary);
}

.creditpro-modal__text {
	margin: 0 0 18px !important;
	font-size: 15px;
	line-height: 1.6;
	color: var(--cp-muted);
}

.creditpro-modal__question {
	margin: 0 0 20px !important;
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-ink);
}

.creditpro-modal__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.creditpro-modal__actions .creditpro-btn {
	width: 100%;
	justify-content: center;
}

.creditpro-modal__note {
	margin: 18px 0 0 !important;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--cp-muted);
}

@media (min-width: 600px) {
	.creditpro-modal__actions {
		flex-direction: row-reverse;
	}
}

/* --------------------------------------------------------------------
   Messagerie client
   ----------------------------------------------------------------- */

.creditpro-chat {
	display: flex;
	flex-direction: column;
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-r);
	box-shadow: var(--cp-shadow, 0 1px 2px rgba(16,24,40,.04));
	overflow: hidden;
	margin-bottom: 18px;
}

.creditpro-chat__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--cp-line);
	background: #FCFDFF;
}

.creditpro-chat__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cp-success, #0E9F6E);
	box-shadow: 0 0 0 3px rgba(14, 159, 110, .15);
	flex: 0 0 auto;
}

.creditpro-chat__ref {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--cp-muted);
}

.creditpro-chat__thread {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px 18px;
	min-height: 280px;
	max-height: 55vh;
	overflow-y: auto;
	scroll-behavior: smooth;
	background:
		radial-gradient(90% 60% at 50% 0%, rgba(46, 99, 246, .04), transparent 70%),
		var(--cp-surface);
}

.creditpro-chat__empty {
	margin: auto !important;
	max-width: 30ch;
	text-align: center;
	font-size: 14px;
	color: var(--cp-muted);
}

.creditpro-chat__day {
	margin: 8px 0 !important;
	text-align: center;
}

.creditpro-chat__day span {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--cp-accent-soft);
	font-size: 11.5px;
	font-weight: 600;
	color: var(--cp-muted);
}

.creditpro-msg {
	display: flex;
	flex-direction: column;
	max-width: 82%;
	padding: 11px 15px;
	border-radius: 16px;
	animation: cp-msg-in .22s ease;
}

@keyframes cp-msg-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

.creditpro-msg--mine {
	align-self: flex-end;
	background: var(--cp-primary);
	color: #FFFFFF;
	border-bottom-right-radius: 5px;
}

.creditpro-msg--them {
	align-self: flex-start;
	background: #F2F5FA;
	color: var(--cp-ink);
	border-bottom-left-radius: 5px;
}

.creditpro-msg__author {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .68;
	margin-bottom: 4px;
}

.creditpro-msg__text {
	margin: 0 !important;
	font-size: 14.5px;
	line-height: 1.55;
	word-break: break-word;
}

.creditpro-msg__time {
	margin-top: 5px;
	align-self: flex-end;
	font-size: 11px;
	opacity: .62;
}

.creditpro-chat__form {
	display: flex;
	align-items: flex-end;
	gap: 10px;
	padding: 12px 14px;
	border-top: 1px solid var(--cp-line);
	background: var(--cp-surface);
}

.creditpro-chat__form textarea {
	flex: 1 1 auto;
	min-height: 46px;
	max-height: 160px;
	padding: 12px 15px;
	border: 1px solid var(--cp-line);
	border-radius: 22px;
	font-family: var(--cp-sans);
	font-size: 14.5px;
	line-height: 1.5;
	resize: none;
	overflow-y: auto;
}

.creditpro-chat__form textarea:focus {
	outline: none;
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 3px rgba(46, 99, 246, .14);
}

.creditpro-chat__send {
	flex: 0 0 auto;
	padding: 13px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--cp-accent);
	color: #FFFFFF;
	font-family: var(--cp-sans);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .16s ease;
}

.creditpro-chat__send[disabled] {
	opacity: .55;
	cursor: default;
}

.creditpro-chat__status {
	margin: 0 !important;
	padding: 0 18px 12px;
	font-size: 12.5px;
	min-height: 18px;
	color: var(--cp-muted);
}

.creditpro-chat__status.is-error {
	color: var(--cp-danger, #B42318);
	font-weight: 600;
}

/* Bloc de confirmation du dépôt de documents */

.creditpro-done {
	margin-top: 22px;
	text-align: center;
}

.creditpro-done__title {
	margin: 0 0 8px !important;
	font-size: 17px;
	font-weight: 700;
	color: var(--cp-ink);
}

.creditpro-done__text {
	margin: 0 auto 22px !important;
	max-width: 46ch;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--cp-muted);
}

.creditpro-done__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

@media (max-width: 560px) {
	.creditpro-msg {
		max-width: 92%;
	}

	.creditpro-chat__thread {
		max-height: 60vh;
		padding: 16px 12px;
	}

	.creditpro-chat__send {
		padding: 13px 16px;
	}
}

/* ====================================================================
   Espace client unifié
   ================================================================= */

.creditpro-page--space .creditpro-shell {
	max-width: 780px;
}

.creditpro-space__head {
	text-align: center;
	padding: 8px 0 30px;
}

.creditpro-space__ref {
	margin: 18px 0 10px !important;
	display: inline-block;
	padding: 5px 16px;
	border-radius: 999px;
	background: var(--cp-accent-soft);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--cp-accent);
}

.creditpro-page--space .creditpro-card {
	margin-bottom: 18px;
}

/* Ce qu'on attend du client ----------------------------------------- */

.creditpro-todo.is-active {
	border-left: 3px solid var(--cp-accent);
}

.creditpro-todo.is-clear {
	border-left: 3px solid var(--cp-success, #0E9F6E);
}

.creditpro-todo__clear {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 14px 0 0 !important;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--cp-muted);
}

.creditpro-todo__check {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(14, 159, 110, .12);
	color: var(--cp-success, #0E9F6E);
}

.creditpro-todo__list {
	list-style: none;
	margin: 16px 0 0 !important;
	padding: 0 !important;
}

.creditpro-todo__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	padding: 14px 0;
	border-bottom: 1px solid var(--cp-line);
}

.creditpro-todo__item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.creditpro-todo__label {
	font-size: 15px;
	font-weight: 600;
	color: var(--cp-ink);
}

.creditpro-todo__count {
	display: inline-block;
	min-width: 21px;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--cp-accent);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	color: #FFFFFF;
}

.creditpro-btn--sm {
	padding: 8px 18px;
	font-size: 13.5px;
}

/* Listes de contrôle ------------------------------------------------ */

.creditpro-checklist {
	list-style: none;
	margin: 16px 0 0 !important;
	padding: 0 !important;
}

.creditpro-checklist__item {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 12px 0;
	border-bottom: 1px solid var(--cp-line);
}

.creditpro-checklist__item:last-child {
	border-bottom: 0;
}

.creditpro-checklist__mark {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
}

.creditpro-checklist__item.is-done .creditpro-checklist__mark {
	background: rgba(14, 159, 110, .14);
	color: var(--cp-success, #0E9F6E);
}

.creditpro-checklist__item.is-todo .creditpro-checklist__mark {
	background: var(--cp-surface-alt, #F2F4F7);
	color: var(--cp-faint, #98A2B3);
}

.creditpro-checklist__label {
	flex: 1 1 160px;
	font-size: 14.5px;
	color: var(--cp-ink);
}

.creditpro-checklist__item.is-todo .creditpro-checklist__label {
	color: var(--cp-muted);
}

.creditpro-checklist__state {
	flex: 0 0 auto;
	font-size: 12.5px;
	color: var(--cp-muted);
}

.creditpro-checklist__item.is-done .creditpro-checklist__state {
	color: var(--cp-success, #0E9F6E);
	font-weight: 600;
}

.creditpro-space__foot {
	padding: 10px 4px 40px;
	text-align: center;
}

/* Ancrage confortable depuis les boutons « Ouvrir ». */
.creditpro-page--space [id^="cp-"] {
	scroll-margin-top: 24px;
}

@media (max-width: 560px) {
	.creditpro-track__now {
		width: 100%;
		margin-left: 46px;
		text-align: center;
	}

	.creditpro-todo__item .creditpro-btn {
		width: 100%;
		justify-content: center;
	}

	.creditpro-checklist__state {
		width: 100%;
		padding-left: 34px;
	}
}

/* ====================================================================
   Espace client — thème bleu nuit
   ================================================================= */

.creditpro-page--space {
	--sp-bg: #0B1B36;
	--sp-bg-2: #0F2447;
	--sp-card: #14294C;
	--sp-card-2: #1A3159;
	--sp-line: rgba(255, 255, 255, .10);
	--sp-line-soft: rgba(255, 255, 255, .06);
	--sp-ink: #F2F6FC;
	--sp-muted: #A9BAD4;
	--sp-faint: #7A8CA8;
	--sp-accent: #5B8DEF;
	--sp-accent-soft: rgba(91, 141, 239, .16);
	--sp-ok: #34D399;
	--sp-ok-soft: rgba(52, 211, 153, .14);
	--sp-warn: #FBBF24;
	--sp-danger: #F87171;

	background:
		radial-gradient(120% 70% at 50% -10%, #17325D 0%, transparent 60%),
		linear-gradient(180deg, var(--sp-bg) 0%, var(--sp-bg-2) 100%);
	min-height: 100vh;
	padding: 8px 0 0;
	color: var(--sp-ink);
}

.creditpro-page--space .creditpro-shell {
	max-width: 760px;
}

/* En-tête ----------------------------------------------------------- */

.creditpro-space__head {
	text-align: center;
	padding: 34px 0 30px;
}

.creditpro-space__ref {
	margin: 20px 0 14px !important;
	display: inline-block;
	padding: 6px 18px;
	border-radius: 999px;
	background: var(--sp-accent-soft);
	border: 1px solid rgba(91, 141, 239, .3);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .16em;
	color: #9DBBF7;
}

.creditpro-page--space .creditpro-title {
	color: #FFFFFF !important;
	letter-spacing: -0.025em;
	text-shadow: 0 2px 20px rgba(0, 0, 0, .25);
}

.creditpro-page--space .creditpro-lede {
	color: var(--sp-muted) !important;
	max-width: 44ch;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Cartes ------------------------------------------------------------ */

.creditpro-page--space .creditpro-card {
	margin-bottom: 16px;
	background: linear-gradient(160deg, var(--sp-card) 0%, var(--sp-card-2) 100%);
	border: 1px solid var(--sp-line);
	border-radius: 18px;
	box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .8);
}

.creditpro-page--space .creditpro-kicker {
	color: var(--sp-faint) !important;
	letter-spacing: .14em;
}

.creditpro-page--space .creditpro-help,
.creditpro-page--space .creditpro-summary dt {
	color: var(--sp-muted) !important;
}

.creditpro-page--space .creditpro-summary dd,
.creditpro-page--space .creditpro-summary dd strong {
	color: var(--sp-ink) !important;
}

.creditpro-page--space .creditpro-summary > div {
	border-bottom-color: var(--sp-line-soft) !important;
}

.creditpro-page--space .creditpro-note {
	background: var(--sp-accent-soft);
	color: #C7D9FB;
	border-radius: 12px;
}

.creditpro-page--space .creditpro-btn--accent {
	background: linear-gradient(135deg, #4F86F7 0%, #3A6FE0 100%);
	border: 0;
	color: #FFFFFF;
	box-shadow: 0 10px 24px -12px rgba(79, 134, 247, .9);
}

.creditpro-page--space .creditpro-btn--accent:hover {
	filter: brightness(1.08);
}

.creditpro-page--space .creditpro-btn--ghost {
	background: transparent;
	border: 1px solid var(--sp-line);
	color: var(--sp-ink);
}

/* Actions attendues -------------------------------------------------- */

.creditpro-page--space .creditpro-todo.is-active {
	border-left: 3px solid var(--sp-accent);
}

.creditpro-page--space .creditpro-todo.is-clear {
	border-left: 3px solid var(--sp-ok);
}

.creditpro-page--space .creditpro-todo__clear {
	color: var(--sp-muted) !important;
}

.creditpro-page--space .creditpro-todo__check {
	background: var(--sp-ok-soft);
	color: var(--sp-ok);
}

.creditpro-page--space .creditpro-todo__item {
	border-bottom-color: var(--sp-line-soft);
}

.creditpro-page--space .creditpro-todo__label {
	color: var(--sp-ink);
}

.creditpro-page--space .creditpro-todo__count {
	background: var(--sp-accent);
}

/* Listes de contrôle ------------------------------------------------- */

.creditpro-page--space .creditpro-checklist__item {
	border-bottom-color: var(--sp-line-soft);
}

.creditpro-page--space .creditpro-checklist__item.is-done .creditpro-checklist__mark {
	background: var(--sp-ok-soft);
	color: var(--sp-ok);
}

.creditpro-page--space .creditpro-checklist__item.is-todo .creditpro-checklist__mark {
	background: rgba(255, 255, 255, .07);
	color: var(--sp-faint);
}

.creditpro-page--space .creditpro-checklist__label {
	color: var(--sp-ink);
}

.creditpro-page--space .creditpro-checklist__item.is-todo .creditpro-checklist__label {
	color: var(--sp-muted);
}

.creditpro-page--space .creditpro-checklist__state {
	color: var(--sp-faint);
}

.creditpro-page--space .creditpro-checklist__item.is-done .creditpro-checklist__state {
	color: var(--sp-ok);
}

/* Fenêtre d'explication d'une étape ---------------------------------- */

.creditpro-modal--step .creditpro-modal__box {
	background: linear-gradient(160deg, #162C52 0%, #1D3763 100%);
	border: 1px solid rgba(255, 255, 255, .12);
	color: var(--sp-ink);
}

.creditpro-modal__eyebrow {
	margin: 0 0 10px !important;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #7FA5F2;
}

.creditpro-modal--step .creditpro-modal__title {
	color: #FFFFFF !important;
}

.creditpro-modal--step .creditpro-modal__text {
	color: var(--sp-muted) !important;
	margin-bottom: 22px !important;
}

.creditpro-space__foot {
	padding: 12px 4px 44px;
	text-align: center;
}

.creditpro-space__foot .creditpro-help {
	color: var(--sp-faint) !important;
	font-size: 12px;
}

@media (max-width: 620px) {
	.creditpro-bar__rail {
		left: 8%;
		right: 8%;
	}

	.creditpro-bar__dot {
		width: 30px;
		height: 30px;
		font-size: 12px;
	}

	.creditpro-bar__label {
		font-size: 10px;
	}

	.creditpro-space__head {
		padding: 24px 0 22px;
	}
}

/* --------------------------------------------------------------------
   Avancement du dossier — barre à jalons
   ----------------------------------------------------------------- */

.creditpro-track__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 30px;
}

.creditpro-track__title {
	margin: 0 0 6px !important;
	font-family: var(--cp-serif);
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #FFFFFF;
}

.creditpro-track__sub {
	margin: 0 !important;
	font-size: 14px;
	color: var(--sp-muted);
}

.creditpro-track__sub strong {
	color: var(--sp-accent);
	font-weight: 700;
}

.creditpro-track__pct {
	margin: 0 !important;
	font-family: var(--cp-serif);
	font-size: 38px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	color: #FFFFFF;
}

.creditpro-track__pct span {
	font-size: 15px;
	font-weight: 600;
	color: var(--sp-muted);
	margin-left: 2px;
}

/* Rail ------------------------------------------------------------- */

.creditpro-rail {
	position: relative;
	height: 30px;
	margin: 0 16px 62px;
}

.creditpro-rail__track {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 10px;
	margin-top: -5px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	overflow: hidden;
}

.creditpro-rail__fill {
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--sp-ok) 0%, #3FA6D8 55%, var(--sp-accent) 100%);
	transition: width .9s cubic-bezier(.22, .8, .3, 1);
}

.creditpro-rail__dots {
	position: absolute;
	inset: 0;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

.creditpro-rail__item {
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.creditpro-rail__dot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border-radius: 50%;
	border: 2px solid var(--sp-bg-2);
	background: #2C4570;
	font-family: var(--cp-sans);
	font-size: 12px;
	font-weight: 700;
	color: var(--sp-faint);
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease;
}

.creditpro-rail__dot:hover {
	transform: scale(1.12);
}

.creditpro-rail__item.is-done .creditpro-rail__dot {
	background: var(--sp-ok);
	border-color: rgba(52, 211, 153, .35);
	color: #04301F;
}

.creditpro-rail__item.is-now .creditpro-rail__dot {
	width: 34px;
	height: 34px;
	background: var(--sp-accent);
	border-color: rgba(91, 141, 239, .45);
	color: #FFFFFF;
	font-size: 0;
	box-shadow: 0 0 0 9px var(--sp-accent-soft);
	animation: cp-halo 2.6s ease-in-out infinite;
}

@keyframes cp-halo {
	0%, 100% { box-shadow: 0 0 0 9px rgba(91, 141, 239, .18); }
	50% { box-shadow: 0 0 0 15px rgba(91, 141, 239, .06); }
}

/* Légende du jalon courant, sous le rail. */
.creditpro-rail__caption {
	position: absolute;
	top: 34px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: max-content;
	max-width: 210px;
	text-align: center;
}

.creditpro-rail__caption strong {
	font-size: 13.5px;
	font-weight: 700;
	color: #FFFFFF;
	line-height: 1.3;
}

.creditpro-rail__caption em {
	font-style: normal;
	font-size: 11.5px;
	color: var(--sp-faint);
}

.creditpro-rail__ends {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: -32px;
	font-size: 12px;
	color: var(--sp-faint);
}

.creditpro-rail__hint {
	margin: 22px 0 0 !important;
	font-size: 12.5px;
	color: var(--sp-faint);
}

.creditpro-rail__hint::before {
	content: "?";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 15px;
	height: 15px;
	margin-right: 7px;
	border-radius: 50%;
	border: 1px solid currentColor;
	font-size: 10px;
	font-weight: 700;
	vertical-align: -2px;
}

@media (max-width: 620px) {
	.creditpro-rail {
		margin: 0 14px 70px;
	}

	.creditpro-rail__dot {
		width: 24px;
		height: 24px;
		font-size: 11px;
	}

	.creditpro-rail__item.is-now .creditpro-rail__dot {
		width: 30px;
		height: 30px;
	}

	.creditpro-rail__caption {
		max-width: 150px;
	}

	.creditpro-track__pct {
		font-size: 30px;
	}
}

/* Dossier interrompu : la barre s'arrête au jalon atteint */

.creditpro-rail.is-stopped .creditpro-rail__fill {
	background: linear-gradient(90deg, var(--sp-ok) 0%, #C97B7B 100%);
}

.creditpro-rail.is-stopped .creditpro-rail__item.is-now .creditpro-rail__dot {
	background: var(--sp-danger);
	border-color: rgba(248, 113, 113, .4);
	box-shadow: 0 0 0 9px rgba(248, 113, 113, .16);
	animation: none;
}

.creditpro-rail.is-stopped .creditpro-rail__caption strong {
	color: #FFD4D4;
}

.creditpro-track__closed {
	margin: 0 0 26px !important;
}

/* Informations de paiement, historique et bulle de discussion */

.creditpro-payinfo {
	padding: 18px 0;
	border-bottom: 1px solid var(--sp-line-soft);
}

.creditpro-payinfo:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.creditpro-payinfo__subject {
	margin: 0 0 10px !important;
	font-size: 15.5px;
	font-weight: 700;
	color: #FFFFFF;
}

.creditpro-copy {
	margin-left: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	border: 1px solid var(--sp-line);
	background: transparent;
	font-size: 11.5px;
	font-family: var(--cp-sans);
	color: var(--sp-muted);
	cursor: pointer;
	vertical-align: 1px;
}

.creditpro-copy:hover {
	border-color: var(--sp-accent);
	color: var(--sp-accent);
}

.creditpro-copy.is-done {
	border-color: var(--sp-ok);
	color: var(--sp-ok);
}

.creditpro-payinfo__done {
	margin: 14px 0 0 !important;
	padding: 11px 14px;
	border-radius: 10px;
	background: var(--sp-ok-soft);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--sp-ok);
}

.creditpro-payinfo__done em {
	font-style: normal;
	font-weight: 400;
	color: var(--sp-muted);
	margin-left: 6px;
}

.creditpro-payinfo__form {
	margin-top: 14px;
}

.creditpro-note--message {
	white-space: pre-wrap;
}

/* Historique ------------------------------------------------------- */

.creditpro-timeline {
	list-style: none;
	margin: 16px 0 0 !important;
	padding: 0 !important;
}

.creditpro-timeline__item {
	display: flex;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--sp-line-soft);
}

.creditpro-timeline__item:last-child {
	border-bottom: 0;
}

.creditpro-timeline__date {
	flex: 0 0 108px;
	font-size: 12px;
	color: var(--sp-faint);
	padding-top: 2px;
}

.creditpro-timeline__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.creditpro-timeline__body strong {
	font-size: 14.5px;
	color: var(--sp-ink);
}

.creditpro-timeline__body em {
	font-style: normal;
	font-size: 13px;
	line-height: 1.55;
	color: var(--sp-muted);
}

/* Bulle de discussion ---------------------------------------------- */

.creditpro-bubble {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 20px 13px 16px;
	border-radius: 999px;
	background: linear-gradient(135deg, #4F86F7 0%, #3A6FE0 100%);
	color: #FFFFFF !important;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 14px 34px -12px rgba(0, 0, 0, .75);
	transition: transform .18s ease;
}

.creditpro-bubble:hover {
	transform: translateY(-2px);
}

.creditpro-bubble__icon {
	display: flex;
	align-items: center;
}

.creditpro-bubble__badge {
	position: absolute;
	top: -5px;
	right: -3px;
	min-width: 21px;
	height: 21px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--sp-danger);
	font-size: 11.5px;
	font-weight: 700;
	color: #FFFFFF;
	box-shadow: 0 0 0 2px var(--sp-bg-2);
}

/* Fenêtre de notification ------------------------------------------ */

.creditpro-modal--notice .creditpro-modal__box {
	background: linear-gradient(160deg, #162C52 0%, #1D3763 100%);
	border: 1px solid rgba(255, 255, 255, .12);
	color: var(--sp-ink);
}

.creditpro-modal--notice .creditpro-modal__title {
	color: #FFFFFF !important;
}

.creditpro-modal--notice .creditpro-modal__text {
	color: var(--sp-muted) !important;
	margin-bottom: 22px !important;
	white-space: pre-wrap;
}

@media (max-width: 620px) {
	.creditpro-bubble__label {
		display: none;
	}

	.creditpro-bubble {
		padding: 14px;
	}

	.creditpro-timeline__item {
		flex-direction: column;
		gap: 4px;
	}

	.creditpro-timeline__date {
		flex: none;
	}
}

/* Espace client : deux colonnes sur grand écran */

.creditpro-page--space .creditpro-shell {
	max-width: 1080px;
}

.creditpro-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 18px;
	align-items: start;
}

.creditpro-grid__col {
	min-width: 0;
}

/* La carte d'avancement et l'encart d'action restent pleine largeur. */
.creditpro-page--space .creditpro-track,
.creditpro-page--space .creditpro-todo {
	grid-column: 1 / -1;
}

@media (max-width: 900px) {
	.creditpro-grid {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

/* --------------------------------------------------------------------
   Adaptation à la largeur du conteneur
   -----------------------------------------------------------------
   Ces règles complètent les media queries sans les remplacer : elles
   s'appliquent quand le bloc est inséré dans une colonne étroite —
   Elementor, colonne de thème, encart latéral — alors que la fenêtre
   reste large. Sans elles, les grilles restent à deux colonnes dans un
   conteneur qui n'en supporte qu'une.
   ----------------------------------------------------------------- */

@container creditpro (max-width: 1040px) {
	.creditpro-simgrid {
		grid-template-columns: 1fr;
	}

	.creditpro-quote {
		position: static;
	}
}

@container creditpro (max-width: 880px) {
	.creditpro-grid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.creditpro-confgrid,
	.creditpro-datagrid {
		grid-template-columns: 1fr;
	}
}

@container creditpro (max-width: 760px) {
	.creditpro-fields,
	.creditpro-recap__grid,
	.creditpro-choices,
	.creditpro-docs {
		grid-template-columns: 1fr;
	}
}

@container creditpro (max-width: 620px) {
	.creditpro-rail__caption {
		max-width: 140px;
	}

	.creditpro-steps {
		gap: 6px;
	}
}

/* La carte de résultat empile ses lignes plutôt que de couper les
   libellés en trois. */
@container creditpro (max-width: 560px) {
	.creditpro-quote__list > div {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}

	.creditpro-quote__list dt,
	.creditpro-quote__list dd {
		text-align: left;
	}
}

/* Marges intérieures réduites dans un conteneur étroit : l'encart
   Elementor apporte déjà les siennes. */
@container creditpro (max-width: 700px) {
	.creditpro-page {
		padding-left: clamp(12px, 3cqw, 20px);
		padding-right: clamp(12px, 3cqw, 20px);
	}
}

/* Repli pour les navigateurs sans requêtes de conteneur (avant 2023) :
   la classe est posée par le script quand il mesure un bloc étroit. */
.creditpro-page.is-narrow .creditpro-simgrid,
.creditpro-page.is-narrow .creditpro-grid,
.creditpro-page.is-narrow .creditpro-confgrid,
.creditpro-page.is-narrow .creditpro-datagrid,
.creditpro-page.is-narrow .creditpro-fields,
.creditpro-page.is-narrow .creditpro-recap__grid,
.creditpro-page.is-narrow .creditpro-choices,
.creditpro-page.is-narrow .creditpro-docs {
	grid-template-columns: 1fr;
}

.creditpro-page.is-narrow .creditpro-quote {
	position: static;
}

.creditpro-page.is-narrow .creditpro-grid {
	gap: 0;
}

/* --------------------------------------------------------------------
   Intégration dans un constructeur de page
   -----------------------------------------------------------------
   Inséré dans une section Elementor, Gutenberg ou un thème, le bloc ne
   doit pas repeindre son fond ni ajouter de grandes marges : la section
   hôte porte déjà les siennes. On neutralise donc l'habillage de page,
   sans toucher au rendu sur les pages dédiées du plugin.
   ----------------------------------------------------------------- */

.elementor-widget-container > .creditpro-page,
.elementor-widget-shortcode .creditpro-page,
.e-con-inner > .creditpro-page,
.wp-block-shortcode > .creditpro-page,
.entry-content > .creditpro-page {
	background: transparent;
	padding: 0;
}

.elementor-widget-container > .creditpro-page .creditpro-shell,
.elementor-widget-shortcode .creditpro-page .creditpro-shell,
.e-con-inner > .creditpro-page .creditpro-shell,
.wp-block-shortcode > .creditpro-page .creditpro-shell,
.entry-content > .creditpro-page .creditpro-shell {
	max-width: none;
}

/* Les thèmes imposent souvent une hauteur de ligne ou une couleur aux
   titres et listes : le bloc reprend la main sur son propre contenu. */
.creditpro-page ul,
.creditpro-page ol {
	list-style: none;
}

.creditpro-page img {
	max-width: 100%;
	height: auto;
}

/* Aucun débordement horizontal, quelle que soit la largeur d'accueil.
   Une règle générale sur * écraserait les largeurs de lecture des textes,
   définies plus haut : on cible donc les seuls éléments qui débordent. */
.creditpro-page pre,
.creditpro-page code,
.creditpro-page table {
	max-width: 100%;
	overflow-x: auto;
}

.creditpro-page {
	overflow-x: clip;
}

/* --------------------------------------------------------------------
   Rythme vertical du simulateur
   -----------------------------------------------------------------
   Les blocs étaient trop espacés entre eux et le fil d'étapes trop
   serré : l'inverse de ce qu'il faut. On resserre l'ensemble et on aère
   le fil, qui doit rester la première chose lisible.
   ----------------------------------------------------------------- */

/* Sans marque, la barre supérieure n'a plus qu'à porter la langue. */
.creditpro-topbar--bare {
	justify-content: flex-end;
	margin-bottom: 18px;
}

/* Fil d'étapes : c'est le seul endroit qu'on aère. Les jalons étaient
   collés les uns aux autres et l'intitulé venait buter dessous. */
.creditpro-steps {
	gap: 14px;
	margin-bottom: 26px;
	padding-bottom: 4px;
}

.creditpro-steps__item {
	gap: 12px;
	padding-right: 18px;
}

.creditpro-steps__item:not(:last-child)::after {
	min-width: 20px;
}

.creditpro-steps__item em {
	letter-spacing: .01em;
}

/* L'intitulé d'étape se détache nettement du fil. */
.creditpro-eyebrow {
	margin-top: 0 !important;
	margin-bottom: 10px !important;
}

/* En-tête et corps se rapprochent. */
.creditpro-head {
	margin-bottom: clamp(22px, 3vw, 32px);
}

.creditpro-display {
	margin-bottom: 10px !important;
}

.creditpro-sub {
	margin-bottom: 0 !important;
}

/* Cartes du simulateur : moins d'air perdu entre elles. */
.creditpro-simgrid {
	gap: 18px;
}

.creditpro-simgrid__controls {
	gap: 14px;
}

/* Marges intérieures des pages du parcours. */
.creditpro-page {
	padding-top: clamp(20px, 3vw, 44px);
	padding-bottom: clamp(24px, 3.5vw, 52px);
}

/* ====================================================================
   Simulateur — panneau bleu nuit
   =================================================================
   Composition obtenue par le seul CSS. Le balisage, les noms de champs,
   le jeton de sécurité, l'action du formulaire et la formule de calcul
   sont inchangés.
   ================================================================= */

.creditpro-simpanel {
	--sim-bg: #0C1D3A;
	--sim-bg-2: #112748;
	--sim-line: rgba(255, 255, 255, .12);
	--sim-line-soft: rgba(255, 255, 255, .07);
	--sim-ink: #F3F7FD;
	--sim-muted: #A7BAD6;
	--sim-faint: #7D91B0;
	--sim-accent: #5B8DEF;

	display: block;
	background:
		radial-gradient(120% 90% at 12% -20%, #17325D 0%, transparent 58%),
		linear-gradient(150deg, var(--sim-bg) 0%, var(--sim-bg-2) 100%);
	border: 1px solid var(--sim-line);
	border-radius: 20px;
	box-shadow: 0 26px 60px -34px rgba(6, 16, 34, .85);
	padding: clamp(20px, 2.6vw, 32px);
	color: var(--sim-ink);
	overflow: hidden;
}

/* Curseurs côte à côte, sans habillage de carte. */
.creditpro-simpanel .creditpro-simgrid__controls {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
}

.creditpro-simpanel .creditpro-slider {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
}

.creditpro-simpanel .creditpro-slider__head {
	margin-bottom: 6px;
}

.creditpro-simpanel .creditpro-kicker {
	color: var(--sim-faint) !important;
	font-size: 10.5px;
	letter-spacing: .13em;
	margin-bottom: 6px !important;
}

.creditpro-simpanel .creditpro-figure {
	margin: 0 !important;
}

.creditpro-simpanel .creditpro-figure__value {
	font-size: clamp(28px, 3vw, 36px);
	letter-spacing: -0.03em;
	color: #FFFFFF;
}

.creditpro-simpanel .creditpro-figure__unit {
	color: var(--sim-muted);
}

.creditpro-simpanel .creditpro-figure__aside {
	background: rgba(91, 141, 239, .16);
	color: #A9C4F8;
	border: 0;
}

/* Curseur : rail fin, pastille nette, confortable au doigt. */
.creditpro-simpanel .creditpro-range {
	height: 30px;
}

.creditpro-simpanel .creditpro-range::-webkit-slider-runnable-track {
	height: 5px;
	border-radius: 999px;
	background: linear-gradient(
		to right,
		var(--sim-accent) 0%,
		var(--sim-accent) var(--cp-fill, 0%),
		rgba(255, 255, 255, .13) var(--cp-fill, 0%),
		rgba(255, 255, 255, .13) 100%
	);
}

.creditpro-simpanel .creditpro-range::-moz-range-track {
	height: 5px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .13);
}

.creditpro-simpanel .creditpro-range::-moz-range-progress {
	height: 5px;
	border-radius: 999px;
	background: var(--sim-accent);
}

.creditpro-simpanel .creditpro-range::-webkit-slider-thumb {
	width: 22px;
	height: 22px;
	margin-top: -8.5px;
	background: #FFFFFF;
	border: 2px solid var(--sim-accent);
	box-shadow: 0 4px 14px -4px rgba(0, 0, 0, .6);
	transition: transform .16s ease;
}

.creditpro-simpanel .creditpro-range::-webkit-slider-thumb:hover {
	transform: scale(1.09);
}

.creditpro-simpanel .creditpro-range::-moz-range-thumb {
	width: 22px;
	height: 22px;
	background: #FFFFFF;
	border: 2px solid var(--sim-accent);
	box-shadow: 0 4px 14px -4px rgba(0, 0, 0, .6);
}

.creditpro-simpanel .creditpro-scale {
	margin-top: 2px;
	font-size: 11.5px;
	color: var(--sim-faint);
}

/* La barre du taux disparaît : le taux figure dans les résultats. */
.creditpro-simpanel .creditpro-ratebar {
	display: none;
}

/* Bandeau de résultat, sur une ligne. */
.creditpro-simpanel .creditpro-quote {
	position: static;
	margin-top: clamp(18px, 2.4vw, 26px);
	padding: clamp(18px, 2.4vw, 24px) 0 0;
	border-top: 1px solid var(--sim-line-soft);
	background: transparent;
	border-radius: 0;
	box-shadow: none;
	color: inherit;

	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: clamp(16px, 2.6vw, 36px);
}

.creditpro-simpanel .creditpro-quote .creditpro-kicker--light {
	flex: 1 0 100%;
	color: var(--sim-faint) !important;
	margin: 0 0 -4px !important;
}

.creditpro-simpanel .creditpro-quote__value {
	margin: 0 !important;
	font-size: clamp(34px, 4.2vw, 46px);
	line-height: 1;
	letter-spacing: -0.035em;
	color: #FFFFFF;
	white-space: nowrap;
}

.creditpro-simpanel .creditpro-quote__cur {
	font-size: .46em;
	font-weight: 600;
	color: var(--sim-muted);
	margin-left: 6px;
}

/* « par mois » suit la mensualité sur la même ligne de base. */
.creditpro-simpanel .creditpro-quote__per {
	flex: 0 0 auto;
	align-self: flex-end;
	margin: 0 0 3px -22px !important;
	font-size: 12.5px;
	color: var(--sim-muted);
}

.creditpro-simpanel .creditpro-quote__list {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(14px, 2.4vw, 34px);
	margin: 0 !important;
	border: 0;
	flex: 1 1 auto;
}

.creditpro-simpanel .creditpro-quote__list > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 0;
	border: 0;
	min-width: 0;
}

.creditpro-simpanel .creditpro-quote__list dt {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: var(--sim-faint);
}

.creditpro-simpanel .creditpro-quote__list dd {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--sim-ink);
	white-space: nowrap;
}

.creditpro-simpanel .creditpro-quote .creditpro-btn {
	flex: 0 0 auto;
	width: auto;
	min-width: 210px;
	padding: 15px 26px;
	font-size: 14.5px;
	background: linear-gradient(135deg, #4F86F7 0%, #3568DE 100%);
	border: 0;
	color: #FFFFFF;
	box-shadow: 0 12px 26px -14px rgba(79, 134, 247, .95);
	transition: filter .16s ease, transform .16s ease;
}

.creditpro-simpanel .creditpro-quote .creditpro-btn:hover {
	filter: brightness(1.07);
	transform: translateY(-1px);
}

.creditpro-simpanel .creditpro-quote__fine {
	flex: 1 0 100%;
	margin: 4px 0 0 !important;
	font-size: 11.5px;
	color: var(--sim-faint);
}

/* Tablette : le bouton passe sous les chiffres. */
@media (max-width: 1080px) {
	.creditpro-simpanel .creditpro-quote .creditpro-btn {
		flex: 1 0 100%;
		width: 100%;
		margin-top: 4px;
	}
}

@media (max-width: 820px) {
	.creditpro-simpanel .creditpro-simgrid__controls {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.creditpro-simpanel .creditpro-quote__per {
		margin-left: -18px !important;
	}
}

@media (max-width: 520px) {
	.creditpro-simpanel .creditpro-quote__list {
		gap: 14px 22px;
	}

	.creditpro-simpanel .creditpro-quote__list > div {
		flex: 1 1 42%;
	}
}
