:root{--bg:#020813;--panel:#071426;--panel2:#091b32;--text:#f8fbff;--muted:#aac0e6;--blue:#0a78ff;--blue2:#34adff;--border:#123763;--green:#19df7a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at 50% 0,#08204a 0,#020813 35%,#01050d 100%);color:var(--text);overflow-x:hidden}a{text-decoration:none;color:inherit}.glow{position:fixed;width:480px;height:480px;border-radius:50%;filter:blur(120px);opacity:.32;pointer-events:none}.glow-1{background:#0066ff;top:-120px;left:20%}.glow-2{background:#00a3ff;right:-160px;top:25%}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:28px;max-width:1280px;margin:auto;padding:22px 30px;background:rgba(2,8,19,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(52,173,255,.14)}.brand{display:flex;align-items:center;gap:12px}.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#0068ff,#35b6ff);font-weight:900;font-size:30px;box-shadow:0 0 30px rgba(0,115,255,.5)}.brand strong{font-size:26px;letter-spacing:-1px}.brand strong span{color:var(--blue2)}.brand small{display:block;color:#c9d9f5;font-size:12px;margin-top:2px}.nav{display:flex;gap:28px;color:#e8f0ff;font-weight:600}.nav a:hover{color:var(--blue2)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:10px;font-weight:800;transition:.25s}.btn-primary{background:linear-gradient(135deg,#0068ff,#1594ff);box-shadow:0 12px 34px rgba(0,111,255,.32)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 45px rgba(0,111,255,.45)}.btn-ghost{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.03)}.menu{display:none;background:none;border:0;color:white;font-size:28px}.section{max-width:1280px;margin:0 auto;padding:70px 30px}.hero{display:grid;grid-template-columns:1fr 1.2fr;gap:45px;align-items:center;min-height:720px}.tag{display:inline-block;color:var(--blue2);border:1px solid var(--border);background:rgba(0,117,255,.12);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:800;letter-spacing:.8px}.hero h1{font-size:72px;line-height:.96;margin:18px 0;letter-spacing:-3px}.hero h1 span,.services h2 span{color:var(--blue)}.hero p,.section-head p,.integrations p,.cta p{color:var(--muted);font-size:18px;line-height:1.7}.actions,.features{display:flex;gap:18px;flex-wrap:wrap;margin-top:26px}.features{color:#cfe1ff;font-weight:600;font-size:14px;gap:28px}.hero-visual{position:relative;min-height:520px}.map-card{position:absolute;inset:0;background:linear-gradient(160deg,rgba(8,24,47,.65),rgba(2,8,19,.2));border-radius:28px}.map-card:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(52,173,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(52,173,255,.07) 1px,transparent 1px);background-size:38px 38px;transform:perspective(600px) rotateX(55deg);transform-origin:center;opacity:.8}.map-card svg{position:relative;width:100%;height:100%;filter:drop-shadow(0 0 24px #0068ff)}.brazil{fill:rgba(9,55,116,.7);stroke:#218bff;stroke-width:2}.routes path{fill:none;stroke:#16a4ff;stroke-width:3;opacity:.9;filter:drop-shadow(0 0 8px #0b8fff);stroke-dasharray:500;animation:dash 6s linear infinite}.points circle{fill:#26c1ff;filter:drop-shadow(0 0 10px #26c1ff)}@keyframes dash{to{stroke-dashoffset:-1000}}.dashboard{position:absolute;right:0;top:90px;width:330px;padding:20px;border:1px solid var(--border);border-radius:18px;background:rgba(3,12,25,.9);box-shadow:0 30px 100px rgba(0,0,0,.45)}.dash-head{display:flex;justify-content:space-between;color:#fff;margin-bottom:12px}.dash-head span{color:var(--green);font-size:12px}.metric{padding:14px;border-bottom:1px solid rgba(255,255,255,.07)}.metric b{display:block;color:#9eb6de;font-size:13px}.metric strong{font-size:24px}.metric i{display:block;height:4px;margin-top:10px;border-radius:999px;background:linear-gradient(90deg,#0789ff 20%,transparent 20%,#0789ff 35%,transparent 35%,#0789ff 55%,transparent 55%,#0789ff)}.metric.purple i{background:#7547ff}.metric.green i{background:#13c971}.metric.orange i{background:#ff9d00}.trust{max-width:1080px;margin:0 auto 42px;padding:28px 40px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,rgba(8,24,46,.82),rgba(4,14,28,.68));text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.22)}.trust>p{display:inline-block;margin:0 18px;color:#d6e5ff;font-size:13px}.line{display:inline-block;width:150px;height:1px;background:linear-gradient(90deg,transparent,#315b92,transparent);vertical-align:middle}.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;align-items:center;margin-top:28px}.logos div{display:grid;place-items:center;min-height:108px;border-radius:0;background:transparent;border:0;transition:.25s;overflow:visible}.logos div:hover{transform:translateY(-3px);filter:drop-shadow(0 0 18px rgba(52,173,255,.18))} .logos img{max-width:100%;height:92px;object-fit:contain;opacity:1;filter:drop-shadow(0 10px 18px rgba(0,0,0,.52));image-rendering:auto}
.logo-melasonina img{height:106px}
.logo-bomhalito img{height:82px}
.logo-regulae img{height:104px;transform:translateY(-4px)}
.logo-dryskin img{height:100px}
.logo-item{filter:saturate(1.05) contrast(1.08)}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.section h2{font-size:40px;line-height:1.08;letter-spacing:-1.5px;margin:16px 0 24px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cards article{padding:28px;border:1px solid rgba(52,173,255,.17);border-radius:15px;background:linear-gradient(180deg,rgba(12,30,55,.8),rgba(7,16,30,.75));transition:.25s}.cards article:hover{transform:translateY(-5px);border-color:#188dff}.cards span{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:rgba(0,117,255,.14);color:#33adff;font-size:28px}.cards h3{margin:18px 0 10px}.cards p{color:#b9c8e6;line-height:1.6}.flow{border-top:1px solid rgba(52,173,255,.12);border-bottom:1px solid rgba(52,173,255,.12)}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:36px;position:relative}.steps:before{content:"";position:absolute;left:8%;right:8%;top:42px;border-top:2px dotted #135fae}.steps div{text-align:center;position:relative}.steps span{display:grid;place-items:center;margin:0 auto 14px;width:78px;height:78px;border-radius:50%;background:linear-gradient(135deg,#0068ff,#21aaff);box-shadow:0 0 35px rgba(0,111,255,.55);font-size:28px}.steps b{color:#39aeff}.steps p{color:#d9e8ff;font-weight:700}.integrations{display:grid;grid-template-columns:.9fr 1.4fr;gap:44px;align-items:center}.integration-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.integration-grid strong{display:grid;place-items:center;min-height:142px;border:1px solid rgba(52,173,255,.16);border-radius:14px;background:rgba(255,255,255,.035);font-size:32px}.integration-grid strong:nth-child(1){color:#5be2c6}.integration-grid strong:nth-child(2){color:#b45cff}.integration-grid strong:nth-child(3){color:#fff}.integration-grid strong:nth-child(4){color:#ff2d2d}.cta{display:grid;grid-template-columns:300px 1fr 310px;gap:40px;align-items:center;background:linear-gradient(135deg,rgba(0,103,255,.18),rgba(8,20,37,.72));border:1px solid var(--border);border-radius:20px;margin-bottom:50px}.box-3d{height:190px;border-radius:20px;background:linear-gradient(135deg,#101827,#27364b);display:grid;place-items:center;box-shadow:inset -20px -20px 40px rgba(0,0,0,.35),0 0 60px rgba(0,111,255,.25)}.box-3d span{font-size:78px;color:#39aeff;font-weight:900}.footer{max-width:1280px;margin:auto;padding:42px 30px;border-top:1px solid rgba(52,173,255,.12);display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:38px;color:#b6c7e8}.footer h4{color:#229cff;text-transform:uppercase;font-size:13px}.footer a,.footer p{display:block;margin:9px 0}.whatsapp{position:fixed;right:26px;bottom:24px;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#23d366;color:white;font-size:34px;font-weight:900;box-shadow:0 10px 35px rgba(35,211,102,.42);z-index:30}.reveal{opacity:0;transform:translateY(22px);transition:all .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:980px){.nav,.header>.btn{display:none}.menu{display:block}.nav.open{display:flex;position:absolute;top:82px;left:20px;right:20px;flex-direction:column;background:#061426;border:1px solid var(--border);padding:20px;border-radius:18px}.hero,.section-head,.integrations,.cta{grid-template-columns:1fr}.hero h1{font-size:48px}.hero-visual{min-height:440px}.dashboard{position:relative;top:210px;margin-left:auto}.grid,.logos,.integration-grid,.steps,.footer{grid-template-columns:1fr 1fr}.steps:before{display:none}}@media(max-width:620px){.trust{max-width:92%;padding:22px 18px}.logos img{height:86px}.logo-melasonina img{height:100px}.logo-bomhalito img{height:78px}.logo-regulae img{height:96px}.logo-dryskin img{height:94px}.section{padding:52px 18px}.header{padding:16px 18px}.hero h1{font-size:42px}.dashboard{width:100%;top:240px}.hero{min-height:860px}.grid,.logos,.integration-grid,.steps,.footer{grid-template-columns:1fr}.line{width:70px}.brand strong{font-size:22px}}


/* Ajuste real: Portal do Cliente com tela do sistema */
.cards article{position:relative;overflow:hidden}
.portal-card{border-color:#168cff!important;background:linear-gradient(145deg,rgba(0,105,255,.22),rgba(9,26,49,.88))!important;box-shadow:0 0 0 1px rgba(52,173,255,.12),0 22px 70px rgba(0,104,255,.18)}
.portal-card:before{content:"";position:absolute;inset:-70px auto auto -70px;width:180px;height:180px;background:#168cff;border-radius:50%;filter:blur(70px);opacity:.32}
.portal-card em{position:absolute;right:18px;top:18px;font-style:normal;font-size:11px;letter-spacing:1px;font-weight:900;color:#d9ecff;background:rgba(0,116,255,.24);border:1px solid rgba(52,173,255,.32);border-radius:999px;padding:7px 10px}
.portal-card span{background:linear-gradient(135deg,#0068ff,#34adff)!important;color:#fff!important;box-shadow:0 0 28px rgba(0,111,255,.5)}
.portal-real{display:grid;grid-template-columns:.82fr 1.18fr;gap:42px;align-items:center;border:1px solid rgba(52,173,255,.2);border-radius:24px;background:radial-gradient(circle at 90% 10%,rgba(0,119,255,.20),transparent 36%),linear-gradient(135deg,rgba(0,104,255,.12),rgba(4,14,27,.76));box-shadow:0 30px 100px rgba(0,0,0,.28);margin-top:20px;margin-bottom:34px}.portal-real-copy h2{font-size:46px;line-height:1.05;margin:18px 0}.portal-real-copy p{color:var(--muted);font-size:18px;line-height:1.65}.portal-bullets{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:22px 0 28px}.portal-bullets p{margin:0;color:#d9e8ff;font-size:15px;font-weight:700}.portal-screen-frame{position:relative;border:1px solid rgba(52,173,255,.25);border-radius:22px;background:#101820;box-shadow:0 32px 120px rgba(0,104,255,.2),0 0 0 1px rgba(255,255,255,.04);overflow:hidden;transform:perspective(1100px) rotateY(-5deg);transform-origin:center}.portal-screen-frame:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.12),transparent 18%,transparent 76%,rgba(52,173,255,.1));pointer-events:none;z-index:2}.browser-bar{height:42px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg,#1a2230,#0f1721)}.browser-bar span{width:10px;height:10px;border-radius:50%;background:#ff5f57}.browser-bar span:nth-child(2){background:#ffbd2e}.browser-bar span:nth-child(3){background:#28c840}.browser-bar strong{margin-left:10px;color:#b9c8e6;font-size:12px;font-weight:700}.portal-screen-frame img{display:block;width:100%;height:auto;filter:contrast(1.04) saturate(1.04)}
@media(max-width:980px){.portal-real{grid-template-columns:1fr}.portal-screen-frame{transform:none}.portal-bullets{grid-template-columns:1fr}}
@media(max-width:620px){.portal-real{padding-left:18px;padding-right:18px}.portal-real-copy h2{font-size:34px}.portal-screen-frame{border-radius:16px}.browser-bar strong{font-size:10px}.browser-bar{height:34px}.portal-bullets{grid-template-columns:1fr}}

/* =============================
   OTIMIZAÇÃO MOBILE - ShipFlow
   Corrige sobreposição do dashboard com marcas,
   reduz logos no celular e melhora espaçamentos.
============================= */
@media (max-width: 768px) {
  body {
    background: radial-gradient(circle at 50% 0, #08204a 0, #020813 38%, #01050d 100%);
  }

  .header {
    width: 100%;
    padding: 14px 16px;
  }

  .brand .mark {
    width: 38px;
    height: 38px;
    font-size: 26px;
  }

  .brand strong {
    font-size: 21px;
  }

  .brand small {
    font-size: 11px;
  }

  .section {
    padding: 42px 18px;
  }

  .hero {
    display: block;
    min-height: auto;
    padding-top: 38px;
    padding-bottom: 32px;
  }

  .hero h1 {
    font-size: clamp(38px, 11vw, 48px);
    line-height: 1.02;
    letter-spacing: -1.8px;
  }

  .hero p,
  .section-head p,
  .integrations p,
  .cta p {
    font-size: 16px;
    line-height: 1.6;
  }

  .actions {
    gap: 12px;
  }

  .actions .btn {
    width: 100%;
  }

  .features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 22px;
  }

  .hero-visual {
    min-height: auto;
    margin-top: 34px;
  }

  .map-card {
    position: relative;
    inset: auto;
    height: 330px;
    border-radius: 22px;
    overflow: hidden;
  }

  .map-card:before {
    transform: perspective(520px) rotateX(58deg);
  }

  .dashboard {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin-top: 18px;
    padding: 18px;
    border-radius: 18px;
    z-index: 1;
  }

  .metric {
    padding: 12px 8px;
  }

  .metric strong {
    font-size: 30px;
  }

  .trust {
    max-width: calc(100% - 28px);
    margin: 20px auto 28px;
    padding: 22px 16px 24px;
    border-radius: 20px;
    position: relative;
    z-index: 2;
  }

  .trust > p {
    display: block;
    margin: 0 auto 18px;
    font-size: 16px;
    line-height: 1.35;
  }

  .line {
    display: none;
  }

  .logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 18px;
    margin-top: 8px;
  }

  .logos div {
    min-height: 78px;
  }

  .logos img {
    max-width: 100%;
    height: 58px;
  }

  .logo-melasonina img { height: 70px; }
  .logo-bomhalito img { height: 58px; }
  .logo-regulae img { height: 68px; transform: none; }
  .logo-dryskin img { height: 68px; }

  .section-head {
    display: block;
  }

  .section h2 {
    font-size: 34px;
    line-height: 1.1;
  }

  .grid,
  .integration-grid,
  .steps,
  .footer {
    grid-template-columns: 1fr;
  }

  .cards article {
    padding: 24px;
  }

  .steps {
    gap: 26px;
  }

  .integrations {
    display: block;
  }

  .integration-grid {
    margin-top: 24px;
  }

  .integration-grid strong {
    min-height: 96px;
    font-size: 28px;
  }

  .portal-real {
    display: block;
    padding: 28px 18px;
  }

  .portal-real-copy h2 {
    font-size: 34px;
  }

  .portal-screen-frame {
    margin-top: 24px;
    transform: none;
  }

  .cta {
    display: block;
    padding: 28px 18px;
  }

  .box-3d {
    height: 150px;
    margin-bottom: 24px;
  }

  .cta-actions .btn {
    width: 100%;
  }

  .whatsapp {
    width: 58px;
    height: 58px;
    right: 16px;
    bottom: 18px;
  }
}

@media (max-width: 420px) {
  .section {
    padding-left: 16px;
    padding-right: 16px;
  }

  .hero h1 {
    font-size: 38px;
  }

  .map-card {
    height: 280px;
  }

  .dashboard {
    padding: 16px;
  }

  .metric strong {
    font-size: 28px;
  }

  .trust {
    max-width: calc(100% - 20px);
    padding: 20px 14px;
  }

  .logos {
    gap: 18px 12px;
  }

  .logos div {
    min-height: 72px;
  }

  .logo-melasonina img { height: 62px; }
  .logo-bomhalito img { height: 52px; }
  .logo-regulae img { height: 60px; }
  .logo-dryskin img { height: 60px; }
}

/* HERO com mapa real do Brasil + dashboard */
.hero-visual-brasil{
  position:relative;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.hero-brasil-dashboard{
  width:min(820px,100%);
  height:auto;
  display:block;
  border-radius:28px;
  filter:drop-shadow(0 28px 85px rgba(0,112,255,.24));
  transform:translateX(10px);
}
@media(max-width:980px){
  .hero-visual-brasil{margin-top:32px;}
  .hero-brasil-dashboard{width:100%;transform:none;border-radius:22px;}
}
@media(max-width:768px){
  .hero-visual-brasil{margin-top:28px;}
  .hero-brasil-dashboard{border-radius:20px;}
}
@media(max-width:420px){
  .hero-brasil-dashboard{border-radius:16px;}
}


/* HERO: mapa real do Brasil com animações leves */
.hero-map-real{
  position:relative;
  min-height:560px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.real-map-card{
  position:relative;
  width:min(760px, 100%);
  aspect-ratio: 1.34/1;
  border-radius:34px;
  overflow:hidden;
  border:1px solid rgba(52,173,255,.32);
  background:linear-gradient(145deg, rgba(6,22,45,.96), rgba(2,8,19,.96));
  box-shadow:0 38px 110px rgba(0,102,255,.22), inset 0 0 70px rgba(0,132,255,.12);
  animation:heroGlow 5.5s ease-in-out infinite;
}
.real-map-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.12) contrast(1.06) brightness(1.03);
}
.map-shine{
  position:absolute;
  inset:-45%;
  background:linear-gradient(115deg, transparent 35%, rgba(106,218,255,.16) 50%, transparent 65%);
  transform:translateX(-55%) rotate(8deg);
  animation:shineMove 5.8s ease-in-out infinite;
  pointer-events:none;
}
.pulse{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#50d8ff;
  box-shadow:0 0 0 0 rgba(80,216,255,.9), 0 0 22px rgba(80,216,255,.95);
  animation:pulseCity 2.4s infinite;
}
.pulse-sp{left:42.5%;top:59.5%;}
.pulse-ne{left:68.5%;top:24.5%;animation-delay:.6s;}
.pulse-no{left:19.5%;top:24.5%;animation-delay:1.1s;}
.route-light{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 14px #55d9ff, 0 0 28px #0a78ff;
  opacity:.95;
}
.route-a{animation:routeA 4.2s linear infinite;}
.route-b{animation:routeB 5s linear infinite .7s;}
.route-c{animation:routeC 4.6s linear infinite 1.3s;}
@keyframes mapFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes shineMove{0%,55%{transform:translateX(-55%) rotate(8deg)}100%{transform:translateX(55%) rotate(8deg)}}
@keyframes pulseCity{0%{box-shadow:0 0 0 0 rgba(80,216,255,.65),0 0 24px rgba(80,216,255,.95)}70%{box-shadow:0 0 0 18px rgba(80,216,255,0),0 0 24px rgba(80,216,255,.95)}100%{box-shadow:0 0 0 0 rgba(80,216,255,0),0 0 24px rgba(80,216,255,.95)}}
@keyframes routeA{0%{left:42%;top:59%;opacity:0}10%{opacity:1}60%{left:22%;top:24%;opacity:1}100%{left:19%;top:24%;opacity:0}}
@keyframes routeB{0%{left:42%;top:59%;opacity:0}10%{opacity:1}65%{left:64%;top:25%;opacity:1}100%{left:70%;top:24%;opacity:0}}
@keyframes routeC{0%{left:42%;top:59%;opacity:0}10%{opacity:1}62%{left:56%;top:31%;opacity:1}100%{left:72%;top:30%;opacity:0}}
@media(max-width:980px){
  .hero-map-real{min-height:auto;margin-top:28px;}
  .real-map-card{width:100%;border-radius:24px;}
}
@media(max-width:620px){
  .hero-map-real{min-height:auto;margin-top:24px;}
  .real-map-card{border-radius:20px;aspect-ratio:0.86/1;}
  .real-map-card img{object-position:45% center;}
  .pulse-sp{left:43%;top:61%;}.pulse-ne{left:70%;top:25%;}.pulse-no{left:20%;top:25%;}
}


/* Ajuste final: animação limpa sem bolinhas fora do mapa */
.pulse,.route-light{display:none!important}
.real-map-card{animation:heroGlow 5.5s ease-in-out infinite!important}
.real-map-card img{animation:mapBreath 7s ease-in-out infinite; transform-origin:center;}
.map-shine{opacity:.45; animation:shineMove 8s ease-in-out infinite;}
@keyframes heroGlow{0%,100%{box-shadow:0 38px 110px rgba(0,102,255,.20), inset 0 0 70px rgba(0,132,255,.11)}50%{box-shadow:0 42px 128px rgba(0,132,255,.32), inset 0 0 92px rgba(0,162,255,.18)}}
@keyframes mapBreath{0%,100%{filter:saturate(1.12) contrast(1.06) brightness(1.02)}50%{filter:saturate(1.2) contrast(1.1) brightness(1.09)}}
.dashboard .metric i{position:relative;overflow:hidden;}
.dashboard .metric i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-110%);animation:barShine 2.8s ease-in-out infinite;}
@keyframes barShine{0%,45%{transform:translateX(-110%)}100%{transform:translateX(110%)}}
@media(max-width:620px){.real-map-card{aspect-ratio:1/1.2}.real-map-card img{object-position:center center}}

/* =====================================================
   VERSÃO CORRIGIDA - ANIMAÇÃO PREMIUM SUAVE NO MAPA
   Mantém o mapa limpo, sem bolinhas fora das rotas.
   Anima somente: brilho do mapa, varredura de luz e barras.
===================================================== */
.hero-map-real .real-map-card{
  isolation:isolate;
  animation:heroGlowSoft 6s ease-in-out infinite!important;
}
.hero-map-real .real-map-card::before{
  content:"";
  position:absolute;
  inset:6% 42% 6% 6%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(34,173,255,.24), transparent 58%);
  filter:blur(12px);
  opacity:.75;
  z-index:1;
  pointer-events:none;
  animation:mapHubGlow 4.6s ease-in-out infinite;
}
.hero-map-real .real-map-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg, transparent 0%, transparent 42%, rgba(81,210,255,.13) 50%, transparent 58%, transparent 100%);
  transform:translateX(-85%);
  z-index:3;
  pointer-events:none;
  mix-blend-mode:screen;
  animation:mapLightSweep 7.8s ease-in-out infinite;
}
.hero-map-real .real-map-card img{
  z-index:0;
  animation:mapBreathSoft 7.5s ease-in-out infinite!important;
  filter:saturate(1.08) contrast(1.05) brightness(1.02);
}
.hero-map-real .map-shine{
  z-index:4;
  opacity:.22!important;
  animation:shineMove 9s ease-in-out infinite!important;
}
/* remove de vez animações antigas que ficaram agressivas */
.hero-map-real .pulse,
.hero-map-real .route-light,
.route-light,
.pulse{
  display:none!important;
  opacity:0!important;
}
.dashboard .metric i{
  position:relative;
  overflow:hidden;
  box-shadow:0 0 14px rgba(0,126,255,.16);
}
.dashboard .metric i::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
  transform:translateX(-120%);
  animation:barLightRun 3.2s ease-in-out infinite;
}
@keyframes heroGlowSoft{
  0%,100%{box-shadow:0 38px 110px rgba(0,102,255,.19), inset 0 0 70px rgba(0,132,255,.10)}
  50%{box-shadow:0 44px 130px rgba(0,132,255,.30), inset 0 0 92px rgba(0,162,255,.17)}
}
@keyframes mapHubGlow{
  0%,100%{opacity:.50; transform:scale(.98)}
  50%{opacity:.90; transform:scale(1.035)}
}
@keyframes mapLightSweep{
  0%,55%{transform:translateX(-85%)}
  100%{transform:translateX(85%)}
}
@keyframes mapBreathSoft{
  0%,100%{filter:saturate(1.08) contrast(1.05) brightness(1.02)}
  50%{filter:saturate(1.16) contrast(1.08) brightness(1.075)}
}
@keyframes barLightRun{
  0%,45%{transform:translateX(-120%)}
  100%{transform:translateX(120%)}
}
@media (prefers-reduced-motion: reduce){
  .hero-map-real .real-map-card,
  .hero-map-real .real-map-card::before,
  .hero-map-real .real-map-card::after,
  .hero-map-real .real-map-card img,
  .hero-map-real .map-shine,
  .dashboard .metric i::after{
    animation:none!important;
  }
}

/* Ajuste solicitado: hero sem dashboard, mapa do Brasil limpo + frase abaixo */
.hero-map-real{
  min-height: 620px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
}
.hero-map-real .map-only-card{
  position: relative;
  width: 100%;
  min-height: 0;
  border-radius: 28px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(52,173,255,.18);
  background: radial-gradient(circle at 50% 45%, rgba(0,132,255,.18), rgba(2,8,19,.62) 64%);
  box-shadow: 0 36px 100px rgba(0,102,255,.22), inset 0 0 70px rgba(0,132,255,.08);
}
.hero-map-real .map-only-card img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
  opacity: .96;
  transform: scale(1.02);
  animation: mapFloatClean 7s ease-in-out infinite;
}
.hero-map-real .map-only-card::before{
  content:"";
  position:absolute;
  inset:-18%;
  pointer-events:none;
  background: radial-gradient(circle at 54% 48%, rgba(52,173,255,.23), transparent 36%);
  animation: mapGlowPulseClean 5.5s ease-in-out infinite;
  z-index:1;
}
.hero-map-real .map-shine{
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(115deg, transparent 0%, transparent 42%, rgba(83,191,255,.16) 50%, transparent 58%, transparent 100%);
  transform: translateX(-120%);
  animation: mapSweepClean 6.5s ease-in-out infinite;
  z-index:2;
}
.map-info-strip{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 14px;
}
.map-info-item{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap: 12px;
  row-gap: 2px;
  align-items:center;
  padding: 16px 18px;
  border:1px solid rgba(52,173,255,.16);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(7,22,42,.86), rgba(4,13,25,.72));
  box-shadow:0 18px 46px rgba(0,0,0,.22);
}
.map-info-item span{
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:rgba(0,117,255,.13);
  border:1px solid rgba(52,173,255,.18);
  font-size:22px;
}
.map-info-item strong{
  color:#f8fbff;
  font-size:14px;
  line-height:1.25;
}
.map-info-item small{
  color:#a9bee2;
  font-size:12px;
  line-height:1.35;
}
.map-info-item.main{
  border-color: rgba(52,173,255,.28);
  background:linear-gradient(180deg, rgba(9,32,62,.9), rgba(5,16,31,.76));
}
@keyframes mapFloatClean{
  0%,100%{transform:scale(1.02) translateY(0)}
  50%{transform:scale(1.025) translateY(-6px)}
}
@keyframes mapGlowPulseClean{
  0%,100%{opacity:.42; transform:scale(1)}
  50%{opacity:.72; transform:scale(1.04)}
}
@keyframes mapSweepClean{
  0%,38%{transform:translateX(-120%); opacity:0}
  48%{opacity:1}
  68%,100%{transform:translateX(120%); opacity:0}
}
@media(max-width:980px){
  .hero-map-real{min-height:auto; margin-top:32px; gap:14px;}
  .map-info-strip{grid-template-columns:1fr;}
  .hero-map-real .map-only-card{border-radius:22px;}
}
@media(max-width:620px){
  .hero-map-real .map-only-card img{aspect-ratio: 4 / 3; object-fit:cover; object-position:center;}
  .map-info-item{padding:14px 15px;}
  .map-info-item strong{font-size:13px;}
  .map-info-item small{font-size:11px;}
}
@media(prefers-reduced-motion:reduce){
  .hero-map-real .map-only-card img,
  .hero-map-real .map-only-card::before,
  .hero-map-real .map-shine{animation:none!important;}
}

/* =====================================================
   REFINAMENTO FINAL DO HERO - mapa amplo sem cortes
   Coloca o mapa como destaque visual, remove aparência de card
   pesado e deixa a faixa inferior organizada.
===================================================== */
@media (min-width: 981px) {
  .section.hero {
    max-width: 1440px;
    grid-template-columns: minmax(430px, .78fr) minmax(680px, 1.22fr);
    gap: 64px;
    align-items: center;
    min-height: 760px;
    padding-top: 76px;
    padding-bottom: 58px;
  }

  .hero-text {
    position: relative;
    z-index: 3;
  }

  .hero h1 {
    font-size: clamp(64px, 5.4vw, 84px);
    max-width: 610px;
  }

  .hero-text > p {
    max-width: 590px;
  }

  .hero-map-real {
    min-height: 0 !important;
    width: 100%;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 22px;
    margin-top: 0;
  }

  .hero-map-real .map-only-card {
    width: 100%;
    max-width: 860px;
    margin-left: auto;
    margin-right: 0;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  .hero-map-real .map-only-card::before {
    inset: 2% 4%;
    border-radius: 40px;
    background: radial-gradient(circle at 58% 52%, rgba(0,132,255,.24), transparent 42%);
    filter: blur(18px);
    z-index: -1;
  }

  .hero-map-real .map-only-card img {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
    border-radius: 0 !important;
    opacity: .98 !important;
    filter: saturate(1.12) contrast(1.08) brightness(1.03) drop-shadow(0 34px 80px rgba(0,102,255,.18)) !important;
    animation: mapBreathClean 7s ease-in-out infinite !important;
  }

  .map-info-strip {
    width: 100%;
    max-width: 860px;
    margin-left: auto;
    margin-right: 0;
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr;
    gap: 14px;
  }

  .map-info-item {
    min-height: 96px;
    background: linear-gradient(180deg, rgba(7,22,42,.82), rgba(4,13,25,.64));
    border-color: rgba(52,173,255,.20);
    backdrop-filter: blur(14px);
  }

  .map-info-item.main {
    background: linear-gradient(180deg, rgba(9,32,62,.92), rgba(5,16,31,.72));
  }
}

@keyframes mapBreathClean {
  0%, 100% { filter: saturate(1.12) contrast(1.08) brightness(1.02) drop-shadow(0 30px 76px rgba(0,102,255,.18)); }
  50% { filter: saturate(1.18) contrast(1.10) brightness(1.07) drop-shadow(0 36px 96px rgba(0,132,255,.28)); }
}

@media (max-width: 980px) {
  .hero-map-real .map-only-card {
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .hero-map-real .map-only-card img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
  }
}
