/* ================================================================
   Vandeto Map v2.0.0 — Core CSS
   ================================================================ */
.vdm-nb-wrap *,.vdm-nb-wrap *::before,.vdm-nb-wrap *::after{box-sizing:border-box;}
.vdm-nb-wrap{position:relative;z-index:0;width:100%;max-width:100%;font-family:inherit;overflow-x:hidden;overflow-x:clip;}

/* ── GPS screen ─────────────────────────────────────────────── */
.vdm-geo-screen{display:flex;align-items:center;justify-content:center;padding:40px 20px;min-height:360px;background:linear-gradient(135deg,#fff5f5 0%,#fff 60%);border:1px solid #fde8e8;border-radius:16px;}
.vdm-geo-card{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:420px;gap:14px;}
.vdm-geo-rings{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;}
.vdm-geo-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,23,0,.15);animation:vdm-ring-pulse 2.4s ease-in-out infinite;}
.vdm-geo-ring--2{inset:12px;border-color:rgba(255,23,0,.22);animation-delay:.4s;}
.vdm-geo-ring--1{inset:24px;border-color:rgba(255,23,0,.3);animation-delay:.8s;}
@keyframes vdm-ring-pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.06);opacity:.5;}}
.vdm-geo-pin{position:relative;z-index:1;width:48px;height:48px;filter:drop-shadow(0 4px 12px rgba(255,23,0,.35));animation:vdm-pin-bob 2s ease-in-out infinite;}
.vdm-geo-pin svg{width:48px;height:68px;}
@keyframes vdm-pin-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.vdm-geo-title{font-size:20px;font-weight:700;color:#11151c;margin:0;line-height:1.25;}
.vdm-geo-desc{font-size:14px;color:#666;margin:0;line-height:1.55;}
.vdm-geo-msg-wrap{width:100%;display:none;}
.vdm-geo-msg{font-size:13px;padding:10px 14px;border-radius:8px;margin:0;text-align:center;line-height:1.45;}
.vdm-geo-msg[data-type="error"]{background:#fff0ef;color:#a32d2d;border:1px solid #ffd0d0;}
.vdm-geo-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 28px;background:#ff1700;color:#fff;font-size:15px;font-weight:700;border:none;border-radius:50px;cursor:pointer;width:100%;max-width:320px;box-shadow:0 4px 20px rgba(255,23,0,.35);transition:background .18s,box-shadow .18s;-webkit-tap-highlight-color:transparent;}
.vdm-geo-btn svg{width:20px;height:20px;flex-shrink:0;}
.vdm-geo-btn:hover{background:#d41300;box-shadow:0 6px 26px rgba(255,23,0,.42);}
.vdm-geo-btn:active{opacity:.88;}
.vdm-geo-btn:disabled{opacity:.65;cursor:wait;}
.vdm-btn-spin{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:vdm-spin .65s linear infinite;flex-shrink:0;}
.vdm-geo-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:#aaa;margin:0;}
.vdm-geo-hint svg{width:13px;height:13px;flex-shrink:0;}

/* ── Résultats ──────────────────────────────────────────────── */
.vdm-nb-results{display:none;}
.vdm-nb-map{width:100%;border-radius:14px;overflow:hidden;position:relative;z-index:0;isolation:isolate;background:#f0ede8;border:1px solid #e2e4e7;}
.vdm-nb-status{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:800;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid #e9e9e9;border-radius:50px;padding:8px 16px;display:none;align-items:center;gap:8px;font-size:13px;color:#555;box-shadow:0 4px 16px rgba(0,0,0,.1);white-space:nowrap;}
.vdm-nb-spinner{width:16px;height:16px;border:2px solid rgba(255,23,0,.2);border-top-color:#ff1700;border-radius:50%;animation:vdm-spin .65s linear infinite;flex-shrink:0;}
.vdm-nb-counter{display:none;align-items:center;gap:6px;margin:12px 0 0;padding:8px 14px;background:#fff;border:1px solid #e9e9e9;border-radius:50px;width:fit-content;font-size:13px;color:#555;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.vdm-nb-counter-dot{width:8px;height:8px;background:#1D9E75;border-radius:50%;box-shadow:0 0 0 3px rgba(29,158,117,.2);animation:vdm-pulse-dot 2s ease infinite;}
@keyframes vdm-pulse-dot{0%,100%{box-shadow:0 0 0 3px rgba(29,158,117,.2);}50%{box-shadow:0 0 0 6px rgba(29,158,117,.05);}}
.vdm-nb-counter-num{font-weight:700;color:#11151c;font-size:15px;}
.vdm-nb-counter-sep{color:#ddd;}

/* ── Header grille ──────────────────────────────────────────── */
.vdm-nb-grid-header{display:none;align-items:center;flex-wrap:wrap;gap:10px 12px;margin:24px 0 0;max-width:100%;}
.vdm-nb-grid-title{display:flex;align-items:center;gap:8px;margin:0 auto 0 0;min-width:0;font-size:16px;font-weight:700;color:#11151c;}
.vdm-nb-grid-title svg{width:18px;height:18px;color:#ff1700;}
/* Éléments injectés par les modules (mod-story, mod-real-cost) — jamais de débordement. */
.vdm-nb-wrap .vdm-nb-grid-header .vdm-rc-sort{margin-left:0;max-width:100%;min-width:0;flex-shrink:1;}
.vdm-nb-wrap .vdm-nb-grid-header .vdm-rc-sort-sel{min-width:0;max-width:100%;}
.vdm-nb-wrap .vdm-nb-grid-header .vdm-story-btn{min-width:0;flex-shrink:1;}

/* ── Filtre catégories ──────────────────────────────────────── */
.vdm-nb-cat-filter{display:none;flex-direction:row;align-items:center;gap:8px;margin:14px 0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(to right,transparent 0,black 10px,black calc(100% - 10px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 10px,black calc(100% - 10px),transparent 100%);}
.vdm-nb-cat-filter::-webkit-scrollbar{display:none;}
.vdm-nb-cat-filter::before,.vdm-nb-cat-filter::after{content:'';display:block;min-width:2px;flex-shrink:0;}
.vdm-cat-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:50px;border:1.5px solid #e2e4e7;background:#fff;color:#555;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;scroll-snap-align:start;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;line-height:1;}
.vdm-cat-pill:hover{border-color:#ff1700;color:#ff1700;background:#fff5f5;}
.vdm-cat-pill.is-active{border-color:#ff1700;background:#ff1700;color:#fff;box-shadow:0 3px 12px rgba(255,23,0,.28);}
.vdm-cat-pill-label{font-weight:600;}
.vdm-cat-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:50px;background:rgba(0,0,0,.08);font-size:11px;font-weight:700;color:inherit;line-height:1;}
.vdm-cat-pill.is-active .vdm-cat-pill-count{background:rgba(255,255,255,.22);}
.vdm-cat-pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px rgba(255,255,255,.5);}
.vdm-cat-pill.is-active .vdm-cat-pill-dot{box-shadow:0 0 0 2px rgba(255,255,255,.35);}

/* ── Barre catégories flottante (sur la carte) ──────────────── */
.vdm-map-catbar{position:absolute;top:12px;left:12px;right:56px;z-index:850;display:none;flex-direction:row;align-items:center;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;padding:2px 2px 6px;-webkit-mask-image:linear-gradient(to right,transparent 0,black 14px,black calc(100% - 14px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 14px,black calc(100% - 14px),transparent 100%);}
.vdm-map-catbar::-webkit-scrollbar{display:none;}
.vdm-map-catbar::before,.vdm-map-catbar::after{content:'';display:block;min-width:4px;flex-shrink:0;}
.vdm-map-catbar .vdm-cat-pill{background:rgba(255,255,255,.88);backdrop-filter:blur(10px) saturate(1.4);-webkit-backdrop-filter:blur(10px) saturate(1.4);border:1px solid rgba(255,255,255,.6);box-shadow:0 3px 14px rgba(0,0,0,.14);color:#333;}
.vdm-map-catbar .vdm-cat-pill:hover{border-color:rgba(255,23,0,.55);color:#ff1700;background:rgba(255,255,255,.96);}
.vdm-map-catbar .vdm-cat-pill.is-active{background:#ff1700;border-color:#ff1700;color:#fff;box-shadow:0 4px 16px rgba(255,23,0,.4);}
.vdm-chip-enter{animation:vdm-chip-in .38s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes vdm-chip-in{from{opacity:0;transform:translateY(-10px) scale(.9);}to{opacity:1;transform:translateY(0) scale(1);}}

/* ── Grille ─────────────────────────────────────────────────── */
.vdm-nb-grid{display:grid;grid-template-columns:repeat(var(--cols-d,6),1fr);gap:16px;}

/* ── Card ───────────────────────────────────────────────────── */
.vdm-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e9e9e9;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .2s,border-color .2s;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.vdm-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);border-color:#d9d9d9;text-decoration:none;}
.vdm-card.is-active{border-color:#ff1700;box-shadow:0 0 0 2px rgba(255,23,0,.15),0 6px 24px rgba(255,23,0,.12);}
.vdm-card-media{position:relative;width:100%;padding-top:var(--vdm-ratio,64%);overflow:hidden;background:#f4f4f4;}
.vdm-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
/* ── Slider d'images DANS la card — glissement natif (v2.14.0) ──
   overscroll-behavior-x:contain : ne chaîne jamais sur le parent. */
.vdm-card-slider{position:absolute;inset:0;display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;z-index:1;}
.vdm-card-slider::-webkit-scrollbar{display:none;}
.vdm-card-slider img{position:static;flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center;scroll-snap-stop:always;display:block;-webkit-user-drag:none;user-select:none;}
/* Dots du slider images — MAXIMUM 3, signature Vandeto.
   v2.16.0 — Option A : en bas, sur leur propre ligne, au-dessus des badges. */
.vdm-card-dots{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;z-index:3;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));}
.vdm-card-dot{width:4px;height:4px;border-radius:50px;background:rgba(255,255,255,.55);}
.vdm-card-dot.is-active{width:10px;background:#fff;}
@media(max-width:600px){.vdm-card-dots{bottom:26px;gap:3px;}}
.vdm-card-noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ccc;}
.vdm-card-noimg svg{width:36px;height:36px;}
.vdm-card-badge{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;padding:3px 8px;background:linear-gradient(135deg,#ffc220,#ffaa00);color:#11151c;border-radius:20px;letter-spacing:.03em;}
/* v2.15.0 — max-width + nowrap + ellipsis : sans eux le badge grandissait
   sans limite et percutait le « Fiable 100 » de mod-trust (max-width:44%). */
.vdm-card-cat{position:absolute;bottom:8px;left:8px;max-width:44%;font-size:10px;font-weight:600;padding:3px 8px;background:rgba(17,21,28,.65);color:#fff;border-radius:20px;backdrop-filter:blur(4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:600px){.vdm-card-cat{max-width:42%;font-size:9px;padding:2px 6px;bottom:6px;left:6px;}}
.vdm-card-body{padding:12px 13px 14px;display:flex;flex-direction:column;gap:5px;flex:1;}
.vdm-card-title{font-size:13px;font-weight:600;color:#11151c;margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.vdm-card-price{font-size:15px;font-weight:800;color:#ff1700;letter-spacing:-.02em;}
.vdm-card-loc{display:flex;align-items:center;gap:4px;font-size:11px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vdm-card-loc svg{width:11px;height:11px;flex-shrink:0;color:#ff1700;}
.vdm-card-cta{margin-top:auto;padding-top:8px;font-size:12px;font-weight:600;color:#ff1700;}

/* ── Vide ───────────────────────────────────────────────────── */
.vdm-nb-empty{display:none;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;text-align:center;color:#aaa;}
.vdm-nb-empty svg{width:80px;height:80px;}
.vdm-nb-empty p{font-size:14px;color:#666;margin:0;}

/* ── Popups Leaflet — v2.15.0 : bornés à la carte ──────────── */
.vdm-nb-map .leaflet-popup-content-wrapper{border-radius:14px !important;overflow:hidden;padding:0 !important;box-shadow:0 8px 32px rgba(0,0,0,.14) !important;animation:vdm-pop-in .22s cubic-bezier(.175,.885,.32,1.275);}
@keyframes vdm-pop-in{from{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}
/* v2.15.0 — Popup borné à la carte : colonne flex, corps scrollable,
   actions collantes. --vdm-pop-maxh est posée en JS d'après la hauteur
   RÉELLE du conteneur carte (repli 340px si le JS n'a pas encore tourné). */
.vdm-nb-map .leaflet-popup-content{margin:0 !important;font-size:13px;display:flex;flex-direction:column;max-height:var(--vdm-pop-maxh,340px);}
.vdm-nb-map .leaflet-popup-close-button{width:26px !important;height:26px !important;font-size:16px !important;color:#fff !important;background:rgba(0,0,0,.35) !important;border-radius:50% !important;top:8px !important;right:8px !important;display:flex !important;align-items:center !important;justify-content:center !important;line-height:1 !important;z-index:5 !important;}
.vdm-pop-img-wrap{flex:0 0 auto;overflow:hidden;max-height:96px;}
.vdm-pop-img{width:100%;height:96px;object-fit:cover;display:block;}
/* min-height:0 = indispensable : sans lui un enfant flex refuse de
   rétrécir sous sa hauteur de contenu et overflow-y ne s'active jamais.
   overscroll-behavior:contain = arriver au bout du popup ne scrolle
   pas la carte derrière. */
.vdm-pop-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:11px 13px 0;scrollbar-width:thin;}
.vdm-pop-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:linear-gradient(135deg,#ffc220,#ffaa00);color:#11151c;margin-bottom:6px;}
.vdm-pop-title{display:block;font-size:13px;font-weight:600;color:#11151c;text-decoration:none;margin-bottom:4px;line-height:1.35;}
.vdm-pop-title:hover{color:#ff1700;}
.vdm-pop-price{font-size:16px;font-weight:800;color:#ff1700;margin-bottom:4px;}
.vdm-pop-loc{display:flex;align-items:center;gap:4px;font-size:11px;color:#999;margin-bottom:6px;}
.vdm-pop-loc svg{width:11px;height:11px;flex-shrink:0;color:#ff1700;}
.vdm-pop-modules{margin-bottom:6px;}
/* Sticky : « Voir l'annonce » reste atteignable sans scroller — c'est le CTA. */
.vdm-pop-actions{position:sticky;bottom:0;display:flex;gap:6px;padding:9px 0 11px;background:#fff;box-shadow:0 -8px 10px -8px rgba(0,0,0,.12);z-index:4;}
.vdm-pop-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s;}
.vdm-pop-btn--p{background:#ff1700;color:#fff;}
.vdm-pop-btn--p:hover{background:#d41300;color:#fff;text-decoration:none;}

/* ── Marqueurs ──────────────────────────────────────────────── */
.vdm-me{background:none !important;border:none !important;}
.vdm-me-dot{width:18px;height:18px;background:#1D9E75;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(29,158,117,.5),0 0 0 5px rgba(29,158,117,.15);animation:vdm-me-pulse 2s ease infinite;}
@keyframes vdm-me-pulse{0%,100%{box-shadow:0 2px 8px rgba(29,158,117,.5),0 0 0 5px rgba(29,158,117,.15);}50%{box-shadow:0 2px 8px rgba(29,158,117,.5),0 0 0 10px rgba(29,158,117,.04);}}
.vdm-me-pop{font-size:12px;font-weight:600;color:#1D9E75;padding:2px 4px;}
.vdm-marker{background:none !important;border:none !important;}
.vdm-pin{position:relative;transform-origin:bottom center;}
.vdm-pin svg{display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transform-origin:bottom center;transition:transform .22s cubic-bezier(.34,1.56,.64,1),filter .22s ease;}
.vdm-marker:hover .vdm-pin svg{transform:scale(1.18) translateY(-3px);filter:drop-shadow(0 8px 14px rgba(0,0,0,.34));}

/* Apparition drop + bounce en cascade */
.vdm-pin-enter{animation:vdm-pin-drop .5s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes vdm-pin-drop{0%{opacity:0;transform:translateY(-22px) scale(.55);}60%{opacity:1;}100%{opacity:1;transform:translateY(0) scale(1);}}

/* Pin sélectionné (popup ouvert) */
.vdm-marker.is-selected{z-index:1200 !important;}
.vdm-marker.is-selected .vdm-pin svg{transform:scale(1.28) translateY(-4px);filter:drop-shadow(0 10px 18px rgba(0,0,0,.38));}
.vdm-marker.is-selected .vdm-pin::after{content:'';position:absolute;left:50%;bottom:-3px;width:16px;height:6px;transform:translateX(-50%);border-radius:50%;background:rgba(17,21,28,.22);animation:vdm-sel-shadow 1.6s ease-in-out infinite;}
@keyframes vdm-sel-shadow{0%,100%{transform:translateX(-50%) scaleX(1);opacity:.8;}50%{transform:translateX(-50%) scaleX(1.35);opacity:.45;}}

/* Halo doré pulsant — pins vedette */
.vdm-marker--feat .vdm-pin::before{content:'';position:absolute;left:50%;top:16px;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,194,32,.4) 0%,rgba(255,194,32,0) 68%);animation:vdm-feat-pulse 2.2s ease-in-out infinite;pointer-events:none;z-index:-1;}
@keyframes vdm-feat-pulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.9;}50%{transform:translate(-50%,-50%) scale(1.7);opacity:.25;}}

/* Cercle de rayon animé */
.vdm-radius-circle{animation:vdm-dash-flow 24s linear infinite;}
@keyframes vdm-dash-flow{to{stroke-dashoffset:-260;}}

/* ── Clusters modernes ──────────────────────────────────────── */
.vdm-clust{background:none !important;border:none !important;}
.vdm-clust-ring{position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:4px;background:rgba(255,255,255,.85);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);box-shadow:0 4px 14px rgba(0,0,0,.22),inset 0 0 0 1px rgba(0,0,0,.05);transition:transform .22s cubic-bezier(.34,1.56,.64,1);cursor:pointer;}
.vdm-clust-ring:hover{transform:scale(1.14);}
.vdm-clust-ring--warm{box-shadow:0 4px 14px rgba(0,0,0,.22),0 0 0 3px rgba(255,23,0,.18);}
.vdm-clust-ring--hot{box-shadow:0 4px 16px rgba(0,0,0,.26),0 0 0 4px rgba(255,23,0,.28);animation:vdm-clust-glow 2.4s ease-in-out infinite;}
@keyframes vdm-clust-glow{0%,100%{box-shadow:0 4px 16px rgba(0,0,0,.26),0 0 0 4px rgba(255,23,0,.28);}50%{box-shadow:0 4px 16px rgba(0,0,0,.26),0 0 0 8px rgba(255,23,0,.1);}}
.vdm-clust-inner{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;letter-spacing:-.02em;}

/* ── Leaflet overrides ──────────────────────────────────────── */
.vdm-nb-map .leaflet-container{font-family:inherit;background:#f0ede8;}
.vdm-nb-map .leaflet-control-zoom{border:none !important;box-shadow:0 2px 10px rgba(0,0,0,.12) !important;border-radius:10px !important;overflow:hidden;}
.vdm-nb-map .leaflet-control-zoom-in,.vdm-nb-map .leaflet-control-zoom-out{width:36px !important;height:36px !important;line-height:36px !important;font-size:16px !important;color:#444 !important;background:#fff !important;border:none !important;transition:background .15s !important;}
.vdm-nb-map .leaflet-control-zoom-in:hover,.vdm-nb-map .leaflet-control-zoom-out:hover{background:#f4f4f4 !important;color:#ff1700 !important;}

@keyframes vdm-spin{to{transform:rotate(360deg);}}

/* ── Responsive ─────────────────────────────────────────────── */
@media(max-width:900px){.vdm-nb-grid{grid-template-columns:repeat(var(--cols-t,4),1fr);}}
@media(max-width:600px){
  .vdm-nb-grid{grid-template-columns:repeat(var(--cols-m,2),1fr);gap:12px;}
  .vdm-geo-screen{padding:30px 14px;min-height:300px;border-radius:12px;}
  .vdm-geo-title{font-size:18px;}
  .vdm-geo-btn{font-size:14px;padding:13px 22px;}
  .vdm-geo-rings{width:96px;height:96px;}
  .vdm-geo-pin svg{width:38px;height:54px;}
  .vdm-nb-map{border-radius:10px;}
  .vdm-nb-grid-header{gap:10px;}
  .vdm-nb-grid-title{flex:1 1 100%;margin-right:0;}
  .vdm-nb-wrap .vdm-nb-grid-header .vdm-story-btn{flex:0 1 auto;}
  .vdm-nb-wrap .vdm-nb-grid-header .vdm-rc-sort{flex:1 1 auto;justify-content:flex-end;}
  .vdm-nb-wrap .vdm-nb-grid-header .vdm-story-btn span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .vdm-card-body{padding:10px 11px 12px;}
  .vdm-card-title{font-size:12px;}
  .vdm-pop-img,.vdm-pop-img-wrap{height:84px;max-height:84px;}
  .vdm-pop-body{padding:10px 11px 0;}
  .vdm-cat-pill{font-size:12px;padding:6px 12px;}
  .vdm-map-catbar{top:10px;left:8px;right:8px;gap:6px;}
  .vdm-map-catbar .vdm-cat-pill{font-size:11.5px;padding:6px 11px;}
  .vdm-map-catbar .vdm-cat-pill-count{min-width:18px;height:16px;font-size:10px;}
}
@media(max-width:380px){.vdm-nb-grid{gap:10px;}}

/* ── Entrées de cards — v2.16.0 « premium » ─────────────────────
   Fondu + montée, compositor-only (opacity/transform). Le SCROLL
   lui-même reste 100% natif : on anime l'arrivée des cards, jamais
   le glissement (acquis v2.14.0). */
@keyframes vdm-card-in{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.vdm-card-enter{animation:vdm-card-in .38s cubic-bezier(.22,.9,.34,1) both;}
.vdm-nb-grid-sentinel{min-height:2px;}
@media(prefers-reduced-motion:reduce){
  .vdm-card-enter{animation:none;}
}
