/* Empreinte bancaire (balise CF7 [empreinte]) : étape « Garantie » du parcours, et chronologie de l'écran final. */
.alx-empreinte, .alx-chrono {
	--emp-vert: var(--vert, #3F7D58);
	--emp-vert-clair: var(--vert-clair, #E4EEE7);
	--emp-vert-trait: #B9D3C1;
	--emp-tarif: var(--terracotta, #C99A7A);
	--emp-texte: var(--texte, #29322F);
	--emp-doux: var(--texte-doux, #55605B);
	--emp-fond: var(--fond, #FFF8EE);
	--emp-trait: #EFE4D3;
	--emp-erreur: #B3261E;
}
.alx-empreinte { display: flex; flex-direction: column; gap: 1rem; color: var(--emp-texte); line-height: 1.45; }

.alx-empreinte__test { align-self: flex-start; padding: 4px 12px; border-radius: 999px; background: #F3D9A4; font-size: 0.75rem; font-weight: 700; }

/* 0 € aujourd'hui */
.alx-empreinte__zero { display: flex; align-items: center; gap: 1rem; padding: 14px 18px; border-radius: 20px; background: var(--emp-vert-clair); }
.alx-empreinte__zero-montant { font-family: var(--titres, inherit); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--emp-vert); font-variant-numeric: tabular-nums; }
.alx-empreinte__zero-txt { display: flex; flex-direction: column; font-weight: 700; font-size: 0.9375rem; }
.alx-empreinte__zero-txt span { font-weight: 400; font-size: 0.875rem; color: var(--emp-doux); }

/* Échelle du temps */
.alx-echelle { display: flex; flex-direction: column; gap: 8px; }
.alx-echelle[hidden] { display: none; }
.alx-echelle__titre { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--emp-doux); }
.alx-echelle__barre { position: relative; display: flex; height: 14px; }
.alx-echelle__vert { width: var(--gratuit); background: var(--emp-vert-clair); border: 1.5px solid var(--emp-vert-trait); border-right: 0; border-radius: 999px 0 0 999px; box-sizing: border-box; }
.alx-echelle__tarif { flex: 1; min-width: 14px; background: var(--emp-tarif); border-radius: 0 999px 999px 0; }
.alx-echelle__repere { position: absolute; top: 50%; left: var(--gratuit); width: 16px; height: 16px; border-radius: 50%; transform: translate(-50%, -50%); background: #fff; border: 3px solid var(--emp-texte); box-sizing: border-box; }
.alx-echelle__bornes { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.75rem; color: var(--emp-doux); font-variant-numeric: tabular-nums; }
.alx-echelle__bornes > span { display: flex; flex-direction: column; line-height: 1.3; }
.alx-echelle__bornes > span:last-child { text-align: right; }
.alx-echelle__bornes b { color: var(--emp-texte); }
.alx-echelle__legende { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px 14px; font-size: 0.8125rem; }
.alx-echelle__legende > span { display: flex; gap: 8px; align-items: flex-start; }
.alx-echelle__puce { flex: none; width: 12px; height: 12px; border-radius: 4px; margin-top: 3px; box-sizing: border-box; }
.alx-echelle__puce.is-vert { background: var(--emp-vert-clair); border: 1.5px solid var(--emp-vert-trait); }
.alx-echelle__puce.is-tarif { background: var(--emp-tarif); }

/* Carte et envoi */
.alx-empreinte__carte { display: block; min-height: 3rem; padding: 14px; border-radius: 18px; border: 1px solid var(--emp-trait); background: var(--emp-fond); }
.alx-empreinte[aria-busy="true"] .alx-empreinte__carte { opacity: 0.6; pointer-events: none; }
.alx-empreinte__msg { color: var(--emp-erreur); font-weight: 600; font-size: 0.9375rem; }
.alx-empreinte__msg:empty { display: none; }
.alx-empreinte__autorisation { font-size: 0.8125rem; color: var(--emp-doux); }
.alx-empreinte__autorisation a, .alx-empreinte__securite a { color: var(--emp-vert); }
.alx-empreinte__securite--sous-envoi { --emp-vert: var(--vert, #3F7D58); --emp-doux: var(--texte-doux, #55605B); }
.alx-empreinte__securite { display: flex; width: 100%; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-size: 0.8125rem; color: var(--emp-doux); }
.alx-empreinte__securite > span { display: inline-flex; align-items: center; gap: 6px; }

/* Chronologie de l'écran final */
.alx-chrono { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-direction: column; color: var(--emp-texte); }
.alx-chrono li { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; margin: 0; padding: 0 0 14px; font-size: 0.9375rem; line-height: 1.45; }
.alx-chrono li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; margin: 4px 0 0 6px; background: #fff; border: 2px solid var(--emp-vert); box-sizing: border-box; }
.alx-chrono li.is-fait::before { background: var(--emp-vert); }
.alx-chrono li.is-limite::before { border-color: var(--emp-tarif); }
.alx-chrono li:not(:last-child)::after { content: ""; position: absolute; left: 12px; top: 20px; bottom: 0; width: 2px; background: var(--emp-vert-clair); }
.alx-chrono small { display: block; font-size: 0.8125rem; color: var(--emp-doux); }

@media (prefers-reduced-motion: no-preference) {
	.alx-echelle__vert { transition: width 0.3s ease; }
}

/* Code famille : choix « pas de code / code » en tête de l'étape */
.alx-code { display: flex; flex-direction: column; gap: 0.75rem; }
.alx-code__choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.alx-code__option { position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; border: 1.5px solid var(--emp-trait); border-radius: 16px; background: #fff; cursor: pointer; }
.alx-code__option input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--emp-vert); }
.alx-code__option span { display: flex; flex-direction: column; font-size: 0.875rem; color: var(--emp-doux); }
.alx-code__option b { font-size: 0.9375rem; color: var(--emp-texte); }
.alx-code__option:has(input:checked) { border-color: var(--emp-vert); background: var(--emp-vert-clair); }
.alx-code__option:has(input:focus-visible) { outline: 2px solid var(--emp-vert); outline-offset: 2px; }
.alx-code__saisie { display: flex; flex-direction: column; gap: 6px; }
.alx-code__saisie[hidden] { display: none; }
.alx-code__label { font-weight: 700; font-size: 0.9375rem; }
.alx-code__ligne { display: flex; flex-wrap: wrap; gap: 8px; }
.alx-empreinte .alx-code__input { flex: 0 1 11rem; min-width: 0; padding: 10px 14px; border: 1.5px solid var(--emp-trait); border-radius: 12px; background: #fff; font: 700 1.25rem/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.18em; text-transform: uppercase; color: var(--emp-texte); }
.alx-empreinte .alx-code__input:focus { outline: none; border-color: var(--emp-vert); box-shadow: 0 0 0 3px var(--emp-vert-clair); }
.alx-empreinte.is-code-ok .alx-code__input { border-color: var(--emp-vert); }
.alx-code__valider { padding: 10px 18px; border: 1.5px solid var(--emp-vert); border-radius: 12px; background: #fff; color: var(--emp-vert); font-weight: 700; cursor: pointer; }
.alx-code__valider:hover { background: var(--emp-vert-clair); }
.alx-code__valider:disabled { opacity: 0.6; cursor: wait; }
.alx-code__msg { min-height: 1.2em; font-size: 0.875rem; color: var(--emp-doux); }
.alx-code__msg.is-ok { color: var(--emp-vert); font-weight: 700; }
.alx-code__msg.is-erreur { color: var(--emp-erreur); }
/* Partie carte (masquée en douceur par assets/empreinte.js quand on choisit le code famille). */
.alx-empreinte__carte-zone { display: flex; flex-direction: column; gap: 1rem; }
.alx-empreinte__carte-zone[hidden] { display: none; }

/* Champ du code et bouton « Vérifier » : taille de champ, pas de bouton principal
   (sélecteurs renforcés : le thème et Elementor stylent tous les champs et boutons du formulaire). */
.wpcf7 .alx-empreinte .alx-code__ligne { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; max-width: 100%; }
.wpcf7 .alx-empreinte input.alx-code__input {
	box-sizing: border-box; flex: 0 1 10.5rem; width: 10.5rem; min-width: 0; max-width: 100%; height: 46px; margin: 0;
	padding: 0 14px; border: 1.5px solid var(--emp-trait); border-radius: 12px; background: #fff;
	font: 700 1.125rem/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.16em; text-align: center; text-transform: uppercase; color: var(--emp-texte);
}
.wpcf7 .alx-empreinte input.alx-code__input::placeholder { text-transform: none; font-weight: 400; letter-spacing: 0.04em; color: var(--emp-doux); opacity: .7; }
.wpcf7 .alx-empreinte input.alx-code__input:focus { border-color: var(--emp-vert); box-shadow: 0 0 0 3px var(--emp-vert-clair); }
.wpcf7 .alx-empreinte button.alx-code__valider {
	box-sizing: border-box; flex: none; width: auto; height: 46px; margin: 0; padding: 0 18px; border: 1.5px solid var(--emp-vert); border-radius: 12px;
	background: #fff; color: var(--emp-vert); font: inherit; font-size: 0.9375rem; font-weight: 700; line-height: 1; letter-spacing: normal; text-transform: none; box-shadow: none; cursor: pointer;
}
.wpcf7 .alx-empreinte button.alx-code__valider:hover { background: var(--emp-vert-clair); color: var(--emp-vert); }
.alx-code__saisie { padding: 2px 2px 0; }
.alx-empreinte__securite[hidden] { display: none; }
.wpcf7 .alx-empreinte label.alx-code__option { flex-direction: row; align-items: flex-start; gap: 10px; font-weight: 400; }
.wpcf7 .alx-empreinte label.alx-code__label { font-weight: 700; }
