/* ============================================================
   immobilier225 — feuille de style locale (aucun CDN)
   Esprit clair & aéré facon Airbnb, adapté à la LOCATION MENSUELLE.
   Mobile-first, responsive 320px -> desktop. Identité propre au
   portail (accent bleu, cohérent avec l'agence DYIMMO).
   ============================================================ */
:root{
  --bleu:#1f6fd6;          /* accent principal (cohérent DYIMMO) */
  --bleu-fonce:#134a94;
  --bleu-clair:#eaf2fd;
  --corail:#e0356b;        /* cœur favori / touches chaudes */
  --noir:#1c1c1e;
  --texte:#222325;
  --gris:#6a6f76;
  --gris-clair:#f7f7f8;
  --bord:#ebebeb;
  --blanc:#fff;
  --rouge:#c0392b;
  --vert-ok:#0a7d4b;
  --ombre:0 1px 2px rgba(0,0,0,.06), 0 6px 16px rgba(0,0,0,.06);
  --ombre-fort:0 8px 28px rgba(0,0,0,.14);
  --rayon:16px;
  --rayon-photo:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--texte);background:var(--blanc);line-height:1.5;font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--bleu);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{letter-spacing:-.01em}
.conteneur{width:100%;max-width:1180px;margin:0 auto;padding:0 20px}

/* --- En-tête épuré --- */
.entete{background:var(--blanc);border-bottom:1px solid var(--bord);
  position:sticky;top:0;z-index:50}
.entete .conteneur{display:flex;align-items:center;justify-content:space-between;
  min-height:64px;gap:12px}
.logo{display:flex;align-items:center;gap:8px;color:var(--bleu);font-weight:800;
  font-size:1.12rem;letter-spacing:-.02em}
.logo:hover{text-decoration:none}
.logo .pin{background:var(--bleu);color:#fff;border-radius:9px;padding:3px 7px;font-size:.8rem}
.logo .sub{display:none;font-size:.6rem;color:var(--gris);font-weight:600;letter-spacing:.02em;margin-top:-2px}
@media(min-width:560px){.logo{font-size:1.3rem}.logo .sub{display:block}}
.nav{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;min-width:0}
.nav a{color:var(--texte);padding:8px 9px;border-radius:22px;font-size:.85rem;
  min-height:44px;display:inline-flex;align-items:center;font-weight:600;white-space:nowrap}
/* Sur mobile, "Annonces" est déjà accessible via la recherche : on le cache. */
.nav a.lien-annonces{display:none}
@media(min-width:560px){.nav{gap:4px}.nav a{padding:10px 12px;font-size:.95rem}
  .nav a.lien-annonces{display:inline-flex}}
.nav a:hover{background:var(--gris-clair);text-decoration:none}
.nav a.deposer{border:1px solid var(--bord);box-shadow:var(--ombre)}
.nav a.deposer:hover{box-shadow:var(--ombre-fort)}
.entete-admin{background:var(--noir)}
.entete-admin .logo{color:#fff}
.entete-admin .logo .pin{background:var(--bleu)}
.entete-admin .nav a{color:#eee}
.entete-admin .nav a:hover{background:rgba(255,255,255,.12)}

/* --- Boutons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:46px;padding:12px 20px;border-radius:14px;border:0;cursor:pointer;
  font-size:1rem;font-weight:700;background:var(--bleu);color:#fff;transition:.15s;
  text-align:center}
.btn:hover{background:var(--bleu-fonce);text-decoration:none}
.btn-corail{background:var(--corail)}
.btn-corail:hover{background:#c22a5b}
.btn-noir{background:var(--noir)}.btn-noir:hover{background:#000}
.btn-clair{background:#fff;color:var(--texte);border:1.5px solid var(--bord)}
.btn-clair:hover{background:var(--gris-clair);border-color:#ccc}
.btn-danger{background:var(--rouge)}
.btn-bloc{width:100%}
.btn-sm{min-height:40px;padding:8px 14px;font-size:.92rem;border-radius:12px}

/* --- Héros clair & aéré --- */
.hero{background:linear-gradient(180deg,var(--bleu-clair),#fff);padding:44px 0 8px;text-align:center}
.hero h1{font-size:2rem;margin:0 0 10px;line-height:1.15;letter-spacing:-.02em}
.hero p{font-size:1.08rem;color:var(--gris);margin:0 0 26px}

/* --- Barre de recherche (arrondie sur mobile, pilule sur desktop) --- */
.recherche{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);
  box-shadow:var(--ombre-fort);padding:8px;text-align:left;max-width:920px;margin:0 auto}
.recherche .grille{display:grid;grid-template-columns:1fr;gap:2px}
.rch-champ{position:relative;padding:10px 16px;border-radius:12px}
.rch-champ:hover{background:var(--gris-clair)}
.rch-champ label{display:block;font-size:.72rem;color:var(--noir);font-weight:800;
  text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
.rch-champ input,.rch-champ select{width:100%;min-height:28px;padding:2px 0;border:0;
  background:transparent;font-size:.98rem;color:var(--texte);font-family:inherit;outline:none}
.rch-champ select{cursor:pointer}
.rch-submit{padding:4px}
.rch-submit .btn{border-radius:999px;min-height:52px;width:100%}

/* barre secondaire (page liste) — version aérée non pilule */
.recherche.plate{border-radius:var(--rayon);max-width:none;padding:16px;box-shadow:var(--ombre)}
.recherche.plate .grille{grid-template-columns:1fr;gap:12px}
.recherche.plate .rch-champ{background:var(--gris-clair);border:1px solid var(--bord);padding:9px 14px;border-radius:12px}
.recherche.plate .rch-champ:hover{border-color:#d5d5d5}
.prix-groupe{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prix-groupe input{border:0;background:transparent;min-height:28px;font-size:.98rem;outline:none;width:100%}

/* --- Sections --- */
.section{padding:32px 0}
.section-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.section h2{font-size:1.5rem;margin:0}
.section .sous{color:var(--gris);margin:2px 0 0}

/* --- Barre de tri --- */
.barre-tri{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.barre-tri label{font-size:.85rem;color:var(--gris);font-weight:600}
.barre-tri select{min-height:42px;padding:8px 14px;border:1.5px solid var(--bord);
  border-radius:12px;background:#fff;font-size:.92rem;font-weight:600;cursor:pointer}

/* --- Grille de cartes --- */
.grille-annonces{display:grid;grid-template-columns:1fr;gap:24px 20px}

/* --- Carte annonce (grande photo en haut) --- */
.carte{display:flex;flex-direction:column;gap:10px;background:transparent}
.carte:hover{text-decoration:none}
.carte .vignette{position:relative;aspect-ratio:20/19;background:var(--gris-clair);
  border-radius:var(--rayon-photo);overflow:hidden}
.carte .vignette img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.carte:hover .vignette img{transform:scale(1.05)}
.carte .vignette .placeholder{width:100%;height:100%;display:flex;align-items:center;
  justify-content:center;color:var(--bleu);font-size:3rem;
  background:linear-gradient(135deg,var(--bleu-clair),#dfeafb)}
.badge{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.94);
  color:var(--noir);font-size:.72rem;font-weight:800;padding:5px 11px;border-radius:20px;
  box-shadow:0 1px 4px rgba(0,0,0,.12);letter-spacing:.01em}
.badge-demo{background:var(--bleu);color:#fff}
.badge-agence{background:var(--vert-ok);color:#fff}
.badge-certifie{background:#1f6fd6;color:#fff}
/* « Bientôt disponible » (bien en cessation) : orange, sous le 1er badge */
.badge-bientot{position:absolute;top:44px;left:12px;background:#e8770c;color:#fff;
  font-size:.72rem;font-weight:800;padding:5px 11px;border-radius:20px;
  box-shadow:0 1px 4px rgba(0,0,0,.12);letter-spacing:.01em}
/* Bloc disponibilité sous le prix (carte) */
.dispo-bientot{display:flex;flex-direction:column;gap:2px;margin-top:5px;
  font-size:.8rem;line-height:1.35}
.dispo-libre{color:#b45a05;font-weight:600}
.dispo-visites{color:var(--gris)}
.dispo-plus{background:#f0e2cf;color:#8a5a0d;border-radius:10px;padding:0 6px;
  font-weight:700;font-size:.72rem}
/* Bandeau « bientôt disponible » sur la fiche détaillée */
.bandeau-bientot{display:flex;gap:12px;align-items:flex-start;
  background:#fff6ea;border:1px solid #f0cfa0;border-left:4px solid #e8770c;
  border-radius:12px;padding:12px 14px;margin:10px 0}
.bandeau-bientot .bb-badge{flex:0 0 auto;background:#e8770c;color:#fff;
  font-size:.74rem;font-weight:800;padding:6px 11px;border-radius:20px;white-space:nowrap}
.bandeau-bientot .bb-texte{flex:1;min-width:0}
.bandeau-bientot .bb-titre{margin:0 0 4px;font-weight:600;color:#8a4b05}
.bandeau-bientot .bb-sous{margin:0 0 6px;font-size:.88rem;color:var(--gris)}
.bandeau-bientot .bb-visites-lbl{margin:6px 0 2px;font-weight:600;font-size:.9rem}
.bandeau-bientot .bb-visites{margin:0;padding-left:18px;font-size:.9rem}
.bandeau-bientot .bb-visites li{margin:2px 0}
/* Compteur de photos (coin bas-droit de la vignette) */
.badge-photos{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.66);
  color:#fff;font-size:.72rem;font-weight:700;padding:4px 9px;border-radius:20px;
  display:inline-flex;align-items:center;gap:3px;letter-spacing:.01em}
.carte-date{color:var(--gris);font-weight:600;font-size:.82rem;margin-left:6px}
/* cœur favori */
.coeur{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;
  background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));font-size:1.4rem;line-height:1;padding:0}
.coeur:hover{transform:scale(1.12)}
.coeur.actif{color:var(--corail);filter:none}
.carte .corps{display:flex;flex-direction:column;gap:2px;padding:0 2px}
.carte .ligne1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.carte .titre{font-weight:700;font-size:1.02rem;color:var(--texte);margin:0}
.carte .lieu{color:var(--gris);font-size:.92rem}
.carte .meta{color:var(--gris);font-size:.9rem}
.carte .prix{margin-top:4px;font-size:1rem;color:var(--texte)}
.carte .prix strong{font-weight:800}
.carte .prix .mois{color:var(--gris);font-weight:600}

/* ---- Carrousel de photos SUR les cartes (flèches ‹ ›, sans ouvrir la fiche) ---- */
/* Réutilisé par les cartes classiques (.vignette) ET les meublés (.mcard-photo). */
.cimg{position:absolute;inset:0;overflow:hidden}
.cimg-s{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity .3s ease}
.cimg-s.on{opacity:1}
.cimg-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;
  border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#222;
  font-size:1.5rem;line-height:1;cursor:pointer;padding:0;z-index:3;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.28);opacity:0;
  transition:opacity .2s ease,background .2s ease,transform .1s ease}
.cimg-prev{left:8px}
.cimg-next{right:8px}
.cimg-nav:hover{background:#fff}
.cimg-nav:active{transform:translateY(-50%) scale(.92)}
.carte:hover .cimg-nav,.mcard:hover .cimg-nav{opacity:1}
.cimg-dots{position:absolute;left:0;right:0;bottom:8px;z-index:3;
  display:flex;gap:5px;justify-content:center;pointer-events:none}
.cimg-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);
  box-shadow:0 0 2px rgba(0,0,0,.45);transition:transform .2s ease,background .2s ease}
.cimg-dots i.on{background:#fff;transform:scale(1.25)}
/* Mobile / écrans tactiles : flèches TOUJOURS visibles, cibles ≥44px. */
@media (hover:none),(pointer:coarse){
  .cimg-nav{opacity:.95;width:44px;height:44px;font-size:1.7rem}
}

/* --- Détail façon Airbnb --- */
.detail-tete{padding:24px 0 8px}
.detail-tete h1{font-size:1.7rem;margin:0 0 6px}
.detail-tete .lieu{color:var(--gris);font-size:1rem;text-decoration:underline}
/* mosaïque */
.mosaique{display:grid;grid-template-columns:1fr;gap:8px;border-radius:var(--rayon);
  overflow:hidden;margin-bottom:8px}
.mosaique .grande{aspect-ratio:16/10;background:var(--gris-clair);cursor:pointer}
.mosaique .grande img{width:100%;height:100%;object-fit:cover}
.mosaique .grande .placeholder{width:100%;height:100%;display:flex;align-items:center;
  justify-content:center;font-size:4rem;color:var(--bleu);
  background:linear-gradient(135deg,var(--bleu-clair),#dfeafb)}
.mosaique-sec{display:none;gap:8px}
.mosaique-sec img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;cursor:pointer;background:var(--gris-clair)}
.detail-grille{display:grid;grid-template-columns:1fr;gap:24px;padding:16px 0 32px}
.detail-corps h2{font-size:1.25rem;margin:0 0 12px}
.detail-corps .desc{white-space:pre-line;color:#33363a;font-size:1.02rem}
/* caractéristiques en icônes */
.carac-icones{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px 0;
  border-top:1px solid var(--bord);border-bottom:1px solid var(--bord);margin:20px 0}
.carac-icones .item{display:flex;align-items:center;gap:12px}
.carac-icones .ico{font-size:1.6rem;width:34px;text-align:center}
.carac-icones .lbl{font-size:.8rem;color:var(--gris)}
.carac-icones .val{font-weight:700}
/* encadré latéral loyer */
.encadre{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);
  box-shadow:var(--ombre-fort);padding:22px;position:sticky;top:84px}
.encadre .loyer{font-size:1.6rem;font-weight:800;margin:0 0 2px}
.encadre .loyer .mois{font-size:.95rem;color:var(--gris);font-weight:600}
.encadre .rappel{color:var(--gris);font-size:.85rem;margin:4px 0 16px}
.encadre .btn{width:100%;margin-bottom:10px}
.encadre .contact-liens{display:flex;flex-direction:column;gap:8px;margin-top:6px;
  padding-top:14px;border-top:1px solid var(--bord)}
.encadre .contact-liens a{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:600;color:var(--texte)}

/* --- Cartes / formulaires génériques --- */
.carte-info{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:20px}
.carte-form{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);
  box-shadow:var(--ombre);padding:26px;max-width:520px;margin:32px auto}
.carte-form.large{max-width:760px}
.carte-form h1{font-size:1.5rem;margin:0 0 6px}
.carte-form .intro{color:var(--gris);margin:0 0 20px}
.pile{display:flex;flex-direction:column;gap:16px}
.champ label{display:block;font-size:.85rem;color:var(--texte);margin-bottom:6px;font-weight:700}
.champ input,.champ select,.champ textarea{
  width:100%;min-height:46px;padding:11px 14px;border:1.5px solid var(--bord);
  border-radius:12px;font-size:1rem;background:#fff;color:var(--texte);font-family:inherit}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px var(--bleu-clair)}
.champ textarea{min-height:130px;resize:vertical}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* --- Alertes / flash --- */
.flash{padding:13px 16px;border-radius:12px;margin:14px 0;font-weight:600}
.flash-info{background:var(--bleu-clair);color:var(--bleu-fonce)}
.flash-succes{background:#e8f6ee;color:#0a5b36}
.flash-erreur{background:#fdecea;color:#a5281b}
.flash-avert{background:#fff6e5;color:#8a6100}

/* --- Étiquettes statut --- */
.etiq{display:inline-block;font-size:.72rem;font-weight:800;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.02em}
.etiq-attente{background:#fff6e5;color:#8a6100}
.etiq-publiee{background:#e8f6ee;color:#0a5b36}
.etiq-refusee{background:#fdecea;color:#a5281b}

/* --- Tableau admin --- */
.tableau-wrap{overflow-x:auto;background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre)}
table.tbl{width:100%;border-collapse:collapse;min-width:600px}
table.tbl th,table.tbl td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--bord);font-size:.92rem}
table.tbl th{background:var(--gris-clair);font-weight:700;white-space:nowrap}
table.tbl tr:last-child td{border-bottom:0}
table.tbl tr:hover td{background:#fafafa}

/* --- Onglets / modération --- */
.onglets{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.onglets a{padding:9px 18px;border-radius:999px;border:1.5px solid var(--bord);background:#fff;
  font-weight:700;min-height:42px;display:inline-flex;align-items:center;color:var(--texte)}
.onglets a:hover{border-color:#ccc;text-decoration:none}
.onglets a.actif{background:var(--noir);color:#fff;border-color:var(--noir)}
.mod-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.miniatures{display:flex;gap:8px;overflow-x:auto;padding:4px 0}
.miniatures img{width:92px;height:70px;object-fit:cover;border-radius:10px;flex:0 0 auto;background:var(--gris-clair)}

/* --- Vide --- */
.vide{text-align:center;padding:56px 20px;color:var(--gris);background:var(--gris-clair);border-radius:var(--rayon)}
.vide .ico{font-size:3rem;margin-bottom:10px}

/* --- Pied --- */
.pied{background:var(--gris-clair);border-top:1px solid var(--bord);color:var(--gris);margin-top:48px;padding:30px 0}
.pied .conteneur{display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.pied strong{color:var(--texte)}
.pied a{color:var(--bleu)}

.muted{color:var(--gris)}
.mt{margin-top:18px}.mb{margin-bottom:18px}
.center{text-align:center}
.lien-retour{display:inline-flex;align-items:center;gap:6px;margin:16px 0;color:var(--texte);font-weight:700}

/* --- Responsive --- */
@media(min-width:560px){
  .grille-annonces{grid-template-columns:1fr 1fr}
  .carac-icones{grid-template-columns:1fr 1fr}
}
@media(min-width:720px){
  .hero h1{font-size:2.5rem}
  .recherche:not(.plate){border-radius:999px}
  .recherche:not(.plate) .rch-champ{border-radius:999px}
  .recherche .grille{grid-template-columns:1.4fr 1fr 1fr .8fr auto;align-items:center}
  .recherche .grille .rch-champ{border-right:1px solid var(--bord)}
  .recherche.plate .grille{grid-template-columns:2fr 1.2fr 1.2fr 1fr 1.4fr auto;align-items:stretch}
  .recherche.plate .rch-champ{border-right:0}
  .mosaique{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
  .mosaique .grande{grid-row:1/3;aspect-ratio:auto;min-height:340px}
  .mosaique-sec{display:grid;grid-template-rows:1fr 1fr;gap:8px}
  .mosaique-sec.col2{display:grid}
}
@media(min-width:900px){
  .grille-annonces{grid-template-columns:repeat(3,1fr)}
  .detail-grille{grid-template-columns:1.7fr 1fr;gap:48px}
}
@media(min-width:1100px){
  .grille-annonces{grid-template-columns:repeat(4,1fr)}
}

/* --- Évolution : gestion membre & intérêts --- */
.actions-cell{white-space:nowrap}
.mini-supp{position:relative;display:inline-block}
.mini-supp .mini-x{position:absolute;top:4px;right:4px;width:26px;height:26px;
  border:0;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-size:.8rem;
  line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mini-supp .mini-x:hover{background:var(--rouge)}
#interet textarea{min-height:90px}

/* ============================================================
   VAGUE 1 — partage social, favoris, sticky contact, accueil vivant
   ============================================================ */

/* Compteurs dynamiques du hero */
.hero-compteurs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 4px}
.hc-pill{background:#fff;border:1px solid var(--bord);border-radius:999px;
  padding:7px 14px;font-size:.9rem;color:var(--texte);box-shadow:var(--ombre)}
.hc-pill strong{color:var(--bleu)}

/* Raccourcis communes populaires */
.communes-pop{display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  justify-content:center;margin:16px auto 0;max-width:820px}
.cp-lbl{font-size:.86rem;color:var(--gris);width:100%;text-align:center;margin-bottom:2px}
.cp-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;
  padding:8px 14px;border-radius:999px;background:#fff;border:1.5px solid var(--bord);
  color:var(--texte);font-weight:600;font-size:.92rem}
.cp-chip:hover{border-color:var(--bleu);color:var(--bleu);text-decoration:none}
.cp-chip .cp-n{background:var(--bleu-clair);color:var(--bleu-fonce);border-radius:999px;
  padding:1px 8px;font-size:.78rem;font-weight:700}

/* Section « À la une » */
.section-une{background:linear-gradient(180deg,#fff,var(--bleu-clair))}

/* Lien favoris dans la nav */
.nav a.lien-favoris{color:var(--corail)}

/* Boutons de partage (fiche) */
.partage{margin-top:14px;padding-top:14px;border-top:1px solid var(--bord)}
.partage-lbl{display:block;font-size:.85rem;color:var(--gris);margin-bottom:8px}
.partage-btns{display:flex;flex-wrap:wrap;gap:8px}
.partage-btns .btn{min-height:40px}

/* Barre de contact fixe (mobile) */
.barre-contact{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:0;
  background:#fff;border-top:1px solid var(--bord);box-shadow:0 -3px 14px rgba(0,0,0,.10);
  padding:8px 10px;gap:10px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.barre-contact .bc-btn{flex:1;display:flex;align-items:center;justify-content:center;
  min-height:48px;border-radius:12px;font-weight:700;font-size:1rem}
.bc-wa{background:var(--corail);color:#fff}
.bc-wa:hover{background:#c22a5b;text-decoration:none}
.bc-tel{background:var(--bleu);color:#fff}
.bc-tel:hover{background:var(--bleu-fonce);text-decoration:none}
/* Espace bas pour ne pas masquer le contenu derrière la barre */
body:has(.barre-contact){padding-bottom:72px}
/* Masquée sur grand écran (le bloc contact latéral suffit) */
@media(min-width:720px){
  .barre-contact{display:none}
  body:has(.barre-contact){padding-bottom:0}
}

/* ============================================================
   GAINS RAPIDES : carrousel fiche, meublé, signalement, aperçu
   ============================================================ */

/* --- Carrousel de photos (fiche bien) — JS natif, zéro dépendance --- */
.carrousel{position:relative;border-radius:var(--rayon);overflow:hidden;
  background:var(--gris-clair);margin-bottom:14px;touch-action:pan-y}
.carrousel-piste{display:flex;transition:transform .35s ease;will-change:transform}
.carrousel-slide{flex:0 0 100%;aspect-ratio:16/10;background:var(--gris-clair)}
.carrousel-slide img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}
.carrousel-slide .placeholder{width:100%;height:100%;display:flex;align-items:center;
  justify-content:center;font-size:4rem;color:var(--bleu);
  background:linear-gradient(135deg,var(--bleu-clair),#dfeafb)}
.carrousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;
  border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--noir);
  font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;
  justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.carrousel-nav:hover{background:#fff}
.carrousel-prev{left:10px}.carrousel-suiv{right:10px}
.carrousel-compteur{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.66);
  color:#fff;font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:20px}
.carrousel-points{position:absolute;bottom:12px;left:0;right:0;display:flex;gap:6px;
  justify-content:center;pointer-events:none}
.carrousel-points span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.55)}
.carrousel-points span.actif{background:#fff;transform:scale(1.25)}

/* Puce meublé (fiche) */
.puce-meuble{display:inline-block;background:var(--bleu-clair);color:var(--bleu-fonce);
  font-weight:700;font-size:.8rem;padding:4px 10px;border-radius:20px;margin-left:6px}

/* --- Signalement d'annonce --- */
.signaler{margin-top:14px;text-align:center}
.signaler summary{cursor:pointer;color:var(--gris);font-size:.85rem;font-weight:600;
  list-style:none;display:inline-flex;align-items:center;gap:5px;min-height:40px}
.signaler summary::-webkit-details-marker{display:none}
.signaler[open] summary{color:var(--corail)}
.signaler .signaler-corps{text-align:left;margin-top:10px;background:var(--gris-clair);
  border-radius:12px;padding:14px}
.signaler select,.signaler textarea{width:100%;min-height:42px;padding:8px 10px;
  border:1.5px solid var(--bord);border-radius:10px;font:inherit;margin-bottom:8px}

/* --- Aperçu avant envoi (dépôt) --- */
.apercu{border:1.5px dashed var(--bleu,var(--bleu));border:1.5px dashed var(--bleu);
  border-radius:var(--rayon);padding:16px;margin-top:6px;background:var(--bleu-clair)}
.apercu h4{margin:0 0 4px;font-size:.85rem;color:var(--bleu-fonce);
  text-transform:uppercase;letter-spacing:.04em}
.apercu .ap-titre{font-weight:800;font-size:1.15rem;margin:6px 0 2px}
.apercu .ap-lieu{color:var(--gris);font-size:.92rem}
.apercu .ap-prix{font-size:1.2rem;font-weight:800;margin:8px 0}
.apercu .ap-prix .mois{font-size:.9rem;color:var(--gris);font-weight:600}
.apercu .ap-desc{white-space:pre-line;margin:8px 0 0}
.apercu .ap-photos{display:flex;gap:8px;overflow-x:auto;margin-top:10px}
.apercu .ap-photos img{width:96px;height:72px;object-fit:cover;border-radius:10px;flex:0 0 auto}

/* ---------- Bandeau d'annonce (réglable en admin) ---------- */
.bandeau-annonce{background:var(--bleu-fonce);color:#fff;font-size:.92rem;font-weight:600}
.bandeau-annonce .conteneur{padding:9px 16px;text-align:center}
/* ---------- Réseaux sociaux (pied de page) ---------- */
.pied-reseaux{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.pied-reseaux a{font-weight:600}
/* ---------- Panneau de réglages (admin) ---------- */
.reglage-bloc{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre);padding:20px;margin-top:18px}
.reglage-bloc h2{font-size:1.1rem;margin:0 0 6px}
.reglage-bloc .aide{color:var(--gris);font-size:.88rem;margin:0 0 14px}
.reglage-grille{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:720px){.reglage-grille.deux{grid-template-columns:1fr 1fr}}
.reglage-champ label{display:block;font-size:.85rem;font-weight:700;margin-bottom:6px}
.reglage-champ input,.reglage-champ textarea,.reglage-champ select{
  width:100%;min-height:44px;padding:10px 12px;border:1.5px solid var(--bord);
  border-radius:10px;font:inherit;background:#fff}
.reglage-champ textarea{min-height:90px;resize:vertical}
.reglage-inline{display:flex;align-items:center;gap:8px;min-height:44px}
.reglage-inline input{width:auto;min-height:auto}
.reglage-une-liste{display:grid;grid-template-columns:1fr;gap:8px;max-height:340px;overflow:auto;
  border:1px solid var(--bord);border-radius:10px;padding:12px}
@media(min-width:720px){.reglage-une-liste{grid-template-columns:1fr 1fr}}
.reglage-actions{position:sticky;bottom:0;background:var(--gris-clair);padding:16px 0;margin-top:18px}
