/* Recherche de biens — n'utilise que les variables de charte du thème (repli neutre). */
.cpn-recherche { --_bord: var(--cpn-couleur-bordure, #dcdad3); --_primaire: var(--cpn-couleur-primaire, #1f4e5f); color: var(--cpn-couleur-texte, #1d1d1b); font-family: var(--cpn-police-texte, inherit); max-width: var(--cpn-largeur-max, 1200px); margin: 0 auto; padding: 0 var(--cpn-espace, 1rem); }
.cpn-recherche[aria-busy="true"] .cpn-resultats { opacity: .5; transition: opacity .15s; }
.cpn-recherche__formulaire { display: grid; gap: var(--cpn-espace, 1rem); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); align-items: end; background: var(--cpn-couleur-fond-doux, #f4f3ef); border-radius: var(--cpn-rayon, 6px); padding: var(--cpn-espace, 1rem); }
.cpn-recherche__groupe { border: 0; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cpn-recherche__groupe legend { font-weight: 600; margin-bottom: .25rem; }
.cpn-champ { display: grid; gap: .2rem; }
.cpn-champ label { font-size: .85rem; color: var(--cpn-couleur-texte-doux, #5b5b57); }
.cpn-champ select { width: 100%; padding: .5rem; border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); background: var(--cpn-couleur-fond, #fff); }
.cpn-recherche__actions { display: flex; gap: 1rem; align-items: center; }
/* Double classe : l'emporte sur le style générique des boutons du thème parent. */
.cpn-recherche .cpn-bouton { background: var(--_primaire); color: var(--cpn-couleur-primaire-contraste, #fff); border: 0; border-radius: var(--cpn-rayon, 6px); padding: .65rem 1.25rem; font-weight: 600; cursor: pointer; }
.cpn-lien { color: var(--_primaire); }
.cpn-resultats { margin-top: calc(var(--cpn-espace, 1rem) * 1.5); }
.cpn-resultats__compte { font-weight: 600; }
.cpn-resultats__grille { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cpn-espace, 1rem); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.cpn-carte { border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); overflow: hidden; background: var(--cpn-couleur-fond, #fff); box-shadow: var(--cpn-ombre, none); }
.cpn-carte__lien { display: block; color: inherit; text-decoration: none; height: 100%; }
.cpn-carte__visuel { aspect-ratio: 4 / 3; background: var(--cpn-couleur-fond-doux, #f4f3ef); display: flex; align-items: center; justify-content: center; }
.cpn-carte__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpn-carte__sans-photo { color: var(--cpn-couleur-texte-doux, #5b5b57); font-size: .9rem; }
.cpn-carte__corps { padding: .75rem 1rem 1rem; display: grid; gap: .25rem; }
.cpn-carte__corps p, .cpn-carte__corps h3 { margin: 0; }
.cpn-carte__type, .cpn-carte__lieu, .cpn-carte__caracteristiques { font-size: .85rem; color: var(--cpn-couleur-texte-doux, #5b5b57); }
.cpn-carte__titre { font-family: var(--cpn-police-titres, inherit); font-size: 1.1rem; }
.cpn-carte__prix { font-weight: 700; color: var(--_primaire); font-size: 1.1rem; }
.cpn-pagination { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin: calc(var(--cpn-espace, 1rem) * 2) 0; }
.cpn-pagination a, .cpn-pagination span { padding: .4rem .75rem; border: 1px solid var(--_bord); border-radius: var(--cpn-rayon, 6px); text-decoration: none; color: var(--_primaire); }
.cpn-pagination__courante { background: var(--_primaire); color: var(--cpn-couleur-primaire-contraste, #fff) !important; border-color: var(--_primaire) !important; } /* !important : l'état courant doit primer sur le style des liens du thème. */
