/* Mapa do Brasil interativo */
.mapa-brasil { position: relative; width: 100%; user-select: none; -webkit-tap-highlight-color: transparent; }
.mapa-brasil svg { width: 100%; height: auto; display: block; overflow: visible; filter: drop-shadow(0 18px 30px rgba(15, 92, 74, .16)); }
.mapa-brasil path {
  fill: #d7e4dd; stroke: #f6f3ec; stroke-width: 1.4; stroke-linejoin: round; cursor: pointer; outline: none;
  transition: fill .18s ease, transform .18s ease, filter .18s ease; transform-box: fill-box; transform-origin: center;
}
.mapa-brasil path.com-imoveis { fill: #b9d3c7; }
.mapa-brasil path:hover, .mapa-brasil path:focus-visible { fill: #2e8b6e; transform: scale(1.03); filter: drop-shadow(0 6px 10px rgba(10, 61, 49, .35)); }
.mapa-brasil path.ativo { fill: #0f5c4a; }
.mapa-brasil path.escolhido { fill: #e0a526; animation: pulsar-estado .55s ease; }
@keyframes pulsar-estado { 0% { transform: scale(1.03); } 40% { transform: scale(1.08); } 100% { transform: scale(1.03); } }
.mapa-brasil .labels text { font: 700 11px/1 var(--fonte); fill: #0a3d31; text-anchor: middle; pointer-events: none; opacity: .75; letter-spacing: .02em; }
.mapa-tooltip {
  position: absolute; z-index: 6; pointer-events: none; background: #0a3d31; color: #fff; padding: 8px 12px; border-radius: 10px;
  font-size: .85rem; line-height: 1.25; box-shadow: 0 10px 25px rgba(0,0,0,.2); opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s; white-space: nowrap;
}
.mapa-tooltip.visivel { opacity: 1; transform: none; }
.mapa-tooltip b { display: block; font-size: .95rem; }
.mapa-tooltip span { color: #fbe7b5; font-weight: 600; font-size: .78rem; }
.mapa-legenda { display: flex; gap: 16px; justify-content: center; font-size: .8rem; color: var(--muted); margin-top: 10px; flex-wrap: wrap; }
.mapa-legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
