/* ============================================================
   Carte des projets — habillage DA (papier/encre/sauge/bronze).
   S'appuie sur pages.css. Marqueurs, stages zoomables, panneau.
   ============================================================ */
.geo{max-width:1500px;margin:0 auto;padding:72px 38px 0;}
.geo__lede{font-size:clamp(20px,2.6vw,30px);font-weight:400;letter-spacing:-.02em;line-height:1.24;
  margin:24px 0 0;max-width:48ch;text-wrap:balance;color:var(--ink);}

/* bloc de carte */
.geo-map-block{margin-top:84px;}
.geo-map-block:first-of-type{margin-top:0;}
.geo-map-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  max-width:900px;margin:0 auto 18px;padding-bottom:16px;border-bottom:1px solid var(--ink);}
.geo-map-title{font-size:clamp(22px,2.4vw,30px);font-weight:600;letter-spacing:-.01em;margin:0;}
.geo-map-note{font-size:13.5px;color:var(--ink45);margin:0;flex:1 1 auto;min-width:0;max-width:none;line-height:1.5;text-wrap:pretty;}

/* scène (viewBox ~1.414 sur les 3 cartes) */
.geo-stage{position:relative;width:100%;max-width:900px;margin:0 auto;aspect-ratio:842/595;overflow:hidden;
  background:var(--paper2);border:1px solid var(--line);touch-action:pan-y;cursor:default;}
.geo-stage.is-zoomed{cursor:grab;}
.geo-stage.is-grabbing{cursor:grabbing;}
.geo-pan{position:absolute;inset:0;}
.geo-svg{width:100%;height:100%;display:block;}

/* contrôles zoom */
.geo-zoom{position:absolute;right:14px;bottom:14px;z-index:3;display:flex;flex-direction:column;gap:6px;}
.geo-zoom-btn{width:38px;height:38px;border:1px solid var(--line);background:rgba(244,241,234,.92);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);font-size:20px;line-height:1;
  border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s;}
.geo-zoom-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* marqueurs */
.geo-marker{cursor:pointer;}
.geo-hit{fill:transparent;}
.geo-dot{fill:var(--ink);stroke:var(--paper);stroke-width:1.5;transition:fill .2s;}
.geo-stage--france .geo-dot,.geo-stage--idf .geo-dot{stroke-width:6;}
.geo-marker:hover .geo-dot,.geo-marker:focus .geo-dot{fill:var(--bronze);}
.geo-marker.is-active .geo-dot{fill:var(--bronze);}
.geo-marker:focus{outline:none;}
/* points recherche en terre cuite */
.geo-marker.is-recherche .geo-dot{fill:#b06a44;}
.geo-marker.is-recherche.is-active .geo-dot,.geo-marker.is-recherche:hover .geo-dot{fill:#8f5232;}

/* panneau d'information */
.geo-panel{position:fixed;z-index:80;width:320px;max-width:calc(100vw - 24px);
  background:var(--paper);border:1px solid var(--line);box-shadow:0 24px 60px rgba(26,26,23,.22);
  overflow:hidden;font-family:var(--font);}
.geo-panel[hidden]{display:none;}
.geo-panel__close{position:absolute;top:8px;right:8px;z-index:2;width:32px;height:32px;border-radius:50%;
  background:rgba(244,241,234,.9);color:var(--ink);font-size:20px;line-height:1;
  display:flex;align-items:center;justify-content:center;}
.geo-panel__close:hover{background:var(--ink);color:var(--paper);}
.geo-panel__cover{width:100%;aspect-ratio:16/10;background-size:cover;background-position:center;background-color:#d4cebf;}
.geo-panel__cover.is-empty{background-image:repeating-linear-gradient(135deg,#cac4b6 0 2px,#d4cebf 2px 22px);}
.geo-panel__body{padding:20px 22px 24px;}
.geo-panel__title{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:0;}
.geo-panel__place{font-size:13px;color:var(--ink70);margin:7px 0 0;}
.geo-panel__meta{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bronze);margin:12px 0 0;}
.geo-panel__desc{font-size:14px;line-height:1.55;color:var(--ink70);margin:14px 0 0;}
.geo-panel__link{display:inline-flex;align-items:center;gap:8px;margin:18px 0 0;
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);
  border-bottom:1.5px solid var(--bronze);padding-bottom:3px;transition:.2s;}
.geo-panel__link[hidden]{display:none;}
.geo-panel__link::after{content:"\2192";transition:transform .25s ease;}
.geo-panel__link:hover{color:var(--bronze);}
.geo-panel__link:hover::after{transform:translateX(3px);}

@media(max-width:900px){
  .geo-panel{left:0!important;right:0!important;bottom:0!important;top:auto!important;
    width:100%;max-width:none;border-left:0;border-right:0;border-bottom:0;
    border-radius:14px 14px 0 0;box-shadow:0 -16px 40px rgba(26,26,23,.22);}
}
@media(max-width:760px){
  .geo{padding:48px 22px 0;}
  .geo-map-block{margin-top:60px;}
}
