/* Vignobles en Scène 2026 — styles communs (page + carte) */
:root{
  --plum:#4E2442;--plum2:#6A3A5E;--green:#488472;--greend:#356654;
  --sky:#3D9AD9;--skyl:#DCEBF6;--paper:#F6F3EE;--paper2:#EFEAE2;--card:#FFFDF9;
  --line:#E4DDD2;--ink:#3B1F35;--mute:#6E5A68;
  --f:'Jost','Futura','Century Gothic',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f);color:var(--ink);background:var(--paper) var(--paper-tex);line-height:1.5}
img{max-width:100%}
a{color:var(--greend)}
.ic{flex-shrink:0;vertical-align:-3px}
.sub{color:var(--mute);font-size:.92em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:999px;font:600 14px/1.2 var(--f);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,background .15s,color .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px)}
.btn-p{background:var(--plum);color:#fff}.btn-p:hover{background:var(--plum2)}
.btn-g{background:var(--green);color:#fff}.btn-g:hover{background:var(--greend)}
.btn-o{background:transparent;color:var(--plum);border-color:var(--plum)}.btn-o:hover{background:var(--plum);color:#fff}
.btn-w{background:#fff;color:var(--plum);box-shadow:0 2px 10px rgba(30,60,90,.18)}.btn-w:hover{background:var(--paper)}

/* Pastilles */
.num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--c,var(--plum));color:#fff;font:600 15px/1 var(--f);flex-shrink:0}
.dchips{display:inline-flex;gap:4px;flex-wrap:wrap}
.dchip{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:var(--c)}
.tchip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;background:var(--skyl);color:#1F5F8E}
.tchip.warn{background:#FBEAD7;color:#8A4B10}

/* Liste d'infos */
.meta{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.meta li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4}
.meta li .ic{margin-top:2px;color:var(--green)}
.meta a{color:var(--ink);text-decoration-color:rgba(72,132,114,.5);text-underline-offset:2px}
.meta a:hover{color:var(--greend)}

/* « M'y rendre » */
.go{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.go-l{font-size:13px;font-weight:600;color:var(--plum);display:inline-flex;gap:5px;align-items:center;margin-right:2px}
.go a{font-size:12.5px;font-weight:500;padding:4px 11px;border-radius:999px;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;background:#fff}
.go a:hover{border-color:var(--green);color:var(--greend)}

/* ── Carte interactive ───────────────────────────────────── */
.vmap{position:relative;display:flex;flex-direction:column;height:var(--vm-h,680px);background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;font-family:var(--f);color:var(--ink)}
.vm-bar{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding:11px 14px;background:var(--paper);border-bottom:1px solid var(--line);flex-shrink:0}
.vm-group{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vm-lbl{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin-right:2px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:500 13px/1.2 var(--f);cursor:pointer;transition:all .15s;white-space:nowrap}
.chip:hover{border-color:var(--c,var(--plum))}
.chip .dot{width:9px;height:9px;border-radius:50%;background:var(--c)}
.chip[aria-pressed="true"]{background:var(--c,var(--plum));border-color:var(--c,var(--plum));color:#fff}
.chip[aria-pressed="true"] .dot{background:#fff}

.vm-body{position:relative;flex:1;display:flex;min-height:0}
.vm-mapwrap{position:relative;flex:1;min-width:0}
#map{position:absolute;inset:0;background:#e6ecef;z-index:0}
.vm-side{width:340px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line);z-index:5}
.vm-side-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.vm-side-h b{font-size:15px;color:var(--plum);font-weight:600;letter-spacing:.02em;text-transform:uppercase}
.vm-side-h span{font-size:13px;color:var(--mute)}
#vmClose{display:none}
.vm-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.it{display:flex;gap:11px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;font:inherit;color:inherit;text-align:left;cursor:pointer;border-left:4px solid transparent}
.it:hover{background:var(--paper)}
.it.on{background:var(--skyl);border-left-color:var(--plum)}
.it-b{display:flex;flex-direction:column;gap:1px;min-width:0}
.it-t{font-weight:600;font-size:14.5px;line-height:1.25;color:var(--plum)}
.it-s{font-size:13px;color:var(--mute);line-height:1.3}
.it-w{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--ink);margin-top:4px}
.it-w .ic{color:var(--green);margin-right:-2px}
.vm-empty{padding:28px 18px;text-align:center;color:var(--mute)}
.vm-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--mute);background:var(--paper)}
.vm-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);margin-right:5px;vertical-align:-1px}

.vm-toggle{display:none;position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:400;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:999px;background:var(--plum);color:#fff;font:600 14px/1 var(--f);box-shadow:0 4px 14px rgba(0,0,0,.28);cursor:pointer}

/* Fond de carte */
.vm-bm{position:absolute;top:10px;right:10px;z-index:400}
.bm-btn{width:36px;height:36px;display:grid;place-items:center;background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:6px;cursor:pointer;color:var(--ink)}
.bm-btn:hover{background:var(--paper)}
.bm-menu{position:absolute;top:42px;right:0;min-width:150px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 22px rgba(0,0,0,.18);padding:5px}
.bm-menu[hidden]{display:none}
.bm-opt{display:block;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:6px;background:none;font:500 13px var(--f);color:var(--ink);cursor:pointer}
.bm-opt:hover{background:var(--paper)}
.bm-opt[aria-pressed="true"]{background:var(--skyl);color:#1F5F8E;font-weight:600}
.vm-reset{display:grid!important;place-items:center;width:34px;height:34px;background:#fff;color:#333!important}
.vm-reset:hover{background:#f4f4f4}

/* Marqueurs */
.vm-pin{background:none;border:0}
.vm-pin-in{position:relative;display:block;width:100%;height:34px;line-height:28px;border-radius:17px;background:var(--c);color:#fff;font-weight:600;font-size:14px;text-align:center;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.38);white-space:nowrap;isolation:isolate;cursor:pointer;transition:transform .15s}
.vm-pin-in::after{content:'';position:absolute;left:50%;bottom:-8px;width:11px;height:11px;margin-left:-5.5px;background:var(--c);border-right:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(45deg);z-index:-1;box-sizing:border-box}
.vm-pin:hover .vm-pin-in,.leaflet-marker-icon:focus .vm-pin-in{transform:translateY(-2px) scale(1.07)}

/* Popups */
.leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 8px 30px rgba(40,10,30,.28);padding:0;overflow:hidden}
.leaflet-popup-content{margin:0!important;width:300px!important;max-width:calc(100vw - 70px)}
.leaflet-container a.leaflet-popup-close-button{top:8px;right:8px;width:26px;height:26px;font-size:20px;line-height:24px;color:var(--mute)}
.pp{max-height:min(390px,58vh);overflow-y:auto;padding:14px 16px 16px;font-family:var(--f);color:var(--ink)}
.pp-lieu{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--green);padding-right:22px;margin-bottom:8px}
.pp-ev+.pp-ev{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.pp-lieu-blk.next{margin-top:18px;padding-top:16px;border-top:2px solid var(--line)}
.pp-h{display:flex;gap:10px;align-items:flex-start}
.pp-h b{display:block;font-size:16px;line-height:1.2;color:var(--plum);font-weight:600}
.pp-h .sub{display:block;font-size:13px;margin-top:1px}
.pp-c{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 2px}
.pp-d{margin:6px 0 0;font-size:13.5px;line-height:1.45;font-style:italic;color:#4d3547}
.pp .meta li{font-size:13px}
.pp-a{margin-top:11px}
.pp-a .btn{padding:8px 14px;font-size:13px}

/* Mobile : liste en feuille coulissante */
@media (max-width:820px){
  .vmap{height:var(--vm-h-m,var(--vm-h,600px))}
  .vm-bar{flex-wrap:nowrap;overflow-x:auto;gap:14px;scrollbar-width:none;padding:9px 12px}
  .vm-bar::-webkit-scrollbar{display:none}
  .vm-group{flex-wrap:nowrap}
  .vm-lbl{display:none}
  .vm-side{position:absolute;left:0;right:0;bottom:0;width:auto;height:62%;border:0;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -8px 28px rgba(0,0,0,.2);transform:translateY(105%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:500}
  .vm-side.open{transform:none}
  #vmClose{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer}
  .vm-toggle{display:inline-flex}
  .vm-legend{display:none}
  .vm-bm{top:auto;bottom:70px;right:10px}
  .bm-menu{top:auto;bottom:42px}
  .leaflet-bottom.leaflet-right{margin-bottom:56px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
