/* ==========================================================================
   Avelfinances — Simulateur de prêt (thème bleu)
   ========================================================================== */

.avelf-sim {
	--af-blue-900: #0B2147;
	--af-blue-800: #0B2147;
	--af-blue-700: #0B2147;
	--af-blue-600: #234A82;
	--af-blue-100: #DCE8F8;
	--af-cta: #0B2147;
	--af-cta-hover: #163A70;
	--af-cta-text: #ffffff;
	--af-ink: #10233f;
	--af-muted: #6a7891;
	--af-field-bg: #f4f6fa;
	--af-radius: 22px;

	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	min-height: 640px;
	padding: 56px clamp(20px, 3vw, 46px);
	box-sizing: border-box;
	font-family: 'Mulish', system-ui, -apple-system, sans-serif;
	color: #fff;
	background: var(--af-blue-800);
	background-image:
		radial-gradient(1200px 800px at 85% 120%, var(--af-blue-600) 0%, rgba(27,87,196,0) 55%),
		linear-gradient(115deg, var(--af-blue-900) 0%, var(--af-blue-800) 45%, var(--af-blue-700) 100%);
	overflow: hidden;
}

/* Vagues d'arrière-plan */
.avelf-sim::before,
.avelf-sim::after {
	content: "";
	position: absolute;
	inset: -20% -10%;
	background:
		radial-gradient(60% 120% at 10% 10%, rgba(255,255,255,0.05) 0 40%, transparent 41%),
		radial-gradient(70% 120% at 90% 90%, rgba(10,42,102,0.55) 0 45%, transparent 46%);
	pointer-events: none;
	z-index: 0;
}
.avelf-sim::after {
	background:
		linear-gradient(120deg, transparent 40%, rgba(255,255,255,0.04) 41% 52%, transparent 53%),
		linear-gradient(160deg, transparent 60%, rgba(10,42,102,0.5) 61% 78%, transparent 79%);
}

.avelf-sim__brandtag {
	position: absolute;
	top: 18px;
	right: 22px;
	z-index: 3;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .2px;
	color: #fff;
	opacity: .95;
}

/* ---------- Colonne gauche ---------- */
.avelf-sim__intro {
	position: relative;
	z-index: 2;
	max-width: 460px;
	margin-left: auto;
	padding-right: 8px;
}
.avelf-sim__logo { margin-bottom: 22px; }
.avelf-sim__title {
	font-family: 'Lora', Georgia, serif;
	font-weight: 700;
	font-size: clamp(32px, 3.4vw, 48px);
	white-space: nowrap;
	line-height: 1.02;
	margin: 0 0 28px;
	color: #fff;
}
.avelf-sim__subtitle {
	font-weight: 700;
	font-size: 20px;
	line-height: 1.4;
	margin: 0 0 20px;
}
.avelf-sim__criteria {
	margin: 0;
	padding-left: 20px;
	font-size: 15.5px;
	line-height: 1.6;
	color: rgba(255,255,255,.92);
}
.avelf-sim__criteria li { margin-bottom: 8px; }

/* ---------- Carte formulaire ---------- */
.avelf-sim__card {
	position: relative;
	z-index: 2;
	background: #fff;
	color: var(--af-ink);
	border-radius: var(--af-radius);
	padding: clamp(28px, 3vw, 44px) clamp(26px, 3vw, 52px);
	max-width: 560px;
	width: 100%;
	box-shadow: 0 30px 70px rgba(6,20,52,0.35);
}
.avelf-sim__card-title {
	font-family: 'Lora', Georgia, serif;
	font-weight: 700;
	font-size: clamp(28px, 3vw, 36px);
	text-align: center;
	margin: 4px 0 26px;
	color: var(--af-ink);
}

/* Barre de progression */
.avelf-sim__progress { margin-bottom: 26px; }
.avelf-sim__progress-label {
	display: block;
	font-size: 13px;
	color: var(--af-muted);
	margin-bottom: 8px;
}
.avelf-sim__progress-track {
	height: 6px;
	border-radius: 99px;
	background: #e7ebf3;
	overflow: hidden;
}
.avelf-sim__progress-bar {
	height: 100%;
	border-radius: 99px;
	background: var(--af-blue-100);
	background-image: linear-gradient(90deg, var(--af-blue-600), var(--af-blue-100));
	transition: width .4s ease;
}

/* Texte d'accroche */
.avelf-sim__lead {
	text-align: center;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.35;
	margin: 0 0 26px;
	color: var(--af-ink);
}
.avelf-sim__lead span {
	display: block;
	font-weight: 400;
	font-size: 15.5px;
	color: var(--af-muted);
	margin-top: 4px;
}

/* Champs */
.avelf-field {
	position: relative;
	padding-left: 14px;
	margin-bottom: 22px;
}
.avelf-field::before {
	content: "";
	position: absolute;
	left: 0; top: 2px; bottom: 2px;
	width: 3px;
	border-radius: 3px;
	background: var(--af-blue-700);
}
.avelf-field label {
	display: block;
	font-weight: 600;
	font-size: 15.5px;
	color: var(--af-ink);
}
.avelf-field label sup { color: var(--af-blue-700); }
.avelf-field small {
	display: block;
	font-size: 13px;
	color: var(--af-muted);
	margin-bottom: 10px;
}
.avelf-input {
	display: flex;
	align-items: center;
	background: var(--af-field-bg);
	border: 1.5px solid transparent;
	border-radius: 8px;
	transition: border-color .15s ease, background .15s ease;
}
.avelf-input:focus-within {
	border-color: var(--af-blue-600);
	background: #fff;
}
.avelf-input input {
	flex: 1;
	width: 100%;
	border: 0;
	background: transparent;
	padding: 14px 16px;
	font: inherit;
	font-size: 16px;
	color: var(--af-ink);
	outline: none;
}
.avelf-input input::placeholder { color: #9aa6bd; }
.avelf-suffix {
	padding-right: 16px;
	color: var(--af-muted);
	font-weight: 600;
}

/* Choix Oui / Non */
.avelf-choice { display: flex; gap: 12px; }
.avelf-chip {
	flex: 1;
	position: relative;
	cursor: pointer;
}
.avelf-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.avelf-chip span {
	display: block;
	text-align: center;
	padding: 13px;
	border-radius: 8px;
	background: var(--af-field-bg);
	border: 1.5px solid transparent;
	font-weight: 600;
	color: var(--af-ink);
	transition: all .15s ease;
}
.avelf-chip input:checked + span {
	background: var(--af-blue-700);
	border-color: var(--af-blue-700);
	color: #fff;
}

/* Boutons */
.avelf-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 0;
	cursor: pointer;
	background: var(--af-cta);
	color: var(--af-cta-text);
	font: inherit;
	font-weight: 700;
	font-size: 15.5px;
	padding: 14px 26px;
	border-radius: 99px;
	margin-top: 8px;
	transition: background .15s ease, transform .1s ease;
}
.avelf-btn:hover { background: var(--af-cta-hover); }
.avelf-btn:active { transform: translateY(1px); }
.avelf-btn:disabled { opacity: .6; cursor: default; }
.avelf-btn span { font-size: 18px; line-height: 1; }
.avelf-btn--ghost {
	background: transparent;
	color: var(--af-blue-700);
	padding-left: 6px;
	padding-right: 14px;
}
.avelf-btn--ghost:hover { background: var(--af-blue-100); }
.avelf-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 6px;
}

/* Succès + erreur */
.avelf-success { text-align: center; padding: 10px 0 4px; }
.avelf-success__icon {
	width: 62px; height: 62px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: var(--af-blue-700);
	color: #fff;
	font-size: 32px;
	display: grid;
	place-items: center;
}
.avelf-success__text { color: var(--af-muted); font-size: 15.5px; margin: 0; }
.avelf-error {
	margin: 14px 0 0;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fdecec;
	color: #b3261e;
	font-size: 14px;
	text-align: center;
}
.avelf-input.is-invalid { border-color: #e0554d; background: #fdf2f1; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.avelf-sim {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 40px 22px;
	}
	.avelf-sim__intro { margin: 0 auto; text-align: left; max-width: 560px; }
	.avelf-sim__card { margin: 0 auto; }
	.avelf-sim__brandtag { position: static; display: block; text-align: right; margin-bottom: 8px; }
}

/* Récapitulatif de l'étape 1 (choix reportés depuis la barre du hero) */
.avelf-recap{list-style:none;margin:0 0 22px;padding:14px 16px;background:var(--af-field-bg);border-radius:14px;display:flex;flex-direction:column;gap:8px;}
.avelf-recap[hidden]{display:none !important;}   /* pas de bloc vide en étape 1 : visible seulement une fois rempli */
.avelf-recap li{display:flex;justify-content:space-between;gap:16px;font-size:14px;}
.avelf-recap li span{color:var(--af-muted);}
.avelf-recap li strong{color:var(--af-ink);font-weight:600;text-align:right;}

/* Logo Avel Finances (colonne gauche, fond bleu -> logo blanc) */
.avelf-sim__logo-img{height:44px;width:auto;display:block;filter:brightness(0) invert(1);}

/* Récapitulatif placé dans la colonne gauche (fond bleu) */
.avelf-recap--intro{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);margin:26px 0 46px;}
.avelf-recap--intro li span{color:rgba(255,255,255,.72);}
.avelf-recap--intro li strong{color:#fff;}

@media(max-width:600px){ .avelf-sim__title{ white-space:normal; font-size:clamp(30px,8vw,40px); } }

/* =======================================================================
   Étape 2 : bouton bleu (comme la barre du hero) + champs très lisibles
   ======================================================================= */
.avelf-sim .avelf-btn{
	background:#0B2147 !important; color:#fff !important;
	border:none !important; border-radius:999px !important;
	padding:14px 26px !important; font-weight:700 !important; font-size:15.5px !important;
	display:inline-flex !important; align-items:center; gap:8px; cursor:pointer;
	transition:background .18s ease !important;
}
.avelf-sim .avelf-btn:hover{ background:#163A70 !important; }

/* Champs de saisie : fond blanc, bordure bleue, TEXTE BLEU bien visible */
.avelf-input{ background:#fff; border:1.5px solid #c9d8f4; }
.avelf-input:focus-within{ border-color:#0B2147; background:#fff; }
.avelf-input.is-invalid{ border-color:#e23b3b; background:#fff; }
.avelf-input input{ color:#0B2147; font-weight:600; font-size:18px; }
.avelf-input input::placeholder{ color:#8aa0c8; font-weight:500; }

/* Libellés + notes : plus foncés (public senior) */
.avelf-sim .avelf-field label{ color:#0B2147 !important; font-size:16px; font-weight:700; font-family:'Mulish',system-ui,-apple-system,sans-serif !important; }
.avelf-field small{ color:#41557d; font-size:13.5px; }

/* Sélecteurs de l'étape 1 : même style, texte bleu + chevron bleu */
.avelf-input--select{ position:relative; }
.avelf-input select{
	flex:1; width:100%; border:0; background:transparent;
	padding:14px 42px 14px 16px; font:inherit; font-size:18px; font-weight:600;
	color:#0B2147; cursor:pointer;
	appearance:none; -webkit-appearance:none; -moz-appearance:none;
}
.avelf-input--select::after{
	content:""; position:absolute; right:16px; top:50%;
	width:11px; height:11px; transform:translateY(-65%) rotate(45deg);
	border-right:2.5px solid #0B2147; border-bottom:2.5px solid #0B2147;
	pointer-events:none;
}

/* =======================================================================
   Étape 1 : disposition 2 colonnes + espacement uniforme label -> champ
   ======================================================================= */
.avelf-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:6px; }
.avelf-grid2 .avelf-field{ margin-bottom:0; }
.avelf-grid2 .avelf-field label{ display:block; margin-bottom:8px; }   /* même espace texte/menu partout */
.avelf-grid2 .avelf-field--valeur{ grid-column:1 / -1; }               /* Valeur = pleine largeur */
.avelf-grid2 .avelf-field--age{ grid-column:1; }                       /* Âge = moitié gauche */
.avelf-grid2 .avelf-field--conjoint{ grid-column:2; }                  /* Conjoint = moitié droite de l'âge */
@media(max-width:560px){
	.avelf-grid2{ grid-template-columns:1fr; }
	.avelf-grid2 .avelf-field--valeur,
	.avelf-grid2 .avelf-field--age,
	.avelf-grid2 .avelf-field--conjoint{ grid-column:auto; }
}

/* ==========================================================================
   Formulaire 2 — « Votre bien » (3 étapes)
   ========================================================================== */
.avelf-form2-head{ margin:0 0 26px; }
/* « Vous pouvez obtenir jusqu'à » : montant en grand, dans notre bleu, centré */
.avelf-obtain{
	margin:0 0 18px; text-align:center; font-family:'Mulish',system-ui,sans-serif;
	font-size:15.5px; font-weight:600; color:var(--af-muted);
}
.avelf-obtain strong{
	display:block; margin-top:2px;
	font-size:38px; line-height:1.1; font-weight:800; letter-spacing:-.5px;
	color:var(--af-blue-700); white-space:nowrap;
}
/* En-tête d'étape : même style que la progression du formulaire 1 */
.avelf-form2-label{ display:block; font-size:13px; color:var(--af-muted); margin-bottom:8px; }
.avelf-form2-track{ height:6px; border-radius:99px; background:#e7ebf3; overflow:hidden; }
.avelf-form2-bar{ height:100%; border-radius:99px; background:var(--af-blue-100); background-image:linear-gradient(90deg, var(--af-blue-600), var(--af-blue-100)); transition:width .4s ease; }

/* Filet de sécurité : la carte et son contenu ne débordent jamais */
.avelf-sim__card, .avelf-sim__card *{ box-sizing:border-box; }
.avelf-sim__card{ overflow-wrap:break-word; }
.avelf-sim__card input, .avelf-sim__card select{ max-width:100%; }

/* Cartes de choix (Type de bien) */
.avelf-choicecards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.avelf-choicecard{ box-sizing:border-box; min-width:0; }
.avelf-choicecard{
	display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer;
	background:var(--af-field-bg); border:2px solid transparent; border-radius:16px; padding:18px 10px;
	font-family:'Mulish',sans-serif; font-size:15px; font-weight:700; color:var(--af-blue-900);
	transition:.16s; text-align:center;
}
.avelf-choicecard:hover{ border-color:var(--af-blue-600); background:#eef3fe; }
.avelf-choicecard.is-active{ border-color:var(--af-blue-700); background:#eaf1ff; }
.avelf-choicecard__ico{ font-size:26px; line-height:1; }
.avelf-choicecards.is-invalid{ outline:2px solid #e23b3b; outline-offset:3px; border-radius:18px; }

/* Ligne de 3 champs : Surface 40% · Nombre de pièces 30% · Salle de bain 30%.
   minmax(0,…) autorise les colonnes à rétrécir -> plus de débordement hors carte. */
.avelf-grid3{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) minmax(0,1.5fr); gap:14px; margin:6px 0; }
.avelf-grid3 .avelf-field{ margin-bottom:0; min-width:0; }
.avelf-grid3 .avelf-field label{ display:block; margin-bottom:6px; }
.avelf-grid3 small{ display:block; color:var(--af-muted); font-size:12px; margin-bottom:8px; min-height:16px; }

/* Champ avec suffixe (m²) */
.avelf-input--suffix{ display:flex; align-items:center; box-sizing:border-box; min-width:0; }
.avelf-input--suffix input{ flex:1 1 auto; min-width:0; width:100%; box-sizing:border-box; }
.avelf-suffix{ font-family:'Mulish',sans-serif; font-weight:800; color:var(--af-blue-700); padding:0 14px; white-space:nowrap; }

/* Compteur − 0 + */
.avelf-stepper{ display:flex; align-items:center; background:var(--af-field-bg); border-radius:14px; overflow:hidden; min-width:0; box-sizing:border-box; }
.avelf-stepper__btn{
	flex:0 0 auto; width:clamp(38px,12%,46px); height:52px; border:none; background:transparent; cursor:pointer;
	font-size:24px; font-weight:800; color:var(--af-blue-700); line-height:1; transition:.15s;
}
.avelf-stepper__btn:hover{ background:var(--af-blue-100); }
.avelf-stepper__val{
	flex:1; min-width:0; border:none; background:transparent; text-align:center;
	font-family:'Mulish',sans-serif; font-size:20px; font-weight:800; color:var(--af-blue-900); pointer-events:none;
}

/* Boutons Retour / Étape suivante */
.avelf-form2-actions{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:26px; }
.avelf-form2-actions .avelf-btn{ flex:0 0 auto; }
.avelf-form2-actions .avelf-btn--ghost{ margin-right:auto; }

@media(max-width:560px){
	.avelf-choicecards{ grid-template-columns:1fr; }
	.avelf-grid3{ grid-template-columns:1fr; }
	.avelf-form2-actions{ flex-direction:column-reverse; }
	.avelf-form2-actions .avelf-btn{ width:100%; justify-content:center; }
}

/* ==========================================================================
   Formulaire 2 : plein écran, logo centré en haut, carte centrée
   (flex : robuste face à `body.avelf-fullscreen .avelf-sim{margin:0}`)
   ========================================================================== */
.avelf-sim.is-form2{
	display:flex;
	flex-direction:column;
	align-items:center;          /* centre le logo ET la carte horizontalement */
	justify-content:flex-start;
	min-height:100vh;
	width:100%;
	padding:clamp(26px,5vh,64px) clamp(16px,4vw,48px);
	box-sizing:border-box;
}
.avelf-sim.is-form2 .avelf-sim__intro{
	width:100%; max-width:840px; margin:0 0 22px; padding:0; text-align:center;
}
.avelf-sim.is-form2 .avelf-sim__intro > *{ display:none !important; }
.avelf-sim.is-form2 .avelf-sim__logo{ display:flex !important; justify-content:center; margin:0; }
.avelf-sim.is-form2 .avelf-sim__card{
	width:100%; max-width:840px; margin:0 auto;
	padding:clamp(24px,4vw,52px) clamp(20px,4vw,56px);
	box-sizing:border-box;
}
.avelf-sim.is-form2 .avelf-sim__card-title{ display:none; }
.avelf-sim.is-form2 .avelf-sim__brandtag{ display:none; }

/* ---- Tablette (≤ 900px) : garde 3 cartes « type de bien », surface pleine largeur ---- */
@media(max-width:900px){
	.avelf-sim.is-form2 .avelf-grid3{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
	.avelf-sim.is-form2 .avelf-grid3 .avelf-field--surface{ grid-column:1 / -1; }
}
/* ---- Mobile (≤ 600px) : tout en une colonne ---- */
@media(max-width:600px){
	.avelf-sim.is-form2{ padding:22px 14px 40px; }
	.avelf-sim.is-form2 .avelf-choicecards{ grid-template-columns:1fr; }
	.avelf-sim.is-form2 .avelf-grid3{ grid-template-columns:1fr; }
	.avelf-sim.is-form2 .avelf-obtain strong{ font-size:30px; }
	.avelf-sim.is-form2 .avelf-obtain{ font-size:15px; }
	.avelf-sim.is-form2 .avelf-obtain strong{ font-size:19px; }
}

/* Consentement RGPD (Form 1, étape 2) */
.avelf-field--consent{margin-top:14px}
.avelf-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:#4a5568;cursor:pointer}
.avelf-consent input[type="checkbox"]{margin-top:3px;flex:none;width:16px;height:16px;accent-color:#0B2147}
.avelf-consent a{color:#0B2147;text-decoration:underline}

/* Cartes « Votre projet » (étape 1) : 2 par ligne, icône SVG sans pastille */
.avelf-choicecards.avelf-choicecards--produit{ grid-template-columns:1fr 1fr; }
.avelf-choicecard__svg{ display:inline-flex; color:var(--af-blue-700); }
.avelf-choicecard__svg svg{ width:26px; height:26px; }

/* ==========================================================================
   Mode « page » du simulateur : fond blanc + barre de navigation marine
   ========================================================================== */
.avelf-sim.avelf-sim--page{
	display:block;
	min-height:100vh;
	padding:0;
	background:#fff;
	background-image:none;
	color:var(--af-ink);
}
.avelf-sim.avelf-sim--page::before,
.avelf-sim.avelf-sim--page::after{ content:none; }
body.avelf-fullscreen{ background:#f4f6f8; }

/* Tailles de texte (boutons A A A) */
.avelf-sim--page[data-fs="2"]{ zoom:1.12; }
.avelf-sim--page[data-fs="3"]{ zoom:1.25; }

/* ----- Barre du haut (bleu marine, comme le footer du site) -----
   Rangée 1 : logo à gauche, A A A + rendez-vous à droite.
   Rangée 2 : les 4 preuves de confiance, centrées. */
.avelf-topbar{
	display:flex; align-items:center; gap:24px; flex-wrap:wrap;
	background:#0B2147; color:#fff;
	padding:22px clamp(18px,3vw,44px) 16px;
}
.avelf-topbar__logo img{ height:72px; width:auto; display:block; }
.avelf-trust{
	order:3; width:100%;
	display:flex; align-items:center; justify-content:center; gap:34px; flex-wrap:wrap;
	list-style:none; margin:18px 0 0; padding:14px 0 0;
	border-top:1px solid rgba(255,255,255,.14);
	font-size:15px; font-weight:700;
}
.avelf-trust li{ display:inline-flex; align-items:center; gap:9px; white-space:nowrap; }
.avelf-trust svg{ width:20px; height:20px; color:#8FC8ED; flex:none; }
.avelf-topbar__right{ display:flex; align-items:center; gap:16px; margin-left:auto; }
.avelf-fs{ display:flex; align-items:flex-end; gap:4px; }
.avelf-fs button{
	background:transparent; border:1.5px solid rgba(255,255,255,.45); color:#fff;
	border-radius:8px; cursor:pointer; font-family:inherit; font-weight:800; line-height:1;
	padding:5px 8px; transition:.15s;
}
.avelf-fs button[data-fs="1"]{ font-size:12px; }
.avelf-fs button[data-fs="2"]{ font-size:15px; }
.avelf-fs button[data-fs="3"]{ font-size:18px; }
.avelf-fs button:hover{ border-color:#fff; }
.avelf-fs button.is-active{ background:#fff; color:#0B2147; border-color:#fff; }
.avelf-rdv{
	display:inline-flex; align-items:center; gap:8px;
	background:#fff; color:#0B2147 !important; text-decoration:none !important;
	font-weight:800; font-size:14px; border-radius:999px; padding:11px 20px; transition:.15s;
}
.avelf-rdv:hover{ background:#EAF2F8; }
.avelf-rdv svg{ width:17px; height:17px; flex:none; }

/* ----- Contenu ----- */
.avelf-sim--page .avelf-sim__page{
	display:flex; justify-content:center;
	padding:clamp(28px,5vw,56px) 20px 70px;
}
.avelf-sim--page .avelf-sim__card{
	max-width:680px;
	box-shadow:0 14px 44px rgba(6,20,52,.12);
	border:1px solid #e7ebf3;
}

/* Cartes produit : icône colorée, carte plus aérée sur cette page */
.avelf-sim--page .avelf-choicecards--produit .avelf-choicecard{ padding:16px 10px; font-size:14px; }

@media (max-width:900px){
	.avelf-topbar__logo img{ height:54px; }
	.avelf-trust{ gap:14px; font-size:13px; }
}
@media (max-width:560px){
	.avelf-rdv span{ display:none; }
	.avelf-choicecards.avelf-choicecards--produit{ grid-template-columns:1fr 1fr; }
}

/* Message d'inéligibilité (« Autres » sur le type de bien) */
.avelf-oops{ text-align:center; padding:26px 18px 10px; }
.avelf-oops__title{ font-family:'Lora', Georgia, serif; font-weight:700; font-size:34px; color:var(--af-blue-900); margin:0 0 12px; }
.avelf-oops__text{ font-size:15.5px; line-height:1.6; color:var(--af-muted); max-width:420px; margin:0 auto; }

/* Étape 2/3 : choix radio en liste (mitoyenneté) + état invalide des groupes */
.avelf-choice--stack{ flex-direction:column; }
.avelf-choice--stack .avelf-chip{ flex:none; }
.avelf-choice.is-invalid{ outline:2px solid #e23b3b; outline-offset:3px; border-radius:10px; }

/* Étape 3/3 : mention obligatoire + choix multiples qui s'enroulent */
.avelf-req{ font-size:12.5px; color:var(--af-muted); margin:0 0 18px; }
.avelf-choice--wrap{ flex-wrap:wrap; }
.avelf-choice--wrap .avelf-chip{ flex:1 1 calc(50% - 12px); min-width:150px; }

/* ==========================================================================
   Cibles tactiles (audit 2026-07-06) : minimum 40-44px pour le public senior
   ========================================================================== */
.avelf-fs button{ min-width:40px; min-height:40px; padding:6px 10px; }
.avelf-stepper__btn{ min-width:44px; }
.avelf-consent input[type="checkbox"]{ width:20px; height:20px; flex:none; }
@media (max-width:560px){
	.avelf-rdv{ padding:13px 14px; min-height:44px; }
}

/* ==========================================================================
   Correctifs audit UX/accessibilité (2026-07-06)
   ========================================================================== */
/* Focus clavier visible sur les chips Oui/Non et choix multiples */
.avelf-chip input:focus-visible + span{ outline:3px solid var(--af-blue-700); outline-offset:2px; }
.avelf-choicecard:focus-visible{ outline:3px solid var(--af-blue-700); outline-offset:2px; }
/* Bouton « Retour » clairement secondaire (contour, jamais confondu avec le CTA) */
.avelf-btn--ghost{ border:2px solid var(--af-blue-700); padding-left:20px; padding-right:20px; }
/* Consentement RGPD lisible pour la cible senior */
.avelf-consent{ font-size:15px; line-height:1.5; }
.avelf-consent input[type="checkbox"]{ width:22px; height:22px; }
/* Petits textes gris : taille et contraste relevés (AA) */
.avelf-sim__progress-label, .avelf-form2-label{ font-size:14px; color:#55658a; }
.avelf-req{ font-size:14px; color:#55658a; }
/* Placeholders : contraste suffisant sans ressembler à une valeur saisie */
.avelf-input input::placeholder{ color:#6b7fa8; }
/* Étape active focusable sans anneau parasite au clic souris */
.avelf-step:focus{ outline:none; }

/* « Retour » = bouton secondaire (contour), jamais confondu avec le CTA.
   (!important nécessaire : la règle générique .avelf-sim .avelf-btn force
   un fond plein avec !important) */
.avelf-sim .avelf-btn--ghost{
	background:transparent !important;
	color:var(--af-blue-700) !important;
	border:2px solid var(--af-blue-700) !important;
}
.avelf-sim .avelf-btn--ghost:hover{ background:var(--af-blue-100) !important; }

/* ==========================================================================
   Aération des champs + réponses Oui/Non compactes (2026-07-06)
   ========================================================================== */
/* Respiration homogène entre le libellé (et son aide) et le champ */
.avelf-field label{ margin-bottom:8px; }
.avelf-field small{ margin-top:-2px; margin-bottom:10px; }
.avelf-field .avelf-input,
.avelf-field .avelf-choice,
.avelf-field .avelf-choicecards,
.avelf-field .avelf-stepper{ margin-top:2px; }
/* Libellés : une seule ligne dès que la place le permet */
@media (max-width:560px){
	.avelf-field label{ font-size:15px; }
}
/* Oui / Non : petites pastilles à la largeur du texte, plus de boutons géants */
.avelf-choice{ gap:10px; flex-wrap:wrap; }
.avelf-choice .avelf-chip{ flex:0 0 auto; }
.avelf-choice .avelf-chip span{ padding:11px 32px; min-width:64px; }
/* Choix multiples (usage du prêt) : compacts, à la largeur du texte */
.avelf-choice--wrap .avelf-chip{ flex:0 0 auto; min-width:0; }
.avelf-choice--wrap .avelf-chip span{ padding:11px 20px; }
/* Mitoyenneté : liste verticale compacte */
.avelf-choice--stack{ align-items:flex-start; }
.avelf-choice--stack .avelf-chip span{ padding:11px 20px; }

/* Surface balcon / terrasse : champ compact (pas pleine largeur) */
.avelf-field--balcon .avelf-input{ max-width:240px; }

/* Rythme vertical UNIFORME entre toutes les lignes des étapes « Votre bien » :
   chaque rangée (champ seul ou paire en grille) est suivie du même espace. */
.avelf-step--b .avelf-field{ margin-bottom:26px; }
.avelf-step--b .avelf-grid2,
.avelf-step--b .avelf-grid3{ margin-bottom:26px; }
.avelf-step--b .avelf-grid2 .avelf-field,
.avelf-step--b .avelf-grid3 .avelf-field{ margin-bottom:0; }

/* ===== Simulateur « Rachat de crédits » ===== */
.avelf-taux{ margin:0 0 24px; padding:12px 16px; border-radius:8px; font-size:14.5px; font-weight:600;
	background:#ecf8f2; color:#0f8a5f; }
.avelf-taux.is-haut{ background:#fff4e5; color:#b26a00; }
.avelf-legal{ margin:6px 0 18px; font-size:12.5px; line-height:1.5; color:#55658a; }

/* Produits sans simulateur dédié : grisés, non cliquables, « Bientôt disponible » */
.avelf-choicecard--soon{
	opacity:.55; cursor:not-allowed; filter:grayscale(1);
	background:#f7f8fa;
}
.avelf-choicecards--conso{grid-template-columns:repeat(4,minmax(0,1fr));}
.avelf-choicecards--conso .avelf-choicecard{font:inherit;cursor:pointer;text-align:center;}
.avelf-choicecards--conso .avelf-choicecard:disabled{cursor:not-allowed;}
.avelf-choicecard small{display:block;margin-top:5px;color:#75819a;font-size:12px;font-weight:600;}
.avelf-c-result{margin:20px 0;padding:18px;border-radius:14px;background:#edf3ff;text-align:center;color:#0B2147;}.avelf-c-result p{margin:0 0 6px;}.avelf-c-result__amount{font-size:27px;font-weight:800;}
.avelf-c-proposals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0;}.avelf-c-proposal{display:flex;flex-direction:column;gap:6px;border:1px solid #d9e3f5;border-radius:12px;padding:13px;color:#0B2147;font-size:13px;}.avelf-c-proposal strong{font-size:14px;}.avelf-c-proposal small{color:#52627e;line-height:1.4;}
.avelf-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;}
@media(max-width:700px){.avelf-choicecards--conso{grid-template-columns:repeat(2,minmax(0,1fr));}.avelf-c-proposals{grid-template-columns:1fr;}}
.avelf-choicecard--soon:hover{ border-color:transparent; background:#f7f8fa; }
.avelf-choicecard__soon{
	display:block; margin-top:4px; font-size:11px; font-weight:700;
	text-transform:uppercase; letter-spacing:.4px; color:#8a94a8;
}

/* =======================================================================
   Rachat de crédits — étape 2 : curseurs + estimation en direct
   (carte élargie en deux colonnes : réglages à gauche, synthèse à droite)
   ======================================================================= */
.avelf-sim--page .avelf-sim__card.is-wide{ max-width:1120px; }

.avelf-rcols{
	display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
	gap:40px; align-items:start; margin-top:6px;
}

/* --- Curseurs --- */
.avelf-rslider{ margin-bottom:32px; }
.avelf-rslider__head{
	display:flex; align-items:center; justify-content:space-between;
	gap:16px; margin-bottom:14px;
}
.avelf-rslider__head label{ font-size:16.5px; font-weight:700; color:#0B2147; margin:0; }
.avelf-rslider__head label em{ font-style:normal; font-weight:500; color:#8a94a8; }
.avelf-rslider__value{
	background:#F5F6FA; border-radius:14px; padding:12px 22px;
	font-size:19px; font-weight:800; color:#0B2147; white-space:nowrap;
	min-width:120px; text-align:center;
}
.avelf-range{
	-webkit-appearance:none; appearance:none;
	width:100%; height:8px; border-radius:999px; background:#D8DCE4;
	outline:none; cursor:pointer; margin:0; display:block;
}
.avelf-range::-webkit-slider-thumb{
	-webkit-appearance:none; appearance:none;
	width:30px; height:30px; border-radius:50%;
	background:var(--af-blue-900,#0B2147); border:4px solid #fff;
	box-shadow:0 2px 10px rgba(11,33,71,.35); cursor:grab;
}
.avelf-range::-moz-range-thumb{
	width:22px; height:22px; border-radius:50%;
	background:var(--af-blue-900,#0B2147); border:4px solid #fff;
	box-shadow:0 2px 10px rgba(11,33,71,.35); cursor:grab;
}
.avelf-range:focus-visible{ box-shadow:0 0 0 3px rgba(27,82,192,.35); }
.avelf-rslider__bounds{
	display:flex; justify-content:space-between;
	font-size:13px; color:#8a94a8; margin-top:9px;
}

/* --- Encadré taux --- */
.avelf-rinfo{
	display:flex; gap:12px; align-items:flex-start;
	background:#EEF4FF; border-radius:16px; padding:16px 18px;
}
.avelf-rinfo__icon{
	flex:0 0 auto; width:22px; height:22px; border-radius:50%;
	background:#0B2147; color:#fff; font-size:13px; font-weight:800;
	font-style:italic; display:flex; align-items:center; justify-content:center;
	font-family:Georgia,serif; margin-top:1px;
}
.avelf-rinfo p{ margin:0; font-size:14.5px; line-height:1.55; color:#33415C; }

/* --- Carte synthèse --- */
.avelf-rsummary{
	background:#fff; border:1px solid #E5E7EB; border-radius:28px;
	padding:34px 30px 28px; text-align:center;
	box-shadow:0 10px 30px rgba(11,33,71,.06);
}
.avelf-rsummary__label{ font-style:italic; color:#6B7280; font-size:15.5px; margin:0 0 12px; }
.avelf-rsummary__amount{
	color:#37C766; font-weight:800; font-size:clamp(32px,3.6vw,44px);
	line-height:1.12; margin:0;
}
.avelf-rsummary__rate{ color:#6B7280; font-size:14px; margin:8px 0 24px; }
.avelf-rsummary__rows{ border-top:1px solid #EEF0F4; text-align:left; }
.avelf-rsummary__row{
	display:flex; justify-content:space-between; align-items:baseline; gap:14px;
	padding:13px 2px; border-bottom:1px solid #EEF0F4;
}
.avelf-rsummary__row span{ font-size:14.5px; color:#6B7280; }
.avelf-rsummary__row strong{ font-size:15px; color:#0B2147; white-space:nowrap; }

.avelf-sim .avelf-btn.avelf-rsummary__cta{
	width:100%; justify-content:center; margin-top:24px;
	background:#0B2147 !important; padding:19px 24px !important;
	font-size:16.5px !important;
}
.avelf-sim .avelf-btn.avelf-rsummary__cta:hover{ background:#132f63 !important; }
.avelf-rsummary__legal{ font-size:12.5px; line-height:1.55; color:#9AA3B2; margin:16px 0 0; }

.avelf-form2-actions--rachat2{ justify-content:flex-start; margin-top:28px; }

@media (max-width:900px){
	.avelf-rcols{ grid-template-columns:1fr; gap:30px; }
	.avelf-rsummary{ padding:28px 22px 24px; }
	.avelf-rslider__value{ padding:10px 16px; font-size:17px; min-width:104px; }
}

/* Commune détectée depuis le code postal (geo.api.gouv.fr) */
.avelf-cityhint{
	display:block; margin-top:7px; font-size:13.5px; font-weight:600; color:#0f8a5f;
}

/* Rachat de crédits — étape 4 : rythme vertical uniforme (une seule mesure
   entre chaque ligne, pas d'espacement au cas par cas) */
.avelf-step--r4 .avelf-field,
.avelf-step--r4 .avelf-grid2{ margin-bottom:26px; }
.avelf-step--r4 .avelf-grid2 .avelf-field{ margin-bottom:0; }
.avelf-step--r4 .avelf-legal{ margin:0 0 26px; }
.avelf-step--r4 .avelf-form2-actions{ margin-top:0; }
