/* Fiche bien — n'utilise que les variables de charte du thème (repli neutre). */
.cpn-fiche { --_bord: var(--cpn-couleur-bordure, #dcdad3); --_primaire: var(--cpn-couleur-primaire, #1f4e5f); max-width: var(--cpn-largeur-max, 1200px); margin: 0 auto; padding: var(--cpn-espace, 1rem); color: var(--cpn-couleur-texte, #1d1d1b); font-family: var(--cpn-police-texte, inherit); }
.cpn-fiche h1, .cpn-fiche h2, .cpn-fiche h3 { font-family: var(--cpn-police-titres, inherit); }
.cpn-fiche__entete p { margin: .2rem 0; }
.cpn-fiche__type, .cpn-fiche__lieu, .cpn-fiche__note { color: var(--cpn-couleur-texte-doux, #5b5b57); }
.cpn-fiche__prix, .cpn-fiche__prix-detail { font-size: 1.5rem; font-weight: 700; color: var(--_primaire); }
.cpn-galerie { margin: var(--cpn-espace, 1rem) 0; }
.cpn-galerie__principale img { width: 100%; max-height: 32rem; object-fit: cover; border-radius: var(--cpn-rayon, 6px); display: block; }
.cpn-galerie__vignettes { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; gap: .5rem; overflow-x: auto; }
.cpn-galerie__vignettes img { width: 6rem; height: 4.5rem; object-fit: cover; border-radius: calc(var(--cpn-rayon, 6px) / 2); display: block; }
.cpn-visionneuse { padding: 0; border: 0; background: transparent; max-width: 100vw; max-height: 100vh; }
.cpn-visionneuse::backdrop { background: rgba(0, 0, 0, .9); }
.cpn-visionneuse img { max-width: 92vw; max-height: 88vh; display: block; margin: auto; }
.cpn-visionneuse button { position: fixed; background: rgba(0, 0, 0, .5); color: #fff; border: 0; font-size: 2rem; width: 3rem; height: 3rem; border-radius: 50%; cursor: pointer; }
.cpn-visionneuse__precedente { left: 1rem; top: 50%; }
.cpn-visionneuse__suivante { right: 1rem; top: 50%; }
.cpn-visionneuse__fermer { right: 1rem; top: 1rem; }
.cpn-visionneuse__compteur { position: fixed; bottom: 1rem; left: 0; right: 0; text-align: center; color: #fff; }
.cpn-fiche__colonnes { display: grid; gap: calc(var(--cpn-espace, 1rem) * 2); grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr); }
@media (max-width: 900px) { .cpn-fiche__colonnes { grid-template-columns: 1fr; } }
.cpn-fiche__bloc { border-top: 1px solid var(--_bord); padding-top: var(--cpn-espace, 1rem); margin-bottom: calc(var(--cpn-espace, 1rem) * 1.5); }
.cpn-caracteristiques { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .75rem; margin: 0; }
.cpn-caracteristiques dt { font-size: .85rem; color: var(--cpn-couleur-texte-doux, #5b5b57); }
.cpn-caracteristiques dd { margin: 0; font-weight: 600; }
.cpn-honoraires { padding-left: 1.2rem; }
.cpn-energie { display: grid; gap: var(--cpn-espace, 1rem); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.cpn-energie h3 { font-size: 1rem; }
.cpn-energie__lettres { list-style: none; margin: 0 0 .75rem; padding: .3rem 0; display: flex; gap: 2px; }
.cpn-energie__lettre { flex: 1; text-align: center; padding: .35rem 0; color: #fff; font-weight: 700; opacity: .45; }
.cpn-energie__lettre.is-active { opacity: 1; transform: scaleY(1.25); box-shadow: 0 0 0 2px var(--cpn-couleur-texte, #1d1d1b); }
.cpn-energie__lettre--a { background: #009c6d; } .cpn-energie__lettre--b { background: #52b153; } .cpn-energie__lettre--c { background: #78bd76; } .cpn-energie__lettre--d { background: #f4e70f; color: #1d1d1b; } .cpn-energie__lettre--e { background: #f0b40f; } .cpn-energie__lettre--f { background: #eb8235; } .cpn-energie__lettre--g { background: #d7221f; }
.cpn-energie__echelle--ges .cpn-energie__lettre--a { background: #a4dbf8; color: #1d1d1b; } .cpn-energie__echelle--ges .cpn-energie__lettre--b { background: #8cb4d3; } .cpn-energie__echelle--ges .cpn-energie__lettre--c { background: #7792b1; } .cpn-energie__echelle--ges .cpn-energie__lettre--d { background: #606f8f; } .cpn-energie__echelle--ges .cpn-energie__lettre--e { background: #4d5271; } .cpn-energie__echelle--ges .cpn-energie__lettre--f { background: #393551; } .cpn-energie__echelle--ges .cpn-energie__lettre--g { background: #281b35; }
.cpn-energie__non-communique { font-style: italic; color: var(--cpn-couleur-texte-doux, #5b5b57); }
.cpn-carte-secteur { width: 100%; height: 20rem; border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); }
.cpn-contact-bloc { position: sticky; top: 1rem; border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); padding: var(--cpn-espace, 1rem); background: var(--cpn-couleur-fond, #fff); box-shadow: var(--cpn-ombre, none); }
.cpn-annonceur { display: flex; gap: .75rem; align-items: center; margin-bottom: var(--cpn-espace, 1rem); }
.cpn-annonceur p { margin: 0; }
.cpn-annonceur__photo { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; }
.cpn-annonceur__nom { font-weight: 700; }
.cpn-contact__titre { font-size: 1.2rem; margin-top: 0; }
.cpn-contact__champ { display: grid; gap: .2rem; margin: 0 0 .75rem; }
.cpn-contact__champ input, .cpn-contact__champ textarea { width: 100%; padding: .5rem; border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); font: inherit; }
.cpn-contact__erreur { color: var(--cpn-couleur-erreur, #b3261e); font-size: .85rem; }
.cpn-contact__retour { padding: .75rem; border-radius: var(--cpn-rayon, 6px); margin-bottom: .75rem; background: var(--cpn-couleur-fond-doux, #f4f3ef); }
.cpn-contact__retour.is-ok { border-left: 4px solid var(--cpn-couleur-succes, #2e7d4f); }
.cpn-contact__retour.is-erreur { border-left: 4px solid var(--cpn-couleur-erreur, #b3261e); }
.cpn-contact__rgpd { font-size: .75rem; color: var(--cpn-couleur-texte-doux, #5b5b57); margin-top: .75rem; }
.cpn-contact__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; } /* !important : jamais visible, quel que soit le thème. */
/* Double classe : l'emporte sur le style générique des boutons du thème parent. */
.cpn-contact .cpn-bouton { background: var(--_primaire, #1f4e5f); color: var(--cpn-couleur-primaire-contraste, #fff); border: 0; border-radius: var(--cpn-rayon, 6px); padding: .65rem 1.25rem; font-weight: 600; cursor: pointer; width: 100%; }
