/* ==========================================================================
   BISIMMO Annonces — expérience « portail » : cartes, filtres, vues liste et
   carte, favoris, fiche enrichie, estimation. Chargée après annonces.css.
   ========================================================================== */

:root {
  --i-coeur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1.1L12 21l7.8-7.5 1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");
  --i-coeur-plein: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1.1L12 21l7.8-7.5 1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");
  --i-partage: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7M16 6l-4-4-4 4M12 2v13'/%3E%3C/svg%3E");
  --i-filtres: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
  --i-cloche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E");
  --i-carte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6v16l7-4 8 4 7-4V2l-7 4-8-4zM8 2v16M16 6v16'/%3E%3C/svg%3E");
  --i-croix: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
}

/* ---------- Barre de résultats ---------- */
.bi-resultats-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--filet); }
.bi-compte { margin: 0 auto 0 0; font-size: 15px; color: var(--texte); }
.bi-compte strong { margin-right: 4px; font-size: 26px; font-weight: 700; color: var(--encre); }
.bi-resultats-outils { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.bi-btn { display: inline-flex; align-items: center; gap: 9px; height: 42px; padding: 0 16px; border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--blanc);
  font: inherit; font-size: 14px; font-weight: 600; color: var(--encre); cursor: pointer; transition: border-color .25s, color .25s, background .25s; }
.bi-btn:hover { border-color: var(--or); color: var(--or); }
.bi-btn::before { content: ""; width: 17px; height: 17px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.bi-btn-filtres { --ico: var(--i-filtres); }
.bi-btn-alerte { --ico: var(--i-cloche); }
.bi-geo-zone { --ico: var(--i-loupe); }
.bi-carte-charger { --ico: var(--i-carte); }
.bi-nb { display: grid; place-items: center; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 99px; background: var(--marine); color: var(--blanc); font-size: 11.5px; font-weight: 700; }
.bi-tri select { height: 42px; padding: 0 36px 0 14px; border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1226' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px;
  font: inherit; font-size: 14px; font-weight: 500; color: var(--encre); cursor: pointer; -webkit-appearance: none; appearance: none; }
.bi-vues { display: flex; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--rayon); }
.bi-vues button { display: grid; place-items: center; width: 44px; height: 40px; padding: 0; border: 0; background: var(--blanc); font-size: 0; color: var(--gris); cursor: pointer; transition: background .25s, color .25s; }
.bi-vues button + button { border-left: 1px solid var(--filet); }
.bi-vues button::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.bi-vues [data-vue="grille"] { --ico: var(--i-grille); }
.bi-vues [data-vue="liste"] { --ico: var(--i-liste); }
.bi-vues [data-vue="carte"] { --ico: var(--i-carte); }
.bi-vues button:hover { color: var(--encre); }
.bi-vues button[aria-pressed="true"] { background: var(--marine); color: var(--or); }
.bi-actifs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex-basis: 100%; }
.bi-actif { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px 0 14px; border-radius: 99px; background: var(--sable); font-size: 13.5px; font-weight: 500; color: var(--encre); transition: background .25s; }
.bi-actif::after { content: ""; width: 13px; height: 13px; background: var(--gris); -webkit-mask: var(--i-croix) center / contain no-repeat; mask: var(--i-croix) center / contain no-repeat; }
.bi-actif:hover { background: #EFE8DC; }
.bi-actif-tout { font-size: 13.5px; font-weight: 600; color: var(--or); }

/* ---------- Grille, liste, carte ---------- */
.bi-resultats-corps { position: relative; }
.bi-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.bi-grille > .bi-vide { grid-column: 1 / -1; }
.bi-annonces[data-vue="liste"] .bi-grille { grid-template-columns: 1fr; gap: 18px; }
.bi-annonces[data-vue="carte"] .bi-resultats-corps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 46%); gap: 24px; align-items: start; }
.bi-annonces[data-vue="carte"] .bi-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bi-annonces[data-vue="carte"] .bi-geo { display: block; }
.bi-geo { position: sticky; top: 104px; display: none; }
.bi-geo[hidden] { display: none !important; }
.bi-geo-carte { height: calc(100vh - 150px); min-height: 460px; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--rayon); background: #E9EEF3; }
.bi-geo-zone { position: absolute; top: 14px; left: 50%; z-index: 500; transform: translateX(-50%); box-shadow: var(--ombre-haute); }
.bi-geo-note { margin: 8px 0 0; font-size: 12px; color: var(--gris); }
.leaflet-container { font-family: inherit; }
.bi-geo-carte .leaflet-tile-pane, .bi-fiche-carte .leaflet-tile-pane { filter: saturate(.55) contrast(1.02); }

.bi-pin { background: none; border: 0; }
.bi-pin span { position: absolute; left: 0; bottom: 0; transform: translate(-50%, -6px); padding: 5px 10px; border-radius: 99px; background: var(--marine); color: var(--blanc);
  font: 700 12.5px/1.2 Roboto, Helvetica, Arial, sans-serif; white-space: nowrap; box-shadow: 0 6px 16px rgba(2, 20, 52, .3); transition: background .2s, transform .2s; }
.bi-pin span::after { content: ""; position: absolute; left: 50%; bottom: -5px; width: 10px; height: 10px; margin-left: -5px; background: inherit; transform: rotate(45deg); z-index: -1; }
.bi-pin.actif span, .bi-pin:hover span { background: var(--or); transform: translate(-50%, -6px) scale(1.08); }
.bi-pin.actif { z-index: 1000 !important; }
.leaflet-popup-content-wrapper { padding: 0; overflow: hidden; border-radius: var(--rayon); }
.leaflet-popup-content { width: 250px !important; margin: 0; }
.bi-popup img { display: block; width: 100%; height: 140px; object-fit: cover; }
.bi-popup div { padding: 12px 14px 14px; }
.bi-popup strong { display: block; font-size: 17px; color: var(--encre); }
.bi-popup p { margin: 4px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--texte); }
.bi-popup a { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--or); }

/* ---------- Carte d’annonce ---------- */
.bi-carte { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--blanc);
  box-shadow: var(--ombre); transition: box-shadow .4s var(--douce), transform .4s var(--sortie), border-color .3s; }
.bi-carte:hover { box-shadow: var(--ombre-haute); transform: translateY(-3px); }
.bi-carte.survol { border-color: var(--or); }
.bi-carte-sponsor { border-color: rgba(184, 143, 66, .6); }
.bi-carte-media { position: relative; aspect-ratio: 16 / 10.5; overflow: hidden; background: var(--nuage); }
.bi-carte-photos, .bi-carte-photo { position: absolute; inset: 0; width: 100%; height: 100%; }
.bi-carte-photo { display: none; object-fit: cover; transition: transform 1s var(--sortie); }
.bi-carte-photo.actif { display: block; }
.bi-carte:hover .bi-carte-photo.actif { transform: scale(1.03); }
.bi-carte-media::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(0deg, rgba(2, 20, 52, .45), transparent); pointer-events: none; }
.bi-carte-nav { position: absolute; top: 50%; z-index: 3; display: grid; place-items: center; width: 34px; height: 34px; margin-top: -17px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .92); color: var(--encre); cursor: pointer; opacity: 0; transition: opacity .25s, background .25s; box-shadow: 0 4px 12px rgba(2, 20, 52, .2); }
.bi-carte-nav::before { content: ""; width: 15px; height: 15px; background: currentColor; -webkit-mask: var(--i-fleche) center / contain no-repeat; mask: var(--i-fleche) center / contain no-repeat; }
.bi-carte-prec { left: 10px; }
.bi-carte-prec::before { transform: rotate(180deg); }
.bi-carte-suiv { right: 10px; }
.bi-carte:hover .bi-carte-nav, .bi-carte-nav:focus-visible { opacity: 1; }
.bi-carte-nav:hover { background: var(--blanc); }
.bi-carte-compteur { position: absolute; right: 12px; bottom: 10px; z-index: 2; padding: 3px 9px; border-radius: 99px; background: rgba(2, 20, 52, .65); color: var(--blanc); font-size: 11.5px; font-weight: 600; }
.bi-carte-pastilles { position: absolute; top: 12px; left: 12px; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.bi-pastille { padding: 4px 10px; border-radius: 2px; background: var(--marine); color: var(--blanc); font-size: 11.5px; font-weight: 600; letter-spacing: .02em; }
.bi-pastille-nouveau { background: var(--blanc); color: var(--marine); }
.bi-pastille-or { background: var(--or); }
.bi-pastille-sponsor { background: #F5EDDF; color: #7A5B22; }
.bi-favori { position: absolute; top: 10px; right: 10px; z-index: 3; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .94); color: var(--encre); cursor: pointer; box-shadow: 0 4px 12px rgba(2, 20, 52, .18); transition: transform .25s var(--sortie), color .25s; }
.bi-favori::before { content: ""; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--i-coeur) center / contain no-repeat; mask: var(--i-coeur) center / contain no-repeat; }
.bi-favori:hover { transform: scale(1.08); }
.bi-favori[aria-pressed="true"] { color: #D64545; }
.bi-favori[aria-pressed="true"]::before { -webkit-mask-image: var(--i-coeur-plein); mask-image: var(--i-coeur-plein); }
.bi-favori.pop::before { animation: bi-pop .45s var(--sortie); }
@keyframes bi-pop { 40% { transform: scale(1.35); } }
.bi-vu-pastille { position: absolute; left: 12px; bottom: 10px; z-index: 2; display: none; padding: 3px 9px; border-radius: 99px; background: rgba(255, 255, 255, .9); color: var(--encre); font-size: 11.5px; font-weight: 600; }
.bi-deja-vu .bi-vu-pastille { display: block; }
.bi-carte-corps { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 14px; }
.bi-carte-prix-ligne { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bi-carte-prix { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.2; color: var(--encre); }
.bi-carte-prix em { font-style: normal; font-size: 13px; font-weight: 500; color: var(--gris); }
.bi-carte-sous-prix { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--gris); }
.bi-sep { color: #C9CCD1; }
.bi-mensualite { color: var(--or); font-weight: 600; position: relative; z-index: 2; }
.bi-mensualite:hover { text-decoration: underline; }
.bi-carte-type { margin: 8px 0 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--or); }
.bi-carte-titre { margin: 0; font-size: 16.5px; font-weight: 600; line-height: 1.35; }
.bi-carte-titre a { color: var(--encre); transition: color .25s; }
.bi-carte:hover .bi-carte-titre a { color: var(--or); }
.bi-carte-carac { margin: 2px 0 0; font-size: 14px; color: var(--encre); }
.bi-carte-lieu { display: flex; align-items: center; gap: 6px; margin: 2px 0 0; font-size: 13.5px; color: var(--texte); }
.bi-carte-lieu::before { content: ""; flex: none; width: 14px; height: 14px; background: var(--or); -webkit-mask: var(--i-repere) center / contain no-repeat; mask: var(--i-repere) center / contain no-repeat; }
.bi-carte-pied { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding: 12px 18px; border-top: 1px solid var(--filet); }
.bi-carte-pro { display: flex; align-items: center; gap: 10px; min-width: 0; font-size: 13.5px; font-weight: 500; color: var(--encre); }
.bi-carte-pro > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-carte-mono, .bi-carte-logo { flex: none; width: 30px; height: 30px; border-radius: 2px; }
.bi-carte-mono { display: grid; place-items: center; background: var(--marine); color: var(--or); font-size: 11px; font-weight: 600; letter-spacing: .03em; }
.bi-carte-logo { object-fit: contain; border: 1px solid var(--filet); }
.bi-carte-verifie { display: inline-flex; align-items: center; gap: 5px; flex: none; font-size: 12.5px; font-weight: 500; color: var(--or); }
.bi-carte-verifie::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--i-bouclier) center / contain no-repeat; mask: var(--i-bouclier) center / contain no-repeat; }
.bi-carte .bi-lien-carte::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Liste : photo à gauche */
.bi-annonces[data-vue="liste"] .bi-carte { flex-direction: row; display: grid; grid-template-columns: minmax(260px, 38%) 1fr; grid-template-rows: 1fr auto; }
.bi-annonces[data-vue="liste"] .bi-carte-media { grid-row: 1 / 3; aspect-ratio: auto; min-height: 250px; }
.bi-annonces[data-vue="liste"] .bi-carte-corps { padding: 20px 24px 12px; }
.bi-annonces[data-vue="liste"] .bi-carte-pied { padding: 12px 24px; }
.bi-annonces[data-vue="liste"] .bi-carte-prix { font-size: 25px; }

/* DPE */
.bi-dpe { display: inline-grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 3px; font-size: 13px; font-weight: 800; font-style: normal; color: #fff; }
.bi-dpe-a { background: #00915A; } .bi-dpe-b { background: #33A357; } .bi-dpe-c { background: #79B752; color: #0B1226; }
.bi-dpe-d { background: #E6D337; color: #0B1226; } .bi-dpe-e { background: #F0B50F; color: #0B1226; } .bi-dpe-f { background: #EB8235; } .bi-dpe-g { background: #D7221F; }

/* ---------- Fenêtres (filtres, alerte) ---------- */
.bi-dialogue { width: min(460px, 100vw); max-width: 100vw; max-height: 100vh; margin: 0; padding: 0; border: 0; background: var(--blanc); color: var(--texte); box-shadow: -20px 0 60px rgba(2, 20, 52, .25); }
.bi-dialogue::backdrop { background: rgba(2, 20, 52, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.bi-panneau-filtres[open] { position: fixed; inset: 0 0 0 auto; display: flex; flex-direction: column; height: 100vh; animation: bi-tiroir .35s var(--sortie); }
@keyframes bi-tiroir { from { transform: translateX(40px); opacity: 0; } }
.bi-filtres-form { display: flex; flex-direction: column; height: 100%; }
.bi-alerte-dialogue[open] { inset: 0; margin: auto; border-radius: var(--rayon); height: auto; box-shadow: var(--ombre-haute); animation: bi-montee .35s var(--sortie); }
@keyframes bi-montee { from { transform: translateY(16px); opacity: 0; } }
.bi-dialogue-tete { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--filet); }
.bi-dialogue-titre { margin: 0; font-size: 19px; font-weight: 700; color: var(--encre); }
.bi-fermer { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: var(--nuage); cursor: pointer; }
.bi-fermer::before { content: ""; width: 16px; height: 16px; background: var(--encre); -webkit-mask: var(--i-croix) center / contain no-repeat; mask: var(--i-croix) center / contain no-repeat; }
.bi-dialogue-corps { flex: 1; overflow-y: auto; padding: 8px 22px 22px; }
.bi-alerte-dialogue .bi-dialogue-corps { padding-top: 18px; }
.bi-alerte-dialogue .bi-form { display: flex; flex-direction: column; gap: 14px; }
.bi-dialogue fieldset { margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--filet); }
.bi-dialogue fieldset:last-child { border-bottom: 0; }
.bi-dialogue legend { float: left; width: 100%; margin-bottom: 12px; padding: 0; font-size: 14.5px; font-weight: 700; color: var(--encre); }
.bi-dialogue legend + * { clear: both; }
.bi-dialogue .bi-choix { margin: 0; }
.bi-dialogue .bi-choix-item span { height: 38px; padding: 0 14px; font-size: 13.5px; }
.bi-choix-item input[type=checkbox]:checked + span, .bi-choix-item input[type=radio]:checked + span { border-color: var(--marine); background: var(--marine); color: var(--blanc); }
.bi-choix-serre .bi-choix-item span { min-width: 46px; justify-content: center; }
.bi-dpe-choix span { gap: 8px; padding-left: 6px !important; }
.bi-dpe-choix .bi-dpe { width: 24px; height: 24px; font-size: 12px; }
.bi-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bi-dialogue input[type=number], .bi-champ { width: 100%; height: 46px; padding: 0 14px; border: 1px solid var(--filet); border-radius: var(--rayon); font: inherit; font-size: 14.5px; color: var(--encre); outline: none; }
.bi-dialogue input:focus, .bi-champ:focus { border-color: var(--or); box-shadow: 0 0 0 3px rgba(184, 143, 66, .13); }
.bi-dialogue .bi-unite input { padding-right: 44px !important; }
.bi-dialogue-pied { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 22px; border-top: 1px solid var(--filet); background: var(--blanc); }
.bi-dialogue-pied .bouton { border: 0; cursor: pointer; font-family: inherit; min-width: 200px; }
.bi-alerte-resume { margin: 0 0 4px; padding: 12px 14px; border-radius: var(--rayon); background: var(--sable); font-size: 14px; color: var(--encre); }
.bi-alerte-resume span { display: block; margin-bottom: 3px; font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gris); }

/* ---------- Fiche : compléments ---------- */
.bi-badge-nouveau { background: var(--blanc) !important; color: var(--marine) !important; }
.fiche-badges .bi-dpe { width: 28px; height: 28px; }
.fiche-prix > em a { color: var(--or); font-weight: 600; }
.fiche-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.fiche-actions button { position: static; display: inline-flex; align-items: center; gap: 8px; width: auto; height: 40px; padding: 0 14px; border: 1px solid rgba(255, 255, 255, .3); border-radius: var(--rayon);
  background: rgba(255, 255, 255, .08); color: var(--blanc); font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; box-shadow: none; transition: background .25s, border-color .25s; }
.fiche-actions button:hover { transform: none; border-color: var(--or); background: rgba(184, 143, 66, .18); }
.fiche-actions .bi-favori::before { width: 17px; height: 17px; }
.fiche-actions .bi-favori[aria-pressed="true"] { color: #FF8A8A; }
.bi-partager::before { content: ""; width: 17px; height: 17px; background: currentColor; -webkit-mask: var(--i-partage) center / contain no-repeat; mask: var(--i-partage) center / contain no-repeat; }
.bi-equipements { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.bi-equipements li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--filet); border-radius: 99px; font-size: 14.5px; font-weight: 500; color: var(--encre); }
.bi-equipements li::before { content: ""; width: 15px; height: 15px; background: var(--or); -webkit-mask: var(--i-coche) center / contain no-repeat; mask: var(--i-coche) center / contain no-repeat; }

.bi-marche-corps { display: grid; grid-template-columns: auto 1fr; gap: 18px 32px; align-items: center; }
.bi-marche-chiffre strong { display: block; font-size: 30px; font-weight: 700; color: var(--encre); }
.bi-marche-chiffre span { font-size: 13px; color: var(--gris); }
.bi-marche-jauge { position: relative; height: 10px; margin: 26px 0 30px; border-radius: 99px; background: linear-gradient(90deg, #E8F5EE, #F5EDDF 50%, #FBE4E2); }
.bi-marche-plage { position: absolute; top: 0; bottom: 0; border-radius: 99px; background: rgba(2, 20, 52, .14); }
.bi-marche-repere { position: absolute; top: 50%; width: 3px; height: 22px; margin: -11px 0 0 -1.5px; border-radius: 2px; background: var(--marine); }
.bi-marche-repere span { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11.5px; font-weight: 600; color: var(--encre); }
.bi-marche-repere.bien { background: var(--or); }
.bi-marche-repere.bien span { top: -20px; color: var(--or); }
.bi-marche-repere.med span { top: 24px; }
.bi-marche-texte { grid-column: 1 / -1; margin: 0; font-size: 15px; line-height: 1.65; color: var(--texte); }
.bi-marche-texte strong.bas { color: #1E7B4D; }
.bi-marche-texte strong.haut { color: #B42318; }

.bi-simu-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.bi-simu-champs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bi-simu-champs input, .bi-simu-champs select { width: 100%; height: 46px; padding: 0 14px; border: 1px solid var(--filet); border-radius: var(--rayon); font: inherit; font-size: 14.5px; color: var(--encre); background-color: var(--blanc); }
.bi-simu-champs .bi-unite input { padding-right: 40px; }
.bi-simu-resultat { display: flex; flex-direction: column; justify-content: center; padding: 22px 24px; border-radius: var(--rayon); background: var(--marine); color: rgba(255, 255, 255, .78); }
.bi-simu-label { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--or); }
.bi-simu-mensualite { margin: 6px 0 14px; font-size: 15px; }
.bi-simu-mensualite strong { font-size: 34px; font-weight: 700; color: var(--blanc); }
.bi-simu-resultat ul { margin: 0; padding: 12px 0 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .14); }
.bi-simu-resultat li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 13.5px; }
.bi-simu-resultat li strong { color: var(--blanc); }
.bi-simulateur .bi-note { margin-top: 14px; }

.fiche-lieu-texte { margin: -8px 0 14px; font-size: 15px; color: var(--texte); }
.bi-fiche-carte { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 260px; padding: 20px; overflow: hidden;
  border: 1px solid var(--filet); border-radius: var(--rayon); text-align: center;
  background: radial-gradient(circle at 30% 40%, rgba(184, 143, 66, .12), transparent 45%), repeating-linear-gradient(45deg, #F3F4F6 0 12px, #EEF0F3 12px 24px); }
.bi-fiche-carte.chargee { display: block; min-height: 0; height: 340px; padding: 0; }
.bi-fiche-carte.chargee > :not(.leaflet-pane):not(.leaflet-control-container) { display: none; }

/* Partage : message éphémère */
.bi-toast { position: fixed; left: 50%; bottom: 28px; z-index: 100001; transform: translateX(-50%); padding: 12px 20px; border-radius: 99px; background: var(--marine); color: var(--blanc); font-size: 14px; font-weight: 500; box-shadow: var(--ombre-haute); animation: bi-montee .3s var(--sortie); }

/* ---------- Pages favoris et estimation ---------- */
.bi-page-tete .espace-surtitre { margin-top: 28px; }
.bi-page-chapo { max-width: 620px; margin: 12px 0 0; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .78); }
.bi-page-tete h1 { font-size: 40px; }
.bi-favoris-page .bi-grille { margin-bottom: 8px; }
.bi-estim-grille { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 28px; align-items: start; }
.bi-estim-form { display: flex; flex-direction: column; gap: 18px; }
.bi-estim-form .champ-form input { width: 100%; }
.bi-estim-resultat { padding: 32px; border-radius: var(--rayon); background: var(--blanc); border: 1px solid var(--filet); box-shadow: var(--ombre-haute); }
.bi-estim-sur { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--or); }
.bi-estim-valeur { margin: 8px 0 18px; font-size: 46px; font-weight: 700; line-height: 1.1; color: var(--encre); }
.bi-estim-jauge { height: 10px; border-radius: 99px; background: linear-gradient(90deg, #E8F5EE, var(--or), #E8F5EE); }
.bi-estim-fourchette { display: flex; justify-content: space-between; margin: 10px 0 24px; font-size: 13.5px; color: var(--texte); }
.bi-estim-fourchette span:first-child, .bi-estim-fourchette span:last-child { font-weight: 700; color: var(--encre); }
.bi-estim-chiffres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 0 18px; padding: 0; list-style: none; }
.bi-estim-chiffres li { padding: 14px 16px; border-radius: var(--rayon); background: var(--sable); }
.bi-estim-chiffres strong { display: block; font-size: 15.5px; color: var(--encre); }
.bi-estim-chiffres span { font-size: 12.5px; color: var(--gris); }
.bi-estim-resultat .bouton { margin-top: 18px; }
.bi-estim-vide { text-align: center; padding: 48px 28px; color: var(--texte); }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .bi-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bi-annonces[data-vue="carte"] .bi-resultats-corps { grid-template-columns: minmax(0, 1fr) minmax(0, 44%); }
  .bi-annonces[data-vue="carte"] .bi-grille { grid-template-columns: 1fr; }
  .bi-simu-grille, .bi-estim-grille { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .bi-annonces[data-vue="carte"] .bi-resultats-corps { display: flex; flex-direction: column-reverse; }
  .bi-annonces[data-vue="carte"] .bi-geo { position: relative; top: 0; width: 100%; }
  .bi-geo-carte { height: 62vh; min-height: 360px; }
  .bi-annonces[data-vue="carte"] .bi-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
}
@media (max-width: 760px) {
  .bi-grille, .bi-annonces[data-vue="carte"] .bi-grille { grid-template-columns: 1fr; }
  .bi-compte { flex-basis: 100%; }
  .bi-resultats-outils { width: 100%; }
  .bi-btn { flex: 1; justify-content: center; }
  .bi-tri { flex: 1 1 calc(100% - 150px); }
  .bi-tri select { width: 100%; }
  .bi-annonces[data-vue="liste"] .bi-carte { display: flex; flex-direction: column; }
  .bi-annonces[data-vue="liste"] .bi-carte-media { aspect-ratio: 16 / 10.5; min-height: 0; }
  .bi-carte-nav { opacity: 1; width: 30px; height: 30px; margin-top: -15px; }
  .bi-dialogue { width: 100vw; }
  .bi-alerte-dialogue[open] { width: calc(100vw - 24px); }
  .fiche-actions { justify-content: flex-start; }
  .bi-marche-corps { grid-template-columns: 1fr; }
  .bi-simu-champs { grid-template-columns: 1fr; }
  .bi-estim-chiffres { grid-template-columns: 1fr; }
  .bi-estim-valeur { font-size: 36px; }
  .bi-page-tete h1 { font-size: 30px; }
}

/* ==========================================================================
   VERSION CLAIRE (demande client, 5 octobre 2026) — en-têtes de pages, fiches,
   espace pro, simulateur. Remplace les bandeaux marine ci-dessus.
   ========================================================================== */
.fiche-tete, .espace-tete { background: linear-gradient(180deg, var(--blanc) 0%, var(--sable) 100%); color: var(--encre); border-bottom: 1px solid var(--filet-chaud); }
.fiche-tete::after, .espace-tete::after { background: radial-gradient(closest-side, rgba(184, 143, 66, .1), transparent); }
.fiche-tete .fil, .espace-tete .fil { color: var(--gris); }
.fiche-tete .fil span { color: var(--encre); }
.fiche-tete h1, .espace-tete h1 { color: var(--encre); }
.fiche-lieu { color: var(--texte); }
.fiche-prix strong { color: var(--encre); }
.fiche-prix strong em { color: var(--gris); }
.fiche-prix > em { color: var(--gris); }
.badge.badge-verre { border: 1px solid #D4D8DE; background: var(--blanc); color: var(--encre); }
.bi-badge-nouveau { border: 1px solid #D4D8DE; }
.fiche-actions button { border-color: #CDD2DA; background: var(--blanc); color: var(--encre); }
.fiche-actions button:hover { border-color: var(--or); background: #FBF8F2; }
.fiche-actions .bi-favori[aria-pressed="true"] { color: #D64545; }
.espace-identite .monogramme { border-color: rgba(184, 143, 66, .55); background: var(--blanc); color: var(--or); }
.espace-statut { color: var(--texte); }
.espace-statut.statut-valide::before { background: #1E7B4D; }
.bi-page-chapo { color: var(--texte); }
.bi-simu-resultat { background: var(--sable); color: var(--texte); border: 1px solid var(--filet-chaud); }
.bi-simu-mensualite strong, .bi-simu-resultat li strong { color: var(--encre); }
.bi-simu-resultat ul { border-top-color: var(--filet-chaud); }
