/* ============================================================
   Seção do mapa interativo do Brasil (presença nacional)
   Metodologia base_roteamento (Portal GESPUBLIC), adaptada aos
   tokens da landing do verifiqueid: --tinta, --tinta-2, --tinta-3,
   --acento, --linha (definidos em .zona-clara/.zona-escura).
   ============================================================ */

.map-grid{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center;margin-top:44px}
.map-grid>*{min-width:0}
.map-stats{display:grid;grid-template-columns:repeat(3,auto);gap:34px;justify-content:start;margin-bottom:28px}
.map-stat-num{font-size:1.7rem;font-weight:600;color:var(--tinta);display:block;line-height:1.1;font-variant-numeric:tabular-nums}
.map-stat-lbl{font-size:.72rem;color:var(--tinta-3);text-transform:uppercase;letter-spacing:.14em}
.map-hint{font-size:.85rem;color:var(--tinta-3);display:flex;align-items:center;gap:8px}
.map-col{position:relative}

/* Mapa SVG */
.br-map{position:relative}
.br-map-svg{width:100%;max-width:540px;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 24px 42px rgba(15,22,38,.10))}
.br-map .uf path{fill:#dbe4ee;stroke:#fff;stroke-width:1.2;transition:fill .25s ease;cursor:pointer}
.br-map .uf:hover path,.br-map .uf:focus-visible path{fill:#0f1626}
.br-map .uf.selected path{fill:var(--acento)}
.br-map .uf:focus-visible{outline:none}

/* Ponto da sede (Juiz de Fora/MG) */
.hq-dot{fill:#0f1626}
.hq-pulse{fill:rgba(16,198,232,.4);transform-origin:center;transform-box:fill-box;animation:hqPulse 2.4s ease-out infinite}
@keyframes hqPulse{0%{transform:scale(.5);opacity:.9}70%{transform:scale(1.7);opacity:0}100%{transform:scale(.5);opacity:0}}
@media (prefers-reduced-motion: reduce){.hq-pulse{animation:none;opacity:0}}

/* Tooltip que segue o mouse/foco */
.map-tooltip{
  position:absolute;pointer-events:none;z-index:5;opacity:0;transform:translate(-50%,-130%);
  background:#0f1626;color:#fff;font-size:.8rem;font-weight:500;
  padding:7px 13px;border-radius:8px;white-space:nowrap;box-shadow:0 10px 24px rgba(15,22,38,.18);
  transition:opacity .2s ease;
}
.map-tooltip.show{opacity:1}
.map-tooltip::after{content:'';position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#0f1626}

/* Painel do estado: flutua sobre o mapa para não somar altura à seção */
.map-panel{
  position:absolute;left:0;bottom:8px;z-index:4;max-width:min(94%,520px);
  background:#fff;border:1px solid var(--linha);border-radius:14px;
  padding:18px 38px 18px 22px;box-shadow:0 18px 44px rgba(15,22,38,.12);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  transition:opacity .25s ease,visibility .25s ease;
}
.map-panel.closed{opacity:0;visibility:hidden;pointer-events:none}
.map-panel-close{
  position:absolute;top:9px;right:10px;width:26px;height:26px;border-radius:50%;
  background:#fff;border:1px solid var(--linha);color:var(--tinta-3);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  font-size:.95rem;line-height:1;font-family:inherit;transition:color .2s ease;
}
.map-panel-close:hover{color:var(--tinta)}
.map-panel-head{display:flex;align-items:center;gap:16px}
.map-panel-uf{
  width:52px;height:52px;border-radius:12px;flex-shrink:0;
  background:#0f1626;color:#fff;font-weight:600;font-size:1.05rem;
  display:flex;align-items:center;justify-content:center;letter-spacing:.04em;
}
.map-panel h3{font-size:1.02rem;font-weight:600;margin:0;color:var(--tinta)}
.map-panel p{margin:0;font-size:.85rem;color:var(--tinta-2)}
.map-panel-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.map-panel-link{font-size:.9rem;font-weight:500;color:var(--tinta);display:inline-flex;gap:6px;align-items:center;white-space:nowrap;border-bottom:1px solid var(--tinta)}
.map-panel-link .seta{transition:transform .25s ease;display:inline-block}
.map-panel-link:hover .seta{transform:translateX(3px)}
@keyframes panelPop{0%{transform:scale(.98);opacity:.6}100%{transform:scale(1);opacity:1}}
.map-panel.pop{animation:panelPop .35s ease}

/* Busca de município (combobox acessível) */
.map-search{position:relative;margin-bottom:18px;max-width:420px}
.map-search > svg{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:var(--tinta-3);pointer-events:none}
.map-search-input{
  width:100%;padding:13px 18px 13px 44px;border-radius:999px;
  border:1px solid var(--linha);background:#fff;font-family:inherit;font-size:.92rem;color:var(--tinta);
  transition:border-color .25s ease,box-shadow .25s ease;
}
.map-search-input::placeholder{color:var(--tinta-3)}
.map-search-input:hover{border-color:rgba(15,22,38,.3)}
.map-search-input:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 4px rgba(16,198,232,.14)}
.map-search-list{
  position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;
  background:#fff;border:1px solid var(--linha);border-radius:14px;
  box-shadow:0 18px 44px rgba(15,22,38,.14);display:none;max-height:320px;overflow-y:auto;
  list-style:none;margin:0;padding:0;
}
.map-search-list.open{display:block}
.map-search-list li{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:11px 18px;cursor:pointer;font-size:.9rem;color:var(--tinta);
}
.map-search-list li:hover,.map-search-list li.hl{background:rgba(16,198,232,.08)}
.map-search-list li .uf-tag{
  font-size:.68rem;font-family:monospace;letter-spacing:.06em;
  background:rgba(15,22,38,.06);color:var(--tinta-2);
  padding:2px 8px;border-radius:999px;flex-shrink:0;
}
.map-search-list li.none{color:var(--tinta-3);cursor:default}

/* Responsivo */
@media(max-width:900px){
  .map-grid{grid-template-columns:1fr;gap:40px}
  .map-stats{justify-content:space-between;width:100%}
  .map-col{display:flex;flex-direction:column}
  .map-panel{
    position:relative;left:auto;bottom:auto;max-width:none;width:100%;
    margin-top:18px;padding:18px;align-items:stretch;
    flex-direction:column;gap:16px;
  }
  .map-panel-head{width:100%;padding-right:22px}
  .map-panel-actions{width:100%;flex-direction:column;align-items:flex-start;gap:12px}
}
@media(max-width:600px){
  .map-search{max-width:none}
  .map-search-list{max-height:260px}
  .map-stats{gap:14px}
  .map-stat-num{font-size:1.4rem}
}
