/* V2.5.6.3 — vrai fond OSM superposé à la carte SVG de secours. */
body.snm-frelons-page .fh-v256-local-stage{
  position:relative;isolation:isolate;width:100%;aspect-ratio:1.62;min-height:260px;
  background:linear-gradient(145deg,#edf7f1,#f5faf5);overflow:hidden;
}
body.snm-frelons-page .fh-v256-local-stage>svg#fh-v256-dots{
  display:block;width:100%;height:100%;min-height:0;position:absolute;inset:0;
  transition:opacity .18s ease;aspect-ratio:auto;
}
body.snm-frelons-page .fh-v256-osm-map{
  position:absolute;inset:0;z-index:2;opacity:0;visibility:hidden;pointer-events:none;
  background:#eef4ef;overflow:hidden;touch-action:none;cursor:grab;
}
body.snm-frelons-page .fh-v256-local-stage.fh-v256-osm-ready .fh-v256-osm-map{
  opacity:1;visibility:visible;pointer-events:auto;
}
body.snm-frelons-page .fh-v256-local-stage.fh-v256-osm-ready>svg#fh-v256-dots{
  opacity:0;pointer-events:none;
}
body.snm-frelons-page .fh-v256-osm-map.fh-v256-osm-dragging{cursor:grabbing}
body.snm-frelons-page .fh-v256-osm-tiles,
body.snm-frelons-page .fh-v256-osm-overlay{position:absolute;inset:0;width:100%;height:100%}
/* Le CSS du graphique SVG ancien avait un fond opaque sur TOUS les SVG :
   l'annuler explicitement pour voir les tuiles de la vraie carte. */
body.snm-frelons-page .fh-v256-dots-grid .fh-v256-osm-overlay{
  background:transparent!important;border:0!important;min-height:0!important;max-width:none!important;
}
body.snm-frelons-page .fh-v256-osm-tiles{overflow:hidden;pointer-events:none}
body.snm-frelons-page .fh-v256-osm-tile{
  display:block;position:absolute;width:256px;height:256px;max-width:none!important;
  user-select:none;-webkit-user-drag:none;pointer-events:none;
}
body.snm-frelons-page .fh-v256-osm-overlay{pointer-events:none;overflow:hidden}
body.snm-frelons-page .fh-v256-osm-region-shape{
  fill:#35885b;fill-opacity:.10;stroke:#176a49;stroke-width:2.6;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;pointer-events:none;
  paint-order:stroke fill;filter:drop-shadow(0 0 1px #fff);
}
body.snm-frelons-page .fh-v256-osm-marker-link{pointer-events:auto;cursor:pointer;outline:none}
body.snm-frelons-page .fh-v256-osm-marker{
  fill-opacity:.95;stroke:#fff;stroke-width:2.2;vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 2px rgba(24,48,37,.35));
}
body.snm-frelons-page .fh-v256-osm-marker-link:hover .fh-v256-osm-marker,
body.snm-frelons-page .fh-v256-osm-marker-link:focus-visible .fh-v256-osm-marker{
  stroke:#113d29;stroke-width:3.3;filter:drop-shadow(0 1px 4px rgba(14,70,48,.5));
}
body.snm-frelons-page .fh-v256-osm-controls{
  position:absolute;z-index:5;top:12px;right:12px;display:grid;gap:4px;
}
body.snm-frelons-page .fh-v256-osm-controls button{
  background:#fff;border:1px solid #cedbd2;color:#184a33;box-shadow:0 2px 4px #102c211a;
  width:35px;height:35px;border-radius:5px;cursor:pointer;font:700 22px/1 Arial,sans-serif;
}
body.snm-frelons-page .fh-v256-osm-controls button:hover,
body.snm-frelons-page .fh-v256-osm-controls button:focus-visible{
  background:#eff7f1;outline:2px solid #27805d;outline-offset:1px;
}
body.snm-frelons-page .fh-v256-osm-credits{
  position:absolute;z-index:5;right:4px;bottom:4px;padding:3px 6px;
  font-size:10px;color:#264535;background:#fffffff0;line-height:1.45;
}
body.snm-frelons-page .fh-v256-osm-credits a{color:#105d3e;text-decoration:underline}
@media(max-width:680px){
  body.snm-frelons-page .fh-v256-local-stage{min-height:225px;aspect-ratio:1.24}
  body.snm-frelons-page .fh-v256-osm-controls{top:8px;right:8px}
  body.snm-frelons-page .fh-v256-osm-controls button{height:33px;width:33px;font-size:20px}
  body.snm-frelons-page .fh-v256-osm-credits{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  body.snm-frelons-page .fh-v256-local-stage>svg#fh-v256-dots{transition:none}
}
