/*
 * Immo by Femik — Frontend stylesheet
 * Palette : gris BG Immo · Inspiré Gemilli · Mobile-first · BEM
 */

/* ============================================================
   Variables
   ============================================================ */
:root,
.imf-single,
.imf-galerie,
.imf-card,
.imf-liste__grid {
  --imf-primary:        #2d2d2d;
  --imf-primary-dark:   #1a1a1a;
  --imf-primary-light:  #f0f0f0;
  --imf-accent:         #2d2d2d;
  --imf-text:           #1e1e1e;
  --imf-text-light:     #555555;
  --imf-muted:          #888888;
  --imf-border:         #e2e2e2;
  --imf-border-light:   #eeeeee;
  --imf-bg:             #f5f5f5;
  --imf-white:          #ffffff;
  --imf-radius:         6px;
  --imf-radius-lg:      10px;
  --imf-shadow-xs:      0 1px 3px rgba(0,0,0,.06);
  --imf-shadow:         0 2px 10px rgba(0,0,0,.07);
  --imf-shadow-md:      0 4px 20px rgba(0,0,0,.10);
  --imf-ease:           .2s ease;
  --imf-font:           system-ui,-apple-system,"Segoe UI",sans-serif;
  --imf-cols:           3;
}

/* ============================================================
   Utilitaires
   ============================================================ */
.sr-only {
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;
}

/* ============================================================
   Boutons
   ============================================================ */
.imf-btn {
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.7rem 1.5rem;border-radius:var(--imf-radius);
  font-size:.875rem;font-weight:600;text-decoration:none;
  cursor:pointer;transition:all var(--imf-ease);
  border:1.5px solid transparent;line-height:1.3;font-family:var(--imf-font);
  letter-spacing:.01em;
}
.imf-btn--primary   { background:var(--imf-primary);color:#fff;border-color:var(--imf-primary); }
.imf-btn--primary:hover { background:var(--imf-primary-dark);border-color:var(--imf-primary-dark);color:#fff; }
.imf-btn--secondary { background:transparent;color:var(--imf-primary);border-color:var(--imf-primary); }
.imf-btn--secondary:hover { background:var(--imf-primary);color:#fff; }

/* ============================================================
   Grille liste
   ============================================================ */
.imf-liste__grid { display:grid;grid-template-columns:1fr;gap:1.5rem; }
@media (min-width:640px)  { .imf-liste__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .imf-liste__grid { grid-template-columns:repeat(var(--imf-cols,3),1fr); } }
.imf-liste__empty {
  padding:3rem 2rem;text-align:center;color:var(--imf-muted);
  background:var(--imf-white);border-radius:var(--imf-radius-lg);
  border:2px dashed var(--imf-border);font-size:.95rem;
}

/* ============================================================
   Carte bien (liste)
   ============================================================ */
.imf-card {
  display:flex;flex-direction:column;
  background:var(--imf-white);border-radius:var(--imf-radius-lg);
  box-shadow:var(--imf-shadow);overflow:hidden;
  transition:box-shadow var(--imf-ease),transform var(--imf-ease);
  border:1px solid var(--imf-border-light);
}
.imf-card:hover { box-shadow:var(--imf-shadow-md);transform:translateY(-3px); }
.imf-card__media      { position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--imf-bg); }
.imf-card__media-link { display:block;height:100%; }
.imf-card__image      { width:100%;height:100%;object-fit:cover;transition:transform .45s ease; }
.imf-card:hover .imf-card__image { transform:scale(1.05); }
.imf-card__badge {
  position:absolute;top:.7rem;left:.7rem;
  padding:.28rem .7rem;border-radius:50px;
  font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
}
.imf-card__badge--statut    { background:rgba(45,45,45,.82);color:#fff; }
.imf-card__badge--nouveaute { background:rgba(16,185,129,.9);color:#fff; }
.imf-card__badge--baisse    { background:rgba(220,38,38,.9);color:#fff; }
.imf-card__badge--compromis { background:rgba(217,119,6,.9);color:#fff; }
.imf-card__badge--vendu     { background:rgba(107,114,128,.9);color:#fff; }
.imf-card__badge--coup-de-coeur { top:2.6rem;background:#d97706;color:#fff; }
.imf-card__badge--exclusivite   { top:4.5rem;background:var(--imf-primary);color:#fff; }
.imf-card__photo-count {
  position:absolute;bottom:.6rem;right:.6rem;
  background:rgba(0,0,0,.5);color:#fff;
  font-size:.68rem;padding:.2rem .55rem;border-radius:50px;
}
.imf-card__content   { padding:1.1rem 1.25rem;display:flex;flex-direction:column;flex:1; }
.imf-card__title     { font-size:.95rem;font-weight:700;margin:0 0 .3rem;line-height:1.35; }
.imf-card__title a   { color:var(--imf-text);text-decoration:none; }
.imf-card__title a:hover { color:var(--imf-primary); }
.imf-card__location  { font-size:.78rem;color:var(--imf-muted);margin:0 0 .6rem; }
.imf-card__price     { font-size:1.2rem;font-weight:800;color:var(--imf-primary);margin:0 0 .7rem; }
.imf-card__price--vendu { text-decoration:line-through;color:var(--imf-muted);font-size:1rem; }
.imf-card__specs {
  display:flex;gap:.5rem 1rem;list-style:none;
  margin:0 0 .7rem;padding:.65rem 0 0;flex-wrap:wrap;
  border-top:1px solid var(--imf-border-light);
}
.imf-card__spec       { display:flex;align-items:center;gap:.3rem;font-size:.78rem; }
.imf-card__spec-value { font-weight:700;color:var(--imf-text); }
.imf-card__dpe-ges { display:flex;gap:.6rem;margin:0 0 .8rem;align-items:center; }
.imf-card__dpe,
.imf-card__ges     { font-size:.72rem;font-weight:600;color:var(--imf-muted);display:flex;align-items:center;gap:.3rem; }
/* Icônes specs */
.imf-card__spec    { display:flex;align-items:center;gap:.3rem;font-size:.78rem; }
.imf-card__spec svg { color:var(--imf-muted);flex-shrink:0; }
/* Label DPE/GES vue liste */
.imf-dpe-label { display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:var(--imf-muted); }
.imf-card-liste__specs svg { color:var(--imf-muted);flex-shrink:0; }
.imf-card__cta {
  margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.4rem;
  padding:.6rem 1rem;background:var(--imf-primary);color:#fff;
  border-radius:var(--imf-radius);font-size:.82rem;font-weight:600;
  text-decoration:none;transition:background var(--imf-ease);
}
.imf-card__cta:hover { background:var(--imf-primary-dark);color:#fff; }

/* ============================================================
   Pastilles DPE/GES
   ============================================================ */
.imf-pastille {
  display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;min-height:28px;width:28px;height:28px;
  border-radius:4px;font-style:normal;font-weight:800;
  font-size:.85rem;line-height:1;flex-shrink:0;
}

/* ============================================================
   DPE compact
   ============================================================ */
.imf-dpe-compact {
  display:inline-flex;gap:1.5rem;
  padding:.9rem 1.1rem;background:var(--imf-white);
  border-radius:var(--imf-radius);border:1px solid var(--imf-border);
}
.imf-dpe-compact__item  { display:flex;flex-direction:column;align-items:center;gap:.35rem; }
.imf-dpe-compact__label { font-size:.65rem;font-weight:700;color:var(--imf-muted);text-transform:uppercase;letter-spacing:.06em; }
.imf-dpe-compact__valeur { font-size:.63rem;color:var(--imf-muted);text-align:center; }

/* ============================================================
   DPE détail accordéon
   ============================================================ */
.imf-dpe-detail {
  border:1px solid var(--imf-border);border-radius:var(--imf-radius);
  overflow:hidden;margin-top:1.5rem;background:var(--imf-white);
}
.imf-dpe-detail__toggle {
  width:100%;background:none;border:none;border-radius:0;
  padding:.8rem 1.1rem;font-size:.85rem;cursor:pointer;font-family:var(--imf-font);
  display:flex;justify-content:space-between;align-items:center;
  color:var(--imf-primary);font-weight:600;transition:background var(--imf-ease);
}
.imf-dpe-detail__toggle:hover { background:var(--imf-primary-light); }
.imf-dpe-detail__toggle[aria-expanded="true"] .imf-dpe-detail__arrow { transform:rotate(180deg); }
.imf-dpe-detail__arrow { transition:transform var(--imf-ease);display:inline-block; }
.imf-dpe-detail__body  { padding:1.1rem;border-top:1px solid var(--imf-border); }
.imf-dpe-scale { margin:.9rem 0;max-width:280px; }
.imf-dpe-scale__title { font-size:.68rem;font-weight:700;margin-bottom:.45rem;color:var(--imf-muted);text-transform:uppercase;letter-spacing:.06em; }
.imf-dpe-scale__row { display:flex;align-items:center;gap:.55rem;padding:.28rem .75rem;margin-bottom:2px;border-radius:3px;font-size:.8rem; }
.imf-dpe-scale__letter { font-weight:800;min-width:1.3rem; }
.imf-dpe-scale__row.is-current { font-weight:700;outline:2px solid rgba(0,0,0,.2);outline-offset:-1px; }
.imf-dpe-scale__cursor { font-size:.78rem; }
.imf-dpe-detail__couts,
.imf-dpe-detail__date,
.imf-dpe-detail__ademe  { font-size:.8rem;color:var(--imf-muted);margin:.45rem 0; }
.imf-dpe-detail__fg-mention {
  font-size:.8rem;background:#fffbeb;border:1px solid #f59e0b;
  border-radius:var(--imf-radius);padding:.7rem 1rem;margin:.7rem 0;line-height:1.5;
}

/* ============================================================
   Filtres
   ============================================================ */
.imf-filtres {
  display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;
  padding:1.1rem 1.4rem;background:var(--imf-white);
  border:1px solid var(--imf-border);border-radius:var(--imf-radius-lg);
  margin-bottom:1.75rem;align-items:flex-end;box-shadow:var(--imf-shadow);
}
.imf-filtres__group  { display:flex;flex-direction:column;gap:.28rem; }
.imf-filtres__label  { font-size:.68rem;font-weight:700;color:var(--imf-muted);text-transform:uppercase;letter-spacing:.06em; }
.imf-filtres__select {
  padding:.5rem .85rem;border:1px solid var(--imf-border);
  border-radius:var(--imf-radius);background:var(--imf-white);
  font-size:.855rem;min-width:130px;transition:border-color var(--imf-ease);
}
.imf-filtres__select:focus { border-color:var(--imf-primary);outline:none;box-shadow:0 0 0 3px rgba(45,45,45,.08); }
.imf-filtres__pieces { display:flex;gap:.3rem;flex-wrap:wrap; }
.imf-filtres__piece-btn {
  padding:.38rem .75rem;border:1.5px solid var(--imf-border);
  border-radius:50px;font-size:.78rem;cursor:pointer;
  background:var(--imf-white);transition:all var(--imf-ease);font-family:var(--imf-font);
}
.imf-filtres__piece-btn.is-active,
.imf-filtres__piece-btn:has(input:checked) {
  background:var(--imf-primary);color:#fff;border-color:var(--imf-primary);
}
.imf-filtres__submit {
  padding:.55rem 1.2rem;background:var(--imf-primary);color:#fff;
  border:1.5px solid var(--imf-primary);border-radius:var(--imf-radius);
  font-weight:700;cursor:pointer;font-size:.855rem;
  transition:all var(--imf-ease);font-family:var(--imf-font);
}
.imf-filtres__submit:hover { background:var(--imf-primary-dark); }
.imf-filtres__reset { font-size:.77rem;color:var(--imf-muted);text-decoration:underline;cursor:pointer;background:none;border:none;font-family:var(--imf-font); }
.imf-filtres__actions { display:flex;flex-direction:column;gap:.38rem; }

/* ============================================================
   Pagination
   ============================================================ */
.imf-pagination { margin:2.5rem 0; }
.imf-pagination__list { display:flex;gap:.35rem;flex-wrap:wrap;list-style:none;margin:0;padding:0;justify-content:center; }
.imf-pagination__link {
  display:flex;align-items:center;justify-content:center;
  min-width:2.4rem;height:2.4rem;padding:0 .55rem;
  border-radius:var(--imf-radius);border:1px solid var(--imf-border);
  background:var(--imf-white);color:var(--imf-text);
  text-decoration:none;font-size:.85rem;font-weight:600;
  transition:all var(--imf-ease);
}
.imf-pagination__link:hover,
.imf-pagination__link.is-current { background:var(--imf-primary);color:#fff;border-color:var(--imf-primary); }
.imf-pagination__item--ellipsis span { padding:0 .4rem;color:var(--imf-muted);line-height:2.4rem; }

/* ============================================================
   Barre de partage
   ============================================================ */
.imf-partage { display:flex;flex-wrap:wrap;gap:.5rem;align-items:center; }
.imf-partage__desktop { display:flex;flex-wrap:wrap;gap:.5rem; }
.imf-partage__btn {
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.48rem 1rem;border-radius:50px;
  font-size:.8rem;font-weight:600;cursor:pointer;
  text-decoration:none;transition:all var(--imf-ease);
  border:1.5px solid var(--imf-border);
  background:var(--imf-white);color:var(--imf-text);
  font-family:var(--imf-font);
}
.imf-partage__btn:hover { box-shadow:0 2px 8px rgba(0,0,0,.12); }
.imf-partage__btn--whatsapp { background:#25d366;color:#fff;border-color:#25d366; }
.imf-partage__btn--messenger { background:#0084ff;color:#fff;border-color:#0084ff; }
.imf-partage__btn--email     { background:var(--imf-primary);color:#fff;border-color:var(--imf-primary); }
.imf-partage__native { background:var(--imf-primary);color:#fff;border-color:var(--imf-primary);border-radius:50px; }
.imf-partage__toast  { padding:.38rem .85rem;background:#1e1e1e;color:#fff;border-radius:50px;font-size:.76rem; }

/* ============================================================
   Galerie — style Gemilli
   ============================================================ */
.imf-galerie { position:relative; }
.imf-galerie__main-wrap {
  position:relative;width:100%;background:#000;
  border-radius:var(--imf-radius-lg) var(--imf-radius-lg) 0 0;overflow:hidden;
}
.imf-galerie__main { display:block;width:100%;height:320px; }
@media (min-width:600px) { .imf-galerie__main { height:430px; } }
@media (min-width:960px) { .imf-galerie__main { height:530px; } }
.imf-galerie__main-img { width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s ease; }
.imf-galerie__strip-outer {
  display:flex;align-items:stretch;margin-top:3px;
  border-radius:0 0 var(--imf-radius-lg) var(--imf-radius-lg);overflow:hidden;background:#fff;
}
.imf-galerie__nav {
  flex:0 0 32px;display:flex;align-items:center;justify-content:center;
  background:#efefef;color:#1e1e1e;border:none;cursor:pointer;
  transition:background var(--imf-ease);z-index:1;
}
.imf-galerie__nav:hover  { background:#e0e0e0; }
.imf-galerie__nav:focus,
.imf-galerie__nav:focus-visible { outline:none;box-shadow:none; }
.imf-galerie__nav[hidden] { display:none; }
.imf-galerie__strip-viewport { flex:1;overflow:hidden; }
.imf-galerie__strip { display:flex;transition:transform .3s ease;will-change:transform;height:130px; }
@media (min-width:600px) { .imf-galerie__strip { height:155px; } }
.imf-galerie__thumb {
  flex:0 0 20%;overflow:hidden;position:relative;background:#e0e0e0;
  border:none !important;outline:none !important;padding:0;cursor:pointer;
  border-right:2px solid #fff !important;box-sizing:border-box;
}
.imf-galerie__thumb:last-child { border-right:none !important; }
.imf-galerie__thumb:focus,
.imf-galerie__thumb:focus-visible { outline:none;box-shadow:none; }
.imf-galerie__thumb-img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease; }
.imf-galerie__thumb:hover .imf-galerie__thumb-img { transform:scale(1.06); }
.imf-galerie__thumb.is-active::after {
  content:'';position:absolute;inset:0;
  border-bottom:4px solid #fff !important;background:rgba(255,255,255,.18);
  pointer-events:none;outline:none !important;box-shadow:none !important;
}

/* Lightbox */
.imf-lightbox {
  position:fixed;inset:0;z-index:99999;background:rgba(10,12,24,.96);
  display:flex;align-items:center;justify-content:center;flex-direction:column;
}
.imf-lightbox[hidden] { display:none; }
.imf-lightbox__img    { max-width:92vw;max-height:82vh;object-fit:contain;border-radius:3px; }
.imf-lightbox__img-wrap { display:flex;align-items:center;justify-content:center;flex:1;width:100%; }
.imf-lightbox__close,
.imf-lightbox__prev,
.imf-lightbox__next {
  position:absolute;background:rgba(255,255,255,.1);color:#fff;
  border:none;cursor:pointer;width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:background .15s;
}
.imf-lightbox__close { top:1.2rem;right:1.2rem; }
.imf-lightbox__prev  { left:1.2rem;top:50%;transform:translateY(-50%); }
.imf-lightbox__next  { right:1.2rem;top:50%;transform:translateY(-50%); }
.imf-lightbox__close:hover,
.imf-lightbox__prev:hover,
.imf-lightbox__next:hover { background:rgba(255,255,255,.25); }
.imf-lightbox__counter { color:#9ca3af;font-size:.78rem;margin:.65rem; }

/* Galerie shortcode compact */
.imf-galerie__grid {
  display:grid;grid-template-columns:repeat(var(--imf-cols,3),1fr);
  gap:.3rem;border-radius:var(--imf-radius-lg);overflow:hidden;
}
.imf-galerie__item { display:block;overflow:hidden;aspect-ratio:4/3;background:var(--imf-bg); }
.imf-galerie__img  { width:100%;height:100%;object-fit:cover;transition:transform .35s ease;display:block; }
.imf-galerie__item:hover .imf-galerie__img { transform:scale(1.05); }
.imf-galerie__count { display:block;font-size:.78rem;color:var(--imf-muted);margin-bottom:.45rem; }

/* ============================================================
   Single — structure générale
   ============================================================ */
.imf-single { background:var(--imf-bg); }
.imf-single__container { max-width:1160px;margin:0 auto;padding:1.75rem 1.25rem 3rem; }

/* Intro centrée */
.imf-single__intro { text-align:center;padding:2rem 1rem 1.5rem; }

/* Badge statut */
.imf-single__badge {
  display:inline-block;padding:.28rem .85rem;border-radius:50px;
  font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.9rem;
}
.imf-single__badge--disponible    { background:#e6f4ea;color:#186a2e;border:1px solid #a8d5b5; }
.imf-single__badge--nouveaute     { background:#e6f4ea;color:#186a2e;border:1px solid #a8d5b5; }
.imf-single__badge--baisse-de-prix{ background:#fef3c7;color:#92400e;border:1px solid #fcd34d; }
.imf-single__badge--sous-compromis{ background:#fef3c7;color:#92400e;border:1px solid #fcd34d; }
.imf-single__badge--vendu         { background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db; }

/* Barre méta */
.imf-single__meta-bar {
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:.3rem .75rem;font-size:.82rem;color:var(--imf-muted);margin-bottom:.85rem;
}
.imf-single__meta-loc  { display:flex;align-items:center;gap:.3rem; }
.imf-single__meta-prix { font-weight:800;font-size:1.05rem;color:var(--imf-primary); }
.imf-single__meta-ref  { font-size:.78rem;color:var(--imf-muted); }
.imf-single__meta-sep  { color:var(--imf-border);font-size:1.1rem; }

/* Titre H1 */
.imf-single__title {
  font-size:clamp(1.35rem,3.5vw,1.9rem);
  font-weight:800;margin:0;line-height:1.25;color:var(--imf-text);letter-spacing:-.01em;
}

/* Body main + sidebar */
.imf-single__body { display:grid;gap:1.75rem;align-items:start;margin-top:1.75rem; }
@media (min-width:960px) { .imf-single__body { grid-template-columns:1fr 320px; } }

/* Sections */
.imf-single__section {
  background:var(--imf-white);border:1px solid var(--imf-border-light);
  border-radius:var(--imf-radius-lg);padding:1.5rem;box-shadow:var(--imf-shadow-xs);
}
.imf-single__main > * + * { margin-top:1.1rem; }
.imf-single__section-title {
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  color:var(--imf-muted);margin:0 0 1.1rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--imf-border-light);
}

/* Description tronquée à 3 lignes */
.imf-single__description-body {
  font-size:.9rem;line-height:1.7;color:var(--imf-text-light);
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.imf-single__description-body.is-expanded {
  display:block;
  -webkit-line-clamp:unset;
}

/* Bouton Lire la suite — centré */
.imf-single__read-more {
  display:flex;align-items:center;justify-content:center;gap:.35rem;
  margin-top:.75rem;width:100%;
  padding:.65rem 1.5rem;
  background:var(--imf-primary-light);
  border-radius:var(--imf-radius);
  border:1px solid var(--imf-border) !important;
  font-size:.85rem;font-weight:600;
  color:var(--imf-primary);font-family:var(--imf-font);
  cursor:pointer;text-decoration:none;
  transition:all var(--imf-ease);
}
.imf-single__read-more:hover { background:var(--imf-primary) !important;color:#fff !important; }

/* Section partage */
.imf-single__section--partage { background:var(--imf-bg);border-color:var(--imf-border); }

/* ============================================================
   Bande icônes specs
   ============================================================ */
.imf-overview {
  display:flex;flex-wrap:wrap;border:1px solid var(--imf-border);
  border-radius:var(--imf-radius);overflow:hidden;margin-bottom:1.5rem;background:var(--imf-white);
}
.imf-overview__item {
  flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:.35rem;
  padding:.9rem .75rem;border-right:1px solid var(--imf-border);text-align:center;
}
.imf-overview__item:last-child { border-right:none; }
.imf-overview__icon  { color:var(--imf-text-light);display:flex;width:24px;height:24px; }
.imf-overview__icon svg { width:100%;height:100%; }
.imf-overview__value { font-size:.95rem;font-weight:800;color:var(--imf-text);line-height:1; }
.imf-overview__label { font-size:.65rem;color:var(--imf-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em; }

/* ============================================================
   Grille caractéristiques — 2 colonnes avec écart
   ============================================================ */
.imf-carac__grid { display:grid;grid-template-columns:1fr;gap:0; }
@media (min-width:600px) { .imf-carac__grid { grid-template-columns:1fr 1fr;column-gap:3rem; } }
.imf-carac__row {
  display:flex;align-items:baseline;gap:.5rem;
  padding:.52rem 0;border-bottom:1px solid var(--imf-border-light);font-size:.855rem;
}
.imf-carac__check { color:var(--imf-primary);flex-shrink:0;margin-top:.1rem; }
.imf-carac__label { color:var(--imf-text-light);flex:1; }
.imf-carac__label--equip { color:var(--imf-text);font-weight:500; }
.imf-carac__value { font-weight:700;color:var(--imf-text);white-space:nowrap; }

/* ============================================================
   Diagnostics DPE/GES — échelle horizontale style référence
   ============================================================ */
.imf-diag__row {
  display:grid;
  grid-template-columns:130px auto;
  grid-template-rows:auto auto;
  gap:.4rem 1rem;
  padding:.85rem 0;border-bottom:1px solid var(--imf-border-light);
  align-items:center;
}
.imf-diag__row:last-of-type { border-bottom:none; }
.imf-diag__valeur {
  grid-column:2;grid-row:2;
}

.imf-diag__label {
  display:flex;align-items:center;gap:.4rem;
  width:130px;flex-shrink:0;
  font-size:.82rem;font-weight:600;color:var(--imf-text);
}
.imf-diag__label svg { flex-shrink:0;color:var(--imf-muted); }

/* Bande de badges A→G */
.imf-diag__scale {
  display:flex;align-items:flex-end;gap:3px;
}

/* Badge normal */
.imf-diag__badge {
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:26px;
  border-radius:3px;
  font-size:.75rem;font-weight:800;
  line-height:1;
  transition:transform .15s ease;
}

/* Badge courant — plus grand, légèrement surélevé */
.imf-diag__badge--current {
  width:36px;height:38px;
  font-size:.95rem;
  border-radius:4px;
  position:relative;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
  transform:translateY(-4px);
  z-index:1;
}
/* Petite flèche en bas du badge courant */
.imf-diag__badge--current::after {
  content:'';
  position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  border:5px solid transparent;
  border-top-color:currentColor;
  opacity:.4;
}

.imf-diag__valeur {
  font-size:.75rem;color:var(--imf-muted);font-style:italic;
  grid-column:2;grid-row:2;
  padding-left:2px;
}
.imf-diag__couts {
  font-size:.78rem;color:var(--imf-muted);margin:.75rem 0 0;line-height:1.5;
}
.imf-diag__meta {
  font-size:.72rem;color:var(--imf-muted);margin:.5rem 0 0;
}

/* ============================================================
   Mentions légales
   ============================================================ */
.imf-single__section.imf-single__section--legal { background:var(--imf-bg);border:1px solid var(--imf-border); }
.imf-legal { font-size:.78rem;color:var(--imf-muted);line-height:1.6;padding:.35rem 0; }
.imf-legal a { color:var(--imf-primary); }
.imf-legal--fg {
  background:#fffbeb;border:1px solid #f59e0b;border-radius:var(--imf-radius);
  padding:.65rem .9rem;color:var(--imf-text);margin-top:.6rem;font-size:.8rem;line-height:1.5;
}
.imf-legal--triple-prix {
  background:var(--imf-primary-light);padding:.65rem .9rem;
  border-radius:var(--imf-radius);font-size:.82rem;
  border:1px solid var(--imf-border);margin-top:.4rem;
}

/* ============================================================
   Carte OSM / Leaflet
   ============================================================ */
.imf-map { border-radius:var(--imf-radius);overflow:hidden; }
.imf-map iframe { display:block; }
.imf-single__carte-hint { font-size:.76rem;color:var(--imf-muted);margin-bottom:.65rem;font-style:italic; }

/* ============================================================
   Sidebar contact
   ============================================================ */
.imf-contact-bloc {
  position:sticky;top:1.5rem;background:var(--imf-white);
  border:1px solid var(--imf-border);border-radius:var(--imf-radius-lg);
  overflow:hidden;box-shadow:var(--imf-shadow-md);
}
.imf-contact-bloc::before {
  content:'Nous contacter';display:block;
  font-size:.68rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--imf-white);
  background:var(--imf-primary);padding:.85rem 1.4rem;
}
.imf-contact-bloc__logo    { padding:1.25rem 1.4rem .5rem; }
.imf-contact-bloc__logo-img { max-height:52px;width:auto; }
.imf-contact-bloc__name    { font-size:.95rem;font-weight:800;margin:0 0 .25rem;color:var(--imf-text);padding:0 1.4rem; }
.imf-contact-bloc__adresse { font-style:normal;font-size:.78rem;color:var(--imf-muted);margin:0;line-height:1.5;padding:0 1.4rem; }
.imf-contact-bloc__actions { display:flex;flex-direction:column;gap:.55rem;padding:1.1rem 1.4rem 1.4rem; }
.imf-contact-bloc .imf-btn { justify-content:center;width:100%;padding:.75rem 1rem; }
.imf-contact-bloc__form { padding:1rem 1.4rem 1.4rem; }
.imf-contact-bloc__form .elementor-widget-container { margin:0; }
.imf-contact-bloc__form input,
.imf-contact-bloc__form textarea,
.imf-contact-bloc__form select {
  width:100% !important;font-size:.85rem !important;
  border:1px solid var(--imf-border) !important;
  border-radius:var(--imf-radius) !important;
  padding:.55rem .85rem !important;
  background:var(--imf-white) !important;
  color:var(--imf-text) !important;
  font-family:var(--imf-font) !important;
}
.imf-contact-bloc__form textarea { min-height:90px !important;resize:vertical !important; }

/* Mode grille/liste — masquage selon admin */
.imf-liste__view--hidden { display:none !important; }

/* ============================================================
   Vue liste — card horizontale 40/60
   ============================================================ */
.imf-card-liste {
  display:grid;grid-template-columns:40% 1fr;
  height:240px;                          /* hauteur fixe */
  background:var(--imf-white);border-radius:var(--imf-radius-lg);
  box-shadow:var(--imf-shadow);border:1px solid var(--imf-border-light);
  overflow:hidden;margin-bottom:1rem;
  transition:box-shadow var(--imf-ease);
}
@media (min-width:768px) { .imf-card-liste { height:260px; } }
.imf-card-liste:hover { box-shadow:var(--imf-shadow-md); }

.imf-card-liste__photo {
  display:block;overflow:hidden;position:relative;
  height:100%;background:var(--imf-bg);           /* photo = hauteur complète */
}
.imf-card-liste__photo img {
  width:100%;height:100%;object-fit:cover;display:block;  /* crop centré */
  transition:transform .4s ease;
}
.imf-card-liste:hover .imf-card-liste__photo img { transform:scale(1.04); }
.imf-card-liste__photo .imf-card__badge { top:.6rem;left:.6rem; }

.imf-card-liste__body {
  padding:1.25rem 1.5rem;
  display:flex;flex-direction:column;gap:.5rem;
}
.imf-card-liste__top {
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.3rem;
}
.imf-card-liste__loc {
  display:flex;align-items:center;gap:.3rem;
  font-size:.78rem;color:var(--imf-muted);
}
.imf-card-liste__ref { font-size:.7rem;color:var(--imf-muted); }
.imf-card-liste__title {
  font-size:1.05rem;font-weight:700;margin:0;line-height:1.3;
}
.imf-card-liste__title a { color:var(--imf-text);text-decoration:none; }
.imf-card-liste__title a:hover { color:var(--imf-primary); }
.imf-card-liste__desc {
  font-size:.85rem;line-height:1.6;color:var(--imf-text-light);
  margin:0;flex:1;
}
.imf-card-liste__specs {
  display:flex;gap:.5rem 1.25rem;list-style:none;
  margin:0;padding:.65rem 0;flex-wrap:wrap;
  border-top:1px solid var(--imf-border-light);
  font-size:.82rem;color:var(--imf-text-light);
}
.imf-card-liste__specs li { display:flex;align-items:center;gap:.3rem; }
.imf-card-liste__specs li::before { content:'·';color:var(--imf-border); }
.imf-card-liste__specs li:first-child::before { display:none; }
.imf-card-liste__footer {
  display:flex;align-items:center;justify-content:space-between;
  gap:.75rem;margin-top:auto;padding-top:.65rem;
  border-top:1px solid var(--imf-border-light);
}
.imf-card-liste__prix-wrap { display:flex;align-items:center;gap:.75rem; }
.imf-card-liste__prix {
  font-size:1.3rem;font-weight:900;color:var(--imf-primary);
  letter-spacing:-.02em;
}
.imf-card-liste__dpe { display:flex;gap:.3rem; }
.imf-card-liste__cta {
  padding:.55rem 1.1rem;background:var(--imf-primary);color:#fff;
  border-radius:var(--imf-radius);font-size:.82rem;font-weight:600;
  text-decoration:none;white-space:nowrap;transition:background var(--imf-ease);
  flex-shrink:0;
}
.imf-card-liste__cta:hover { background:var(--imf-primary-dark);color:#fff; }

@media (max-width:640px) {
  .imf-card-liste { grid-template-columns:1fr; }
  .imf-card-liste__photo { min-height:200px; }
}

/* ============================================================
   Barre sticky au scroll
   ============================================================ */
.imf-sticky-bar {
  position:fixed;top:0;left:0;right:0;z-index:9990;
  background:var(--imf-white);border-bottom:1px solid var(--imf-border);
  box-shadow:0 2px 12px rgba(0,0,0,.1);
  transform:translateY(-100%);transition:transform .3s ease;
  pointer-events:none;
}
.imf-sticky-bar.is-visible {
  transform:translateY(0);pointer-events:auto;
}
.imf-sticky-bar__inner {
  max-width:1160px;margin:0 auto;padding:.75rem 1.25rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
}
.imf-sticky-bar__title {
  flex:1;font-size:.9rem;font-weight:700;color:var(--imf-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.imf-sticky-bar__prix {
  font-size:1rem;font-weight:800;color:var(--imf-primary);white-space:nowrap;
}
.imf-sticky-bar__cta {
  padding:.5rem 1.25rem;background:var(--imf-primary);color:#fff;
  border-radius:var(--imf-radius);font-size:.82rem;font-weight:600;
  text-decoration:none;white-space:nowrap;transition:background var(--imf-ease);
}
.imf-sticky-bar__cta:hover { background:var(--imf-primary-dark);color:#fff; }

/* ============================================================
   Prix hero — plus grand et affirmé
   ============================================================ */
.imf-single__prix-hero {
  font-size:clamp(1.8rem,4vw,2.5rem);
  font-weight:600;color:var(--imf-primary);
  margin:.5rem 0 0;letter-spacing:-.03em;line-height:1;
}
.imf-single__prix-hero--consulter { color:var(--imf-muted);font-size:1.5rem; }

/* ============================================================
   Section "Autres biens"
   ============================================================ */
.imf-autres-biens {
  background:var(--imf-bg);border-top:1px solid var(--imf-border);
  padding:3rem 0;margin-top:3rem;
}
.imf-autres-biens__inner {
  max-width:1160px;margin:0 auto;padding:0 1.25rem;
}
.imf-autres-biens__title {
  font-size:1.1rem;font-weight:800;color:var(--imf-text);
  text-align:center;margin:0 0 2rem;
  letter-spacing:-.01em;
}

/* ============================================================
   Reset HelloElementor #c36 — galerie, lightbox, partage, lire la suite
   ============================================================ */
.imf-galerie button,
.imf-galerie [type=button] {
  border:none !important;color:inherit !important;background-color:inherit !important;
}
.imf-galerie button:hover,
.imf-galerie button:focus,
.imf-galerie [type=button]:hover,
.imf-galerie [type=button]:focus {
  background-color:inherit !important;color:inherit !important;text-decoration:none !important;
}
.imf-galerie__nav { background-color:#efefef !important;color:#1e1e1e !important;border:none !important; }
.imf-galerie__nav:hover { background-color:#e0e0e0 !important;color:#1e1e1e !important; }
.imf-galerie .imf-galerie__count-btn {
  background-color:rgba(0,0,0,.52) !important;border:none !important;
  width:auto !important;position:absolute !important;
  bottom:.85rem !important;left:.85rem !important;display:inline-flex !important;
}
.imf-galerie .imf-galerie__count-btn:hover { background-color:rgba(0,0,0,.7) !important; }
.imf-galerie .imf-galerie__count-btn,
.imf-galerie .imf-galerie__count-btn:hover,
.imf-galerie .imf-galerie__count-btn:focus,
.imf-galerie .imf-galerie__count-btn:visited { color:#fff !important; }
.imf-lightbox button { border:none !important;color:#fff !important;background-color:rgba(255,255,255,.1) !important; }
.imf-lightbox button:hover { background-color:rgba(255,255,255,.25) !important;color:#fff !important; }

/* Bouton Filtrer */
.imf-filtres .imf-filtres__submit { background-color:var(--imf-primary) !important;color:#fff !important;border-color:var(--imf-primary) !important; }
.imf-filtres .imf-filtres__submit:hover { background-color:var(--imf-primary-dark) !important;border-color:var(--imf-primary-dark) !important; }

/* Bouton copier le lien */
.imf-partage .imf-partage__btn--copy { background:var(--imf-white) !important;color:var(--imf-text) !important;border:1.5px solid var(--imf-border) !important; }
.imf-partage .imf-partage__btn--copy:hover { background:var(--imf-primary-light) !important;color:var(--imf-primary) !important;border-color:var(--imf-primary) !important; }

/* Bouton Lire la suite */
.imf-single__read-more:focus { outline:none !important;box-shadow:none !important; }
button.imf-single__read-more { border:1px solid var(--imf-border) !important;background:var(--imf-primary-light) !important;width:100% !important; }
button.imf-single__read-more:hover { background:var(--imf-primary) !important;color:#fff !important; }
