/* ============================================================
   NEO VOIP — DESIGN TOKENS
   ============================================================ */
:root{
  /* brand ramp */
  --navy-900:#030946;
  --navy-800:#071358;
  --navy-700:#0C1E6E;
  --blue-600:#0067C7;
  --blue-500:#0098DA;
  --blue-400:#33B4F0;
  --blue-300:#7FD1F7;

  /* semantic — light */
  --bg:#FFFFFF;
  --bg-alt:#F3F6FC;
  --surface:#FFFFFF;
  --surface-2:#F3F6FC;
  --ink:#030946;
  --body:#4A5468;
  --muted:#6E7891;
  --line:rgba(3,9,70,.10);
  --line-2:rgba(3,9,70,.20);
  --iso-shade:#0A1E5C;
  --band:#030946;
  --band-2:#071358;
  --band-ink:#EAF1FF;
  --band-line:rgba(234,241,255,.16);
  --shadow-sm:0 8px 20px -14px rgba(3,9,70,.45);
  --shadow-md:0 20px 40px -24px rgba(3,9,70,.40);
  --shadow-lg:0 34px 70px -34px rgba(3,9,70,.50);

  /* rhythm */
  --gutter:clamp(1.25rem, 5vw, 3rem);
  --maxw:1240px;
  --sec-y:clamp(4.5rem, 8vw, 7.5rem);
  --r-sm:10px;
  --r-md:16px;
  --r-lg:24px;
  --r-xl:32px;

  color-scheme:light;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#050B2E;
    --bg-alt:#03081F;
    --surface:#0A1247;
    --surface-2:#070E37;
    --ink:#EDF2FF;
    --body:#B7C1DC;
    --muted:#EDF2FF;
    --line:rgba(237,242,255,.13);
    --line-2:rgba(237,242,255,.24);
    --iso-shade:#02071F;
    --band:#02061C;
    --band-2:#050D3A;
    --shadow-sm:0 8px 20px -14px rgba(0,0,0,.7);
    --shadow-md:0 20px 40px -24px rgba(0,0,0,.75);
    --shadow-lg:0 34px 70px -34px rgba(0,0,0,.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#050B2E;
  --bg-alt:#03081F;
  --surface:#0A1247;
  --surface-2:#070E37;
  --ink:#EDF2FF;
  --body:#B7C1DC;
  --muted:#8D97B6;
  --line:rgba(237,242,255,.13);
  --line-2:rgba(237,242,255,.24);
  --iso-shade:#02071F;
  --band:#02061C;
  --band-2:#050D3A;
  --shadow-sm:0 8px 20px -14px rgba(0,0,0,.7);
  --shadow-md:0 20px 40px -24px rgba(0,0,0,.75);
  --shadow-lg:0 34px 70px -34px rgba(0,0,0,.8);
  color-scheme:dark;
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:5.5rem; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
body{
  margin:0;
  background:var(--bg);
  color:var(--body);
  font-family:"Manrope", ui-sans-serif, system-ui, sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5{
  font-family:"Sora","Manrope",sans-serif;
  color:var(--ink);
  margin:0;
  line-height:1.15;
  letter-spacing:-0.02em;
  text-wrap:balance;
  font-weight:700;
}
h1{ font-size:clamp(2.15rem, 4.4vw, 3.5rem); line-height:1.08; }
h2{ font-size:clamp(1.75rem, 3.2vw, 2.6rem); }
h3{ font-size:clamp(1.05rem, 1.5vw, 1.2rem); }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
img,svg,canvas{ display:block; max-width:100%; }
button{ font:inherit; color:inherit; background:none; border:none; }
:focus-visible{ outline:2px solid var(--blue-400); outline-offset:3px; border-radius:4px; }
.mono{ font-family:"JetBrains Mono", ui-monospace, monospace; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--sec-y); }
.section--alt{ background:var(--bg-alt); }
.section--band{ background:var(--band); color:var(--band-ink); position:relative; overflow:hidden; }
.section--band h2,.section--band h3{ color:#fff; }

/* section head: flex column = predictable rhythm, no margin collapse */
.head{ display:flex; flex-direction:column; gap:1.15rem; max-width:60ch; margin-bottom:clamp(2.5rem,4.5vw,3.75rem); }
.head--center{ margin-inline:auto; text-align:center; align-items:center; }
.head h1{ font-size:clamp(1.75rem, 3.2vw, 2.6rem); line-height:1.15; }
.head p{ font-size:1.06rem; color:var(--muted); max-width:56ch; }
.section--band .head p{ color:rgba(234,241,255,.72); }
.rule{ width:56px; height:4px; border-radius:99px; background:linear-gradient(90deg,var(--blue-500),var(--blue-300)); }

/* ============================================================
   LEGAL / PROSE PAGES (ex.: Política de Privacidade)
   ============================================================ */
#privacidade .head{ max-width:none; }
#privacidade .head p{ max-width:none; }
.legal{ display:flex; flex-direction:column; gap:1.25rem; text-align:left; }
.legal h2{ font-size:1.3rem; }
.legal p{ color:var(--body); }
.legal a{ color:var(--blue-500); text-decoration:underline; text-underline-offset:2px; }
.legal a:hover{ color:var(--blue-600); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:"JetBrains Mono",monospace;
  font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--blue-500);
}
.eyebrow::before{ content:""; width:1.5em; height:2px; background:currentColor; border-radius:2px; }
.section--band .eyebrow{ color:var(--blue-300); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.95em 1.6em;
  border-radius:var(--r-sm);
  font-family:"Manrope",sans-serif; font-weight:700; font-size:.95rem;
  border:1.5px solid transparent; cursor:pointer; white-space:nowrap;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn svg{ width:1.05em; height:1.05em; flex:none; }
.btn--primary{ background:linear-gradient(135deg,var(--blue-500),var(--blue-600)); color:#fff; box-shadow:0 14px 26px -14px rgba(0,103,199,.85); }
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 20px 34px -14px rgba(0,103,199,.95); }
.btn--ghost{ border-color:var(--line-2); color:var(--ink); background:transparent; }
.btn--ghost:hover{ border-color:var(--blue-500); color:var(--blue-500); }
.btn--onDark{ border-color:rgba(255,255,255,.32); color:#fff; background:rgba(255,255,255,.04); }
.btn--onDark:hover{ border-color:#fff; background:rgba(255,255,255,.12); }
.btn--light{ background:#fff; color:var(--navy-900); }
.btn--light:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -16px rgba(0,0,0,.55); }
.btn--sm{ padding:.62em 1.1em; font-size:.85rem; border-radius:8px; }
.btn-row{ display:flex; flex-wrap:wrap; gap:.85rem; }

/* ============================================================
   TOP UTILITY BAR
   ============================================================ */
.topbar{ background:var(--navy-900); color:rgba(234,241,255,.82); font-size:.82rem; }
.topbar__row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.55rem; }
.topbar__social{ display:flex; gap:.45rem; }
.topbar__social a{ width:1.85rem; height:1.85rem; border-radius:7px; background:rgba(255,255,255,.08); display:grid; place-items:center; transition:background .18s ease; }
.topbar__social a:hover{ background:var(--blue-500); color:#fff; }
.topbar__social svg{ width:.9rem; height:.9rem; }
.topbar__contact{ display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; justify-content:center; }
.topbar__contact .lbl{ opacity:.6; letter-spacing:.06em; text-transform:uppercase; font-size:.72rem; }
.topbar__contact a{ display:inline-flex; align-items:center; gap:.4rem; font-weight:700; color:#fff; }
.topbar__contact a:hover{ color:var(--blue-300); }
.topbar__contact svg{ width:.9rem; height:.9rem; color:var(--blue-300); }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.header{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--line);
}
.header__row{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }
.brand{ flex:none; display:block; }
.brand img{ height:30px; width:auto; }
.header__actions{ flex:none; }
.footer__brand img{ flex:none; }
.nav{ display:flex; align-items:center; gap:clamp(.9rem, 1.6vw, 1.75rem); }
.nav a{ position:relative; font-size:.93rem; font-weight:600; color:var(--body); padding-block:.35rem; transition:color .18s ease; white-space:nowrap; }
.nav a:hover{ color:var(--blue-500); }
.nav a.is-active{ color:var(--blue-500); }
.nav a.is-active::after{ content:""; position:absolute; inset:auto 0 -.45rem 0; height:2px; border-radius:2px; background:var(--blue-500); }
.header__actions{ display:flex; align-items:center; gap:.65rem; }
.nav__panel-actions{ display:none; }
.burger{ display:none; width:2.5rem; height:2.5rem; border:1px solid var(--line-2); border-radius:9px; place-items:center; color:var(--ink); }
.burger svg{ width:1.2rem; height:1.2rem; }

@media (max-width:1160px){
  .nav{
    position:fixed; inset:5rem var(--gutter) auto var(--gutter);
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--r-md); padding:.6rem 1.2rem 1.2rem;
    box-shadow:var(--shadow-lg);
    opacity:0; transform:translateY(-10px); pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
    max-height:calc(100vh - 7rem); overflow-y:auto;
  }
  .nav.is-open{ opacity:1; transform:none; pointer-events:auto; }
  .nav a{ padding-block:.85rem; border-bottom:1px solid var(--line); }
  .nav a.is-active::after{ display:none; }
  .nav__panel-actions{ display:flex; flex-direction:column; gap:.65rem; padding-top:1rem; }
  .nav__panel-actions .btn{ width:100%; }
  .header__actions .btn{ display:none; }
  .burger{ display:grid; }
}
/* Below the desktop nav breakpoint the utility bar keeps only the phone
   numbers — social lives in the mobile menu. */
@media (max-width:1160px){
  .topbar__social,.topbar__contact .lbl{ display:none; }
  .topbar__row{ justify-content:center; }
  .topbar__contact{ gap:1.25rem; }
}
@media (max-width:420px){
  .topbar__contact{ gap:.9rem; font-size:.78rem; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; background:var(--navy-900); color:#fff; overflow:hidden; isolation:isolate; }
.hero__aura{
  position:absolute; inset:-20% -10% auto -10%; height:130%;
  background:
    radial-gradient(46% 52% at 78% 34%, rgba(0,152,218,.42), transparent 70%),
    radial-gradient(40% 44% at 12% 12%, rgba(51,180,240,.22), transparent 72%),
    radial-gradient(60% 60% at 50% 110%, rgba(12,30,110,.85), transparent 70%);
  z-index:-1;
}
.hero__mesh{
  position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:linear-gradient(rgba(127,209,247,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(127,209,247,.09) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(70% 60% at 50% 40%, #000 30%, transparent 78%);
}
.hero__inner{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(2rem,5vw,4rem); align-items:center; padding-block:clamp(3.25rem,7vw,6rem); }
.hero__copy{ display:flex; flex-direction:column; align-items:flex-start; gap:1.5rem; }
.hero h1{ color:#fff; }
.hero h1 em{ font-style:normal; background:linear-gradient(100deg,var(--blue-300),var(--blue-400)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero__lede{ font-size:clamp(1rem,1.35vw,1.12rem); color:rgba(234,241,255,.78); max-width:50ch; }
.hero .btn-row{ margin-top:.35rem; }
.hero__proof{ display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem 1.75rem; margin-top:1rem; padding-top:1.6rem; border-top:1px solid var(--band-line); width:100%; }
.hero__proof img{ height:36px; width:auto; }
.hero__proof .chip{ display:inline-flex; align-items:center; gap:.5rem; font-size:.84rem; color:rgba(234,241,255,.7); }
.hero__proof .chip svg{ width:1.05rem; height:1.05rem; color:var(--blue-300); }

/* 3D globe stage */
.stage{ position:relative; aspect-ratio:1/1; max-height:520px; margin-inline:auto; width:100%; }
.stage__canvas{ position:absolute; inset:0; width:100%; height:100%; }
.stage__card{
  position:absolute; z-index:2;
  display:flex; align-items:center; gap:.75rem;
  padding:.85rem 1.05rem; border-radius:14px;
  background:linear-gradient(150deg, rgba(9,22,84,.92), rgba(4,12,58,.88));
  border:1px solid rgba(127,209,247,.28);
  box-shadow:0 24px 44px -22px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  color:#fff;
}
.stage__card .ic{ width:2.15rem; height:2.15rem; border-radius:9px; display:grid; place-items:center; background:linear-gradient(150deg,var(--blue-400),var(--blue-600)); color:#fff; flex:none; }
.stage__card .ic svg{ width:1.1rem; height:1.1rem; }
.stage__card b{ display:block; font-family:"Sora",sans-serif; font-size:.86rem; font-weight:700; letter-spacing:-0.01em; }
.stage__card span{ display:block; font-size:.72rem; color:rgba(234,241,255,.62); }
.stage__card--a{ top:8%; left:-2%; animation:bob 7s ease-in-out infinite; }
.stage__card--b{ top:44%; right:-4%; animation:bob 8.5s ease-in-out infinite .6s; }
.stage__card--c{ bottom:7%; left:12%; animation:bob 7.8s ease-in-out infinite 1.2s; }
@keyframes bob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-11px); } }

@media (max-width:1000px){
  .hero__inner{ grid-template-columns:1fr; }
  .stage{ max-width:440px; }
}

/* ============================================================
   KPI STRIP
   ============================================================ */
.kpis{ position:relative; z-index:3; margin-top:calc(var(--sec-y) * -0.42); }
.kpis__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg);
}
.kpi{ background:var(--surface); padding:1.9rem 1.6rem; display:flex; flex-direction:column; gap:.4rem; }
.kpi b{ font-family:"Sora",sans-serif; font-size:clamp(1.75rem,2.6vw,2.25rem); font-weight:800; color:var(--blue-500); line-height:1; letter-spacing:-0.03em; }
.kpi span{ font-size:.88rem; color:var(--muted); }
@media (max-width:860px){ .kpis__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .kpis__grid{ grid-template-columns:1fr; } .kpi{ text-align:center; align-items:center; } }

/* ============================================================
   ABOUT
   ============================================================ */
.about{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.25rem,5vw,4.5rem); align-items:center; }
.about__copy{ display:flex; flex-direction:column; gap:1.25rem; align-items:flex-start; }
.about__copy h2{ margin-top:.2rem; }
.about__copy p{ color:var(--body); }
.quote{
  font-family:"Sora",sans-serif; font-size:1.12rem; font-weight:600; line-height:1.5;
  color:var(--ink); padding:1.1rem 0 1.1rem 1.35rem; border-left:3px solid var(--blue-500);
}
.checks{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem 1.5rem; width:100%; }
.checks li{ display:flex; gap:.65rem; align-items:flex-start; font-size:.93rem; color:var(--body); }
.checks .tick{ width:1.3rem; height:1.3rem; border-radius:50%; background:var(--blue-500); color:#fff; display:grid; place-items:center; flex:none; margin-top:.15rem; }
.checks .tick svg{ width:.75rem; height:.75rem; }

.iso-panel{
  position:relative; border-radius:var(--r-xl); overflow:hidden;
  background:linear-gradient(160deg, var(--navy-800), var(--navy-900) 62%);
  box-shadow:var(--shadow-lg); aspect-ratio:1/.92;
}
.iso-panel::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(52% 46% at 62% 26%, rgba(0,152,218,.38), transparent 72%);
}
.iso-panel canvas{ position:absolute; inset:0; width:100%; height:100%; }
.iso-panel__tag{
  position:absolute; left:1.4rem; bottom:1.4rem; z-index:2;
  font-family:"JetBrains Mono",monospace; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(234,241,255,.62);
}
@media (max-width:900px){ .about{ grid-template-columns:1fr; } .checks{ grid-template-columns:1fr; } }

/* ============================================================
   SOLUTIONS
   ============================================================ */
.sol{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.sol__card{
  position:relative; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:2rem 1.75rem;
  display:flex; flex-direction:column; gap:1rem;
  transition:transform .3s cubic-bezier(.22,.8,.3,1), box-shadow .3s ease, border-color .3s ease;
  overflow:hidden;
}
.sol__card::after{
  content:""; position:absolute; inset:auto 0 0 0; height:3px;
  background:linear-gradient(90deg,var(--blue-500),var(--blue-300));
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.sol__card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.sol__card:hover::after{ transform:scaleX(1); }
.ico3d{
  width:56px; height:56px; flex:none;
  border-radius:16px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(150deg,var(--blue-400),var(--blue-600));
  transform:perspective(600px) rotateX(15deg) rotateY(-15deg);
  box-shadow:9px 12px 0 -2px var(--iso-shade), 0 22px 30px -18px rgba(0,103,199,.9), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .35s cubic-bezier(.22,.8,.3,1), box-shadow .35s ease;
}
.ico3d svg{ width:1.5rem; height:1.5rem; }
.sol__card:hover .ico3d{ transform:perspective(600px) rotateX(0deg) rotateY(0deg) translateY(-2px); box-shadow:4px 6px 0 -2px var(--iso-shade), 0 22px 30px -18px rgba(0,103,199,.9), inset 0 1px 0 rgba(255,255,255,.4); }
.sol__card h3{ margin-top:.35rem; }
.sol__card p{ font-size:.94rem; color:var(--muted); flex:1; }
.link-arrow{ display:inline-flex; align-items:center; gap:.45rem; font-size:.88rem; font-weight:700; color:var(--blue-500); }
.link-arrow svg{ width:1rem; height:1rem; transition:transform .2s ease; }
.sol__card:hover .link-arrow svg{ transform:translateX(4px); }
@media (max-width:960px){ .sol{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .sol{ grid-template-columns:1fr; } .sol__card{ align-items:center; text-align:center; } }

/* ============================================================
   BENEFITS
   ============================================================ */
.bens{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.ben{ background:var(--surface); padding:2.1rem 1.8rem; display:flex; flex-direction:column; gap:.85rem; transition:background .25s ease; }
.ben:hover{ background:var(--bg-alt); }
.ben__ic{ width:2.75rem; height:2.75rem; border-radius:12px; background:var(--bg-alt); color:var(--blue-500); display:grid; place-items:center; }
.ben:hover .ben__ic{ background:var(--blue-500); color:#fff; }
.ben__ic svg{ width:1.35rem; height:1.35rem; }
.ben h3{ margin-top:.15rem; }
.ben p{ font-size:.92rem; color:var(--muted); }
@media (max-width:900px){ .bens{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .bens{ grid-template-columns:1fr; } .ben{ align-items:center; text-align:center; } }

/* ============================================================
   PROCESS (band)
   ============================================================ */
.section--band .hero__mesh{ opacity:.35; }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.75rem; position:relative; }
.steps::before{
  content:""; position:absolute; left:8%; right:8%; top:29px; height:2px;
  background:linear-gradient(90deg, transparent, rgba(127,209,247,.42) 12%, rgba(127,209,247,.42) 88%, transparent);
}
.step{ display:flex; flex-direction:column; gap:.85rem; position:relative; }
.step__orb{
  width:58px; height:58px; border-radius:50%; display:grid; place-items:center;
  font-family:"JetBrains Mono",monospace; font-weight:600; font-size:1.05rem; color:#fff;
  background:radial-gradient(circle at 32% 26%, #8FDCFF, var(--blue-500) 46%, #033E75 100%);
  box-shadow:inset -5px -7px 14px rgba(0,0,0,.4), inset 3px 4px 10px rgba(255,255,255,.25), 0 18px 28px -14px rgba(0,152,218,.8);
  position:relative; z-index:1;
}
.step h3{ color:#fff; }
.step p{ font-size:.92rem; color:rgba(234,241,255,.68); }
@media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } .steps::before{ display:none; } }
@media (max-width:560px){
  .steps{ grid-template-columns:1fr; }
  .step{ align-items:center; text-align:center; }
}

/* ============================================================
   RESELLER CTA
   ============================================================ */
.cta{
  position:relative; overflow:hidden; isolation:isolate;
  border-radius:var(--r-xl); padding:clamp(2.25rem,5vw,3.75rem);
  background:linear-gradient(118deg, var(--navy-900) 8%, var(--navy-700) 55%, var(--blue-600) 130%);
  color:#fff;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem;
  box-shadow:var(--shadow-lg);
}
.cta__floor{
  position:absolute; inset:auto -30% -34% -30%; height:62%; z-index:-1; opacity:.5;
  background-image:linear-gradient(rgba(127,209,247,.32) 1px, transparent 1px), linear-gradient(90deg, rgba(127,209,247,.32) 1px, transparent 1px);
  background-size:52px 52px;
  transform:perspective(300px) rotateX(62deg);
  mask-image:linear-gradient(to top, #000, transparent 78%);
}
.cta__copy{ display:flex; flex-direction:column; gap:1.05rem; max-width:44ch; }
.cta h2{ color:#fff; }
.cta p{ color:rgba(255,255,255,.82); }

/* ============================================================
   CONTACT
   ============================================================ */
.contact{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.75rem,4vw,3rem); align-items:start; }
.ccards{ display:grid; gap:1rem; }
.ccard{ display:flex; gap:1.1rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:1.4rem 1.5rem; transition:border-color .2s ease, box-shadow .2s ease; }
.ccard:hover{ border-color:var(--blue-400); box-shadow:var(--shadow-sm); }
.ccard__ic{ width:2.5rem; height:2.5rem; border-radius:10px; background:var(--bg-alt); color:var(--blue-500); display:grid; place-items:center; flex:none; }
.ccard__ic svg{ width:1.2rem; height:1.2rem; }
.ccard__body{ display:flex; flex-direction:column; gap:.3rem; }
.ccard h3{ font-size:.98rem; }
.ccard a,.ccard p{ font-size:.92rem; color:var(--muted); }
.ccard a:hover{ color:var(--blue-500); }

.addr{
  position:relative; overflow:hidden;
  background:linear-gradient(160deg, var(--navy-800), var(--navy-900) 68%);
  color:#fff; border-radius:var(--r-lg); padding:2.15rem;
  display:flex; flex-direction:column; gap:1.15rem; align-items:flex-start;
  box-shadow:var(--shadow-lg);
}
.addr::before{ content:""; position:absolute; inset:0; background:radial-gradient(50% 44% at 4% 100%, rgba(0,152,218,.34), transparent 70%); }
.addr > *{ position:relative; }
.addr h3{ color:#fff; font-size:1.25rem; }
.addr .lines{ font-family:"JetBrains Mono",monospace; font-size:.85rem; line-height:1.85; color:rgba(234,241,255,.78); }
.addr .cnpj{ font-size:.85rem; color:rgba(234,241,255,.55); }
@media (max-width:900px){ .contact{ grid-template-columns:1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--navy-900); color:rgba(234,241,255,.7); padding-block:clamp(3.5rem,6vw,5rem) 1.75rem; }
.footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.75rem; padding-bottom:2.75rem; border-bottom:1px solid var(--band-line); }
.footer__brand{ display:flex; flex-direction:column; gap:1.1rem; align-items:flex-start; }
.footer__brand img{ height:26px; width:auto; }
.footer__brand p{ font-size:.92rem; color:rgba(234,241,255,.62); max-width:34ch; }
.fcol{ display:flex; flex-direction:column; gap:1.1rem; }
.fcol h4{ font-family:"JetBrains Mono",monospace; font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(234,241,255,.45); }
.fcol ul{ display:flex; flex-direction:column; gap:.7rem; }
.fcol a,.fcol li{ font-size:.92rem; color:#fff; }
.fcol a:hover{ color:var(--blue-300); }
.socials{ display:flex; gap:.6rem; }
.socials a{ width:2.25rem; height:2.25rem; border-radius:9px; border:1px solid var(--band-line); display:grid; place-items:center; transition:border-color .18s ease,color .18s ease,background .18s ease; }
.socials a:hover{ border-color:var(--blue-400); color:var(--blue-300); background:rgba(0,152,218,.12); }
.socials svg{ width:1.05rem; height:1.05rem; }

.footer__mid{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.75rem; padding-block:2rem; border-bottom:1px solid var(--band-line); }
.footer__contactline{ display:flex; flex-direction:column; gap:.45rem; }
.footer__contactline strong{ font-size:.94rem; color:#fff; font-weight:600; }
.footer__contactline span{ font-size:.86rem; }
.badges{ display:flex; align-items:center; gap:1.75rem; }
.badges img{ height:48px; width:auto; }
.footer__legal{ display:flex; flex-direction:column; align-items:center; gap:.4rem; text-align:center; padding-top:1.75rem; font-size:.82rem; color:rgba(234,241,255,.5); }

@media (max-width:1000px){ .footer__top{ grid-template-columns:1fr 1fr; gap:2.25rem; } }
@media (max-width:760px){
  .footer__top{ grid-template-columns:1fr; text-align:center; gap:2.5rem; }
  .footer__brand{ align-items:center; }
  .footer__brand p{ max-width:42ch; }
  .fcol{ align-items:center; }
  .fcol ul{ align-items:center; }
  .socials{ justify-content:center; }
  .footer__mid{ flex-direction:column; text-align:center; }
  .footer__contactline{ align-items:center; }
  .badges{ justify-content:center; gap:1.5rem; }
}

/* ============================================================
   FLOATING CONTROLS
   ============================================================ */
.float-wa{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:70;
  width:3.4rem; height:3.4rem; border-radius:50%;
  background:#1FAE5C; color:#fff; display:grid; place-items:center;
  box-shadow:0 16px 30px -12px rgba(0,0,0,.5);
}
.float-wa svg{ width:1.6rem; height:1.6rem; }
.float-wa::before{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #1FAE5C; animation:pulse 2.6s ease-out infinite; }
@keyframes pulse{ 0%{ transform:scale(1); opacity:.65; } 100%{ transform:scale(1.65); opacity:0; } }

.to-top{
  position:fixed; right:1.25rem; bottom:5.5rem; z-index:70;
  width:3.4rem; height:3.4rem; border-radius:50%; cursor:pointer;
  background:var(--blue-500); color:#fff; display:grid; place-items:center;
  box-shadow:0 16px 30px -12px rgba(3,9,70,.6);
  opacity:0; visibility:hidden; transform:translateY(12px) scale(.85);
  transition:opacity .25s ease, transform .25s ease, visibility .25s, background .2s ease;
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--blue-600); }
.to-top svg{ width:1.25rem; height:1.25rem; }

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,.8,.3,1), transform .7s cubic-bezier(.22,.8,.3,1); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
.reveal[data-d="5"]{ transition-delay:.4s; }

/* ============================================================
   MOBILE: FULL-WIDTH BUTTONS
   ============================================================ */
@media (max-width:640px){
  .btn{ width:100%; }
  .btn-row{ flex-direction:column; align-items:stretch; width:100%; }
  .cta{ flex-direction:column; align-items:stretch; }
  .cta__copy{ max-width:none; align-items:center; text-align:center; }
  .head{ text-align:center; align-items:center; margin-inline:auto; }
  .head p{ margin-inline:auto; }
  .hero__copy{ align-items:center; text-align:center; }
  .hero__lede{ margin-inline:auto; }
  .hero__proof{ justify-content:center; }
  .about__copy{ align-items:center; text-align:center; }
  .checks li{ text-align:left; }
  .quote{ text-align:left; }
  .addr{ align-items:stretch; }
  .stage__card--a{ left:0; }
  .stage__card--b{ right:0; }
}
