/*
 * Page d'accueil (mise en page « Groupe Écho · Accueil » du pack de design, intégrée le 22/10/2026).
 * Règles reprises de reference/pack-design/theme-divi/groupe-echo-divi/assets/site.css, classes préfixées « ac- » pour ne pas
 * entrer en conflit avec les composants du thème. Chargé uniquement sur la page d'accueil (functions.php).
 * Écarts volontaires avec le pack (décisions du 22/10/2026) : textes sur fond clair en couleurs AA (--ac-ort, --ac-gris),
 * pas de curseur, de poussière d'or, de reflet « shine », de parallaxe ni de défilement des logos ; images en balises <img>.
 */
.ac-sec {
	--ac-noir: #0b0a09; --ac-ligne: #2b2722; --ac-or: #a8884a; --ac-orc: #c9a965; --ac-orp: #e4d3ae;
	--ac-sable: #f3f1ec; --ac-encre: #1b1916; --ac-gris: #5f5a52; --ac-grisc: #a39c90; --ac-filet: #e2ddd3;
	/* Couleurs de la démo par défaut ; la version corrigée pour le contraste AA est derrière l'interrupteur « contrastes corrigés » (classe ge-contrastes du body, voir fin de fichier) */
	--ac-ort: #a8884a; --ac-em: #c9a965; --ac-contour: #e2ddd3; --ac-champ: transparent; --ac-grisl: #a39c90; --ac-no: #cfc8ba;
	--ac-ease: cubic-bezier(.2, .7, .2, 1);
	position: relative; overflow: hidden; font-family: var(--texte); font-size: 16px; line-height: 1.6;
	background: #fff; color: var(--ac-encre); margin: 0;
}
.ac-sec :where(h1, h2, h3) { color: inherit; font-family: var(--titre); font-weight: 600; margin: 0; text-wrap: balance; line-height: 1.12; text-transform: none; }
.ac-sec :where(p, ul, ol, dl, dd, figure, blockquote) { margin: 0; max-width: none; }
.ac-sec :where(ul, ol) { padding: 0; }
.ac-sec :where(a) { color: inherit; text-decoration: none; }
.ac-sec .wrap { max-width: 1200px; margin-inline: auto; }
.ac-sec .wrap.ac-etroit { max-width: 860px; }
.ac-sec :focus-visible { outline: 3px solid var(--ac-orc); outline-offset: 3px; }
.ac-sec.ac-light :focus-visible, .ac-sec.ac-sable :focus-visible { outline-color: var(--ac-encre); }
.ac-sec :where(.wp-block-group) > * { margin-block: 0; }
.ac-band { padding-block: clamp(64px, 8vw, 112px); }
.ac-noir { background: var(--ac-noir); color: #fff; }
.ac-sable { background: var(--ac-sable); }
.ac-t { font-size: clamp(30px, 4.2vw, 54px); font-weight: 600; letter-spacing: -.025em; max-width: 22ch; margin-bottom: clamp(28px, 4vw, 48px); }
.ac-sec :is(.ac-t, .ac-hero-t, .ac-plx-t) em { font-family: var(--italique); font-style: italic; font-weight: 500; color: var(--ac-orc); letter-spacing: 0; font-size: 1.1em; }
.ac-band:not(.ac-noir) :is(.ac-t) em, .ac-contact .ac-t em { color: var(--ac-em); }
.ac-lead { max-width: 56ch; color: var(--ac-gris); font-size: 17px; }
.ac-sh { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 32px; margin-bottom: clamp(28px, 4vw, 48px); }
.ac-sh .ac-t { margin-bottom: 0; }
.ac-lien { font-family: var(--titre); font-weight: 600; font-size: 14.5px; color: var(--ac-ort); display: inline-block; margin-top: 28px; }
.ac-lien:hover { text-decoration: underline; text-underline-offset: 4px; }
.ac-sh .ac-lien { margin-top: 0; }
.ac-noir .ac-lien, .ac-lien.ac-clair { color: var(--ac-orc); }
.ac-fl { width: 22px; height: 22px; flex: none; transition: transform .35s var(--ac-ease); }

/* Boutons du pack sur les boutons natifs */
.ac-sec .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.ac-sec .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--titre); font-weight: 600; font-size: 15px; line-height: 1.6;
	padding: 16px 28px; border: 1.5px solid var(--ac-or); border-radius: 0; background: var(--ac-or); color: var(--ac-noir); text-decoration: none; text-transform: none; letter-spacing: 0; box-shadow: none;
	transition: background .25s, color .25s, border-color .25s;
}
.ac-sec .wp-block-button__link:hover { background: var(--ac-orc); border-color: var(--ac-orc); color: var(--ac-noir); }
.ac-sec .is-style-ghost .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
.ac-sec .is-style-ghost .wp-block-button__link:hover { border-color: var(--ac-orc); color: var(--ac-orc); background: transparent; }

/* Bandeau d'ouverture */
.ac-hero { background: var(--ac-noir); color: #fff; isolation: isolate; }
.ac-hero .ac-bg { position: absolute; top: -10%; bottom: -10%; right: -2%; width: min(74%, 1200px); z-index: -2; margin: 0; }
.ac-hero .ac-bg figure, .ac-hero .ac-bg img { width: 100%; height: 100%; margin: 0; }
.ac-hero .ac-bg img { object-fit: cover; object-position: 50% 38%; max-width: none; }
.ac-hero .ac-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ac-noir) 0%, rgba(11, 10, 9, .5) 32%, rgba(11, 10, 9, 0) 62%), linear-gradient(0deg, var(--ac-noir) 0%, rgba(11, 10, 9, 0) 32%); }
.ac-hero-in { padding-block: clamp(88px, 12vw, 160px) clamp(40px, 5vw, 64px); }
.ac-hero-t { font-size: clamp(46px, 7vw, 96px); font-weight: 600; letter-spacing: -.035em; line-height: 1.02; max-width: 10ch; }
.ac-hero-p { max-width: 42ch; color: #d8d2c7; margin-top: 26px; font-size: 17.5px; }
.ac-hero .wp-block-buttons { margin-top: 34px; }
.ac-preuves { list-style: none; padding: 0; margin: clamp(56px, 8vw, 104px) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ac-ligne); }
.ac-preuves li { padding: 22px 24px 0 0; min-width: 0; }
.ac-preuves li + li { padding-left: 24px; border-left: 1px solid var(--ac-ligne); }
.ac-preuves b { display: block; font-family: var(--titre); font-weight: 600; font-size: clamp(28px, 3.4vw, 44px); color: var(--ac-orc); font-variant-numeric: tabular-nums; letter-spacing: -.02em; line-height: 1.1; }
.ac-preuves span { display: block; color: #bdb6aa; font-size: 14px; margin-top: 6px; }
@media (max-width: 700px) {
	.ac-preuves { grid-template-columns: 1fr; }
	.ac-preuves li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--ac-ligne); margin-top: 18px; }
}
@media (max-width: 760px) {
	.ac-hero .ac-bg { width: 130%; right: -30%; opacity: .55; }
	.ac-hero .ac-bg img { object-position: 58% 40%; }
}

/* Logos clients (une ligne qui passe à la ligne : 12 logos, sans défilement) */
.ac-logos { background: var(--ac-noir); padding-block: 28px 56px; color: var(--ac-grisc); }
.ac-logos-t { text-align: center; font-size: 13px; margin-bottom: 20px; }
.ac-lg-row { list-style: none; margin: 0 auto; padding: 0 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 28px 56px; max-width: 1200px; }
.ac-lg-row img { max-height: 46px; max-width: 130px; width: auto; height: auto; opacity: .55; transition: opacity .3s; }
.ac-lg-row li:hover img { opacity: 1; }

/* Situations */
.ac-sit { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ac-filet); }
.ac-sit a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 28px 24px 28px 0; border-bottom: 1px solid var(--ac-filet); font-family: var(--titre); font-weight: 600; font-size: clamp(18px, 1.7vw, 22px); letter-spacing: -.01em; line-height: 1.3; transition: color .25s; }
.ac-sit a:nth-child(3n+2), .ac-sit a:nth-child(3n+3) { padding-left: 24px; border-left: 1px solid var(--ac-filet); }
.ac-sit a .ac-fl { color: var(--ac-ort); }
.ac-sit a:hover { color: var(--ac-ort); }
.ac-sit a:hover .ac-fl { transform: translateX(6px); }
@media (max-width: 900px) {
	.ac-sit { grid-template-columns: 1fr 1fr; }
	.ac-sit a:nth-child(n) { padding-left: 0; border-left: 0; }
	.ac-sit a:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--ac-filet); }
}
@media (max-width: 560px) {
	.ac-sit { grid-template-columns: 1fr; }
	.ac-sit a:nth-child(2n) { padding-left: 0; border-left: 0; }
}

/* Bandes d'image */
.ac-plx { min-height: clamp(360px, 50vw, 580px); display: grid; align-items: center; background: var(--ac-noir); color: #fff; isolation: isolate; }
.ac-plx > figure { position: absolute; inset: 0; z-index: -2; margin: 0; }
/* Image plus grande que la bande (comme la démo : top -20 %, hauteur 140 %) pour que la parallaxe ne découvre pas de vide */
.ac-plx > picture { position: absolute; left: 0; right: 0; top: -20%; height: 140%; z-index: -2; margin: 0; }
.ac-plx-img { width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; }
.ac-plx::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 10, 9, .88) 0%, rgba(11, 10, 9, .4) 60%, rgba(11, 10, 9, .1)); }
.ac-plx .wrap { width: 100%; padding-block: 72px; }
.ac-plx-t { font-family: var(--titre); font-weight: 600; font-size: clamp(32px, 4.8vw, 66px); line-height: 1.06; letter-spacing: -.03em; max-width: 15ch; }
.ac-plx-s { margin-top: 16px; color: #d8d2c7; font-size: 17px; max-width: 42ch; }
.ac-plx .wp-block-buttons { margin-top: 28px; }
.ac-plx.ac-sans-image { min-height: 0; background: #151311; border-block: 1px solid var(--ac-or); } /* sépare la bande de l'équipe de la bande Avis (noir du pack) : fond un cran plus clair et filets or, texte blanc 17:1 et or clair 8:1 */
.ac-plx.ac-sans-image .wrap { padding-block: clamp(64px, 8vw, 112px); }

/* Études de cas */
.ac-res3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ac-res3 .r { position: relative; display: block; overflow: hidden; aspect-ratio: 4/5; background: #151311; }
.ac-res3 img { position: absolute; inset: -8% 0; width: 100%; height: 116%; max-width: none; object-fit: cover; filter: brightness(.6) saturate(.85); transition: filter .6s; }
.ac-res3 .r:hover img { filter: brightness(.75); }
.ac-res3 .r div { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px; background: linear-gradient(0deg, rgba(11, 10, 9, .9), transparent); }
.ac-res3 b { display: block; font-family: var(--titre); font-weight: 600; font-size: clamp(34px, 3.6vw, 52px); color: var(--ac-orc); letter-spacing: -.02em; line-height: 1; }
.ac-res3 span { display: block; color: #e6e0d4; font-size: 15px; margin-top: 8px; max-width: 26ch; }
.ac-res3 i { display: block; font-style: normal; color: var(--ac-grisc); font-size: 13.5px; margin-top: 14px; }
@media (max-width: 860px) {
	.ac-res3 { grid-template-columns: 1fr; }
	.ac-res3 .r { aspect-ratio: 16/11; }
}

/* Méthode */
.ac-mots-fond { position: absolute; left: 0; top: 28px; font-family: var(--titre); font-weight: 700; font-size: clamp(90px, 14vw, 220px); line-height: 1; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(168, 136, 74, .2); pointer-events: none; }
.ac-methode > .wrap { position: relative; }
.ac-m4 { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ac-filet); }
.ac-m4 li { padding: 28px 24px 0 0; min-width: 0; }
.ac-m4 li + li { padding-left: 24px; border-left: 1px solid var(--ac-filet); }
.ac-m4 b { display: block; font-family: var(--titre); font-weight: 600; font-size: clamp(24px, 2.4vw, 32px); letter-spacing: -.02em; }
.ac-m4 span { display: block; color: var(--ac-gris); margin-top: 8px; font-size: 15px; }
@media (max-width: 860px) {
	.ac-m4 { grid-template-columns: 1fr 1fr; row-gap: 28px; }
	.ac-m4 li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 480px) {
	.ac-m4 { grid-template-columns: 1fr; }
	.ac-m4 li + li { padding-left: 0; border-left: 0; }
}

/* Offres */
.ac-fam { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ac-fam .f { display: flex; flex-direction: column; background: #fff; padding: 28px 24px; min-width: 0; transition: transform .4s var(--ac-ease), box-shadow .4s; }
/* La carte est un lien : sans cette ligne, le survol des liens de theme.json (or pâle) passe en couleur héritée sur tous ses textes. Seuls le soulèvement et l'ombre changent, au survol comme au focus clavier. */
.ac-fam .f:hover, .ac-fam .f:focus-visible { color: inherit; transform: translateY(-6px); box-shadow: 0 24px 50px -30px rgba(11, 10, 9, .5); }
.ac-fam h3 { font-size: 21px; font-weight: 600; letter-spacing: -.01em; }
.ac-fam dl { margin-top: 18px; display: grid; gap: 4px; }
.ac-fam dt { font-size: 12.5px; color: var(--ac-grisl); margin-top: 10px; }
.ac-fam dd { font-size: 15px; line-height: 1.45; }
.ac-fam .ac-lien { margin-top: auto; padding-top: 22px; }
.ac-fam-bas { margin-top: 26px; color: var(--ac-gris); }
.ac-fam-bas .ac-lien { margin: 0 0 0 6px; }
@media (max-width: 1000px) { .ac-fam { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ac-fam { grid-template-columns: 1fr; } }

/* Avis */
.ac-avis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.ac-avis blockquote { font-family: var(--italique); font-style: italic; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.35; color: #ece6da; }
.ac-avis figcaption { margin-top: 16px; font-size: 14px; color: var(--ac-orc); }
@media (max-width: 860px) { .ac-avis { grid-template-columns: 1fr; gap: 32px; } }

/* FAQ (bloc groupe-echo/faq, rendu du thème habillé comme le pack) */
.ac-faqwrap { background: #fff; color: var(--ac-encre); }
.ac-faqwrap .band.faq { background: #fff; color: var(--ac-encre); padding-block: clamp(64px, 8vw, 112px); }
.ac-faqwrap .band.faq .wrap { max-width: 860px; }
.ac-faqwrap .band.faq h2 { font-family: var(--titre); font-weight: 600; font-size: clamp(30px, 4.2vw, 54px); letter-spacing: -.025em; line-height: 1.12; max-width: 22ch; margin: 0 0 clamp(28px, 4vw, 48px); color: var(--ac-encre); text-transform: none; }
.ac-faqwrap .faq-liste { max-width: none; margin: 0; border-top: 1px solid var(--ac-filet); }
.ac-faqwrap .faq-item { border-bottom: 1px solid var(--ac-filet); }
.ac-faqwrap .faq-item summary { padding: 22px 48px 22px 0; position: relative; display: block; font-family: var(--titre); font-weight: 600; font-size: clamp(17px, 1.6vw, 20px); color: var(--ac-encre); }
.ac-faqwrap .faq-item summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 24px; color: var(--ac-ort); transition: transform .3s; }
.ac-faqwrap .faq-item[open] summary::after { content: "+"; transform: translateY(-50%) rotate(45deg); }
.ac-faqwrap .faq-item p { padding: 0 0 24px; margin: 0; color: var(--ac-gris); max-width: 68ch; }
.ac-faqwrap :focus-visible { outline-color: var(--ac-encre); }

/* Contact */
.ac-contact { background: var(--ac-sable); }
.ac-contact-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.ac-contact .ac-t { margin-bottom: 18px; }
.ac-c-tel { margin-top: 32px; color: var(--ac-gris); line-height: 1.9; }
.ac-c-tel a { font-family: var(--titre); font-weight: 600; font-size: 19px; color: var(--ac-encre); }
.ac-c-tel a:hover { color: var(--ac-ort); }
.ac-c-form { background: #fff; padding: clamp(24px, 3.4vw, 40px); box-shadow: 0 30px 60px -40px rgba(11, 10, 9, .35); min-width: 0; }
.ac-rgpd { font-size: 12.5px; color: var(--ac-grisl); text-align: center; margin-top: 14px; }
@media (max-width: 900px) { .ac-contact-in { grid-template-columns: 1fr; } }

/* Formulaire de contact n° 1186 (Forminator), maquette V2. Classes echo-* posées dans Forminator (champ > Avancé > Classe CSS).
   Le CSS personnalisé de Forminator n'est pas chargé (feuille forminator-module-css-* retirée, functions.php) : tout est ici.
   Ne jamais fixer « display » sur .forminator-col / .forminator-row (les champs conditionnels sont masqués par .forminator-hidden). */
.ac-c-form form.forminator-ui { max-width: none; margin-top: 0; }
#forminator-module-1186 { --e-or: #ad8d50; --e-brun: #80602f; --e-noir: #111; --e-beige: #f3f1ed; --e-trait: #d3c7b5; --e-ph: #a49b8d; }
#forminator-module-1186 .forminator-label { display: block; margin: 0 0 6px; font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--ac-gris); }
#forminator-module-1186 .forminator-required { color: var(--e-brun); }
#forminator-module-1186 .forminator-error-message { margin-top: 4px; font-size: 12px; color: #b3412e; }
#forminator-module-1186 ::placeholder { color: var(--e-ph); opacity: 1; }

/* Votre demande : trois onglets jointifs */
#forminator-module-1186 .echo-tabs .forminator-field { display: flex; flex-wrap: wrap; }
#forminator-module-1186 .echo-tabs .forminator-label { flex: 0 0 100%; margin-bottom: 14px; font: italic 400 22px/1.25 Georgia, "Times New Roman", serif; letter-spacing: 0; text-transform: none; color: var(--e-brun); }
#forminator-module-1186 .echo-tabs .forminator-radio { position: relative; flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: center; min-height: 55px; margin: 0 0 0 -1px; padding: 8px 12px; border: 1px solid var(--e-noir); background: #fff; color: var(--e-noir); text-align: center; cursor: pointer; }
#forminator-module-1186 .echo-tabs .forminator-label + .forminator-radio { margin-left: 0; }
#forminator-module-1186 .echo-tabs .forminator-radio input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
#forminator-module-1186 .echo-tabs .forminator-radio-bullet { display: none; }
#forminator-module-1186 .echo-tabs .forminator-radio-label { margin: 0; padding: 0; font-size: 14px; font-weight: 600; line-height: 1.25; color: inherit; }
#forminator-module-1186 .echo-tabs .forminator-radio:hover:not(:has(input:checked)) { background: var(--e-beige); }
#forminator-module-1186 .echo-tabs .forminator-radio:has(input:checked) { z-index: 1; background: var(--e-noir); color: var(--e-or); }
#forminator-module-1186 .echo-tabs .forminator-radio:has(input:focus-visible) { z-index: 2; outline: 3px solid var(--e-or); outline-offset: 2px; }

/* Cases à cocher (tarifs et consentement) */
#forminator-module-1186 .forminator-checkbox { position: relative; display: flex; align-items: flex-start; gap: 10px; margin: 0; cursor: pointer; }
#forminator-module-1186 .forminator-checkbox input { position: absolute; width: 18px; height: 18px; margin: 0; opacity: 0; cursor: pointer; }
#forminator-module-1186 .forminator-checkbox-box { position: relative; flex: 0 0 18px; width: 18px; height: 18px; box-sizing: border-box; border: 1px solid var(--e-trait); border-radius: 0; background: #fff; }
#forminator-module-1186 .forminator-checkbox input:checked + .forminator-checkbox-box { background: var(--e-or); border-color: var(--e-or); }
#forminator-module-1186 .forminator-checkbox input:checked + .forminator-checkbox-box::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid var(--e-noir); border-width: 0 2px 2px 0; transform: rotate(45deg); }
#forminator-module-1186 .forminator-checkbox input:focus-visible + .forminator-checkbox-box { outline: 2px solid var(--e-noir); outline-offset: 2px; }
#forminator-module-1186 .forminator-checkbox-label { font-size: 14px; line-height: 1.3; color: var(--ac-encre); }

/* Tarifs : deux colonnes, ordre vertical (6 à gauche, 5 à droite), une colonne sur mobile */
#forminator-module-1186 .echo-tarifs .forminator-field { padding: 20px; background: var(--e-beige); columns: 2; column-gap: 32px; }
#forminator-module-1186 .echo-tarifs .forminator-label { column-span: all; margin-bottom: 14px; font-size: 13px; letter-spacing: .5px; }
#forminator-module-1186 .echo-tarifs .forminator-checkbox { break-inside: avoid; margin-bottom: 12px; }
#forminator-module-1186 .echo-tarifs .forminator-checkbox:last-child { margin-bottom: 0; }

/* Champs classiques : fond transparent, filet inférieur */
#forminator-module-1186 .echo-input :is(input, select) { width: 100%; box-sizing: border-box; padding: 10px 0; border: 0; border-bottom: 1px solid var(--e-trait); border-radius: 0; background: transparent; box-shadow: none; outline: 0; color: var(--ac-encre); }
#forminator-module-1186 .echo-input :is(input, select):focus { border-bottom: 2px solid var(--e-or); padding-bottom: 9px; }

/* Entreprise et message */
#forminator-module-1186 :is(.echo-entreprise input, .echo-message textarea) { width: 100%; box-sizing: border-box; padding: 16px; border: 1px solid var(--e-trait); border-radius: 0; background: #fff; box-shadow: none; outline: 0; color: var(--ac-encre); }
#forminator-module-1186 .echo-message textarea { min-height: 105px; resize: vertical; }
#forminator-module-1186 :is(.echo-entreprise input, .echo-message textarea):focus { border-color: var(--e-or); box-shadow: 0 0 0 1px var(--e-or); }
#forminator-module-1186 .echo-optionnel { margin: 4px 0 0; }
#forminator-module-1186 .echo-optionnel > summary { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--e-trait); list-style: none; cursor: pointer; font-size: 14px; color: var(--e-brun); }
#forminator-module-1186 .echo-optionnel > summary::-webkit-details-marker { display: none; }
#forminator-module-1186 .echo-optionnel > summary::after { content: "+"; font-size: 18px; line-height: 1; }
#forminator-module-1186 .echo-optionnel[open] > summary::after { content: "\2212"; }
#forminator-module-1186 .echo-optionnel > summary:focus-visible { outline: 2px solid var(--e-noir); outline-offset: 2px; }
#forminator-module-1186 .echo-optionnel > .forminator-row:first-of-type { margin-top: 16px; }

/* Consentement RGPD (obligatoire) : l'étiquette « Consent » reste dans l'arbre d'accessibilité mais n'est plus affichée */
#forminator-module-1186 .echo-consent .forminator-field > .forminator-label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#forminator-module-1186 .echo-consent .forminator-checkbox__wrapper { display: flex; align-items: flex-start; gap: 12px; }
#forminator-module-1186 .echo-consent .forminator-checkbox__label { flex: 1; min-width: 0; font-size: 13px; line-height: 1.5; color: var(--ac-gris); }
#forminator-module-1186 .echo-consent .forminator-checkbox__label p { margin: 0; }
#forminator-module-1186 .echo-consent .forminator-checkbox__label a { color: var(--e-brun); text-decoration: underline; }

/* Bouton (la mention « Aucune revente » est le paragraphe .ac-rgpd du bloc contact) */
#forminator-module-1186 .forminator-button-submit { display: block; width: 100%; min-height: 58px; padding: 16px 24px; border: 1px solid var(--e-or); border-radius: 0; background: var(--e-or); color: var(--e-noir); font-weight: 700; letter-spacing: .5px; cursor: pointer; }
#forminator-module-1186 .forminator-button-submit:hover { background: var(--e-noir); border-color: var(--e-noir); color: var(--e-or); }
#forminator-module-1186 .forminator-button-submit:focus-visible { outline: 3px solid var(--e-noir); outline-offset: 3px; }

@media (max-width: 600px) {
	#forminator-module-1186 .echo-tarifs .forminator-field { columns: 1; }
	#forminator-module-1186 .echo-tabs .forminator-radio { padding: 8px 6px; }
	#forminator-module-1186 .echo-tabs .forminator-radio-label { font-size: 13px; }
}

/* Apparitions du bandeau : une fois, CSS pur, désactivées en mouvement réduit */
@media (prefers-reduced-motion: no-preference) {
	@keyframes ac-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
	@keyframes ac-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
	body.ge-fx-bandeau_accueil .ac-hero .ac-bg img { animation: ac-zoom 2.6s var(--ac-ease) both; } /* zoom d'entrée de la photo : interrupteur « bandeau de l'accueil », désactivé par défaut */
	.ac-hero-p { animation: ac-up .9s var(--ac-ease) .5s both; }
	.ac-hero .wp-block-buttons { animation: ac-up .9s var(--ac-ease) .65s both; }
	.ac-preuves { animation: ac-up .9s var(--ac-ease) .8s both; }
}

/* Interrupteur « contrastes corrigés » (Réglages Groupe Écho, désactivé par défaut) : remplace les couleurs de la démo par des valeurs conformes AA sur fond clair
   (docs/design-pack.md §1.2 : or de texte 5,53:1 sur blanc, gris 6,84:1, bordures de contrôle 3,75:1). */
body.ge-contrastes .ac-sec { --ac-ort: #7f6528; --ac-em: #7f6528; --ac-contour: #8a8377; --ac-champ: #8a8377; --ac-grisl: #5f5a52; --ac-no: #8a8377; }

/* Titres mot par mot et entrée du texte des bandeaux : état de départ posé dès le premier affichage (CSS pur, sans attendre le chargement). Le HTML contient déjà
   les mots enveloppés (inc/effets.php) : sans animation (mouvement réduit, interrupteur coupé) le titre s'affiche normalement. */
.ge-mot { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .1em; margin-bottom: -.1em; }
.ge-mot > span { display: inline-block; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes ge-mot { from { transform: translateY(110%); } to { transform: none; } }
	body.ge-fx-mots .ge-mot > span { animation: ge-mot 1s cubic-bezier(.2, .75, .15, 1) both; animation-delay: calc(.1s + var(--m, 0) * .07s); }
	body.ge-fx-derive .ac-ph-p { animation: ac-up .8s var(--ac-ease) .35s both; }
}
