/* Page ERP de Maisons ECC (gabarit blocs, sans Elementor).
   Tout est scope sous .ecc-erp : le theme impose des resets globaux (h1 a 38px, section a
   padding 80px, p a 16px / 2.1, * en font inherit) que ces regles, a une classe de plus,
   rattrapent. Valeurs reprises de la page Elementor d'origine (post 1922). */

.ecc-erp {
	--ecc-rouge: #E94642;
	--ecc-encre: #0c0c0c;
	--ecc-gris: #6b6b6b;
	--ecc-trait: #e7e3e1;
	--ecc-fond: #f6f4f3;
	font-family: Inter, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0.39px; /* valeur heritee du theme sur les paragraphes et boutons de la page d'origine */
	color: var(--ecc-encre);
	-webkit-font-smoothing: antialiased;
}
.ecc-erp *, .ecc-erp *::before, .ecc-erp *::after { box-sizing: border-box; font-family: inherit; }
.ecc-erp h1, .ecc-erp h2, .ecc-erp h3, .ecc-erp h4, .ecc-erp p { margin: 0; text-transform: none; }
.ecc-erp h2, .ecc-erp h3, .ecc-erp h4 { letter-spacing: normal; }
.ecc-erp p { font-size: inherit; line-height: inherit; color: inherit; font-weight: inherit; }
.ecc-erp em { font-style: normal; color: var(--ecc-rouge); }
.ecc-erp a { text-decoration: none; }

/* Sections : pleine largeur, contenu a 1180 */
.ecc-erp section.ecc-erp__sec, .ecc-erp section.ecc-erp__hero { padding: 90px 24px; min-height: 0; overflow: visible; }
.ecc-erp__in { max-width: 1180px; margin: 0 auto; width: 100%; }
.ecc-erp__sec--blanc { background: #fff; }
.ecc-erp__sec--gris { background: var(--ecc-fond); }

/* Titres de section */
.ecc-erp .ecc-erp__h2 { font-size: 36px; font-weight: 800; line-height: 1.15; color: var(--ecc-encre); margin: 0 0 18px; }
.ecc-erp .ecc-erp__h2--centre { text-align: center; }

/* Bandeau d'ouverture */
.ecc-erp section.ecc-erp__hero { background: var(--ecc-rouge); padding: 180px 24px 100px; }
.ecc-erp .ecc-erp__eyebrow { font-size: 13px; font-weight: 600; line-height: 1.4; color: #ffdbd9; margin: 0 0 14px; }
.ecc-erp .ecc-erp__h1 { font-size: 56px; font-weight: 800; line-height: 1.05; letter-spacing: -0.01em; color: #fff; max-width: 820px; margin: 0 0 18px; }
.ecc-erp .ecc-erp__h1 em { color: inherit; }
.ecc-erp .ecc-erp__lead { max-width: 620px; margin: 0 0 34px; }
.ecc-erp .ecc-erp__lead p { font-size: 18px; font-weight: 400; line-height: 1.55; color: rgba(255, 255, 255, 0.95); }
.ecc-erp .ecc-erp__btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* Boutons */
.ecc-erp .ecc-erp__btn { display: inline-block; font-size: 15px; font-weight: 700; line-height: 1; padding: 14px 22px; border-radius: 10px; text-align: center; cursor: pointer; transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease, color 200ms ease; }
.ecc-erp .ecc-erp__btn--blanc { background: #fff; color: #0c0c0c; }
.ecc-erp .ecc-erp__btn--blanc:hover, .ecc-erp .ecc-erp__btn--blanc:focus-visible { background: #fff; color: #0c0c0c; transform: translateY(-8px); box-shadow: 0 6px 28px rgba(0, 0, 0, 0.12); }
.ecc-erp .ecc-erp__btn--noir { background: #000; color: #fff; }
.ecc-erp .ecc-erp__btn--noir:hover, .ecc-erp .ecc-erp__btn--noir:focus-visible { background: #1f1f1f; color: #fff; transform: translateY(-8px); box-shadow: 0 6px 22px rgba(0, 0, 0, 0.22); }

/* Photo et liste de points */
.ecc-erp__duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 36px 60px; }
.ecc-erp__in--contact { gap: 36px 56px; }
.ecc-erp .ecc-erp__visuel { position: relative; min-height: 460px; border-radius: 14px; overflow: hidden; }
.ecc-erp .ecc-erp__visuel img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center center; display: block; }
.ecc-erp .ecc-erp__col { padding: 10px; }
.ecc-erp .ecc-erp__txt { margin: 0 0 26px; }
.ecc-erp .ecc-erp__txt p { font-size: 16px; font-weight: 400; line-height: 1.6; color: #333; }
.ecc-erp .ecc-erp__pt { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; border-bottom: 1px solid var(--ecc-trait); }
.ecc-erp .ecc-erp__txt + .ecc-erp__pt { border-top: 1px solid var(--ecc-trait); }
.ecc-erp .ecc-erp__pt h4 { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--ecc-encre); margin: 0 0 6px; }
.ecc-erp .ecc-erp__pt p { font-size: 14.5px; font-weight: 400; line-height: 1.55; color: var(--ecc-gris); }

/* Trois cartes */
.ecc-erp .ecc-erp__h2--centre { margin-bottom: 68px; }
.ecc-erp__cartes { display: flex; flex-direction: row; gap: 22px; padding: 10px; }
.ecc-erp .ecc-erp__carte { display: flex; flex-direction: column; gap: 20px; flex: 1 1 0; min-width: 0; padding: 30px; background: #fff; border: 1px solid var(--ecc-trait); border-radius: 14px; }
.ecc-erp .ecc-erp__carte h3 { font-size: 20px; font-weight: 800; line-height: 1.3; color: var(--ecc-encre); margin: 0 0 10px; }
.ecc-erp .ecc-erp__carte p { font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--ecc-gris); }

/* Formulaire de pre-qualification */
.ecc-erp section.ecc-erp__sec--form { padding: 60px 0; }
.ecc-erp__formcol { max-width: 1140px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.ecc-erp .ecc-erp__sec--form .ecc-erp__h2 { margin: 0; }
.ecc-erp .ecc-erp__intro { width: 40%; }
.ecc-erp .ecc-erp__intro p { font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--ecc-gris); text-align: center; }
.ecc-erp .ecc-erp__form { width: 60%; margin-top: 40px; }

/* Etapes */
.ecc-erp .ecc-erp__h2--centre.ecc-erp__h2--etapes { margin-bottom: 64px; }
.ecc-erp__etapes { display: flex; flex-direction: row; background: #fff; border: 1px solid var(--ecc-trait); border-radius: 14px; overflow: hidden; padding: 10px; }
.ecc-erp .ecc-erp__etape { display: flex; flex-direction: column; gap: 20px; flex: 1 1 0; min-width: 0; padding: 26px 22px; border-right: 1px solid var(--ecc-trait); }
.ecc-erp .ecc-erp__etape:last-child { border-right: 0; }
.ecc-erp .ecc-erp__rep { font-size: 12px; font-weight: 600; line-height: 1.4; color: var(--ecc-rouge); margin: 0 0 4px; }
.ecc-erp .ecc-erp__etape h4 { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--ecc-encre); margin: 0 0 8px; }
.ecc-erp .ecc-erp__etape p:not(.ecc-erp__rep) { font-size: 14px; font-weight: 400; line-height: 1.55; color: var(--ecc-gris); }

/* Bandeau rouge */
.ecc-erp section.ecc-erp__sec--bandeau { background: #fff; padding: 60px 24px; }
.ecc-erp__bandeau { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 36px 40px; background: var(--ecc-rouge); border-radius: 18px; }
.ecc-erp .ecc-erp__bandeau-t { width: 100%; display: flex; flex-direction: column; gap: 6px; padding: 10px; }
.ecc-erp .ecc-erp__bandeau-t h3 { font-size: 22px; font-weight: 800; line-height: 1.2; color: #fff; margin: 0; }
.ecc-erp .ecc-erp__bandeau-t p { font-size: 14px; font-weight: 400; line-height: 1.55; color: rgba(255, 255, 255, 0.92); }

/* Questions / reponses */
.ecc-erp .ecc-erp__h2--centre.ecc-erp__h2--faq { margin-bottom: 56px; }
.ecc-erp__faq { max-width: 860px; margin: 0 auto; }
.ecc-erp .ecc-erp__q { border-top: 1px solid var(--ecc-trait); }
.ecc-erp .ecc-erp__q summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; cursor: pointer; list-style: none; }
.ecc-erp .ecc-erp__q summary::-webkit-details-marker { display: none; }
.ecc-erp .ecc-erp__q summary h3 { font-size: 15px; font-weight: 600; line-height: 1.2; color: #1f2124; margin: 0; }
.ecc-erp .ecc-erp__ico { position: relative; flex: 0 0 14px; width: 14px; height: 14px; }
.ecc-erp .ecc-erp__ico::before, .ecc-erp .ecc-erp__ico::after { content: ""; position: absolute; background: var(--ecc-rouge); border-radius: 1px; }
.ecc-erp .ecc-erp__ico::before { left: 0; right: 0; top: 50%; height: 2.5px; margin-top: -1.25px; }
.ecc-erp .ecc-erp__ico::after { top: 0; bottom: 0; left: 50%; width: 2.5px; margin-left: -1.25px; }
.ecc-erp .ecc-erp__q[open] .ecc-erp__ico::after { display: none; }
.ecc-erp .ecc-erp__r { padding: 10px 10px 16px; }
.ecc-erp .ecc-erp__r p { font-size: 14.5px; font-weight: 400; line-height: 1.6; color: var(--ecc-gris); }

/* Contact */
.ecc-erp section.ecc-erp__sec--contact { padding: 90px 24px; }
.ecc-erp__in--contact { max-width: 1080px; }
.ecc-erp .ecc-erp__h2--contact { margin: 0 0 14px; }
.ecc-erp .ecc-erp__txt--contact { margin: 0; max-width: 440px; }
.ecc-erp .ecc-erp__txt--contact p { color: var(--ecc-gris); }

/* Garde-fou : le piege anti-robots de Gravity Forms ne doit jamais s'afficher */
html body #gform_wrapper_3 .gform_fields > .gfield.gform_validation_container,
html body #gform_wrapper_4 .gform_fields > .gfield.gform_validation_container,
html body .ecc-erp .gform_validation_container { display: none !important; }

/* Mobile (breakpoint Elementor : 767px) */
@media (max-width: 767px) {
	.ecc-erp section.ecc-erp__sec { padding: 60px 20px; }
	.ecc-erp section.ecc-erp__hero { padding: 150px 20px 70px; }
	.ecc-erp .ecc-erp__h1 { font-size: 34px; }
	.ecc-erp .ecc-erp__h2 { font-size: 26px; }
	.ecc-erp .ecc-erp__btns { justify-content: center; align-items: center; }
	.ecc-erp__duo, .ecc-erp__cartes, .ecc-erp__etapes { flex-direction: column; }
	.ecc-erp__duo { grid-template-columns: minmax(0, 1fr); }
	.ecc-erp section.ecc-erp__sec--form { padding: 60px 20px; }
	.ecc-erp .ecc-erp__intro, .ecc-erp .ecc-erp__form { width: 100%; }
	.ecc-erp section.ecc-erp__sec--bandeau { padding: 40px 20px; }
	.ecc-erp__bandeau { flex-direction: column; padding: 28px 24px; }
	.ecc-erp section.ecc-erp__sec--contact { padding: 60px 20px; }
}
