/* O mapa do ponto (ADR-0020): o mesmo na landing e no portal. Estados no Brasil; municípios na UF e
   no município; o dourado é só do ponto. A cor vem dos tokens, e a transparência, da opacidade. */
.map svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 340;
  border-radius: 10px;
  background: var(--deep);
  cursor: crosshair;
}

.map .grid line {
  stroke: var(--deep-line);
  stroke-width: 0.6;
}

.map .grid line.eq {
  stroke: var(--mapa-equador);
  stroke-width: 0.9;
}

.map .uf {
  fill: var(--mapa-tinta);
  fill-opacity: 0.1;
  stroke: var(--mapa-tinta);
  stroke-opacity: 0.55;
  stroke-width: 0.7;
  stroke-linejoin: round;
}

.map .uf.sel {
  fill-opacity: 0.24;
  stroke-opacity: 0.85;
}

.map .mun {
  fill: var(--mapa-tinta);
  fill-opacity: 0.06;
  stroke: var(--mapa-tinta);
  stroke-opacity: 0.32;
  stroke-width: 0.45;
  stroke-linejoin: round;
}

.map .mun.viz {
  stroke-opacity: 0.6;
  stroke-width: 0.7;
  stroke-dasharray: 3 2;
}

.map .mun.sel {
  fill-opacity: 0.26;
  stroke-opacity: 0.95;
  stroke-width: 1.2;
}

.map .borda {
  fill: none;
  stroke: var(--mapa-tinta);
  stroke-opacity: 0.85;
  stroke-width: 1.2;
  stroke-linejoin: round;
}

.map .sede {
  fill: var(--on-deep);
  stroke: var(--deep);
  stroke-width: 0.8;
}

/* O tamanho da letra e do halo vem do `mapa_do_ponto.js`, em pixels de tela: o SVG encolhe no celular. */
.map .rot {
  fill: var(--on-deep);
  stroke: var(--deep);
  paint-order: stroke;
  stroke-linejoin: round;
}

.map .rot.forte {
  fill: var(--on-deep);
  font-weight: 600;
}

.map .escala path {
  fill: none;
  stroke: var(--on-deep-2);
  stroke-width: 1;
}

.map .escala text {
  fill: var(--on-deep-2);
  font-family: var(--font-data);
}

.mtrilha {
  min-height: 1.4em;
  margin-bottom: 8px;
  color: var(--ink-3);
  font-size: 0.78rem;
}

.mtrilha button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--brand);
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.mtrilha [aria-current] {
  color: var(--ink);
  font-weight: 600;
}

.mfonte {
  margin: 4px 0 0;
  color: var(--ink-3);
  font-size: 0.68rem;
}

.map .mk circle {
  fill: var(--gold);
}

.map .mk .pulse {
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.4;
}

.map .mk line {
  stroke: var(--gold);
  stroke-width: 1.1;
}

.map .mk text,
.map .mk-outro text {
  fill: var(--on-deep);
  font-family: var(--font-data);
  font-weight: 700;
  paint-order: stroke;
  stroke: var(--deep);
  stroke-width: 2px;
}

.map .mk-outro circle {
  fill: var(--on-deep);
  stroke: var(--deep);
  stroke-width: 0.8;
}

@media (prefers-reduced-motion: no-preference) {
  .map .mk .pulse {
    animation: pulse 2.4s ease-out infinite;
  }
}

@keyframes pulse {
  0% {
    r: 4;
    opacity: 0.9;
  }

  70% {
    r: 15;
    opacity: 0;
  }

  100% {
    r: 15;
    opacity: 0;
  }
}

.mhint {
  margin-top: 8px;
  color: var(--ink-3);
  font-size: 0.74rem;
}
