.cs-wrapper { border-radius:12px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.12);background:#fff;margin:1.5rem 0; }

.cs-carte-header    { background:#7a3e10;color:#fff;padding:.85rem 1.25rem; }
.cs-carte-titre     { font-size:1rem; }
.cs-carte-soustitre { font-size:.8rem;opacity:.7;margin-left:.5rem; }

.cs-filtres { display:flex;flex-wrap:wrap;gap:.6rem;padding:.9rem 1.1rem;border-bottom:1px solid #e8e0d4;background:#faf7f2; }
.cs-filtre  { display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:24px;border:2px solid;font-size:.92rem;font-weight:600;cursor:pointer;background:#fff;color:#555;transition:background .15s,color .15s; }
.cs-filtre.actif { background:var(--actif-bg);color:#fff; }

.cs-filtres-village { border-bottom:1px solid #e8e0d4;background:#f3ede1; }
.cs-filtres-label   { font-size:.85rem;font-weight:700;color:#7a3e10;letter-spacing:.03em;align-self:center;margin-right:.2rem; }
.cs-filtre-village  { display:inline-flex;align-items:center;padding:8px 16px;border-radius:20px;border:2px solid #d69e5a;font-size:.85rem;font-weight:600;cursor:pointer;background:#fff;color:#d69e5a;transition:background .15s,color .15s; }
.cs-filtre-village.actif { background:#d69e5a;color:#fff; }

/* Carte : hauteur augmentée pour une meilleure lisibilité, réduite sur mobile */
.cs-map-canvas { width:100%;height:650px; }
@media (max-width: 640px) {
    .cs-map-canvas { height:420px; }
}

.cs-legende      { display:flex;flex-wrap:wrap;gap:.75rem;padding:.65rem 1rem;border-top:1px solid #e8e0d4;background:#faf7f2;font-size:.72rem;color:#555; }
.cs-legende-item { display:inline-flex;align-items:center; }
.cs-legende-dot  { display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:3px; }

/* Popups des marqueurs */
.cs-popup { min-width:260px;max-width:320px;font-family:inherit;overflow-x:hidden;box-sizing:border-box; }
.cs-popup, .cs-popup * { max-width:100%;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word; }
.cs-popup-banner { width:100%;height:150px;object-fit:cover;border-radius:8px;display:block;margin:0 0 10px; }
.cs-popup-nom  { font-size:.95rem;font-weight:700;color:#2c2a24;margin:0 0 1px; }
.cs-popup-adr  { font-size:.72rem;color:#999;margin:0 0 4px; }
.cs-popup-contact { font-size:.75rem;color:#7a3e10;font-weight:600;margin:0 0 4px; }
.cs-popup-mention { display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:#e03131;border-radius:20px;padding:3px 10px;margin:0 0 6px; }
.cs-popup-desc { font-size:.8rem;color:#666;margin:0 0 8px;line-height:1.45;border-bottom:1px solid #f0f0f0;padding-bottom:8px;white-space:pre-line; }
.cs-popup-act  { padding:5px 0;border-top:1px solid #f5f5f5; }
.cs-popup-act:first-of-type { border-top:none; }
.cs-popup-act-hd   { display:flex;align-items:center;gap:5px;margin-bottom:2px; }
.cs-popup-act-dot  { width:8px;height:8px;border-radius:50%;flex-shrink:0; }
.cs-popup-act-name { font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em; }
.cs-popup-desc-label { font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7a3e10;margin:0 0 2px; }
.cs-popup-act-desc { font-size:.78rem;color:#555;margin:0;padding-left:13px;line-height:1.4; }
.cs-popup-act-desc p, .cs-popup-act-desc ul, .cs-popup-act-desc ol { margin:0 0 4px;padding-left:16px; }
.cs-popup-act-desc p:last-child { margin-bottom:0; }
.cs-popup-animation-tags { display:flex;flex-wrap:wrap;gap:5px;padding-left:13px;margin:2px 0 5px; }
.cs-popup-animation-tag { font-size:.66rem;font-weight:700;color:#fff;background:#e05a00;border-radius:10px;padding:2px 9px; }

/* Scroll natif Leaflet (option maxHeight sur bindPopup) : on affine juste l'apparence */
.leaflet-popup-content-wrapper { border-radius:8px; }
.leaflet-popup-scrolled { padding-right:4px; }
.leaflet-popup-content { scrollbar-width:thin;overflow-x:hidden!important; }
