/* ============================================================================
   MDC — Mapa "Onde estamos presentes"
   Mesmo componente da Home, usado nas páginas de projeto com os pontos e as
   rotas de um único programa. Carregar ANTES do /assets/css/kit.css.
   ========================================================================== */

/* casca escura da seção (na Home vem do .dsec) */
.presenca{position:relative;overflow:hidden;padding:104px 0;background:transparent;scroll-margin-top:88px}
.presenca::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 92% 78% at 50% 44%,#000 22%,transparent 84%);mask-image:radial-gradient(ellipse 92% 78% at 50% 44%,#000 22%,transparent 84%)}
.presenca::after{content:'';position:absolute;top:-170px;left:50%;transform:translateX(-50%);width:1120px;height:620px;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(37,99,235,.13) 0%,transparent 66%)}
.presenca>.container{position:relative;z-index:2}
.dsec-seam{position:absolute;top:0;left:0;right:0;height:1px;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(59,130,246,.28) 24%,rgba(147,197,253,.42) 50%,rgba(59,130,246,.28) 76%,transparent)}

/* cabeçalho no padrão .lp-head da Home */
.lp-head{text-align:center;max-width:780px;margin:0 auto 56px}
.lp-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.73rem;font-weight:600;letter-spacing:3.2px;text-transform:uppercase;color:#3B82F6;margin-bottom:18px;opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s cubic-bezier(0.16,1,0.3,1)}
.lp-head.in .lp-eyebrow{opacity:1;transform:none}
.lp-heading{font-size:2.55rem;color:#fff;letter-spacing:-1.3px;line-height:1.12;margin-bottom:16px;font-weight:800}
.lp-heading em{font-style:normal;color:#60A5FA}
.lp-lead{font-size:1rem;color:rgba(226,232,240,.60);line-height:1.78;opacity:0;transform:translateY(14px);transition:opacity .85s ease .42s,transform .85s cubic-bezier(0.16,1,0.3,1) .42s}
.lp-head.in .lp-lead{opacity:1;transform:none}

/* ---------- ONDE ESTAMOS PRESENTES ---------- */
.pg-nc{--c:#60A5FA;--cs:96,165,250}
.pg-pac{--c:#22D3EE;--cs:34,211,238}
.pg-oz{--c:#A78BFA;--cs:167,139,250}
.pg-tj{--c:#FBBF24;--cs:251,191,36}
.pg-dp{--c:#34D399;--cs:52,211,153}

.pr-figs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px}
.pr-fig{padding:18px 18px 16px;border-radius:14px;background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.07)}
.pr-fig-n{display:block;font-family:'Space Grotesk','Inter',system-ui,sans-serif;font-size:2.1rem;font-weight:800;line-height:1;background:linear-gradient(135deg,#BFDBFE,#3B82F6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.pr-fig-l{display:block;margin-top:8px;font-size:.665rem;text-transform:uppercase;letter-spacing:.9px;color:rgba(226,232,240,.42);font-weight:600;line-height:1.42}

.pr-bar{display:flex;justify-content:center;margin-bottom:16px}
.pr-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pr-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:10px;font-size:.75rem;font-weight:600;font-family:inherit;color:rgba(226,232,240,.6);background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:background .28s ease,border-color .28s ease,color .28s ease}
.pr-chip::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--c,rgba(226,232,240,.5));box-shadow:0 0 0 3px rgba(var(--cs,148,163,184),.16);flex-shrink:0}
.pr-chip[data-f="all"]::before{background:linear-gradient(135deg,#60A5FA,#A78BFA);box-shadow:0 0 0 3px rgba(148,163,184,.14)}
.pr-chip:hover{color:#fff;border-color:rgba(var(--cs,59,130,246),.4)}
.pr-chip.active{background:rgba(var(--cs,37,99,235),.16);border-color:rgba(var(--cs,59,130,246),.5);color:#fff}

.pr-mapwrap{position:relative;width:100%;border-radius:22px;overflow:hidden;background:#040A13;border:1px solid rgba(255,255,255,.07);box-shadow:0 30px 90px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05)}
.pr-mapwrap::after{content:'';position:absolute;inset:0;border-radius:22px;padding:1px;background:linear-gradient(150deg,rgba(147,197,253,.5),rgba(59,130,246,.12) 40%,rgba(59,130,246,0) 66%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;z-index:4}
.pr-svg{display:block;width:100%;height:auto}

.pr-vig{opacity:0;transition:opacity 1.1s ease}
.in-map .pr-vig{opacity:1}
.pr-gl{stroke:rgba(148,163,184,.11);stroke-width:.7;opacity:0;transition:opacity .9s ease .15s}
.pr-gl.eq{stroke:rgba(96,165,250,.3);stroke-width:1;stroke-dasharray:9 7}
.in-map .pr-gl{opacity:1}
.pr-eqt{fill:rgba(96,165,250,.42);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:2.4px;opacity:0;transition:opacity .9s ease .5s}
.in-map .pr-eqt{opacity:1}

.pr-nb{fill:rgba(120,145,180,.075);stroke:rgba(148,163,184,.14);stroke-width:.7;opacity:0;transition:opacity 1.2s ease .1s}
.in-map .pr-nb{opacity:1}
.pr-br{fill:rgba(150,190,240,.10);stroke:rgba(147,197,253,.5);stroke-width:1.35;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;transition:stroke-dashoffset 1.9s cubic-bezier(0.22,1,0.36,1) .18s,fill-opacity 1s ease .8s}
.in-map .pr-br{stroke-dashoffset:0;fill-opacity:1}
.pr-sf{fill:rgba(37,99,235,.16);opacity:0;transition:opacity 1s ease .9s}
.in-map .pr-sf{opacity:1}
.pr-sl{fill:none;stroke:rgba(226,232,240,.16);stroke-width:.85;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.5s cubic-bezier(0.22,1,0.36,1) var(--d,0ms)}
.in-map .pr-sl{stroke-dashoffset:0}
.pr-uf{fill:rgba(226,232,240,.2);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:19px;font-weight:700;letter-spacing:3px;text-anchor:middle;pointer-events:none;opacity:0;transition:opacity .9s ease 1.15s}
.pr-uf.on{fill:rgba(191,219,254,.4)}
.in-map .pr-uf{opacity:1}

.pr-rt-g{fill:none;stroke:rgba(96,165,250,.15);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 1.1s ease 1.5s}
.in-map .pr-rt-g{opacity:1}
.pr-rt{fill:none;stroke:rgba(147,197,253,.78);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.1s cubic-bezier(0.22,1,0.36,1) var(--d,0ms),opacity .32s ease}
.in-map .pr-rt{stroke-dashoffset:0}
.pr-rt[data-g="nc"]{stroke:rgba(147,197,253,.78)}
.pr-rt[data-g="pac"]{stroke:rgba(103,232,249,.78)}
.pr-rt-g[data-g="nc"]{stroke:rgba(96,165,250,.15)}
.pr-rt-g[data-g="pac"]{stroke:rgba(34,211,238,.13)}
.pr-fl{opacity:0;transition:opacity .7s ease 2.4s}
.in-map .pr-fl{opacity:1}
.pr-fl-d{fill:#F0F9FF}
.pr-fl-t{fill:rgba(147,197,253,.22)}
.pr-fl[data-g="pac"] .pr-fl-t{fill:rgba(34,211,238,.22)}

.pr-site{opacity:0;transition:opacity .5s ease var(--d,0ms);cursor:pointer;outline:none}
.in-map .pr-site{opacity:1}
.pr-dot{fill:var(--c,#60A5FA);stroke:rgba(240,249,255,.9);stroke-width:1.1;transform-box:fill-box;transform-origin:center;transform:scale(.1);transition:transform .8s cubic-bezier(0.34,1.45,0.42,1) calc(var(--d,0ms) + var(--dd,0ms)),fill .25s ease,stroke .25s ease}
.in-map .pr-dot{transform:scale(1)}
.pr-halo{fill:rgba(var(--cs,96,165,250),.24);transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0}
.in-map .pr-site.hub .pr-halo{animation:prPulse 3.4s ease-out infinite;animation-delay:var(--pd,0ms)}
@keyframes prPulse{0%{transform:scale(.3);opacity:.5}70%{transform:scale(2.1);opacity:0}100%{transform:scale(2.1);opacity:0}}
.pr-hit{fill:transparent}
.pr-lb{fill:rgba(226,232,240,.8);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:15px;font-weight:600;pointer-events:none;paint-order:stroke;stroke:rgba(4,10,19,.85);stroke-width:3.4;stroke-linejoin:round;opacity:0;transition:opacity .8s ease 2s}
.in-map .pr-lb{opacity:1}
/* Os nomes dos rios (.pr-rio) são desenhados por /assets/js/infovia.js e levam
   também a classe .pr-lb, para herdar daqui a fonte, o contorno e a entrada.
   O tom azulado e o corpo menor vão em estilo em linha, no próprio JS, porque
   a home não carrega este arquivo — tem cópia própria do CSS do mapa. */
.pr-site:hover .pr-dot,.pr-site.act .pr-dot,.pr-site:focus-visible .pr-dot{fill:#fff;stroke:var(--c,#60A5FA);stroke-width:2.6}
.in-map .pr-site.act .pr-halo{animation:prPulse 1.5s ease-out infinite;fill:rgba(var(--cs,96,165,250),.4)}

.pr-mapwrap[data-filter]:not([data-filter="all"]) .pr-site{opacity:.08;pointer-events:none}
.pr-mapwrap[data-filter]:not([data-filter="all"]) .pr-site .pr-halo{animation:none}
.pr-mapwrap[data-filter="nc"] .pr-site[data-p~="nc"],.pr-mapwrap[data-filter="pac"] .pr-site[data-p~="pac"],
.pr-mapwrap[data-filter="oz"] .pr-site[data-p~="oz"],.pr-mapwrap[data-filter="tj"] .pr-site[data-p~="tj"],
.pr-mapwrap[data-filter="dp"] .pr-site[data-p~="dp"]{opacity:1;pointer-events:auto}
.pr-mapwrap[data-filter="nc"] .pr-site.hub[data-p~="nc"] .pr-halo,.pr-mapwrap[data-filter="pac"] .pr-site.hub[data-p~="pac"] .pr-halo,
.pr-mapwrap[data-filter="oz"] .pr-site.hub[data-p~="oz"] .pr-halo,.pr-mapwrap[data-filter="tj"] .pr-site.hub[data-p~="tj"] .pr-halo,
.pr-mapwrap[data-filter="dp"] .pr-site.hub[data-p~="dp"] .pr-halo{animation:prPulse 3.4s ease-out infinite;animation-delay:var(--pd,0ms)}
.pr-mapwrap[data-filter]:not([data-filter="all"]) .pr-rt,
.pr-mapwrap[data-filter]:not([data-filter="all"]) .pr-rt-g,
.pr-mapwrap[data-filter]:not([data-filter="all"]) .pr-fl{opacity:.1}
.pr-mapwrap[data-filter="nc"] .pr-rt[data-g="nc"],.pr-mapwrap[data-filter="pac"] .pr-rt[data-g="pac"],
.pr-mapwrap[data-filter="nc"] .pr-rt-g[data-g="nc"],.pr-mapwrap[data-filter="pac"] .pr-rt-g[data-g="pac"],
.pr-mapwrap[data-filter="nc"] .pr-fl[data-g="nc"],.pr-mapwrap[data-filter="pac"] .pr-fl[data-g="pac"]{opacity:1}
.pr-mapwrap.pr-ready .pr-site{transition:opacity .3s ease 0ms}
.pr-mapwrap.pr-ready .pr-dot{transition:transform .3s cubic-bezier(0.34,1.45,0.42,1) 0ms,fill .25s ease,stroke .25s ease}
.pr-mapwrap.pr-ready .pr-lb{transition:opacity .3s ease 0ms}
.pr-mapwrap.pr-ready .pr-fl{transition:opacity .3s ease 0ms}

.pr-legend{position:absolute;right:18px;bottom:16px;z-index:5;display:flex;flex-wrap:wrap;gap:6px 18px;max-width:min(420px,52%);padding:9px 14px;border-radius:13px;background:rgba(4,10,19,.72);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);border:1px solid rgba(255,255,255,.09);opacity:0;transform:translateY(12px);transition:opacity .8s ease 1.9s,transform .8s cubic-bezier(0.16,1,0.3,1) 1.9s}
.in-map .pr-legend{opacity:1;transform:none}
.pr-lg{display:flex;align-items:center;gap:8px;font-size:.7rem;color:rgba(226,232,240,.64);font-weight:600;letter-spacing:.2px}
.pr-lg i{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--c,#60A5FA);box-shadow:0 0 0 3px rgba(var(--cs,96,165,250),.16)}
.pr-lg i.lg-rt{width:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(147,197,253,.92),rgba(103,232,249,.92));box-shadow:none}
.pr-scale{position:absolute;left:18px;bottom:18px;z-index:5;font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;color:rgba(226,232,240,.26);font-family:'JetBrains Mono',ui-monospace,monospace;opacity:0;transition:opacity .8s ease 2.2s}
.in-map .pr-scale{opacity:1}

.pr-tip{position:absolute;z-index:7;pointer-events:none;padding:10px 13px;border-radius:11px;background:rgba(4,10,19,.96);border:1px solid rgba(59,130,246,.36);box-shadow:0 18px 44px rgba(0,0,0,.55);opacity:0;transform:translate(-50%,-134%) scale(.94);transition:opacity .16s ease,transform .2s cubic-bezier(0.16,1,0.3,1);white-space:nowrap}
.pr-tip.on{opacity:1;transform:translate(-50%,-124%) scale(1)}
.pr-tip b{display:block;font-size:.84rem;color:#fff;font-weight:700}
.pr-tip span{display:block;font-size:.66rem;color:rgba(226,232,240,.5);margin-top:2px;font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.5px}
.pr-tip em{display:block;font-style:normal;font-size:.7rem;color:#93C5FD;margin-top:5px;font-weight:600}

.pr-foot{margin-top:26px}
.pr-list{display:block;max-height:196px;overflow:hidden;transition:max-height .6s cubic-bezier(0.16,1,0.3,1);-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 46px),transparent 100%);mask-image:linear-gradient(180deg,#000 calc(100% - 46px),transparent 100%)}
.pr-list.open{max-height:1800px;-webkit-mask-image:none;mask-image:none}
.pr-list.in .rv{opacity:1;transform:none}
.pr-grp+.pr-grp{margin-top:16px}
.pr-grp.off{display:none}
.pr-grp-h{display:flex;align-items:baseline;gap:9px;padding:0 9px 8px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:7px}
.pr-grp-h span{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(191,219,254,.62)}
.pr-grp-h i{font-style:normal;font-size:.62rem;font-weight:700;color:rgba(226,232,240,.28)}
.pr-grp-b{display:grid;grid-template-columns:repeat(auto-fill,minmax(198px,1fr));gap:1px 12px}
.pr-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:opacity .7s ease var(--d,0ms),transform .8s cubic-bezier(0.16,1,0.3,1) var(--d,0ms),background .22s ease}
.pr-item i{width:6px;height:6px;border-radius:50%;background:var(--c,#60A5FA);flex-shrink:0;box-shadow:0 0 0 3px rgba(var(--cs,96,165,250),.14)}
.pr-item span{flex:1;min-width:0;font-size:.79rem;color:rgba(226,232,240,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-item:hover,.pr-item.act{background:rgba(var(--cs,37,99,235),.16)}
.pr-item:hover span,.pr-item.act span{color:#fff}
.pr-list[data-filter="nc"] .pr-item:not([data-p~="nc"]),.pr-list[data-filter="pac"] .pr-item:not([data-p~="pac"]),
.pr-list[data-filter="oz"] .pr-item:not([data-p~="oz"]),.pr-list[data-filter="tj"] .pr-item:not([data-p~="tj"]),
.pr-list[data-filter="dp"] .pr-item:not([data-p~="dp"]){display:none}

.pr-listfoot{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:14px;flex-wrap:wrap}
.pr-more{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;font-family:inherit;font-size:.75rem;font-weight:600;color:#BFDBFE;background:rgba(37,99,235,.14);border:1px solid rgba(59,130,246,.3);cursor:pointer;transition:background .25s ease,border-color .25s ease}
.pr-more:hover{background:rgba(37,99,235,.24);border-color:rgba(59,130,246,.5)}
.pr-more svg{width:15px;height:15px;transition:transform .35s cubic-bezier(0.16,1,0.3,1)}
.pr-more[aria-expanded="true"] svg{transform:rotate(180deg)}
.pr-more .m-b{display:none}
.pr-more[aria-expanded="true"] .m-a{display:none}
.pr-more[aria-expanded="true"] .m-b{display:inline}
.pr-list.fits{-webkit-mask-image:none;mask-image:none}

@media (max-width:1024px){
  .dsec{padding:84px 0}
  .monitoring{padding:84px 0}
  .features-grid{grid-template-columns:repeat(2,1fr)}
  .apps-grid{grid-template-columns:repeat(2,1fr)}
  .pr-legend{right:12px;bottom:12px;max-width:min(400px,72%)}
  .pr-scale{display:none}
  .monitoring .lp-heading{font-size:2.05rem}
}
@media (max-width:768px){
  .dsec{padding:72px 0}
  .monitoring{padding:72px 0}
  .features-grid{grid-template-columns:1fr}
  .apps-grid{grid-template-columns:1fr}
  .lp-head{margin-bottom:40px}
  .monitoring .lp-heading{font-size:1.8rem}
  .pr-figs{grid-template-columns:repeat(2,1fr)}
  .pr-fig-n{font-size:1.7rem}
  .pr-chip{padding:8px 12px;font-size:.7rem}
  .pr-legend{position:static;max-width:none;border:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding:12px 14px 14px;justify-content:center}
  .presenca .pr-mapwrap{margin-left:-24px;margin-right:-24px;width:auto;border-radius:0;border-left:0;border-right:0}
  .pr-lb,.pr-eqt,.pr-grat{display:none}
  .pr-uf{font-size:54px;letter-spacing:6px}
  .pr-dot{cx:calc(var(--ox,0) * 2.1px);cy:calc(var(--oy,0) * 2.1px);r:calc(var(--or,4.3) * 2.1px)}
  .pr-halo{r:calc(var(--hr,10) * 2.1px)}
  .pr-hit{r:calc(var(--tr,13) * 2.1px)}
  .pr-rt{stroke-width:2.6}
  .pr-list{max-height:230px}
  .pr-grp-b{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}
}
@media (max-width:480px){
  .dsec{padding:58px 0}
  .monitoring{padding:58px 0}
}

@media (prefers-reduced-motion:reduce){
  .rv,.feature-card,.app-card,.mon-feature,.mon-stat,.mon-visual,.mon-visual img,.pr-br,.pr-nb,.pr-sf,.pr-sl,.pr-rt,.pr-rt-g,.pr-site,.pr-dot,.pr-lb,.pr-uf,.pr-eqt,.pr-gl,.pr-vig,.pr-legend,.pr-scale,.pr-halo,.pr-fl,.pr-item,.pr-fig,.pr-list{transition:none!important;animation:none!important}
  .rv,.feature-card,.app-card,.mon-feature,.mon-stat,.pr-legend,.pr-scale,.pr-lb,.pr-uf,.pr-eqt,.pr-item,.pr-fig{opacity:1!important;transform:none!important}
  .pr-site,.pr-fl,.pr-vig,.pr-nb,.pr-sf,.pr-gl,.pr-rt-g{opacity:1!important}
  .mon-visual{clip-path:none!important}
  .mon-visual img{transform:none!important}
  .pr-br{stroke-dashoffset:0!important;fill-opacity:1!important}
  .pr-sl,.pr-rt{stroke-dashoffset:0!important}
  .pr-dot{transform:scale(1)!important}
  .pr-halo{opacity:0!important}
}

/* nas páginas de projeto o bloco tem 2 ou 3 números — centraliza em vez de
   deixar o espaço vazio à direita */
.presenca .pr-figs{grid-template-columns:repeat(auto-fit,minmax(170px,240px));justify-content:center}
@media(max-width:768px){.presenca .pr-figs{grid-template-columns:repeat(2,1fr);justify-content:stretch}}
