/* Regional administrative locator — CLP navy family only */
.cll-rm {
  --rm-navy: #0D2240;
  --rm-ink: #16304f;
  --rm-muted: #5A6570;
  --rm-line: #d5e0ec;
  --rm-bg: #f4f7fb;
  --rm-accent: #163a63;
  --rm-primary: #b7cfe6;
  --rm-second: #9dbcdc;
  --rm-third: #c5d4e4;
  --rm-context: #eef2f6;
  --rm-muni: rgba(255,255,255,.55);
  --rm-border: #6f86a0;
  --rm-inner: #ffffff;
  margin: 0 0 20px;
}
.cll-rm-head { margin: 0 0 12px; }
.cll-rm-kicker {
  font-size: 11px; letter-spacing: .13em; font-weight: 800;
  text-transform: uppercase; color: #9A6B12; margin: 0 0 6px;
}
.cll-rm-head h2 {
  margin: 0 0 8px; color: var(--rm-navy);
  font-size: clamp(1.25rem, 2.4vw, 1.7rem); font-weight: 700; letter-spacing: -.02em;
}
.cll-rm-caption { margin: 0; color: var(--rm-muted); font-size: 15px; line-height: 1.5; max-width: 46rem; }

.cll-rm-shell {
  position: relative;
  background: var(--rm-bg);
  border: 1px solid var(--rm-line);
  border-radius: 14px;
  overflow: hidden;
}
.cll-rm-svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 280px;
}

.cll-rm-poly { stroke-linejoin: round; stroke-linecap: round; transition: fill .15s ease, stroke .15s ease; }
.cll-rm-context { fill: var(--rm-context); stroke: #c9d4e0; stroke-width: 0.8; pointer-events: none; }
.cll-rm-province.is-primary,
.cll-rm-province.is-tone-primary { fill: var(--rm-primary); stroke: var(--rm-inner); stroke-width: 1.6; }
.cll-rm-province.is-second,
.cll-rm-sar.is-second { fill: var(--rm-second); stroke: var(--rm-inner); stroke-width: 1.6; }
.cll-rm-province.is-third,
.cll-rm-sar.is-third { fill: var(--rm-third); stroke: var(--rm-inner); stroke-width: 1.6; }
.cll-rm-province.is-accent,
.cll-rm-sar.is-accent { fill: #7ea8cf; stroke: var(--rm-inner); stroke-width: 1.8; }
.cll-rm-province.is-hover,
.cll-rm-sar.is-hover { fill: #8fb4d6; }

.cll-rm-muni {
  fill: rgba(255,255,255,.22);
  stroke: rgba(255,255,255,.95);
  stroke-width: 0.9;
  pointer-events: none;
}

.cll-rm-poly-link { cursor: pointer; }
.cll-rm-poly-link:focus { outline: none; }
.cll-rm-poly-link:focus-visible path { stroke: var(--rm-navy); stroke-width: 2.2; }

.cll-rm-city { cursor: default; }
.cll-rm-city.is-link { cursor: pointer; }
.cll-rm-dot { fill: #12355c; stroke: #fff; stroke-width: 2; }
.cll-rm-city.is-primary .cll-rm-dot { fill: var(--rm-navy); }
.cll-rm-city.is-secondary .cll-rm-dot { fill: #2a5080; }
.cll-rm-city.is-label .cll-rm-dot { fill: #7b8ea3; r: 4; }
.cll-rm-city-label {
  fill: var(--rm-ink);
  font-size: 13px;
  font-weight: 750;
  font-family: inherit;
  paint-order: stroke;
  stroke: #f4f7fb;
  stroke-width: 4px;
  pointer-events: none;
}
.cll-rm-city.is-label .cll-rm-city-label { font-size: 11px; font-weight: 650; fill: #4d5d70; }
.cll-rm-city.is-link:hover .cll-rm-dot,
.cll-rm-city.is-link:focus .cll-rm-dot { fill: #c8952b; }

.cll-rm-tip {
  position: absolute;
  z-index: 3;
  max-width: 260px;
  background: #0d2240;
  color: #fff;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.4;
  pointer-events: none;
  box-shadow: 0 10px 24px rgba(13,34,64,.22);
  transform: translate(-8px, -110%);
}
.cll-rm-tip strong { display: block; font-size: 14px; margin-bottom: 3px; }
.cll-rm-tip span { color: #c9d7e6; }

.cll-rm-legend {
  display: flex; flex-wrap: wrap; gap: 10px 16px;
  list-style: none; margin: 12px 0 0; padding: 0; font-size: 12px; color: var(--rm-muted);
}
.cll-rm-legend li { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; }
.cll-rm-legend i { width: 12px; height: 12px; border-radius: 2px; background: var(--rm-context); border: 1px solid #c5d0dc; }
.cll-rm-legend .is-primary i { background: var(--rm-primary); }
.cll-rm-legend .is-second i { background: var(--rm-second); }
.cll-rm-legend .is-third i { background: var(--rm-third); }
.cll-rm-legend .is-accent i { background: #7ea8cf; }
.cll-rm-legend .is-context i { background: var(--rm-context); }

.cll-rm-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cll-rm-links a {
  padding: 6px 11px; border: 1px solid var(--rm-line); border-radius: 999px;
  color: var(--rm-navy); font-size: 12.5px; font-weight: 700; text-decoration: none; background: #fff;
}
.cll-rm-links a:hover { border-color: #c8952b; }

@media (max-width: 640px) {
  .cll-rm-city-label { font-size: 11px; }
  .cll-rm-city.is-label { display: none; }
}
