/*
 * Portail (M6) : en-tête, pied de page, briques et pages (accueil, fiche bien, page pro,
 * page agence). Uniquement des variables de la charte (thème enfant, assets/charte.css).
 * Mesures des maquettes validées : marges de 64 px, sections espacées de 88 px,
 * gouttière de 16 px, étiquettes en petites majuscules, ni ombre ni arrondi.
 */

/* ---------- Éléments communs ---------- */
.cpn-brique { box-sizing: border-box; }
.cpn-brique *, .cpn-brique *::before, .cpn-brique *::after { box-sizing: border-box; }
.cpn-etiquette-texte, .cpn-etiquette {
	font-size: var(--cpn-etiquette-taille);
	letter-spacing: var(--cpn-etiquette-espacement);
	text-transform: uppercase;
	color: var(--cpn-couleur-texte-doux);
	font-weight: 500;
}
.cpn-etiquette { background: var(--cpn-couleur-fond); color: var(--cpn-couleur-texte); padding: 4px 8px; letter-spacing: .06em; }
.cpn-bouton, .cpn-brique button.cpn-bouton, a.cpn-bouton {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border: 1px solid var(--cpn-couleur-primaire); background: var(--cpn-couleur-primaire); color: var(--cpn-couleur-primaire-contraste);
	font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	padding: 16px 22px; cursor: pointer; text-decoration: none; border-radius: 0; line-height: 1.2;
}
.cpn-bouton:hover, .cpn-bouton:focus { background: #2a2a28; color: var(--cpn-couleur-primaire-contraste); }
.cpn-bouton--contour, a.cpn-bouton--contour, button.cpn-bouton--contour { background: var(--cpn-couleur-fond); color: var(--cpn-couleur-texte); }
.cpn-bouton--contour:hover, .cpn-bouton--contour:focus { background: var(--cpn-couleur-fond-doux); color: var(--cpn-couleur-texte); }
.cpn-lien-souligne { font-size: 13px; text-decoration: underline; text-underline-offset: 4px; color: var(--cpn-couleur-texte); }
.cpn-emplacement { background: var(--cpn-couleur-emplacement); display: flex; align-items: flex-end; padding: 12px; color: var(--cpn-couleur-texte-2); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.cpn-emplacement--sombre { background: #4e5a5c; color: var(--cpn-couleur-texte-clair); }
.cpn-filet { border: 0; height: 1px; background: var(--cpn-couleur-filet); margin: 0; }
.cpn-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cpn-gouttiere); }
.cpn-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cpn-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cpn-section__tete { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 28px; }
.cpn-section__titre { margin: 0; font-family: var(--cpn-police-titres); font-weight: 500; font-size: 40px; line-height: 1.1; color: var(--cpn-couleur-texte); }
.cpn-section__titre--seul { margin-bottom: 28px; }
.cpn-section__note { font-size: 13px; color: var(--cpn-couleur-texte-doux); }
.cpn-section__chapeau { margin: -16px 0 28px; color: var(--cpn-couleur-texte-doux); }
.cpn-compteur { font-variant-numeric: tabular-nums; }

/* Sections des pages composées dans Elementor : marges et espacement des maquettes. */
.cpn-page .e-con, .cpn-page .elementor-section { --padding-left: 0; --padding-right: 0; }
/* Conteneurs Elementor : les variables d'Elementor portent les marges de la maquette. */
.e-con.cpn-section, .cpn-section { --padding-top: var(--cpn-marge-section); --padding-right: var(--cpn-marge-page); --padding-bottom: 0px; --padding-left: var(--cpn-marge-page); --gap: 0px; --row-gap: 0px; --column-gap: 0px; padding: var(--cpn-marge-section) var(--cpn-marge-page) 0; max-width: var(--cpn-largeur-max); margin-left: auto; margin-right: auto; }
.e-con.cpn-section--bas, .cpn-section--bas { --padding-bottom: var(--cpn-marge-section); padding-bottom: var(--cpn-marge-section); }
.e-con.cpn-section--plein, .cpn-section--plein { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; padding: 0; max-width: none; }
.e-con.cpn-section--64 { --padding-top: 64px; }
.e-con.cpn-section--72 { --padding-top: 72px; }
.e-con.cpn-bloc-agences__texte { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }
.e-con > .elementor-widget { width: 100%; }

/* Le kit Elementor stylise tous les liens, boutons et champs du site (.elementor-kit-N a, button…) :
   les composants du portail gardent leur propre style (sélecteurs préfixés par body). */
html body .cpn-pied a { color: #d9d6ce; }
html body .cpn-pied a:hover { color: #fff; }
html body .cpn-theme, html body .cpn-theme:hover, html body .cpn-article-une, html body .cpn-article-une:hover, html body .cpn-une-bandeau a.cpn-une-bandeau__filtres { color: #fff; }
html body .cpn-carte__lien, html body .cpn-carte-pro a, html body .cpn-article-ligne, html body .cpn-menu a, html body .cpn-entete__nom { color: var(--cpn-couleur-texte); }
html body .cpn-liens__colonne a, html body .cpn-fil a { color: var(--cpn-couleur-texte-doux); }
html body .cpn-carte .cpn-carte__titre { font-family: var(--cpn-police-texte); font-size: 14px; font-weight: 400; color: var(--cpn-couleur-texte-2); line-height: 1.4; margin: 0; }
html body .cpn-entete button.cpn-entete__burger { display: none; background: transparent; border: 0; padding: 0; }
html body .cpn-bandeau input, html body .cpn-bandeau select { border: 0 !important; box-shadow: none !important; padding: 2px 0 !important; background: transparent !important; border-radius: 0 !important; }
html body .cpn-barre select { border: 0 !important; padding: 2px 0 !important; background: transparent !important; }
html body .cpn-brique button.cpn-bouton, html body .cpn-brique .cpn-bouton { background: var(--cpn-couleur-primaire); color: #fff; border: 1px solid var(--cpn-couleur-primaire); border-radius: 0; }
html body .cpn-brique .cpn-bouton--contour, html body .cpn-brique button.cpn-bouton--contour { background: var(--cpn-couleur-fond); color: var(--cpn-couleur-texte); }
html body .cpn-visionneuse button { background: transparent; border: 0; color: #fff; }
html body .cpn-brique :is(.cpn-carte__visuel, .cpn-carte-pro__visuel, .cpn-article-ligne__visuel, .cpn-mosaique__case, .cpn-pro-couverture__visuel, .cpn-une-bandeau__visuel, .cpn-annonceur__photo, .cpn-membre__photo) img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
html body .cpn-brique :is(.cpn-theme__image, .cpn-article-une__image) { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
html body .cpn-article-une .cpn-article-une__titre { color: #fff; }
html body .cpn-article-une .cpn-article-une__chapeau, html body .cpn-article-une .cpn-etiquette-texte { color: #e9e6df; }
html body .cpn-lien-souligne { text-decoration: underline; text-underline-offset: 4px; }
html body .cpn-une-bandeau a.cpn-lien-souligne { color: #fff; }
html body .cpn-entete a.cpn-bouton-contact { color: var(--cpn-couleur-texte); border: 1px solid var(--cpn-couleur-texte); border-radius: 0; padding: 10px 18px; text-decoration: none; } /* Carré : charte, pas d'arrondi (décision d'Armand du 25/09). */
html body .cpn-themes li:nth-child(1) .cpn-theme--attente { background: #4e5a5c; }
html body .cpn-themes li:nth-child(2) .cpn-theme--attente { background: #5e574f; }
html body .cpn-themes li:nth-child(3) .cpn-theme--attente { background: #4f4f4b; }
.cpn-theme--attente::after { display: none; }
.cpn-etiquette-texte { font-weight: 400; }
/* Bloc « Agences » : texte et étapes à parts égales, bouton calé à droite (maquette). */
html body .cpn-bloc-agences > .elementor-widget, html body .cpn-bloc-agences > .e-con { width: auto; }
html body .cpn-bloc-agences > .cpn-bloc-agences__texte, html body .cpn-bloc-agences > .cpn-bloc-agences__etapes { flex: 1 1 0; min-width: 0; }
html body .cpn-bloc-agences > .cpn-bloc-agences__bouton { flex: 0 0 auto; }
html body .cpn-bloc-agences__bouton .elementor-button { font-family: var(--cpn-police-texte); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: 16px 28px; border-radius: 0; background: var(--cpn-couleur-primaire); color: #fff; }
html body .cpn-entete button.cpn-entete__burger { width: 44px; height: 44px; min-width: 44px; padding: 0; position: relative; flex-shrink: 0; }

/* ---------- En-tête ---------- */
.cpn-entete {
	height: 76px; display: flex; align-items: center; gap: 40px;
	padding: 0 var(--cpn-marge-page); border-bottom: 1px solid var(--cpn-couleur-bordure); background: var(--cpn-couleur-fond);
	max-width: var(--cpn-largeur-max); margin: 0 auto;
}
.cpn-entete__nom { font-family: var(--cpn-police-titres); font-size: 26px; font-weight: 600; letter-spacing: .04em; text-decoration: none; color: var(--cpn-couleur-texte); white-space: nowrap; }
.cpn-entete__menus { display: flex; align-items: center; flex: 1; gap: 40px; }
.cpn-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; font-size: 14px; }
.cpn-menu a { text-decoration: none; color: var(--cpn-couleur-texte); }
.cpn-menu a:hover, .cpn-menu .current-menu-item > a { color: var(--cpn-couleur-texte-doux); }
.cpn-entete__droite { margin-left: auto; display: flex; align-items: center; gap: 20px; font-size: 14px; }
.cpn-bouton-contact { text-decoration: none; border: 1px solid var(--cpn-couleur-texte); padding: 10px 18px; border-radius: 0; color: var(--cpn-couleur-texte); }
.cpn-entete__burger { display: none; margin-left: auto; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; position: relative; }
.cpn-entete__burger span[aria-hidden], .cpn-entete__burger span[aria-hidden]::before, .cpn-entete__burger span[aria-hidden]::after { position: absolute; left: 11px; width: 22px; height: 1.5px; background: var(--cpn-couleur-texte); content: ""; }
.cpn-entete__burger span[aria-hidden] { top: 21px; }
.cpn-entete__burger span[aria-hidden]::before { left: 0; top: -7px; }
.cpn-entete__burger span[aria-hidden]::after { left: 0; top: 7px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Pied de page ---------- */
.cpn-pied { background: var(--cpn-couleur-fond-sombre); color: #d9d6ce; font-size: 14px; }
.cpn-pied a { color: #d9d6ce; text-decoration: none; }
.cpn-pied a:hover { color: #fff; }
.cpn-pied__nom { font-family: var(--cpn-police-titres); font-size: 26px; font-weight: 600; letter-spacing: .04em; color: #fff; }
.cpn-pied--complet { padding: 56px var(--cpn-marge-page); display: flex; flex-direction: column; gap: 40px; }
.cpn-pied__haut { display: flex; gap: 80px; }
.cpn-pied--complet .cpn-pied__nom { width: 320px; flex-shrink: 0; }
.cpn-pied__colonne { display: flex; flex-direction: column; gap: 10px; }
.cpn-pied__titre { color: #fff; font-weight: 600; }
.cpn-pied__bas { margin: 0; font-size: 12px; color: #a9a69f; border-top: 1px solid #2e2e2c; padding-top: 20px; }
.cpn-pied--ligne { padding: 40px var(--cpn-marge-page); display: flex; justify-content: space-between; align-items: center; gap: 24px; font-size: 13px; }
.cpn-pied--ligne .cpn-pied__nom { font-size: 22px; }

/* ---------- Fil d'Ariane ---------- */
.cpn-fil { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px var(--cpn-marge-page) 0; font-size: 13px; color: var(--cpn-couleur-texte-doux); max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-fil a { color: var(--cpn-couleur-texte-doux); text-decoration: none; }
.cpn-fil__outils { display: flex; gap: 18px; }
.cpn-fil__outils a { color: var(--cpn-couleur-texte); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Bandeau de recherche ---------- */
.cpn-bandeau { display: flex; align-items: stretch; background: var(--cpn-couleur-fond); height: 68px; width: 1080px; max-width: 100%; color: var(--cpn-couleur-texte); border-radius: 4px; }
.cpn-bandeau__champ { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; padding: 0 20px; border-right: 1px solid var(--cpn-couleur-bordure); min-width: 0; margin: 0; }
.cpn-bandeau__champ--ou { flex: 2 1 0; }
.cpn-bandeau__champ:last-of-type { border-right: 0; }
.cpn-bandeau input, .cpn-bandeau select { border: 0; outline: none; font: inherit; font-size: 15px; padding: 2px 0; background: transparent; color: var(--cpn-couleur-texte); width: 100%; min-height: 0; box-shadow: none; }
.cpn-bandeau__bouton { border-radius: 0 4px 4px 0; padding: 0 32px; }

/* ---------- Réalisations à la une (grand visuel) ---------- */
/* Le bandeau ne coupe rien (la liste « Où » passe au-dessus de la section suivante) : seules les photos sont recadrées. */
.cpn-une-bandeau { position: relative; z-index: 20; min-height: 680px; background: var(--cpn-couleur-emplacement-sombre); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; overflow: visible; }
.cpn-une-bandeau__visuels, .cpn-une-bandeau__visuel { position: absolute; inset: 0; margin: 0; }
.cpn-une-bandeau__visuels { overflow: hidden; }
.cpn-une-bandeau__visuel { opacity: 0; transition: opacity .8s ease; }
.cpn-une-bandeau__visuel.is-actif { opacity: 1; }
.cpn-une-bandeau__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-une-bandeau__visuels::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,17,17,.15) 0%, rgba(17,17,17,.55) 100%); }
.cpn-une-bandeau__credit { position: absolute; top: 24px; right: var(--cpn-marge-page); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #d9d6ce; z-index: 2; }
.cpn-une-bandeau__attente { position: absolute; top: 24px; right: var(--cpn-marge-page); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #d9d6ce; }
.cpn-une-bandeau__contenu { position: relative; z-index: 1; padding: 0 var(--cpn-marge-page) 56px; }
.cpn-une-bandeau__titre { margin: 0 0 12px; font-family: var(--cpn-police-titres); font-weight: 500; font-size: 76px; line-height: 1; max-width: 820px; color: #fff; }
.cpn-une-bandeau__compteurs { margin: 0 0 32px; font-size: 13px; letter-spacing: .1em; color: #e9e6df; }
.cpn-une-bandeau__pied { display: flex; justify-content: space-between; align-items: center; margin-top: 28px; gap: 16px; flex-wrap: wrap; }
.cpn-une-bandeau__filtres { color: #fff; }
.cpn-une-bandeau__filtres:hover { color: #e9e6df; }
.cpn-une-bandeau__credit-pro { display: flex; align-items: center; gap: 20px; }
.cpn-une-bandeau__credit-pro .cpn-etiquette-texte { font-size: 12px; letter-spacing: .08em; color: #e9e6df; }
.cpn-une-bandeau__points { display: flex; gap: 6px; }
.cpn-une-bandeau__points span { width: 28px; height: 2px; background: #8c8a84; cursor: pointer; }
.cpn-une-bandeau__points span.is-actif { background: #fff; }

/* ---------- Grille de thèmes ---------- */
.cpn-theme { position: relative; height: 300px; display: flex; flex-direction: column; justify-content: flex-end; padding: 20px 22px; text-decoration: none; color: #fff; background: #5b5a53; overflow: hidden; }
.cpn-themes li:nth-child(2) .cpn-theme { background: #6b6961; }
.cpn-themes li:nth-child(3) .cpn-theme { background: #57554e; }
.cpn-theme__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.cpn-theme::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,17,17,0) 45%, rgba(17,17,17,.6) 100%); }
.cpn-theme:hover .cpn-theme__image { transform: scale(1.03); }
.cpn-theme__titre, .cpn-theme__compteur { position: relative; z-index: 1; }
.cpn-theme__titre { font-family: var(--cpn-police-titres); font-size: 30px; font-weight: 500; line-height: 1.15; }
.cpn-theme .cpn-theme__compteur { color: #e9e6df; font-size: 11px; }
.cpn-theme:hover { color: #fff; }

/* ---------- Cartes de biens ---------- */
.cpn-carte { list-style: none; }
.cpn-carte__lien { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--cpn-couleur-texte); }
.cpn-carte__visuel { position: relative; height: 240px; background: var(--cpn-couleur-emplacement); overflow: hidden; }
.cpn-carte__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.cpn-carte__lien:hover .cpn-carte__visuel img { transform: scale(1.03); }
.cpn-carte__sans-photo { position: absolute; inset: auto 12px 12px 12px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--cpn-couleur-texte-2); }
.cpn-carte__nature { color: var(--cpn-couleur-texte); }
.cpn-carte__prix { margin: 0; font-size: 17px; font-weight: 600; }
.cpn-carte__titre { margin: 0; font-family: var(--cpn-police-texte); font-size: 14px; font-weight: 400; color: var(--cpn-couleur-texte-2); line-height: 1.4; }
.cpn-carte__lieu { margin: 0; font-size: 13px; color: var(--cpn-couleur-texte-doux); }

/* ---------- Cartes de pros et de réalisations ---------- */
.cpn-carte-pro a { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--cpn-couleur-texte); }
.cpn-carte-pro__visuel { height: 240px; overflow: hidden; background: var(--cpn-couleur-emplacement); }
.cpn-carte-pro__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-carte-pro__nom { font-size: 16px; font-weight: 600; }

/* ---------- Articles (Inspirations) ---------- */
.cpn-articles--une { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; }
.cpn-article-une { position: relative; height: 420px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; text-decoration: none; color: #fff; background: #4a4943; overflow: hidden; }
.cpn-article-une.cpn-emplacement { align-items: stretch; font-size: inherit; letter-spacing: normal; text-transform: none; }
.cpn-article-une__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cpn-article-une::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,17,17,0) 40%, rgba(17,17,17,.6) 100%); }
.cpn-article-une > span { position: relative; z-index: 1; }
.cpn-article-une .cpn-etiquette-texte { color: #e9e6df; font-size: 12px; letter-spacing: .08em; }
.cpn-article-une__titre { font-family: var(--cpn-police-titres); font-size: 34px; line-height: 1.1; margin-top: 8px; }
.cpn-article-une__chapeau { font-size: 14px; color: #e9e6df; margin-top: 8px; }
.cpn-articles__liste { display: flex; flex-direction: column; gap: 20px; }
.cpn-article-ligne { display: flex; gap: 18px; text-decoration: none; color: var(--cpn-couleur-texte); }
.cpn-article-ligne__visuel { width: 160px; height: 120px; flex-shrink: 0; background: var(--cpn-couleur-emplacement); overflow: hidden; }
.cpn-articles__liste .cpn-article-ligne:nth-child(1) .cpn-article-ligne__visuel.cpn-emplacement { background: #cfcbc2; }
.cpn-articles__liste .cpn-article-ligne:nth-child(3) .cpn-article-ligne__visuel.cpn-emplacement { background: #c9c5bc; }
.cpn-article-ligne__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-article-ligne__texte { display: flex; flex-direction: column; gap: 6px; }
.cpn-article-ligne .cpn-etiquette-texte { font-size: 12px; letter-spacing: .08em; }
.cpn-article-ligne__titre { font-size: 16px; font-weight: 600; line-height: 1.35; }
.cpn-articles.cpn-grille--3 .cpn-article-ligne__visuel { width: 150px; height: 110px; }

/* ---------- Liens populaires ---------- */
.cpn-liens { gap: 32px; }
.cpn-liens__colonne { display: flex; flex-direction: column; gap: 10px; }
.cpn-liens__titre { font-weight: 600; font-size: 14px; }
.cpn-liens__colonne a { font-size: 14px; color: var(--cpn-couleur-texte-doux); text-decoration: none; }
.cpn-liens__colonne a:hover { color: var(--cpn-couleur-texte); }

/* ---------- Bloc « Agences : diffusez vos annonces » (éléments Elementor standards) ---------- */
.cpn-bloc-agences.e-con { background: var(--cpn-couleur-fond-doux); padding: 48px 56px !important; display: flex; flex-direction: row; align-items: center; gap: 56px; }
.cpn-bloc-agences__texte.e-con { flex: 1 1 0; display: flex; flex-direction: column; gap: 12px; }
.cpn-bloc-agences .elementor-widget { margin: 0; }
html body .cpn-etiquette-texte .elementor-heading-title { font-family: var(--cpn-police-texte); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--cpn-couleur-texte-doux); font-weight: 500; }
.cpn-bloc-agences__titre .elementor-heading-title { font-size: 38px; line-height: 1.1; }
.cpn-bloc-agences p { margin: 0; color: var(--cpn-couleur-texte-2); line-height: 1.6; }
.cpn-bloc-agences__etapes { flex: 1 1 0; }
.cpn-etapes { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.cpn-etapes li { display: flex; gap: 14px; align-items: baseline; }
.cpn-etapes li > span:first-child { font-family: var(--cpn-police-titres); font-size: 26px; }
.cpn-bloc-agences__bouton { flex-shrink: 0; }
.cpn-bloc-agences__bouton .elementor-button { padding: 16px 28px; font-size: 13px; }
.cpn-section--64 { padding-top: 64px; }
.cpn-section--72 { padding-top: 72px; }
.cpn-titre-page .elementor-heading-title { font-size: 52px; line-height: 1.05; margin: 8px 0; }
.cpn-section .elementor-widget-text-editor p.cpn-etiquette-texte { font-size: 13px; }

/* ---------- Pages de texte (éditeur classique, thème Hello) : même gabarit que le portail ---------- */
body.page:not(.elementor-page) .site-main, body.single-post .site-main, body.single-cintu_agent .site-main { max-width: 880px; margin: 0 auto; padding: 56px var(--cpn-marge-page) var(--cpn-marge-section); }
body.page:not(.elementor-page) .page-header .entry-title, body.single-post .page-header .entry-title { font-family: var(--cpn-police-titres); font-weight: 500; font-size: 48px; line-height: 1.05; margin: 0 0 28px; }
body.page:not(.elementor-page) .page-content h2, body.single-post .page-content h2 { font-size: 28px; margin: 32px 0 10px; }
body.page:not(.elementor-page) .page-content p, body.single-post .page-content p { line-height: 1.75; color: #2a2926; }

/* ---------- Deux colonnes (fiche bien, page pro) ---------- */
.cpn-deux-colonnes { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: start; padding: 40px var(--cpn-marge-page) 0; max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-deux-colonnes__principal { display: flex; flex-direction: column; gap: 44px; min-width: 0; }
.cpn-colonne-contact { position: sticky; top: 24px; border: 1px solid var(--cpn-couleur-bordure); padding: 26px; display: flex; flex-direction: column; gap: 18px; background: var(--cpn-couleur-fond); }
.admin-bar .cpn-colonne-contact { top: 56px; }
.cpn-colonne-contact__titre { font-family: var(--cpn-police-titres); font-size: 24px; font-weight: 500; }
/* « Voir le numéro » : bouton en contour sur toute la largeur (maquettes). */
.cpn-numero { margin: 0; }
.cpn-numero a { display: flex; align-items: center; justify-content: center; width: 100%; border: 1px solid var(--cpn-couleur-texte); background: var(--cpn-couleur-fond); color: var(--cpn-couleur-texte); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: 16px 22px; text-decoration: none; }
.cpn-numero a:hover { background: var(--cpn-couleur-fond-doux); }
.cpn-annonceur { display: flex; align-items: center; gap: 14px; }
.cpn-annonceur__photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: #cfcbc2; padding: 0; }
.cpn-annonceur__photo img { width: 100%; height: 100%; object-fit: cover; }
.cpn-annonceur__texte { display: flex; flex-direction: column; gap: 2px; }
.cpn-annonceur__nom { font-weight: 600; }
.cpn-annonceur__agence { font-size: 13px; color: var(--cpn-couleur-texte-doux); }

/* Formulaire de contact dans une colonne */
.cpn-colonne-contact .cpn-contact { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; border: 0; background: none; }
.cpn-colonne-contact .cpn-contact__champ { margin: 0; }
.cpn-colonne-contact .cpn-contact label, .cpn-colonne-contact .cpn-contact legend { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--cpn-couleur-texte-doux); margin-bottom: 6px; }
.cpn-colonne-contact .cpn-contact input:not([type=radio]), .cpn-colonne-contact .cpn-contact textarea, .cpn-colonne-contact .cpn-contact select { width: 100%; font: inherit; font-size: 14px; color: var(--cpn-couleur-texte); border: 1px solid var(--cpn-couleur-bordure-forte); border-radius: 2px; padding: 12px; background: var(--cpn-couleur-fond); }
.cpn-colonne-contact .cpn-contact button[type=submit] { width: 100%; }
.cpn-colonne-contact .cpn-contact__rgpd { margin: 0; font-size: 11px; line-height: 1.5; color: var(--cpn-couleur-texte-doux); }
.cpn-colonne-contact .cpn-contact__vous-etes { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cpn-colonne-contact .cpn-contact__vous-etes legend { grid-column: 1 / -1; }
.cpn-colonne-contact .cpn-contact__vous-etes label { border: 1px solid var(--cpn-couleur-bordure-forte); padding: 12px; display: flex; gap: 8px; align-items: center; cursor: pointer; font-size: 14px; letter-spacing: normal; text-transform: none; color: var(--cpn-couleur-texte); margin: 0; }
.cpn-colonne-contact .cpn-contact__vous-etes label:has(input:checked) { border-color: var(--cpn-couleur-texte); }
.cpn-colonne-contact .cpn-contact__erreur { color: var(--cpn-couleur-erreur); font-size: 12px; }

/* ---------- Fiche bien ---------- */
.cpn-bien-entete { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; padding: 24px var(--cpn-marge-page) 0; max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-bien-entete__texte { display: flex; flex-direction: column; gap: 8px; }
.cpn-bien-entete__titre { margin: 0; font-family: var(--cpn-police-titres); font-size: 48px; font-weight: 500; line-height: 1.05; }
.cpn-bien-entete__lieu { color: var(--cpn-couleur-texte-2); }
.cpn-bien-entete__prix { text-align: right; display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.cpn-bien-entete__montant { font-size: 34px; font-weight: 600; }
.cpn-bien-entete .cpn-honoraires { list-style: none; margin: 0; padding: 0; font-size: 13px; color: var(--cpn-couleur-texte-doux); }

.cpn-mosaique { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 260px 260px; gap: 8px; padding: 28px var(--cpn-marge-page) 0; position: relative; max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-mosaique__case { display: block; overflow: hidden; background: var(--cpn-couleur-emplacement); }
.cpn-mosaique__case img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-mosaique__case:first-child { grid-row: 1 / 3; }
.cpn-mosaique__case--cachee { display: none; }
.cpn-mosaique--1 { grid-template-columns: 1fr; }
.cpn-mosaique--2 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.cpn-mosaique--3 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.cpn-mosaique--4 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
.cpn-mosaique--4 .cpn-mosaique__case:nth-child(4) { grid-column: 2 / 4; }
.cpn-mosaique__tout { position: absolute; right: calc(var(--cpn-marge-page) + 14px); bottom: 14px; padding: 12px 16px; }

.cpn-chiffres { display: grid; grid-template-columns: repeat(var(--cpn-colonnes, 5), minmax(0, 1fr)); border-top: 1px solid var(--cpn-couleur-bordure); border-bottom: 1px solid var(--cpn-couleur-bordure); margin: 0; }
.cpn-chiffres > div { padding: 18px 0; display: flex; flex-direction: column; gap: 4px; }
.cpn-chiffres dd { margin: 0; font-size: 20px; }
.cpn-fiche-section { display: flex; flex-direction: column; gap: 14px; }
.cpn-fiche-section__titre, .cpn-fiche-section .cpn-section__titre { margin: 0; font-family: var(--cpn-police-titres); font-weight: 500; font-size: 32px; }
.cpn-fiche-section .cpn-section__tete { margin-bottom: 0; }
.cpn-fiche-section__texte { line-height: 1.75; color: #2a2926; }
.cpn-fiche-section__texte p { margin: 0 0 1em; }
.cpn-fiche-section__note { margin: 0; font-size: 13px; color: var(--cpn-couleur-texte-doux); }
.cpn-masque, .cpn-coordonnees-masquees { background: var(--cpn-couleur-fond-doux); padding: 2px 6px; font-size: 14px; }
.cpn-caracteristiques { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin: 0; }
.cpn-caracteristiques > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--cpn-couleur-filet); }
.cpn-caracteristiques dt { font-size: 12px; color: var(--cpn-couleur-texte-doux); }
.cpn-caracteristiques dd { margin: 0; text-align: right; }
.cpn-energie--echelles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.cpn-energie__echelle { display: flex; flex-direction: column; gap: 10px; }
.cpn-energie__barres { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cpn-energie__barre { width: var(--cpn-largeur); height: 22px; display: flex; align-items: center; justify-content: space-between; padding: 0 10px; color: #fff; font-size: 12px; font-weight: 600; opacity: .9; }
.cpn-energie__barre em { font-style: normal; font-weight: 500; font-size: 11px; }
.cpn-energie__barre.is-active { height: 30px; opacity: 1; outline: 2px solid var(--cpn-couleur-texte); outline-offset: 1px; font-size: 14px; }
.cpn-energie__echelle--dpe .cpn-energie__barre--a { background: #2e7d4f; }
.cpn-energie__echelle--dpe .cpn-energie__barre--b { background: #4e9a45; }
.cpn-energie__echelle--dpe .cpn-energie__barre--c { background: #8dba3f; }
.cpn-energie__echelle--dpe .cpn-energie__barre--d { background: #d8c23a; color: #111; }
.cpn-energie__echelle--dpe .cpn-energie__barre--e { background: #e6a03b; color: #111; }
.cpn-energie__echelle--dpe .cpn-energie__barre--f { background: #d86a33; }
.cpn-energie__echelle--dpe .cpn-energie__barre--g { background: #c2392e; }
.cpn-energie__echelle--ges .cpn-energie__barre--a { background: #c9c1de; color: #111; }
.cpn-energie__echelle--ges .cpn-energie__barre--b { background: #b3a6d1; color: #111; }
.cpn-energie__echelle--ges .cpn-energie__barre--c { background: #9c8bc3; }
.cpn-energie__echelle--ges .cpn-energie__barre--d { background: #8570b4; }
.cpn-energie__echelle--ges .cpn-energie__barre--e { background: #6e56a4; }
.cpn-energie__echelle--ges .cpn-energie__barre--f { background: #573d92; }
.cpn-energie__echelle--ges .cpn-energie__barre--g { background: #40277f; }
.cpn-energie__note, .cpn-energie__couts { margin: 0; font-size: 13px; color: var(--cpn-couleur-texte-doux); }
.cpn-carte-secteur { width: 100%; height: 320px; border: 0; display: block; background: #e4e1da; }

/* ---------- Page pro ---------- */
.cpn-pro-couverture { padding: 20px var(--cpn-marge-page) 0; max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-pro-couverture__visuel { height: 440px; overflow: hidden; }
.cpn-pro-couverture__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-pro-couverture__bandeau { display: flex; align-items: flex-end; gap: 28px; margin-top: -64px; padding: 0 40px; position: relative; }
.cpn-pro-couverture__logo { width: 128px; height: 128px; background: var(--cpn-couleur-fond); border: 1px solid var(--cpn-couleur-bordure); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.cpn-pro-couverture__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cpn-pro-couverture__texte { display: flex; flex-direction: column; gap: 8px; padding-bottom: 6px; }
.cpn-pro-couverture__nom { margin: 0; font-family: var(--cpn-police-titres); font-size: 46px; font-weight: 500; line-height: 1.05; }
.cpn-pro-couverture__boutons { margin-left: auto; display: flex; gap: 10px; padding-bottom: 6px; }
.cpn-partie--pro-corps .cpn-deux-colonnes { padding-top: 56px; }
.cpn-partie--pro-corps .cpn-deux-colonnes__principal { gap: 56px; }
.cpn-reperes { display: flex; gap: 40px; padding-top: 8px; margin: 0; flex-wrap: wrap; }
.cpn-reperes > div { display: flex; flex-direction: column; gap: 4px; }
.cpn-reperes dd { margin: 0; font-size: 20px; }
.cpn-services { list-style: none; margin: 0; padding: 0; }
.cpn-service { display: flex; justify-content: space-between; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--cpn-couleur-filet); }
.cpn-service > div { display: flex; flex-direction: column; gap: 4px; }
.cpn-service__nom { font-weight: 600; }
.cpn-service__description { font-size: 14px; color: var(--cpn-couleur-texte-2); }
.cpn-tag { align-self: flex-start; white-space: nowrap; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 4px 8px; border: 1px solid var(--cpn-couleur-bordure-forte); color: var(--cpn-couleur-texte-2); }
.cpn-tag--fonce { background: var(--cpn-couleur-texte); color: #fff; border-color: var(--cpn-couleur-texte); }
.cpn-deux-colonnes .cpn-cartes-realisations .cpn-carte-pro__visuel { height: 240px; }
.cpn-deux-colonnes .cpn-articles.cpn-grille--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }

/* ---------- Page agence ---------- */
.cpn-agence-entete { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: start; padding: 28px var(--cpn-marge-page) 0; max-width: var(--cpn-largeur-max); margin: 0 auto; }
.cpn-agence-entete__identite { display: flex; gap: 28px; align-items: flex-start; }
.cpn-agence-entete__logo { width: 140px; height: 140px; border: 1px solid var(--cpn-couleur-bordure); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.cpn-agence-entete__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cpn-agence-entete__texte { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.cpn-agence-entete__nom { margin: 0; font-family: var(--cpn-police-titres); font-size: 52px; font-weight: 500; line-height: 1.02; }
.cpn-agence-entete__presentation { line-height: 1.75; color: #2a2926; max-width: 640px; }
.cpn-agence-entete__presentation p { margin: 0 0 .75em; }
.cpn-colonne-contact--agence { position: static; padding: 24px; gap: 14px; }
.cpn-agence-entete__adresse { margin: 0; font-size: 14px; color: var(--cpn-couleur-texte-2); }
.cpn-agence-entete__horaires { font-size: 14px; color: var(--cpn-couleur-texte-2); }
.cpn-agence-entete__horaires p { margin: 4px 0 0; }
.cpn-message-agence > summary { list-style: none; width: 100%; }
.cpn-message-agence > summary::-webkit-details-marker { display: none; }
.cpn-message-agence[open] > summary { margin-bottom: 18px; }
/* Fenêtre par-dessus la page (message à l'agence) : cadre centré sur fond assombri ; plein écran sur mobile. */
.cpn-fenetre { --_bord: var(--cpn-couleur-bordure, #dcdad3); --_primaire: var(--cpn-couleur-primaire, #1f4e5f); padding: 0; border: 0; width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); background: var(--cpn-couleur-fond); color: var(--cpn-couleur-texte); box-shadow: 0 24px 64px rgba(0, 0, 0, .25); }
.cpn-fenetre::backdrop { background: rgba(17, 17, 17, .6); }
.cpn-fenetre__cadre { padding: 24px 28px 28px; }
.cpn-fenetre__tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.cpn-fenetre__titre { margin: 0; font-size: 24px; line-height: 1.2; }
html body .cpn-fenetre__fermer { flex: 0 0 auto; width: 44px; height: 44px; margin: -8px -12px 0 0; padding: 0; border: 0; background: transparent; color: var(--cpn-couleur-texte); font-size: 30px; line-height: 1; cursor: pointer; }
html body .cpn-fenetre__fermer:focus-visible { outline: 2px solid var(--cpn-couleur-texte); outline-offset: 2px; }
@media (max-width: 767px) {
	.cpn-fenetre { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; box-shadow: none; }
	.cpn-fenetre__cadre { padding: calc(16px + env(safe-area-inset-top, 0px)) 20px calc(24px + env(safe-area-inset-bottom, 0px)); }
}
.cpn-equipe { gap: 16px; }
.cpn-membre { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--cpn-couleur-bordure); }
.cpn-membre__photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: #cfcbc2; padding: 0; }
.cpn-membre__photo img { width: 100%; height: 100%; object-fit: cover; }
.cpn-membre__texte { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cpn-membre__nom { font-weight: 600; }
.cpn-membre__texte a { font-size: 13px; }
.cpn-biens-carte { display: flex; gap: 20px; align-items: flex-start; }
.cpn-biens-carte__liste { flex: 1 1 0; min-width: 0; }
.cpn-biens-carte__carte { width: 380px; height: 760px; flex-shrink: 0; position: sticky; top: 24px; background: #e4e1da; }
.cpn-biens-carte__carte iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Recherche en barre (page agence) */
.cpn-recherche--barre { display: flex; flex-direction: column; gap: 20px; }
.cpn-barre { display: flex; align-items: stretch; border: 1px solid var(--cpn-couleur-bordure-forte); min-height: 60px; margin: 0; padding: 0; background: var(--cpn-couleur-fond); flex-wrap: wrap; }
.cpn-barre__champ { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; padding: 6px 16px; border-right: 1px solid var(--cpn-couleur-bordure); margin: 0; min-width: 120px; }
.cpn-barre__champ.cpn-champ--ville { flex: 2 1 0; }
.cpn-barre select { border: 0; padding: 2px 0; font: inherit; font-size: 14px; background: transparent; color: var(--cpn-couleur-texte); width: 100%; }
.cpn-barre__bouton { padding: 0 28px; }
.cpn-recherche--barre .cpn-resultats__compte { display: none; }
.cpn-recherche--barre .cpn-resultats__grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cpn-recherche--barre .cpn-carte__visuel { height: 210px; }
.cpn-recherche--barre .cpn-pagination { display: flex; gap: 8px; justify-content: center; padding-top: 16px; font-size: 14px; }
.cpn-recherche--barre .cpn-pagination a, .cpn-recherche--barre .cpn-pagination span { padding: 10px 14px; text-decoration: none; color: var(--cpn-couleur-texte); }
.cpn-recherche--barre .cpn-pagination .cpn-pagination__courante { background: var(--cpn-couleur-texte); color: #fff; }

/* ---------- Écrans moyens et mobiles ---------- */
@media (max-width: 1100px) {
	.cpn-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cpn-deux-colonnes, .cpn-agence-entete { grid-template-columns: 1fr; gap: 40px; }
	.cpn-colonne-contact { position: static; }
	.cpn-biens-carte { flex-direction: column; }
	.cpn-biens-carte__carte { width: 100%; height: 360px; position: static; }
	.cpn-une-bandeau__titre { font-size: 56px; }
	.cpn-pied__haut { flex-wrap: wrap; gap: 40px; }
	.cpn-pied--complet .cpn-pied__nom { width: 100%; }
}
@media (max-width: 900px) {
	.cpn-bloc-agences.e-con { flex-direction: column; align-items: flex-start; padding: 32px 24px !important; gap: 28px; }
	.cpn-entete { gap: 16px; position: relative; }
	html body .cpn-entete button.cpn-entete__burger { display: block; }
	.cpn-entete__nom { font-size: 20px; }
	.cpn-entete__menus { display: none; position: absolute; top: 76px; left: 0; right: 0; z-index: 50; background: var(--cpn-couleur-fond); border-bottom: 1px solid var(--cpn-couleur-bordure); flex-direction: column; align-items: flex-start; padding: 20px var(--cpn-marge-page); gap: 20px; }
	.cpn-entete.is-ouvert .cpn-entete__menus { display: flex; }
	.cpn-menu { flex-direction: column; gap: 14px; font-size: 16px; }
	.cpn-entete__droite { margin-left: 0; }
	.cpn-bandeau { flex-direction: column; height: auto; border-radius: 0; }
	.cpn-bandeau__champ { border-right: 0; border-bottom: 1px solid var(--cpn-couleur-bordure); padding: 12px 16px; }
	.cpn-bandeau__bouton { border-radius: 0; padding: 18px; }
	.cpn-articles--une { grid-template-columns: 1fr; }
	.cpn-grille--3 { grid-template-columns: 1fr; }
	.cpn-liens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cpn-bien-entete { flex-direction: column; align-items: flex-start; gap: 16px; }
	.cpn-bien-entete__prix { text-align: left; }
	.cpn-mosaique { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 120px; }
	.cpn-mosaique__case:first-child { grid-column: 1 / 3; grid-row: 1; }
	.cpn-mosaique__case:nth-child(n+4) { display: none; }
	.cpn-mosaique--4 .cpn-mosaique__case:nth-child(4) { grid-column: auto; }
	.cpn-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cpn-caracteristiques, .cpn-energie--echelles { grid-template-columns: 1fr; gap: 24px; }
	.cpn-pro-couverture__bandeau { flex-wrap: wrap; padding: 0 16px; }
	.cpn-pro-couverture__boutons { margin-left: 0; }
	.cpn-agence-entete__identite { flex-direction: column; }
	.cpn-recherche--barre .cpn-resultats__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cpn-fil { flex-direction: column; align-items: flex-start; }
	.cpn-pied--ligne { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
	.cpn-grille--4, .cpn-recherche--barre .cpn-resultats__grille { grid-template-columns: 1fr; }
	html body .cpn-section__titre, html body .cpn-fiche-section__titre, html body .cpn-bloc-agences__titre .elementor-heading-title { font-size: 32px; }
	.cpn-section__tete { flex-direction: column; gap: 8px; }
	.cpn-une-bandeau { min-height: 620px; }
	.cpn-une-bandeau__titre { font-size: 44px; }
	.cpn-une-bandeau__contenu { padding-top: 72px; }
	.cpn-bien-entete__titre { font-size: 34px; }
	.cpn-pro-couverture__visuel { height: 260px; }
	.cpn-pro-couverture__nom, .cpn-agence-entete__nom { font-size: 36px; }
	.cpn-theme { height: 220px; }
	.cpn-pied__haut { flex-direction: column; gap: 28px; }
	.cpn-barre__champ { flex: 1 1 45%; border-bottom: 1px solid var(--cpn-couleur-bordure); }
	.cpn-barre__bouton { flex: 1 1 100%; padding: 16px; }
	.cpn-energie__barre em { display: none; }
}

/* ---------- Impression (bouton « Imprimer » de la fiche) ---------- */
@media print {
	.cpn-entete, .cpn-pied, .cpn-fil__outils, .cpn-colonne-contact form, .cpn-mosaique__tout, .cpn-partie--bien-pros, .cpn-partie--bien-similaires, .cpn-partie--bien-inspirations { display: none !important; }
	.cpn-deux-colonnes { grid-template-columns: 1fr; }
}

/* ---------- Corrections issues de DESIGN-REVIEW.md ---------- */
html body .cpn-etiquette { font-weight: 400; }
html body .cpn-fil__outils a { color: var(--cpn-couleur-texte); text-decoration: underline; text-underline-offset: 3px; }
html body .cpn-fiche-section__titre, html body .cpn-fiche-section .cpn-section__titre { font-size: 32px; }
html body .cpn-partie--bien-pros .cpn-section__titre, html body .cpn-partie--bien-similaires .cpn-section__titre, html body .cpn-partie--bien-inspirations .cpn-section__titre { font-size: 38px; }
html body .cpn-partie--pro-autres .cpn-section__titre, html body [class*="cpn-partie--agence"] .cpn-section__titre, html body .cpn-partie--pro-corps .cpn-section__titre { font-size: 36px; }
html body .cpn-caracteristiques dd { font-weight: 400; }
html body .cpn-caracteristiques dt { font-weight: 400; }
html body .cpn-carte .cpn-carte__lieu { font-size: 13px; color: var(--cpn-couleur-texte-doux); margin: 0; }
html body .cpn-membre__texte a { text-decoration: underline; text-underline-offset: 3px; color: var(--cpn-couleur-texte); }
.e-con.cpn-section--64, .cpn-section--64 { padding-top: 64px; }
.e-con.cpn-section--72, .cpn-section--72 { padding-top: 72px; }
html body .cpn-contact__vous-etes input[type=radio] { width: auto; height: auto; margin: 0; flex: 0 0 auto; }
html body .cpn-colonne-contact .cpn-contact__vous-etes label { padding: 12px; min-height: 44px; line-height: 1.2; }
/* Page agence : barre de filtres sur toute la largeur, puis grille et carte fixe. */
.cpn-biens-carte { display: grid; grid-template-columns: minmax(0, 1fr) 380px; column-gap: 20px; align-items: start; }
.cpn-biens-carte--sans-carte { grid-template-columns: minmax(0, 1fr); }
.cpn-biens-carte__liste, .cpn-biens-carte .cpn-recherche--agence { display: contents; }
.cpn-biens-carte .cpn-barre-recherche { grid-column: 1 / -1; grid-row: 1; margin-bottom: 20px; }
.cpn-biens-carte .cpn-carte__visuel { height: 210px; } /* Page agence validée : 3 colonnes à côté de la carte. */
.cpn-biens-carte .cpn-resultats { grid-column: 1; grid-row: 2; margin-top: 0; }
.cpn-biens-carte__carte { grid-column: 2; grid-row: 2; }
@media (max-width: 1100px) {
	.cpn-biens-carte { grid-template-columns: minmax(0, 1fr); }
	.cpn-biens-carte__carte { grid-column: 1; grid-row: 3; margin-top: 24px; }
}
@media (max-width: 900px) {
	html body .cpn-bloc-agences.e-con { --flex-direction: column; flex-direction: column; align-items: stretch; }
	html body .cpn-bloc-agences > .cpn-bloc-agences__texte, html body .cpn-bloc-agences > .cpn-bloc-agences__etapes, html body .cpn-bloc-agences > .cpn-bloc-agences__bouton { flex: 0 0 auto; width: 100%; }
	html body .cpn-barre__champ { min-width: 45%; }
	.cpn-mosaique__tout { right: calc(var(--cpn-marge-page) + 8px); bottom: 8px; padding: 10px 12px; }
}

/* Passe finale DESIGN-REVIEW.md */
html body .cpn-partie--pro-corps .cpn-fiche-section__titre { font-size: 36px; }
html body .cpn-bandeau__bouton { min-width: 160px; }
.e-con .elementor-widget-heading + .elementor-widget-text-editor { margin-top: 14px; }
/* Pages courtes : le pied de page reste en bas de l'écran. */
html, body { min-height: 100vh; }
body > .elementor-location-footer { position: sticky; top: 100vh; }
@media (max-width: 900px) {
	html body .cpn-mosaique__tout { position: static; grid-column: 1 / -1; justify-self: end; margin-top: 4px; }
}
/* Section dont la brique n'a rien à montrer (aucun pro dans la zone…) : Elementor retire le widget vide et laisse le conteneur ; on retire aussi son espace. */
.e-con.cpn-section:not(:has(*)) { display: none; }
