
.presence {
  overflow:hidden;
  border-top:1px solid var(--hairline)
}
.presence-layout {
  display:grid;
  grid-template-columns:1fr 1.06fr;
  gap:58px;
  align-items:center
}
.presence-copy .eyebrow { margin-bottom:18px }
.presence-copy h2 {
  font-size:clamp(2.5rem,4.4vw,4.7rem);
  line-height:1.02;
  margin-bottom:20px
}
.presence-copy>p {
  max-width:570px;
  margin-bottom:28px
}
.country-list { display:grid; gap:10px }
.country-card {
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:center;
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.018);
  transition:border-color .25s ease,transform .25s var(--ease),background .25s ease,box-shadow .25s ease
}
.country-card:hover,.country-card.is-active {
  transform:translateX(5px);
  border-color:rgba(167,112,255,.52);
  background:rgba(139,92,246,.06);
  box-shadow:0 15px 38px rgba(67,29,128,.12)
}
.country-name { display:flex; align-items:center; gap:11px }
.country-name strong { font-size:.9rem }
.country-name span { font-size:1.08rem }
.country-card p { grid-column:1/-1; font-size:.78rem; line-height:1.55 }
.country-status {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--success);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase
}
.country-status::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--success);
  box-shadow:0 0 9px var(--success)
}

/* Mapa LATAM real: substitui o diagrama abstrato da versão anterior. */
.presence-visual {
  position:relative;
  min-height:545px;
  border:1px solid rgba(174,128,255,.22);
  border-radius:30px;
  background:
    radial-gradient(circle at 62% 39%,rgba(139,92,246,.19),transparent 29%),
    radial-gradient(circle at 45% 76%,rgba(93,48,176,.11),transparent 34%),
    linear-gradient(145deg,rgba(12,7,24,.94),rgba(6,4,13,.98));
  overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 30px 80px rgba(0,0,0,.26)
}
.presence-map::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.025),transparent 28%,transparent 70%,rgba(119,75,220,.025));
  z-index:8
}
.presence-map-grid {
  position:absolute;
  inset:0;
  opacity:.18;
  background-image:linear-gradient(rgba(161,118,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(161,118,255,.11) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,transparent 0,#000 17%,#000 88%,transparent 100%)
}
.presence-map-glow {
  position:absolute;
  width:360px;
  height:360px;
  left:52%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(125,64,241,.14);
  filter:blur(58px)
}
.presence-map-image {
  position:absolute;
  z-index:2;
  left:5%;
  top:8%;
  width:91%;
  height:84%;
  object-fit:contain;
  opacity:.92;
  filter:drop-shadow(0 28px 28px rgba(0,0,0,.5)) drop-shadow(0 0 20px rgba(129,75,237,.14))
}
.presence-map-routes {
  position:absolute;
  inset:0;
  z-index:4;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none
}
.presence-map-routes path {
  fill:none;
  stroke:url(#presenceRouteGradientPt);
  stroke-width:.42;
  stroke-dasharray:1.3 1.9;
  stroke-linecap:round;
  animation:dash 8s linear infinite;
  filter:drop-shadow(0 0 3px rgba(167,108,255,.82))
}
html[lang="en"] .presence-map-routes path { stroke:url(#presenceRouteGradientEn) }
html[lang="es"] .presence-map-routes path { stroke:url(#presenceRouteGradientEs) }
.presence-map-node {
  appearance:none;
  position:absolute;
  z-index:7;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:none;
  color:inherit;
  cursor:pointer;
  transform:translate(-50%,-50%);
  font:inherit
}
.presence-map-node.br { left:73%; top:36% }
.presence-map-node.py { left:68%; top:46% }
.presence-map-node.cl { left:52%; top:66% }
.presence-node-dot {
  position:relative;
  width:13px;
  height:13px;
  border:3px solid #f0e7ff;
  border-radius:50%;
  background:#8b5cf6;
  box-shadow:0 0 10px #a96cff,0 0 27px rgba(142,76,255,.95);
  transition:transform .25s ease,background .25s ease
}
.presence-node-dot::before,.presence-node-dot::after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:25px;
  height:25px;
  border:1px solid rgba(194,157,255,.44);
  border-radius:50%;
  animation:ripple 2.7s ease-out infinite
}
.presence-node-dot::after { animation-delay:1.3s }
.presence-node-label {
  padding:6px 10px;
  border:1px solid rgba(185,148,255,.31);
  border-radius:999px;
  background:rgba(8,5,15,.82);
  backdrop-filter:blur(12px);
  color:#f7f3ff;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
  white-space:nowrap;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  transition:border-color .25s ease,background .25s ease,transform .25s ease
}
.presence-map-node:hover .presence-node-dot,.presence-map-node.is-active .presence-node-dot {
  transform:scale(1.3);
  background:#d35cff
}
.presence-map-node:hover .presence-node-label,.presence-map-node.is-active .presence-node-label {
  transform:translateY(-1px);
  border-color:rgba(216,92,255,.72);
  background:rgba(50,17,109,.88)
}
.presence-map-head {
  position:absolute;
  z-index:9;
  left:22px;
  right:22px;
  top:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  color:#766b8e;
  font-size:.6rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase
}
.presence-live {
  display:flex;
  align-items:center;
  gap:7px;
  color:#6ee7c2;
  letter-spacing:.09em
}
.presence-live::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:#6ee7c2;
  box-shadow:0 0 10px #6ee7c2;
  animation:pulse 1.8s ease-in-out infinite
}
.presence-map-foot {
  position:absolute;
  z-index:9;
  left:22px;
  bottom:20px;
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:11px 14px;
  border:1px solid rgba(180,144,255,.17);
  border-radius:13px;
  background:rgba(7,4,13,.68);
  backdrop-filter:blur(12px)
}
.presence-map-foot strong {
  color:#efe9ff;
  font-size:.7rem;
  letter-spacing:.05em
}
.presence-map-foot span {
  color:#746b88;
  font-size:.61rem
}
