/* Widget Elementor — Carte des régions (Suisse) */

.st-regions-map{
  --st-rm-title: var(--e-global-color-uicore_headline, #1a1a1a);
  --st-rm-link: var(--e-global-color-uicore_headline, #1a1a1a);
  --st-rm-link-hover: var(--e-global-color-uicore_primary, #8dc63f);
  --st-rm-fill: #ffffff;
  --st-rm-stroke: #2a3d45;
  --st-rm-active-fill: var(--e-global-color-uicore_primary, #8dc63f);
  --st-rm-muted-fill: #d8ddd9;
  --st-rm-muted-stroke: #a8b0aa;
  --st-rm-map-bg: transparent;
  display:grid;
  grid-template-columns:minmax(220px,320px) minmax(0,1fr);
  gap:40px 48px;
  align-items:center;
  font-family:var(--uicore-typography--p-f, "Inter"), sans-serif;
}

.st-rm-list{
  min-width:0;
  align-self:center;
}
.st-rm-title{
  margin:0 0 22px;
  font-family:var(--e-global-typography-uicore_primary-font-family, 'Staatliches'), sans-serif;
  font-size:28px;
  font-weight:400;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--st-rm-title);
  line-height:1.15;
}
.st-rm-intro{
  margin:-8px 0 20px;
  color:var(--e-global-color-uicore_body, #6b7280);
  font-size:16px;
  line-height:1.45;
}
.st-rm-items{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.st-rm-items a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  color:var(--st-rm-link);
  text-decoration:none;
  font-family:var(--e-global-typography-uicore_primary-font-family, 'Staatliches'), sans-serif;
  font-size:18px;
  font-weight:400;
  letter-spacing:.03em;
  text-transform:uppercase;
  line-height:1.2;
  border-bottom:1px solid transparent;
  transition:color .18s ease;
}
.st-rm-items a svg{
  width:16px;height:16px;flex-shrink:0;
  opacity:.45;
  transition:opacity .18s ease,transform .18s ease;
}
.st-rm-items a:hover,
.st-rm-items a.is-active,
.st-rm-items a:focus-visible{
  color:var(--st-rm-link-hover);
  outline:none;
}
.st-rm-items a:hover svg,
.st-rm-items a.is-active svg,
.st-rm-items a:focus-visible svg{
  opacity:1;
  transform:translateX(3px);
}

.st-rm-map{
  min-width:0;
  width:100%;
  background:var(--st-rm-map-bg);
  display:flex;
  align-items:center;
  justify-content:center;
}
.st-regions-map .st-rm-map svg.st-rm-svg,
.st-regions-map .st-rm-map > svg{
  width:100% !important;
  height:auto !important;
  max-width:100%;
  max-height:560px;
  display:block !important;
  overflow:visible;
}

/* Cantons hors site : grisés, non interactifs */
.st-regions-map .st-rm-map path.st-rm-canton.is-muted{
  fill:var(--st-rm-muted-fill) !important;
  stroke:var(--st-rm-muted-stroke) !important;
  stroke-width:1.6;
  stroke-linejoin:round;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  pointer-events:none;
  cursor:default;
}

/* Cantons du site : cliquables */
.st-regions-map .st-rm-map path.st-rm-canton.is-active,
.st-regions-map .st-rm-map a.st-rm-zone path{
  fill:var(--st-rm-fill) !important;
  stroke:var(--st-rm-stroke) !important;
  stroke-width:2.2;
  stroke-linejoin:round;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  transition:fill .2s ease, stroke .2s ease;
  cursor:pointer;
}
.st-regions-map .st-rm-map a.st-rm-zone{
  outline:none;
}
.st-regions-map .st-rm-map a.st-rm-zone:hover path,
.st-regions-map .st-rm-map a.st-rm-zone.is-active path,
.st-regions-map .st-rm-map a.st-rm-zone:focus-visible path,
.st-regions-map .st-rm-map path.st-rm-canton.is-active.is-active-hover{
  fill:var(--st-rm-active-fill) !important;
  stroke:var(--st-rm-stroke) !important;
}

.st-rm-empty{margin:0;color:#6b7280;}

@media (max-width:900px){
  .st-regions-map{
    grid-template-columns:1fr;
    gap:28px;
  }
  .st-rm-map{order:-1;}
  .st-rm-map svg{max-height:420px;}
}
