/* ════════════════════════════════════════════════
   Fiche camping
   ════════════════════════════════════════════════ */
.fiche-gallery { padding-top: 16px; margin-bottom: 22px; }
.fiche-gallery { display: flex; gap: 12px; flex-wrap: wrap; }
.fiche-gallery__main {
  flex: 2 1 360px; min-height: 340px; border-radius: 18px; position: relative; overflow: hidden;
  background: repeating-linear-gradient(135deg, #cfe0d4 0 20px, #c4d9ca 20px 40px);
}
/* Les photos sont servies en <img> (et non en background) : rendu net, image indexable
   par Google Images, et le navigateur peut choisir la meilleure définition disponible. */
.fiche-gallery__main img, .fiche-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fiche-gallery__thumbs { flex: 1 1 200px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; min-width: 180px; }
.fiche-thumb { border-radius: 14px; min-height: 160px; position: relative; overflow: hidden; background: repeating-linear-gradient(135deg, #dbe6df 0 16px, #d0ddd5 16px 32px); display: flex; align-items: center; justify-content: center; }
.fiche-thumb .more { position: absolute; background: rgba(27,42,34,.78); color: #fff; font-size: 14px; font-weight: 800; padding: 6px 12px; border-radius: 999px; }
.fiche-thumb--empty { background: repeating-linear-gradient(135deg, #e8e6df 0 16px, #e0ded6 16px 32px); }
.ph-label { position: absolute; bottom: 12px; left: 14px; background: rgba(27,42,34,.78); color: #fff; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 8px; z-index: 1; }
a.fiche-gallery__main, a.fiche-thumb { cursor: pointer; text-decoration: none; transition: filter .15s; }
a.fiche-gallery__main:hover, a.fiche-thumb:hover { filter: brightness(.94); }
.gallery-count { position: absolute; bottom: 12px; right: 14px; display: inline-flex; align-items: center; gap: 6px; background: rgba(27,42,34,.8); color: #fff; font-size: 14px; font-weight: 700; padding: 7px 13px; border-radius: 999px; z-index: 1; }
.gallery-count svg { width: 15px; height: 15px; }

/* Lightbox — colonne : zone image flexible (prend tout l'espace dispo, donc la photo
   s'affiche à sa taille maximale) + compteur + bande de miniatures scrollable. */
.lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(15,26,20,.94); display: flex; flex-direction: column; align-items: center; }
.lightbox[hidden] { display: none; }
.lightbox__stage { flex: 1 1 auto; min-height: 0; width: 100%; box-sizing: border-box; padding: 70px 90px; display: flex; align-items: center; justify-content: center; position: relative; }
.lightbox__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.lightbox__close, .lightbox__nav { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.lightbox__close { top: 20px; right: 20px; width: 46px; height: 46px; z-index: 2; }
.lightbox__nav { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; }
.lightbox__nav--prev { left: 18px; }
.lightbox__nav--next { right: 18px; }
.lightbox__close:hover, .lightbox__nav:hover { background: rgba(255,255,255,.25); }
.lightbox__close svg { width: 24px; height: 24px; }
.lightbox__nav svg { width: 26px; height: 26px; }
.lightbox__counter { flex: 0 0 auto; color: #fff; font-weight: 700; font-size: 15px; background: rgba(255,255,255,.12); padding: 5px 14px; border-radius: 999px; margin-bottom: 10px; }
.lightbox__thumbs { flex: 0 0 auto; width: 100%; max-width: 100%; box-sizing: border-box; display: flex; gap: 8px; padding: 0 24px 22px; overflow-x: auto; scrollbar-width: thin; }
.lightbox__thumbs:empty { display: none; }
.lightbox__thumb { flex: 0 0 auto; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; cursor: pointer; background: none; opacity: .5; line-height: 0; transition: opacity .15s, border-color .15s; }
.lightbox__thumb img { display: block; width: 92px; height: 64px; object-fit: cover; }
.lightbox__thumb:hover { opacity: .85; }
.lightbox__thumb.is-active { opacity: 1; border-color: #fff; }
@media (max-width: 600px) {
  .lightbox__stage { padding: 60px 16px; }
  .lightbox__nav { width: 42px; height: 42px; }
  .lightbox__nav--prev { left: 8px; }
  .lightbox__nav--next { right: 8px; }
  .lightbox__thumb img { width: 62px; height: 44px; }
}

/* ── Entête : titre + localisation + note globale ── */
.fiche-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-top: 26px; flex-wrap: wrap; }
.fiche-head__main { min-width: 0; }
.fiche-title { font-weight: 800; font-size: 38px; margin: 0 0 10px; color: var(--vert-fonce); line-height: 1.15; }
.fiche-title__stars { color: var(--orange); font-size: 30px; letter-spacing: 2px; margin-left: 6px; white-space: nowrap; }
.fiche-title__premium { display: inline-flex; align-items: center; gap: 4px; vertical-align: middle; margin-left: 10px; padding: 4px 12px; border-radius: 999px; background: var(--orange); color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; }
.fiche-title__premium svg { width: 14px; height: 14px; }
.fiche-place { display: flex; align-items: flex-start; gap: 9px; margin: 0; font-size: 16.5px; color: var(--texte-secondaire); }
.fiche-place strong { display: block; color: var(--texte-principal); font-weight: 700; }
.fiche-place__ico { flex: 0 0 auto; }
.fiche-place__ico svg { width: 20px; height: 20px; color: var(--vert-primaire); }
.fiche-place__link { color: var(--vert-primaire); font-weight: 600; font-size: 15.5px; text-decoration: underline; }
.fiche-head__note { text-align: center; flex: 0 0 auto; }
.fiche-brand { display: inline-flex; align-items: center; margin-top: 12px; text-decoration: none; opacity: .9; transition: opacity .15s; }
.fiche-brand:hover { opacity: 1; }
.fiche-brand img { height: 48px; width: auto; max-width: 210px; object-fit: contain; display: block; }
.note-pill { display: inline-flex; align-items: center; gap: 7px; background: var(--vert-primaire); color: #fff; font-family: 'Bitter', serif; font-weight: 800; font-size: 26px; padding: 8px 20px; border-radius: 999px; text-decoration: none; }
.note-pill svg { width: 20px; height: 20px; }
.note-pill--sm { font-size: 18px; padding: 5px 14px; }
.note-pill--sm svg { width: 15px; height: 15px; }
.note-pill__count { display: block; margin-top: 6px; font-size: 14.5px; color: var(--vert-primaire); }

/* Bandeau des points forts, juste sous l'entête */
.fiche-highlights { display: flex; flex-wrap: wrap; gap: 10px 28px; background: var(--vert-pale); border-radius: 14px; padding: 16px 22px; margin: 18px 0; }
.fiche-highlight { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; font-size: 16px; color: var(--vert-fonce); }
.fiche-highlight svg { width: 22px; height: 22px; color: var(--vert-primaire); flex: 0 0 auto; }

/* Partage main/aside par défaut (jusqu'à 1740px) : le bloc devis vit DANS le conteneur,
   à côté de la colonne principale — pas assez de marge disponible pour le sortir à côté. */
.fiche-body { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; padding-top: 22px; padding-bottom: 12px; }

/* Sans min-width:0, la colonne 1fr prend la largeur de son contenu le plus large
   (la bande de photos en overflow-x) et fait deborder toute la page. */
.fiche-body > .fiche-main { min-width: 0; }

/* Écran large : le bloc "Sur devis" sort du conteneur standard et se place dans la marge
   droite de la page, en sticky. La colonne principale (description, locatifs, équipements...)
   garde alors EXACTEMENT la même largeur que les autres sections du site (galerie, en-tête,
   fil d'Ariane) au lieu de la partager avec l'aside : .fiche-body devient pleine largeur et
   se découpe en 5 pistes — marge gauche calculée / colonne principale (= --container-max,
   comme .container) / gouttière / aside (340px) / reste à droite. En dessous du seuil, pas
   assez de marge disponible pour loger 340px + gouttière après le conteneur standard : on
   retombe sur le partage classique 1fr/340px ci-dessus. Seuil calculé pour garder au moins
   ~40px de marge réelle à droite de l'aside à 1740px de large (cf. --ui-zoom : les % se
   corrigent tout seuls avec le zoom, contrairement à vw/vh — pas de calcul supplémentaire ici). */
@media (min-width: 1740px) {
  .fiche-body.container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: calc((100% - var(--container-max)) / 2) var(--container-max) 32px 340px 1fr;
    gap: 0;
  }
  .fiche-body > .fiche-main { grid-column: 2; min-width: 0; padding: 0 var(--container-padding); }
  .fiche-body > .fiche-aside { grid-column: 4; }
}
.badge-stars { background: var(--vert-pale); color: var(--vert-primaire); font-size: 14px; font-weight: 800; padding: 4px 10px; border-radius: 7px; }
.fiche-h2 { font-weight: 700; font-size: 22px; margin: 26px 0 12px; color: #28332c; }
.fiche-h2__count { font-size: 15px; font-weight: 600; color: var(--texte-secondaire); }
.fiche-para { margin: 0 0 14px; line-height: 1.7; font-size: 17.5px; color: #454f48; }
.fiche-para:last-child { margin-bottom: 0; }

/* Description repliée : le texte reste entier dans le HTML (indexable), seul l'affichage est limité */
.fiche-desc.is-clamped { max-height: 190px; overflow: hidden; position: relative; }
.fiche-desc.is-clamped::after { content: ''; position: absolute; inset: auto 0 0 0; height: 70px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); }
.fiche-more { margin-top: 12px; background: none; border: 0; padding: 0; font: inherit; font-weight: 800; font-size: 16px; color: var(--vert-primaire); text-decoration: underline; cursor: pointer; }
.fiche-more:hover { color: var(--vert-fonce); }

/* Sections regroupées en carte blanche */
.fiche-card { background: #fff; border: 1px solid var(--bordure); border-radius: var(--radius-card); padding: 26px 28px; margin: 0 0 22px; box-shadow: var(--shadow-card); scroll-margin-top: 90px; }
.fiche-card .fiche-h2:first-child { margin-top: 0; }

/* Rubrique dont la donnée n'a pas encore été collectée */
.fiche-pending { background: var(--blanc-casse); border: 1px dashed var(--bordure-input); border-radius: 14px; padding: 20px 22px; }
.fiche-pending p { margin: 0; color: var(--texte-secondaire); font-size: 16px; line-height: 1.6; }
.fiche-pending__tag { display: inline-block; background: #FBF1E3; color: #B5762B; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 4px 11px; border-radius: 999px; margin-bottom: 10px; }
.fiche-pending__hint { margin-top: 8px !important; font-size: 15px !important; }

/* ── Rangée de photos sous la présentation ── */
.fiche-photostrip { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.fiche-photostrip__item { flex: 0 0 auto; scroll-snap-align: start; height: 160px; width: 220px; border-radius: 12px; overflow: hidden; display: block; cursor: pointer; }
.fiche-photostrip__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .15s; }
.fiche-photostrip__item:hover img { filter: brightness(.92); }

/* ── Les locatifs ── */
.locatifs { display: flex; flex-direction: column; gap: 18px; }
.locatif { display: grid; grid-template-columns: 300px 1fr 220px; gap: 0; border: 1px solid var(--bordure); border-radius: 14px; overflow: hidden; background: #fff; }
.locatif__media { position: relative; background: var(--beige-fond); min-height: 210px; }
.locatif__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.locatif__media--empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.locatif__media--empty svg { width: 34px; height: 34px; color: var(--texte-gris-clair); }
.locatif__media-cta { position: absolute; left: 50%; transform: translateX(-50%); bottom: 14px; background: var(--vert-primaire); color: #fff; font-weight: 700; font-size: 15px; padding: 9px 20px; border-radius: 999px; text-decoration: none; white-space: nowrap; }
.locatif__media-cta:hover { background: var(--vert-fonce); }
.locatif__body { padding: 20px 24px; min-width: 0; }
.locatif__title { font-size: 19px; font-weight: 800; margin: 0 0 10px; color: var(--vert-fonce); line-height: 1.3; }
.locatif__cap { display: flex; align-items: center; gap: 7px; margin: 0 0 12px; font-size: 16px; font-weight: 600; color: var(--texte-secondaire); }
.locatif__cap svg { width: 17px; height: 17px; color: var(--vert-primaire); }
.locatif__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.locatif__chip { border: 1px solid var(--bordure-input); border-radius: 8px; padding: 5px 11px; font-size: 14.5px; font-weight: 600; color: var(--texte-secondaire); }
.locatif__chip--more { color: var(--texte-gris-clair); border-style: dashed; }
.locatif__price { border-left: 1px solid var(--bordure); padding: 20px 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.locatif__price-label { margin: 0; font-size: 14.5px; font-weight: 600; color: var(--texte-secondaire); }
.locatif__price-value { margin: 0 0 8px; font-family: 'Bitter', serif; font-weight: 800; font-size: 27px; color: var(--vert-fonce); display: inline-flex; align-items: center; gap: 8px; }
.locatif__price-value svg { width: 20px; height: 20px; }
@media (max-width: 900px) {
  .locatif { grid-template-columns: 1fr; }
  .locatif__media { min-height: 200px; }
  .locatif__price { border-left: none; border-top: 1px solid var(--bordure); }
}

/* ── FAQ ── */
.faq { border-top: 1px solid var(--bordure); }
.faq__item { border-bottom: 1px solid var(--bordure); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 2px; font-weight: 700; font-size: 16.5px; color: var(--vert-fonce); cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q svg { width: 18px; height: 18px; color: var(--vert-primaire); flex: 0 0 auto; transition: transform .15s; }
.faq__item[open] .faq__q svg { transform: rotate(90deg); }
.faq__a { margin: 0 0 16px; font-size: 16px; line-height: 1.65; color: #454f48; }

.equip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.equip-item { display: flex; align-items: center; gap: 11px; background: var(--blanc-casse); border: 1px solid var(--bordure); border-radius: 12px; padding: 13px 14px; }
.equip-item__ico { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; background: var(--vert-pale); border-radius: 9px; flex: 0 0 auto; }
.equip-item__ico svg { width: 19px; height: 19px; color: var(--vert-primaire); }
.equip-item__label { font-weight: 700; font-size: 15.5px; color: var(--texte-principal); }

.fiche-map { border-radius: 16px; overflow: hidden; height: 520px; border: 1px solid #DCE4DD; z-index: 0; position: relative; isolation: isolate; }
.fiche-map__addr { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; font-size: 15.5px; font-weight: 600; color: var(--texte-secondaire); line-height: 1.5; }
.fiche-map__addr svg { margin-top: 2px; }
.fiche-map__addr svg { width: 15px; height: 15px; color: var(--vert-primaire); }
@media (max-width: 880px) { .fiche-map { height: 380px; } }

/* Liserés blancs aux jonctions des tuiles OpenStreetMap. Deux causes cumulées, déjà
   corrigées sur /carte (carte.css) mais cette feuille n'est pas chargée sur la fiche :
   1) Leaflet applique mix-blend-mode sur les tuiles, ce qui fait ressortir les jointures ;
   2) l'arrondi sous-pixel des positions laisse un trait d'un pixel — les tuiles sont donc
   dessinées en 258 px au lieu de 256 pour se chevaucher légèrement. */
.leaflet-container img.leaflet-tile { mix-blend-mode: normal !important; width: 258px !important; height: 258px !important; }

.fiche-aside { position: sticky; top: 88px; background: #fff; border: 1px solid var(--bordure); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-elevated); }
.fiche-aside__from { margin: 0 0 4px; font-size: 15px; color: var(--texte-secondaire); font-weight: 600; }
.fiche-aside__price { margin: 0 0 18px; font-family: 'Bitter', serif; font-weight: 800; font-size: 32px; color: var(--vert-fonce); }
.fiche-aside__price span { font-size: 16px; font-weight: 600; color: var(--texte-secondaire); font-family: 'Mulish', sans-serif; }
.fiche-aside__contacts { display: flex; flex-direction: column; gap: 11px; margin-bottom: 18px; }
.fiche-aside__contacts a { text-decoration: none; display: flex; align-items: center; gap: 11px; color: var(--texte-principal); font-weight: 700; font-size: 16.5px; }
.ico-box { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; background: var(--vert-pale); border-radius: 9px; flex: 0 0 auto; }
.ico-box svg { width: 17px; height: 17px; color: var(--vert-primaire); }
.fiche-aside__note { text-align: center; margin: 14px 0 0; font-size: 14px; color: var(--texte-gris-clair); font-weight: 600; }

@media (max-width: 880px) {
  .fiche-body { grid-template-columns: 1fr; }
  .fiche-aside { position: static; }
  .fiche-title { font-size: 30px; }
  .fiche-title__stars { font-size: 24px; }
  .fiche-title__premium { font-size: 12px; padding: 3px 10px; }
}

/* Bouton désactivé (ex: "Demander un devis", en attente de réactivation) */
.btn--disabled {
  opacity: .45;
  filter: grayscale(1);
  cursor: not-allowed;
  pointer-events: none;
  user-select: none;
}
.btn--disabled small { font-weight: 600; font-size: 13px; }

/* Telephone non-cliquable (plans tarifaires) */
.fiche-aside__notclick { display: flex; align-items: center; gap: 11px; color: var(--texte-principal); font-weight: 700; font-size: 16.5px; cursor: default; }
.fiche-aside__addr { line-height: 1.4; }
/* Adresse : sur 2 lignes (rue / cp+ville), icône alignée en haut plutôt que centrée */
.fiche-aside__contacts a, .fiche-aside__contacts .fiche-aside__notclick { align-items: flex-start; }

/* Badge "vérifié le xx/xx/xxxx" (auto-certification gérant) */
.badge-recent { display: inline-flex; align-items: center; gap: 6px; background: #EAF2FB; color: #1D5A96; font-size: 14.5px; font-weight: 800; padding: 6px 12px; border-radius: 999px; margin: 0 0 14px; }
.badge-recent svg { width: 14px; height: 14px; }

/* Avertissement "non vérifié récemment" : en bas de fiche, en note discrète */
.verif-warning { display: flex; align-items: center; gap: 8px; background: #FBF1E3; color: #B5762B; font-size: 14.5px; font-weight: 600; padding: 10px 14px; border-radius: 12px; margin: 0 0 18px; line-height: 1.4; }
.verif-warning svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Fiche sans photo : illustration regionale (le libelle precise que ce n'est pas l'etablissement). */
.fiche-gallery__main--illus .ph-label { max-width: calc(100% - 28px); line-height: 1.35; }

/* Bandeau "vous gérez cet établissement ?" */
.fiche-claim { padding: 8px 0 56px; }
.fiche-claim__box { background: var(--vert-fonce); border-radius: var(--radius-card); padding: 32px 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.fiche-claim__title { color: #fff; font-size: 21px; font-weight: 800; margin: 0 0 6px; }
.fiche-claim__text { color: #D9E4DC; font-size: 15.5px; margin: 0; max-width: 560px; line-height: 1.5; }
.fiche-claim__box .btn { flex-shrink: 0; }
@media (max-width: 640px) { .fiche-claim__box { padding: 26px; } }

/* Date de derniere mise a jour des informations (bas du contenu de la fiche). */
.fiche-maj { margin: 26px 0 0; font-size: 14.5px; color: var(--texte-secondaire); }

/* Autres campings du departement : vignettes photo + nom sous les campings proches (06/10/2026). */
.fiche-dept { padding-top: 0; }
.fiche-dept__titre { font-size: 20px; margin: 0 0 4px; }
.fiche-dept__intro { margin: 0 0 14px; color: var(--texte-secondaire, #55685e); }
.fiche-dept__liste { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px 16px; }
.fiche-dept__item { display: flex; flex-direction: column; gap: 3px; text-decoration: none; color: inherit; }
.fiche-dept__media { position: relative; display: block; aspect-ratio: 400 / 274; border-radius: 10px; overflow: hidden; background: var(--vert-pale); margin-bottom: 5px; }
.fiche-dept__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.fiche-dept__item:hover .fiche-dept__media img { transform: scale(1.04); }
.fiche-dept__illus { position: absolute; left: 6px; bottom: 6px; background: rgba(0,0,0,.55); color: #fff; font-size: 11px; padding: 2px 6px; border-radius: 5px; }
.fiche-dept__nom { color: var(--vert-primaire); font-weight: 700; font-size: 15px; line-height: 1.3; }
.fiche-dept__item:hover .fiche-dept__nom { text-decoration: underline; }
.fiche-dept__ville { color: var(--texte-secondaire); font-size: 13.5px; }

/* ── Essai style Airbnb, fiche de test seulement (.fiche-v2) ── */
.fiche-v2 .fiche-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; border-radius: 14px; overflow: hidden; position: relative; height: 440px; padding-top: 0; margin-top: 16px; }
.fiche-v2 .fiche-gallery__main { position: static; border-radius: 0; min-height: 0; height: 100%; }
.fiche-v2 .fiche-gallery__thumbs { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; min-width: 0; height: 100%; }
.fiche-v2 .fiche-thumb { border-radius: 0; min-height: 0; }
.fiche-v2 .fiche-thumb .more { display: none; }
.fiche-v2 .gallery-count { bottom: 18px; right: 18px; background: #fff; color: #222; border: 1px solid #222; border-radius: 8px; font-size: 14px; font-weight: 600; padding: 7px 14px; }
.fiche-v2 .gallery-count svg { color: #222; }
.fiche-v2 .fiche-map { border: 0; border-radius: 14px; height: 480px; }
.fiche-v2 .fiche-map .leaflet-tile-pane { filter: saturate(.55) brightness(1.06) contrast(.92); }
.fiche-v2 .cmc-home { display: flex; width: 48px; height: 48px; border-radius: 50%; background: #222; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.fiche-v2 .fiche-map .leaflet-bar { border: 0 !important; box-shadow: none !important; display: flex; flex-direction: column; gap: 0; border-radius: 999px !important; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.18) !important; overflow: hidden; }
.fiche-v2 .fiche-map .leaflet-bar a { width: 40px !important; height: 40px !important; line-height: 40px !important; border: 0 !important; font-size: 20px; color: #222; background: #fff; }
.fiche-v2 .fiche-map .leaflet-top.leaflet-right { margin: 6px; }
.fiche-v2 .fiche-map .leaflet-control-attribution { background: rgba(255,255,255,.7); font-size: 10px; }
@media (max-width: 880px) {
  .fiche-v2 .fiche-gallery { grid-template-columns: 1fr; height: 300px; }
  .fiche-v2 .fiche-gallery__thumbs { display: none; }
  .fiche-v2 .fiche-map { height: 340px; }
}
/* Fond blanc uni, sections sans cadre séparées par un trait fin (essai fiche-v2) */
.fiche-v2-top .fiche-gallery { margin: 8px 0 0; }
.fiche-v2.fiche-body { padding-top: 8px; gap: 64px; }
@media (min-width: 1740px) { .fiche-v2.fiche-body.container { gap: 0; } }
.fiche-v2 .fiche-card { background: none; border: 0; border-bottom: 1px solid #EBEBEB; border-radius: 0; box-shadow: none; padding: 32px 0; margin: 0; }
.fiche-v2 .fiche-card:last-of-type { border-bottom: 0; }
.fiche-v2 .fiche-h2 { font-size: 22px; font-weight: 700; color: #222; margin-bottom: 18px; }
.fiche-v2 .fiche-highlights { background: none; border-radius: 0; padding: 24px 0; margin: 0; border-bottom: 1px solid #EBEBEB; }
.fiche-v2 .fiche-desc.is-clamped::after { background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); }
.fiche-v2 .fiche-aside { top: 96px; margin-top: 32px; border: 1px solid #DDDDDD; border-radius: 14px; box-shadow: 0 6px 16px rgba(0,0,0,.12); padding: 24px; }
.fiche-v2 .fiche-pending { background: #F7F7F7; border: 0; }
/* Équipements et locatifs sans cadre (essai fiche-v2) */
.fiche-v2 .equip-grid { grid-template-columns: 1fr 1fr; gap: 14px 32px; }
.fiche-v2 .equip-item { background: none; border: 0; border-radius: 0; padding: 0; gap: 14px; }
.fiche-v2 .equip-item__ico { background: none; width: 26px; height: 26px; }
.fiche-v2 .equip-item__ico svg { width: 24px; height: 24px; color: #222; }
.fiche-v2 .equip-item__label { font-weight: 500; font-size: 16.5px; color: #222; }
.fiche-v2 .locatifs { gap: 28px; }
.fiche-v2 .locatif { border: 0; border-radius: 0; overflow: visible; }
.fiche-v2 .locatif__media { border-radius: 12px; overflow: hidden; min-height: 190px; }
.fiche-v2 .locatif__body { padding: 4px 22px; }
.fiche-v2 .locatif__title { color: #222; font-weight: 700; }
.fiche-v2 .locatif__chip { border: 0; background: #F4F4F4; }
.fiche-v2 .locatif__price { border-left: 0; padding: 4px 0; }
@media (max-width: 880px) { .fiche-v2 .equip-grid { grid-template-columns: 1fr; } }
/* Carte MapLibre (essai fiche-v2) : boutons + / - ronds et blancs */
.fiche-v2 .maplibregl-ctrl-group { border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.18); overflow: hidden; }
.fiche-v2 .maplibregl-ctrl-group button { width: 40px; height: 40px; }
.fiche-v2 .maplibregl-ctrl-top-right { margin: 6px; }
/* Fiche sans photo : seule l'illustration, en pleine largeur ; cases vides en gris uni */
.fiche-v2 .fiche-thumb--empty { background: #F2F2F2; }
