/* ============================================================
   MEUBLÉS (type Airbnb, en BLEU) — immobilier225
   Typographie DISTINCTIVE locale (Manrope, woff2 dans assets/fonts,
   licence OFL dans assets/fonts/LICENSE-manrope.txt). Aucun CDN.
   Accent = bleu de la marque (jamais le rouge « Airbnb » ; rouge = alertes).
   ============================================================ */

@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/manrope-600.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/manrope-700.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/manrope-800.woff2') format('woff2');}

.meubles-app{
  --m-bleu:#1f6fd6; --m-bleu-fonce:#1552a6; --m-bleu-clair:#eaf2fd;
  --m-encre:#1a2230; --m-gris:#6b7482; --m-bord:#e7ebf0; --m-fond:#fff;
  --m-ombre:0 6px 20px rgba(20,40,80,.08);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--m-encre);
  letter-spacing:-.01em;
}
.meubles-app h1,.meubles-app h2,.meubles-app h3{font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.15;}
.meubles-app .m-lead{color:var(--m-gris);font-weight:500;}

/* ---------- En-tête section ---------- */
.m-tete{padding:18px 0 8px;}
.m-tete h1{font-size:1.8rem;margin:0 0 4px;}
.m-tete p{margin:0;color:var(--m-gris);font-weight:500;}

/* ---------- Barre de filtres ---------- */
.m-filtres{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(6px);
  border-bottom:1px solid var(--m-bord);padding:12px 0;margin-bottom:8px;}
.m-filtres .m-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end;}
.m-filtres .m-f{display:flex;flex-direction:column;gap:4px;}
.m-filtres label{font-size:.74rem;font-weight:700;color:var(--m-gris);text-transform:uppercase;letter-spacing:.03em;}
.m-filtres input,.m-filtres select{min-height:44px;border:1.5px solid var(--m-bord);border-radius:12px;padding:8px 12px;
  font-family:inherit;font-size:.95rem;background:#fff;color:var(--m-encre);}
.m-filtres input:focus,.m-filtres select:focus{outline:2px solid var(--m-bleu);border-color:var(--m-bleu);}
.m-vue-bascule{display:inline-flex;border:1.5px solid var(--m-bord);border-radius:12px;overflow:hidden;}
.m-vue-bascule a{padding:10px 14px;min-height:44px;display:inline-flex;align-items:center;gap:6px;
  font-weight:700;color:var(--m-encre);text-decoration:none;background:#fff;}
.m-vue-bascule a.actif{background:var(--m-bleu);color:#fff;}
.m-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;
  border-radius:12px;border:0;background:var(--m-bleu);color:#fff;font-family:inherit;font-weight:700;font-size:.95rem;
  cursor:pointer;text-decoration:none;}
.m-btn:hover{background:var(--m-bleu-fonce);}
.m-btn.ghost{background:#fff;color:var(--m-encre);border:1.5px solid var(--m-bord);}
.m-chip{border:1.5px solid var(--m-bord);background:#fff;border-radius:999px;padding:8px 14px;min-height:40px;
  font-weight:700;font-size:.86rem;color:var(--m-encre);cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.m-chip.actif{background:var(--m-bleu);color:#fff;border-color:var(--m-bleu);}

/* ---------- Rangées horizontales (accueil) ---------- */
.m-rangee{margin:22px 0;}
.m-rangee-tete{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.m-rangee-tete h2{font-size:1.15rem;margin:0;}
.m-fleches{display:flex;gap:8px;}
.m-fleche{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--m-bord);background:#fff;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;color:var(--m-encre);}
.m-fleche:hover{border-color:var(--m-bleu);color:var(--m-bleu);}
.m-fleche:disabled{opacity:.35;cursor:default;}
.m-piste{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:16px;overflow-x:auto;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:6px;
  -ms-overflow-style:none;scrollbar-width:none;}
.m-piste::-webkit-scrollbar{display:none;}
.m-piste .mcard{scroll-snap-align:start;}

/* ---------- Carte annonce (vignette) : le BIEN d'abord, l'argent en petit ----------
   La PHOTO domine ; le prix reste discret (petit, gris, jamais en gras). */
.mcard{position:relative;background:var(--m-fond);border-radius:16px;text-decoration:none;color:inherit;display:block;
  transition:transform .25s ease, box-shadow .25s ease;}
.mcard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,40,80,.13);}
.mcard-photo{position:relative;aspect-ratio:4/3.4;border-radius:16px;overflow:hidden;background:var(--m-bleu-clair);box-shadow:var(--m-ombre);}
.mcard-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.6,.2,1);}
.mcard:hover .mcard-photo img{transform:scale(1.06);}
.mcard-vide{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:#9fb6d6;}
.mcard-badge{position:absolute;top:12px;left:12px;background:#fff;color:var(--m-encre);font-weight:800;font-size:.76rem;
  padding:6px 10px;border-radius:999px;box-shadow:var(--m-ombre);display:inline-flex;align-items:center;gap:5px;opacity:0;transform:translateY(-4px);transition:.25s;}
.mcard-badge svg{width:14px;height:14px;color:var(--m-bleu);}
.mcard-photo .mcard-badge{opacity:1;transform:none;} /* visible ; l'anim sert au survol des cartes sans badge */
.mcard-coeur{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.9);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--m-bleu);box-shadow:0 2px 8px rgba(20,40,80,.18);transition:transform .15s;}
.mcard-coeur:hover{transform:scale(1.12);}
.mcard-coeur svg{width:20px;height:20px;fill:none;stroke:var(--m-bleu);stroke-width:2.2;}
.mcard-coeur.actif svg{fill:var(--m-bleu);stroke:var(--m-bleu);}
.mcard-corps{padding:11px 3px 4px;}
.mcard-titre{font-weight:700;font-size:1.02rem;margin:0 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--m-encre);}
.mcard-sous{color:var(--m-encre);font-weight:600;font-size:.92rem;margin:2px 0;display:flex;align-items:center;gap:5px;}
.mcard-sous .ic{width:15px;height:15px;stroke:var(--m-gris);flex:none;}
.mcard-dispo{color:var(--m-gris);font-weight:500;font-size:.85rem;margin:1px 0;}
.mcard-tag{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;margin:5px 0 2px;padding:3px 9px;border-radius:999px;}
.mcard-tag .ic{width:13px;height:13px;flex:none;}
.mcard-tag.pro{background:var(--m-bleu-clair);color:var(--m-bleu-fonce);}
.mcard-tag.part{background:#f1f3f6;color:var(--m-gris);}
.mcard-bas{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;}
.mcard-prix{font-size:.82rem;color:var(--m-gris);font-weight:600;} /* PRIX DISCRET : petit, gris, jamais gras */
.mcard-prix .u{color:var(--m-gris);font-weight:500;}
.mcard-note{font-weight:700;font-size:.86rem;white-space:nowrap;display:inline-flex;align-items:center;gap:3px;color:var(--m-encre);}
.mcard-note svg{width:13px;height:13px;fill:var(--m-encre);color:var(--m-encre);}
.mcard-nb{color:var(--m-gris);font-weight:500;}
.mcard-nouveau{color:var(--m-bleu);font-weight:700;font-size:.82rem;}

/* ---------- Vue scindée liste + carte ---------- */
.m-split{display:grid;grid-template-columns:1fr;gap:0;}
.m-split-liste{padding:6px 0 30px;}
.m-grille2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.m-split-carte{display:none;}
@media(min-width:960px){
  .m-split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;}
  .m-split-carte{display:block;position:sticky;top:74px;height:calc(100vh - 90px);border-radius:16px;overflow:hidden;box-shadow:var(--m-ombre);}
  #m-map{width:100%;height:100%;}
}
#m-map{width:100%;height:60vh;border-radius:16px;}

/* Pastille de prix (marqueur carte, en bleu) */
.pin-prix{background:transparent;border:0;}
.pin-prix .bulle{background:#fff;color:var(--m-encre);font-family:'Manrope',sans-serif;font-weight:800;font-size:.82rem;
  padding:6px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(20,40,80,.28);border:1.5px solid #fff;white-space:nowrap;}
.pin-prix.actif .bulle,.pin-prix .bulle:hover{background:var(--m-bleu);color:#fff;border-color:var(--m-bleu);}
.mcard.surligne{outline:3px solid var(--m-bleu);outline-offset:3px;border-radius:18px;}

/* Repère bleu (pin de saisie) */
.pin-bleu{background:transparent;border:0;}
.pin-bleu-dot{display:block;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--m-bleu);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);}

/* Popup carte */
.m-pop{width:210px;}
.m-pop img{width:100%;height:120px;object-fit:cover;border-radius:10px;display:block;}
.m-pop .t{font-weight:700;margin:6px 0 2px;font-size:.92rem;}
.m-pop .s{color:var(--m-gris);font-size:.84rem;}
.m-pop .p{font-weight:800;margin-top:3px;}

/* ---------- Fiche meublé ---------- */
.mfiche h1{font-size:1.7rem;margin:14px 0 4px;}
.mfiche-sous{color:var(--m-gris);font-weight:600;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.mfiche-note{color:var(--m-encre);font-weight:700;display:inline-flex;align-items:center;gap:4px;}
.mfiche-note svg{width:15px;height:15px;fill:var(--m-encre);}
.m-galerie{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;border-radius:18px;overflow:hidden;margin:12px 0;position:relative;}
.m-galerie .g0{grid-row:1/3;}
.m-galerie img{width:100%;height:100%;object-fit:cover;display:block;min-height:120px;cursor:pointer;background:var(--m-bleu-clair);}
.m-galerie .g-plus{position:absolute;right:14px;bottom:14px;}
@media(max-width:720px){.m-galerie{grid-template-columns:1fr 1fr;}.m-galerie .g0{grid-row:auto;grid-column:1/3;}.m-galerie img:nth-child(n+4){display:none;}}
.mfiche-grille{display:grid;grid-template-columns:1fr;gap:26px;margin-top:18px;}
@media(min-width:900px){.mfiche-grille{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);}}
.mfiche-corps h2{font-size:1.2rem;margin:20px 0 8px;padding-top:18px;border-top:1px solid var(--m-bord);}
.mfiche-corps h2:first-child{border-top:0;padding-top:0;}
.m-faits{display:flex;flex-wrap:wrap;gap:16px;color:var(--m-encre);font-weight:600;}
.m-faits .f{display:inline-flex;align-items:center;gap:8px;}
.m-faits svg{width:22px;height:22px;stroke:var(--m-bleu);fill:none;stroke-width:1.8;}
.m-equip{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;}
.m-equip li{display:flex;align-items:center;gap:10px;font-weight:500;}
.m-equip svg{width:20px;height:20px;stroke:var(--m-bleu);fill:none;stroke-width:1.8;flex:none;}
.m-hote{display:flex;align-items:center;gap:14px;padding:14px 0;}
.m-hote .av{width:52px;height:52px;border-radius:50%;background:var(--m-bleu);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;}
.m-badgeh{display:inline-flex;align-items:center;gap:6px;background:var(--m-bleu-clair);color:var(--m-bleu-fonce);font-weight:700;
  padding:4px 10px;border-radius:999px;font-size:.82rem;}
.m-perle{display:flex;gap:10px;align-items:center;background:#fff;border:1.5px solid var(--m-bord);border-radius:14px;padding:12px 14px;margin:12px 0;font-weight:600;}
.m-perle svg{width:24px;height:24px;stroke:var(--m-bleu);fill:none;stroke-width:1.8;flex:none;}

/* Visite photo par pièce */
.m-visite{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;}
.m-visite figure{margin:0;}
.m-visite img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;cursor:pointer;background:var(--m-bleu-clair);}
.m-visite figcaption{font-weight:700;font-size:.86rem;margin-top:6px;}
.m-visite .cnt{color:var(--m-gris);font-weight:500;}
/* Vidéo courte MUETTE par pièce (aucun contrôle natif => jamais de son). */
.m-video-fig{margin:0;position:relative;}
.m-video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;cursor:pointer;background:#0b1524;display:block;}
.m-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.92);color:#123;font-size:1.2rem;line-height:1;
  display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px rgba(0,0,0,.35);}
.m-video-fig.en-lecture .m-video-play{opacity:0;pointer-events:none;transition:opacity .2s;}
.m-video-muet{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,.62);color:#fff;
  font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:20px;}

/* Encart réservation (sticky) */
.m-resa{border:1.5px solid var(--m-bord);border-radius:18px;padding:18px;box-shadow:var(--m-ombre);background:#fff;}
@media(min-width:900px){.m-resa{position:sticky;top:80px;}}
.m-resa .prix{font-size:1.35rem;font-weight:800;}
.m-resa .prix .u{color:var(--m-gris);font-weight:600;font-size:.95rem;}
.m-resa .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1.5px solid var(--m-bord);border-radius:12px;overflow:hidden;margin:12px 0;}
.m-resa .cell{padding:8px 12px;border-bottom:1.5px solid var(--m-bord);}
.m-resa .cell:nth-child(odd){border-right:1.5px solid var(--m-bord);}
.m-resa .cell:nth-last-child(-n+2){border-bottom:0;}
.m-resa .cell label{display:block;font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--m-gris);letter-spacing:.03em;}
.m-resa .cell input,.m-resa .cell select{border:0;padding:2px 0;font-family:inherit;font-size:.95rem;width:100%;background:transparent;color:var(--m-encre);min-height:26px;}
.m-resa .cell input:focus,.m-resa .cell select:focus{outline:none;}
.m-resa .m-btn{width:100%;font-size:1.02rem;padding:13px;}
.m-resa .note{color:var(--m-gris);font-size:.82rem;text-align:center;margin:10px 0 0;}
.m-detail-prix{margin-top:14px;font-weight:500;}
.m-detail-prix .l{display:flex;justify-content:space-between;padding:5px 0;color:var(--m-encre);}
.m-detail-prix .tot{border-top:1.5px solid var(--m-bord);margin-top:6px;padding-top:10px;font-weight:800;}
.m-info-relation{background:var(--m-bleu-clair);color:var(--m-bleu-fonce);border-radius:12px;padding:10px 12px;font-size:.84rem;font-weight:600;margin-top:12px;}

.m-vide{text-align:center;padding:50px 16px;color:var(--m-gris);}
.m-vide .ico{font-size:2.4rem;}
.m-attr{color:var(--m-gris);font-size:.72rem;text-align:right;padding:4px 2px;}
