/* =========================================================
   BN SOLUÇÕES — Design tokens
   ========================================================= */
:root{
  --navy:        #0B1F3A;
  --navy-rgb:    11,31,58;
  --navy-2:      #0d2447;
  --navy-3:      #0d3358;
  --footer-bg:   #081527;

  --teal:        #0FA98C;
  --teal-rgb:    15,169,140;
  --teal-dark:   #0c9179;
  --teal-light:  #4FD8BC;
  --teal-light-rgb: 79,216,188;

  --orange:      #FF7A29;
  --orange-rgb:  255,122,41;

  --white:       #FFFFFF;
  --ice:         #EEF4F8;
  --slate:       #55677E;
  --slate-light: #8A9AB0;

  /* Cores reais das operadoras — usadas em selos/glifos no site neutro */
  --nio:         #45B649;
  --vero:        #D62D68;
  --algar-blue:  #0068A6;
  --algar-green: #79C143;

  --font-display: 'Space Grotesk', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --radius: 14px;
  --radius-sm: 8px;
  --shadow-soft: 0 20px 40px -20px rgba(var(--navy-rgb),0.25);
  --shadow-card: 0 10px 30px -12px rgba(var(--navy-rgb),0.18);
  --ease: cubic-bezier(.22,1,.36,1);
  --premium-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.5;
  color:var(--navy);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  width:100%;
}

body.menu-open{
  overflow:hidden;
  overscroll-behavior:none;
}

a, button{ -webkit-tap-highlight-color:transparent; }

main, section, article, aside, nav, form, div, header, footer{ min-width:0; }

h1, h2, h3, h4, h5, h6, p, a, button, label, summary{ overflow-wrap:anywhere; }

button, input, select, textarea{ font:inherit; }

@media (pointer:coarse){
  .main-nav a{ padding:10px 0; display:inline-block; }
}

img{ max-width:100%; display:block; height:auto; }
iframe{ max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }

.container{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
  border-radius:4px;
}

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.95rem;
  min-height:44px;
  padding:14px 26px;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
  white-space:nowrap;
  text-align:center;
  will-change:transform;
}
.btn:hover{ transform:translateY(-3px); }
.btn .icon{ flex-shrink:0; }
.btn-lg{ padding:17px 32px; font-size:1.02rem; }
.btn-sm{ padding:10px 18px; font-size:0.85rem; }

.btn-whatsapp{
  background:var(--teal);
  color:var(--white);
  box-shadow:0 12px 24px -10px rgba(var(--teal-rgb),0.55);
}
.btn-whatsapp:hover{
  background:var(--teal-dark);
  box-shadow:0 16px 30px -10px rgba(var(--teal-rgb),0.65);
}

.btn-ghost{
  background:transparent;
  border-color:rgba(var(--navy-rgb),0.18);
  color:var(--navy);
}
.hero .btn-ghost{ border-color:rgba(255,255,255,0.35); color:var(--white); }
.btn-ghost:hover{ border-color:var(--orange); color:var(--orange); }

.btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,0.25);
  color:var(--white);
  width:100%;
  justify-content:center;
}
.btn-outline:hover{
  background:var(--orange);
  border-color:var(--orange);
  color:var(--white);
}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  background:rgba(var(--navy-rgb),0);
  backdrop-filter:blur(0px);
  transition:background .3s var(--ease), backdrop-filter .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.scrolled{
  background:rgba(var(--navy-rgb),0.92);
  backdrop-filter:blur(10px);
  box-shadow:0 10px 30px -15px rgba(0,0,0,0.4);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:18px;
  padding-bottom:18px;
  gap:20px;
}

.brand{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin-right:14px;
  background:transparent;
  border:none;
  box-shadow:none;
  transition:transform .3s var(--ease);
}
.brand-mark .node{ fill:var(--teal); }
.brand-mark .node-hub{ fill:var(--orange); }
.brand-mark .link{ stroke:rgba(255,255,255,0.55); stroke-width:1.4; }
.brand-logo{
  display:block;
  height:58px;
  width:auto;
  border-radius:18px;
  object-fit:contain;
  box-shadow:
    0 0 0 1px rgba(36,224,215,0.22),
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 8px 32px rgba(0,0,0,0.50),
    0 0 22px rgba(36,224,215,0.10);
  transition:box-shadow .3s var(--ease);
}
.brand:hover{
  transform:translateY(-2px);
}
.brand:hover .brand-logo{
  box-shadow:
    0 0 0 1px rgba(36,224,215,0.44),
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 14px 44px rgba(0,0,0,0.60),
    0 0 36px rgba(36,224,215,0.30);
}
.brand-text{
  font-family:var(--font-display);
  font-size:1.3rem;
  color:var(--white);
  letter-spacing:0.2px;
}
.brand-text strong{ color:var(--teal-light); font-weight:600; }

.main-nav{
  display:flex;
  align-items:center;
  gap:32px;
  font-size:0.94rem;
  font-weight:500;
}
.main-nav > a{
  color:rgba(255,255,255,0.82);
  position:relative;
  padding:6px 0;
  transition:color .2s;
}
.main-nav > a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0%; height:2px;
  background:var(--orange);
  transition:width .25s var(--ease);
}
.main-nav > a:hover{ color:var(--white); }
.main-nav > a:hover::after{ width:100%; }
.main-nav a.nav-active{ color:var(--white); }
.main-nav a.nav-active::after{ width:100%; background:var(--teal-light); }

.nav-cliente{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 16px !important;
  border:1.5px solid rgba(255,255,255,0.3);
  border-radius:999px;
}
.nav-cliente:hover{ border-color:var(--teal-light); background:rgba(255,255,255,0.06); }
.nav-cliente::after{ display:none !important; }

.header-actions{ display:flex; align-items:center; }

.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.4);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s var(--ease), visibility .3s var(--ease);
  z-index:89;
}

.nav-backdrop.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.main-nav-mobile-cta{ display:none; }

.menu-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:52px; height:52px;
  background:transparent;
  border:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  border-radius:14px;
  transition:transform .3s ease-in-out, background .3s ease-in-out;
  position:relative;
  z-index:130;
  flex-shrink:0;
  touch-action:manipulation;
}
.menu-toggle span{
  display:block;
  height:2px;
  width:24px;
  background:var(--white);
  border-radius:2px;
  transform-origin:center;
  transition:transform .3s ease-in-out, opacity .3s ease-in-out, background .3s ease-in-out;
  will-change:transform, opacity;
}
.menu-toggle.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2){ opacity:0; transform:scaleX(0); }
.menu-toggle.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.menu-toggle:active{ transform:scale(.96); }
.menu-toggle.is-animating{ pointer-events:none; }

/* Dropdown "Operadoras" no menu */
.nav-dropdown{ position:relative; }
.nav-dropdown .dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:transparent;
  border:none;
  color:rgba(255,255,255,0.82);
  font:inherit;
  cursor:pointer;
  padding:6px 0;
}
.nav-dropdown .dropdown-toggle:hover{ color:var(--white); }
.nav-dropdown .dropdown-arrow{ transition:transform .25s var(--ease); font-size:0.7em; }
.nav-dropdown.open .dropdown-arrow{ transform:rotate(180deg); }
.nav-dropdown .dropdown-menu{
  position:absolute;
  top:calc(100% + 14px);
  left:50%;
  transform:translate(-50%, 8px);
  width:200px;
  background:rgba(var(--navy-rgb),0.98);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,0.28);
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
  z-index:20;
  padding:8px;
}
.nav-dropdown.open .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
}
.nav-dropdown .dropdown-menu li + li{ margin-top:2px; }
.nav-dropdown .dropdown-menu a{
  display:block;
  padding:11px 14px;
  border-radius:10px;
  color:rgba(255,255,255,0.88);
  font-size:0.92rem;
  transition:background .2s ease, color .2s ease;
}
.nav-dropdown .dropdown-menu a:hover{
  background:rgba(255,255,255,0.08);
  color:var(--white);
}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:100px 0 60px;
  background-color:#071A35;
  background-image:
    linear-gradient(180deg, rgba(7,26,53,0.80) 0%, rgba(7,26,53,0.88) 100%),
    url('imagens/mocanocaderao.png');
  background-size:cover;
  background-position:center;
  color:var(--white);
  overflow:hidden;
}

.hero-copy{ position:relative; z-index:2; max-width:620px; }
.hero-copy-bg{ display:none; }

.hero-network{ position:absolute; inset:0; opacity:0.9; pointer-events:none; }
.hero-network svg{ width:100%; height:100%; }
.net-link{
  stroke:rgba(var(--teal-light-rgb),0.35);
  stroke-width:1.5;
  stroke-dasharray:6 6;
  animation:dash 30s linear infinite;
}
.net-node{ fill:var(--teal-light); animation:pulse-node 3.2s ease-in-out infinite; animation-delay:calc(var(--d) * .4s); }
.net-hub{ fill:var(--orange); animation:pulse-hub 2.4s ease-in-out infinite; }
.net-label{ font-family:var(--font-mono); font-size:13px; fill:rgba(255,255,255,0.5); letter-spacing:1px; }
@keyframes dash{ to{ stroke-dashoffset:-240; } }
@keyframes pulse-node{ 0%,100%{ r:7; opacity:.85; } 50%{ r:9.5; opacity:1; } }
@keyframes pulse-hub{
  0%,100%{ r:12; filter:drop-shadow(0 0 0 rgba(var(--orange-rgb),0)); }
  50%{ r:15; filter:drop-shadow(0 0 14px rgba(var(--orange-rgb),0.7)); }
}

/* Partículas — pequenos pontos teal apenas */
.hero-particles{ position:absolute; inset:0; pointer-events:none; z-index:1; }
.particle{
  position:absolute;
  display:block;
  border-radius:50%;
  background:rgba(34,211,182,0.55);
  box-shadow:0 0 12px rgba(34,211,182,0.45);
  animation:floatParticle 7s var(--premium-ease) infinite alternate;
}
.particle-1{ width:8px; height:8px; top:22%; right:14%; }
.particle-2{ width:5px; height:5px; top:62%; right:38%; animation-delay:1.2s; }
.particle-3{ width:7px; height:7px; top:42%; left:8%; animation-delay:2s; }
.particle-4{ width:5px; height:5px; bottom:18%; right:22%; animation-delay:2.8s; }
@keyframes floatParticle{
  from{ transform:translate3d(0,0,0); opacity:.5; }
  to{ transform:translate3d(10px,-14px,0); opacity:1; }
}

.hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr 480px;
  gap:56px;
  align-items:center;
  margin-top:28px;
}

.eyebrow{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:0.78rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--teal-light);
  margin:0 0 18px;
}
.eyebrow-dark{ color:var(--teal); }

.hero-title{
  font-family:var(--font-display);
  font-size:clamp(2.3rem, 5.4vw, 3.6rem);
  line-height:1.08;
  font-weight:700;
  margin:0 0 22px;
  letter-spacing:-0.5px;
}
.hero-title .highlight{ color:var(--teal-light); }

.hero-subtitle{
  font-size:1.12rem;
  line-height:1.6;
  color:rgba(255,255,255,0.78);
  max-width:560px;
  margin:0 0 36px;
}
.hero-subtitle strong{ color:var(--white); }

.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:0; }

.hero-stats{
  position:relative;
  z-index:2;
  display:flex;
  gap:40px;
  flex-wrap:wrap;
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,0.14);
}
/* =========================================================
   Hero — Feature Row
   ========================================================= */
.hero-features{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center;
  gap:0;
  margin-top:32px;
  padding:22px 0;
  border-top:1px solid rgba(255,255,255,0.10);
}
.hero-feature{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:0 20px;
}
.hero-feature:first-child{ padding-left:0; }
.hero-feature:last-child{ padding-right:0; }
.hero-feature-icon{
  font-size:1.4rem;
  line-height:1;
  flex-shrink:0;
  margin-top:1px;
}
.hero-feature-title{
  display:block;
  font-size:0.88rem;
  font-weight:700;
  color:#fff;
  margin-bottom:3px;
}
.hero-feature-desc{
  font-size:0.78rem;
  color:rgba(255,255,255,0.56);
  line-height:1.4;
}
.feature-divider{
  display:block;
  width:1px;
  height:38px;
  background:rgba(255,255,255,0.12);
  flex-shrink:0;
}

/* =========================================================
   Hero — Agente Autorizado Showcase
   ========================================================= */
.authorized-showcase{
  position:relative;
  z-index:3;
  width:100%;
  margin:0 auto 44px;
  padding:8px 0 54px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:20px;
  isolation:isolate;
}

.authorized-showcase::before{
  content:"";
  position:absolute;
  inset:-60px -6% -12px;
  z-index:-2;
  background:
    radial-gradient(580px 340px at 50% 18%, rgba(53,125,230,0.2), rgba(5,14,30,0) 74%),
    linear-gradient(180deg, rgba(6,16,36,0.8) 0%, rgba(6,16,36,0.28) 64%, rgba(6,16,36,0) 100%);
  pointer-events:none;
}

.authorized-showcase-bg{
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  overflow:hidden;
}

.authorized-line,
.authorized-node,
.authorized-wave{
  position:absolute;
  pointer-events:none;
}

.authorized-line{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(119,190,255,0.28), transparent);
  animation:authorizedLinePulse 8s ease-in-out infinite;
}

.authorized-line-1{ width:64%; left:18%; top:132px; }
.authorized-line-2{ width:56%; left:22%; top:228px; animation-delay:1.5s; }
.authorized-line-3{ width:46%; left:27%; top:320px; animation-delay:2.8s; }

@keyframes authorizedLinePulse{
  0%,100%{ opacity:.22; }
  50%{ opacity:.46; }
}

.authorized-node{
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(167,221,255,0.9);
  box-shadow:0 0 14px rgba(145,212,255,0.55);
  animation:authorizedNodeBlink 5.2s ease-in-out infinite;
}

.authorized-node-1{ left:22%; top:128px; }
.authorized-node-2{ left:50%; top:224px; animation-delay:1.4s; }
.authorized-node-3{ left:72%; top:316px; animation-delay:2.7s; }

@keyframes authorizedNodeBlink{
  0%,100%{ opacity:.52; transform:scale(.92); }
  50%{ opacity:1; transform:scale(1.08); }
}

.authorized-wave{
  border:1px solid rgba(145,212,255,0.14);
  border-radius:50%;
  transform:translate(-50%,-50%);
  animation:authorizedWavePulse 10s ease-in-out infinite;
}

.authorized-wave-1{ width:320px; height:320px; left:34%; top:52%; }
.authorized-wave-2{ width:360px; height:360px; left:66%; top:50%; animation-delay:2.6s; }

@keyframes authorizedWavePulse{
  0%,100%{ opacity:.12; transform:translate(-50%,-50%) scale(.96); }
  50%{ opacity:.26; transform:translate(-50%,-50%) scale(1.03); }
}

.authorized-head{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}

.authorized-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(194,225,255,0.22);
  background:rgba(16,37,72,0.44);
  color:rgba(236,246,255,0.92);
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
}

.authorized-title{
  margin:0;
  max-width:760px;
  font-family:var(--font-display);
  font-size:clamp(1.25rem, 1.8vw, 1.8rem);
  font-weight:600;
  line-height:1.24;
  color:rgba(245,250,255,0.98);
  text-wrap:balance;
}

.authorized-cards{
  position:relative;
  z-index:1;
  width:100%;
  margin-top:2px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:104px;
  flex-wrap:wrap;
}

.authorized-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:170px;
}

.authorized-card{
  width:170px;
  height:170px;
  border-radius:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:1px solid rgba(255,255,255,0.2);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -22px 40px rgba(4,11,24,0.25),
    0 18px 42px rgba(1,7,17,0.55);
  transition:transform 350ms ease, box-shadow 350ms ease;
  transform:translateY(0) scale(1);
}

.authorized-card:hover{
  transform:translateY(-8px) scale(1.03);
}

.authorized-card-nio{
  background:linear-gradient(135deg, #0F2E12 0%, #173D1B 100%);
  border-color:#66FF00;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -22px 40px rgba(4,11,24,0.25),
    0 18px 42px rgba(1,7,17,0.55),
    0 0 39px rgba(102,255,0,.225);
}

.authorized-card-nio:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -22px 40px rgba(4,11,24,0.26),
    0 24px 52px rgba(1,7,17,0.62),
    0 0 52px rgba(102,255,0,.3);
}

.authorized-card-algar{
  background:linear-gradient(135deg, #082849 0%, #0D3C6B 100%);
  border-color:#2DA8FF;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -22px 40px rgba(4,11,24,0.25),
    0 18px 42px rgba(1,7,17,0.55),
    0 0 39px rgba(45,168,255,.225);
}

.authorized-card-algar:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -22px 40px rgba(4,11,24,0.26),
    0 24px 52px rgba(1,7,17,0.62),
    0 0 52px rgba(45,168,255,.3);
}

.authorized-card-vero{
  background:linear-gradient(135deg, #3D0D29 0%, #5A123B 100%);
  border-color:#FF2C8B;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -22px 40px rgba(4,11,24,0.25),
    0 18px 42px rgba(1,7,17,0.55),
    0 0 39px rgba(255,44,139,.225);
}

.authorized-card-vero:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -22px 40px rgba(4,11,24,0.26),
    0 24px 52px rgba(1,7,17,0.62),
    0 0 52px rgba(255,44,139,.3);
}

.authorized-logo{
  width:78%;
  height:auto;
  object-fit:contain;
  display:block;
  margin:auto;
  border:none;
  box-shadow:none;
  background:transparent;
}

.authorized-meta{
  margin:11px 0 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}

.authorized-meta strong{
  color:#fff;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.125em;
  text-transform:uppercase;
}

.authorized-meta span{
  color:rgba(255,255,255,0.64);
  font-size:0.64rem;
  font-weight:600;
  letter-spacing:0.11em;
  line-height:1.3;
  text-transform:uppercase;
}

/* =========================================================
   Slider do hero — moldura pronta para fotos reais.
   Troque o background das classes .hero-slide-bg-1/2/3 por
   url("images/hero-slide-1.jpg") quando tiver as fotos.
   ========================================================= */
.hero-visual{ position:relative; z-index:2; display:flex; justify-content:center; align-items:center; }
.hero-slider{
  position:relative;
  width:100%;
  min-height:460px;
  border-radius:32px;
  overflow:hidden;
  background:#081527;
  box-shadow:0 40px 100px rgba(0,0,0,.28);
  isolation:isolate;
}
.hero-slider::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top right, rgba(var(--teal-rgb),0.18), transparent 42%);
  pointer-events:none;
  z-index:1;
}
.hero-slide{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  opacity:0;
  animation:cinematicHeroSlide 18s infinite;
}
.hero-slide:nth-child(1){ animation-delay:0s; }
.hero-slide:nth-child(2){ animation-delay:6s; }
.hero-slide:nth-child(3){ animation-delay:12s; }

.hero-slide-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.08);
  animation:kenBurns 7s linear infinite;
  z-index:-2;
}
/* Placeholders com a cor de cada operadora — troque por foto real quando tiver */
.hero-slide-bg-1{ background-image:radial-gradient(circle at 30% 30%, rgba(var(--nio),.35), transparent 60%), linear-gradient(135deg, #0d3a12, #123b17 60%, #0a2b0e); background-image:radial-gradient(circle at 30% 30%, rgba(69,182,73,.35), transparent 60%), linear-gradient(135deg, #0d3a12, #123b17 60%, #0a2b0e); }
.hero-slide-bg-2{ background-image:radial-gradient(circle at 70% 30%, rgba(214,45,104,.35), transparent 60%), linear-gradient(135deg, #3b0e22, #2a0819 60%, #1c0511); }
.hero-slide-bg-3{ background-image:radial-gradient(circle at 40% 70%, rgba(121,193,67,.28), transparent 55%), linear-gradient(135deg, #04486f, #023152 60%, #011f34); }

.hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(0deg, rgba(7,23,45,.92) 0%, rgba(7,23,45,.55) 45%, rgba(7,23,45,.15) 100%);
  z-index:-1;
}
.hero-slide-content{
  position:relative;
  z-index:2;
  width:min(88%, 420px);
  margin:0 0 30px 30px;
  padding:26px;
  border-radius:24px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px);
  box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.hero-slide-tag{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:0.76rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--white);
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  padding:8px 14px;
  margin-bottom:14px;
}
.hero-slide h2{
  font-family:var(--font-display);
  font-size:clamp(1.5rem, 2.4vw, 1.9rem);
  line-height:1.12;
  margin:0 0 10px;
  color:var(--white);
}
.hero-slide p{ margin:0; color:rgba(255,255,255,0.88); line-height:1.6; }
.hero-slide-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.hero-slide-meta span{
  font-size:0.82rem;
  color:rgba(255,255,255,0.88);
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:999px;
  padding:8px 12px;
}
@keyframes cinematicHeroSlide{
  0%, 28%{ opacity:1; transform:translate3d(0,0,0) scale(1); }
  33%, 100%{ opacity:0; transform:translate3d(0,-14px,0) scale(1.01); }
}
@keyframes kenBurns{
  from{ transform:scale(1.06) translate3d(-1%,0,0); }
  to{ transform:scale(1.14) translate3d(1.5%,-1%,0); }
}

/* =========================================================
   Agente Autorizado
   ========================================================= */
.authorized-section{ padding-top:64px; padding-bottom:64px; }
.authorized-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
  background:var(--ice);
  border-radius:28px;
  padding:36px 40px;
}
/* =========================================================
   Hero — Authorized Badge
   ========================================================= */
.hero-authorized-container{
  display:flex;
  justify-content:center;
  width:100%;
  margin:0 auto 32px;
  position:relative;
  z-index:2;
}

.hero-authorized-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  width:min(100%, 900px);
  padding:22px 28px;
  border-radius:28px;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.20);
  box-shadow:0 32px 80px rgba(0,0,0,0.22);
  backdrop-filter:blur(20px);
}

.hero-authorized-copy{ display:flex; flex-direction:column; gap:4px; }
.hero-authorized-title{
  font-size:1rem;
  font-weight:800;
  letter-spacing:0.18em;
  color:var(--white);
  text-transform:uppercase;
}
.hero-authorized-subtitle{
  margin:0;
  font-size:0.9rem;
  color:rgba(255,255,255,0.80);
  max-width:360px;
}

.hero-authorized-links{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  justify-content:center;
}

/* Each operator = colored circle */
.hero-authorized-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:90px;
  height:90px;
  border-radius:50%;
  border:none;
  text-decoration:none;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  position:relative;
  overflow:hidden;
}
.hero-authorized-link:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 36px rgba(0,0,0,0.24);
}

/* White circle around the logo */
.hero-authorized-logo-circle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:50%;
  background:transparent;
  position:relative;
  z-index:1;
}

.hero-authorized-icon{
  width:40px;
  height:40px;
  object-fit:contain;
}

/* Brand backgrounds */
.hero-authorized-link-nio{
  background:linear-gradient(135deg, #1a7c25, #2db53b);
}
.hero-authorized-link-vero{
  background:linear-gradient(135deg, #9c1050, #d62d68);
}
.hero-authorized-link-algar{
  background:linear-gradient(135deg, #006ea8, #0fa98c, #3db55a);
}

.hero-image-card{
  position:relative;
  width:100%;
  min-height:520px;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(34,211,182,0.18), 0 0 40px rgba(34,211,182,0.12), 0 32px 64px rgba(0,0,0,0.40);
  animation:floatImage 4s ease-in-out infinite alternate;
}
@keyframes floatImage{
  from{ transform:translateY(0px); }
  to{ transform:translateY(-10px); }
}
.hero-image-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-image-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(4,15,30,0.12), rgba(4,15,30,0.30));
}
.hero-image-caption{
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:2;
  padding:16px 20px;
  border-radius:20px;
  background:rgba(7,18,40,0.72);
  color:rgba(255,255,255,0.92);
  font-size:0.95rem;
  line-height:1.5;
}

/* =========================================================
   Benefícios — redesign premium
   ========================================================= */
.section-benefits{
  background:#f0f4f9;
  position:relative;
  overflow:hidden;
}
.section-benefits::before{
  content:"";
  position:absolute;
  width:700px; height:700px;
  background:radial-gradient(circle, rgba(34,211,182,0.07), transparent 65%);
  top:-300px; right:-200px;
  pointer-events:none;
}

.benefits-layout{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:36px;
  align-items:start;
}

/* Sticky left panel */
.benefits-aside{ position:sticky; top:96px; }
.benefits-aside-card{
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);
  border-radius:24px;
  padding:36px 30px;
  box-shadow:0 24px 64px rgba(11,31,58,0.20);
  color:var(--white);
  display:flex;
  flex-direction:column;
  gap:22px;
}
.benefits-aside-card .section-title{ color:var(--white); margin:0; line-height:1.18; }
.benefits-aside-card .section-lead{ display:none; }

/* Checklist */
.benefits-checklist{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:11px;
}
.benefits-checklist li{
  display:flex; align-items:center; gap:11px;
  font-size:0.93rem; color:rgba(255,255,255,0.88);
}
.check-icon{
  display:flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  background:rgba(34,211,182,0.16);
  border:1px solid rgba(34,211,182,0.32);
  color:#22D3B6; font-size:0.72rem; font-weight:800;
}

/* Partner logos row */
.benefits-partner-logos{
  display:flex; align-items:center; gap:14px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.10);
}
.benefits-partner-logos img{
  height:22px; width:auto; object-fit:contain;
  opacity:0.65; transition:opacity .2s;
  filter:brightness(10);
}
.benefits-partner-logos img:hover{ opacity:1; }

/* Cards grid */
.benefits-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }

.benefit-card-premium{
  background:#ffffff;
  border-radius:22px;
  padding:26px 24px;
  border:1px solid rgba(11,31,58,0.07);
  box-shadow:0 2px 16px rgba(11,31,58,0.07);
  position:relative;
  overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  display:flex; flex-direction:column; gap:10px;
}
.benefit-card-premium:hover{
  transform:translateY(-8px);
  box-shadow:0 20px 48px rgba(11,31,58,0.13);
  border-color:rgba(34,211,182,0.28);
}

/* Teal top accent line */
.benefit-card-accent{
  position:absolute;
  top:0; left:26px; right:26px; height:3px;
  border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,#22D3B6,#18B79E);
  opacity:0;
  transition:opacity .3s var(--ease);
}
.benefit-card-premium:hover .benefit-card-accent{ opacity:1; }

/* Icon */
.benefit-card-icon-wrap{
  width:54px; height:54px;
  border-radius:15px;
  background:var(--navy);
  color:var(--teal-light);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition:transform .3s var(--ease);
}
.benefit-card-premium:hover .benefit-card-icon-wrap{ transform:rotate(-6deg) scale(1.08); }
.benefit-card-icon-wrap svg{ fill:currentColor; }

.benefit-card-premium h3{
  font-family:var(--font-display); font-size:1.05rem; font-weight:700;
  color:var(--navy); margin:0;
  transition:color .3s;
}
.benefit-card-premium:hover h3{ color:#22D3B6; }
.benefit-card-premium p{ font-size:0.88rem; line-height:1.6; color:var(--slate); margin:0; }

/* Saiba mais link */
.benefit-card-link{
  display:inline-flex; align-items:center; gap:5px;
  font-size:0.83rem; font-weight:600; color:#22D3B6;
  text-decoration:none; margin-top:auto; padding-top:6px;
  transition:gap .25s var(--ease);
}
.benefit-card-link:hover{ gap:9px; }

/* Operators card — full width */
.benefit-card-operators{ grid-column:1 / -1; flex-direction:row; align-items:center; flex-wrap:wrap; gap:20px; }
.benefit-card-operators h3{ margin-bottom:2px; }
.benefit-operators-logos{
  display:flex; align-items:center; gap:20px;
  margin-left:auto; flex-wrap:wrap;
}
.benefit-operators-logos a{ display:flex; align-items:center; }
.benefit-operators-logos img{
  height:28px; width:auto; object-fit:contain;
  filter:grayscale(1); opacity:0.5;
  transition:filter .25s, opacity .25s;
}
.benefit-operators-logos a:hover img{ filter:none; opacity:1; }

/* =========================================================
   Sections — general
   ========================================================= */
.section{ padding:110px 0; }
.section-title{
  font-family:var(--font-display);
  font-size:clamp(1.8rem, 3.4vw, 2.5rem);
  font-weight:700;
  color:var(--navy);
  margin:0 0 20px;
  letter-spacing:-0.3px;
  max-width:640px;
}
.section-title-light{ color:var(--white); }
.section-lead{ color:var(--slate-light); max-width:560px; font-size:1.05rem; line-height:1.6; margin:0 0 56px; }
.section-dark{ background:linear-gradient(180deg, var(--navy), var(--navy-2)); color:var(--white); }
.section-dark .eyebrow{ color:var(--teal-light); }

/* =========================================================
   Operadoras — cards premium com área de imagem
   ========================================================= */
.operators-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; margin-top:10px; }

.operator-card-premium{
  background:rgba(13,28,56,0.70);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:28px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
  box-shadow:0 16px 48px rgba(0,0,0,0.30);
}
.operator-card-premium:hover{
  transform:translateY(-10px) scale(1.015);
  border-color:rgba(255,255,255,0.22);
  box-shadow:0 40px 80px -16px rgba(0,0,0,0.55);
}

.operator-card-media{
  height:200px;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
}
/* Rich gradient backgrounds per brand */
.operator-card-premium[data-op="nio"] .operator-card-media{
  background:linear-gradient(150deg, #0d3312 0%, #1b6b22 50%, #45b649 100%);
}
.operator-card-premium[data-op="vero"] .operator-card-media{
  background:linear-gradient(150deg, #2a0619 0%, #7a1040 50%, #d62d68 100%);
}
.operator-card-premium[data-op="algar"] .operator-card-media{
  background:linear-gradient(150deg, #013966 0%, #0068a6 40%, #0fa98c 75%, #79c143 100%);
}
/* Subtle radial highlight to add depth */
.operator-card-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 70% 30%, rgba(255,255,255,0.18) 0%, transparent 65%);
}
/* Bottom fade into card body */
.operator-card-media::after{
  content:"";
  position:absolute;
  bottom:0; left:0; right:0;
  height:60px;
  background:linear-gradient(to bottom, transparent, rgba(13,28,56,0.70));
}

.operator-card-body{
  padding:0 28px 32px;
  display:flex;
  flex-direction:column;
  gap:16px;
  flex:1;
}

.operator-logo-circle{
  width:84px;
  height:84px;
  border-radius:50%;
  background:linear-gradient(135deg,#1a3a6e,#243d6b);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:-42px;
  position:relative;
  z-index:2;
  border:4px solid rgba(13,28,56,0.70);
  box-shadow:0 8px 32px rgba(0,0,0,0.30);
  flex-shrink:0;
}
.operator-logo-circle img{
  width:52px;
  height:52px;
  object-fit:contain;
}
/* Brand-matched circle colors per operator */
.operator-card-premium[data-op="nio"] .operator-logo-circle{
  background:linear-gradient(135deg,#1a7c25,#2db53b);
}
.operator-card-premium[data-op="vero"] .operator-logo-circle{
  background:linear-gradient(135deg,#9c1050,#d62d68);
}
.operator-card-premium[data-op="algar"] .operator-logo-circle{
  background:linear-gradient(135deg,#006ea8,#0fa98c);
}

.operator-glyph{ display:none; }
.operator-card-premium h3{
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:700;
  margin:0;
  color:var(--white);
}
.operator-card-premium p{
  color:rgba(255,255,255,0.72);
  font-size:0.95rem;
  line-height:1.6;
  margin:0;
  flex:1;
}

/* Premium "Ver Planos" button override for operator cards */
.operator-card-premium .btn-outline{
  margin-top:auto;
  border-color:rgba(255,255,255,0.20);
  color:var(--white);
  font-size:0.95rem;
  padding:14px 24px;
  border-radius:999px;
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(6px);
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.operator-card-premium .btn-outline:hover{
  background:var(--teal);
  border-color:var(--teal);
  box-shadow:0 12px 28px rgba(var(--teal-rgb),0.40);
  transform:translateY(-2px);
}

/* =========================================================
   Como funciona
   ========================================================= */
.steps{ display:grid; grid-template-columns:1fr 1fr; gap:36px 48px; margin-top:44px; }
.step{ display:flex; gap:20px; align-items:flex-start; padding-bottom:28px; border-bottom:1px solid rgba(11,31,58,0.1); }
.step-index{
  font-family:var(--font-mono); font-size:0.85rem; font-weight:600; color:var(--teal);
  border:1.5px solid var(--teal); border-radius:50%;
  width:38px; height:38px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.step-body h3{ font-family:var(--font-display); font-size:1.1rem; margin:2px 0 8px; color:var(--navy); }
.step-body p{ margin:0; color:var(--slate); font-size:0.94rem; line-height:1.55; }

/* =========================================================
   Sobre
   ========================================================= */
.section-about{ background:var(--ice); }
.about-inner{ display:grid; grid-template-columns:1.2fr 0.8fr; gap:60px; align-items:center; }
.about-lead{ font-size:1.05rem; line-height:1.7; color:var(--slate); margin:0 0 26px; }
.about-list{ display:flex; flex-direction:column; gap:14px; }
.about-list li{ position:relative; padding-left:28px; font-size:0.96rem; color:var(--navy); font-weight:500; }
.about-list li::before{ content:""; position:absolute; left:0; top:6px; width:14px; height:14px; border-radius:4px; background:var(--teal); }
.about-highlight-strip{ display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; margin-top:28px; }
.about-highlight-card{
  padding:18px 18px 16px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(var(--teal-rgb),0.08), rgba(var(--teal-rgb),0.03));
  border:1px solid rgba(var(--teal-rgb),0.16);
  box-shadow:0 12px 28px -20px rgba(var(--navy-rgb),0.45);
}
.about-highlight-value{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-display);
  font-size:1.02rem;
  font-weight:700;
  color:var(--navy);
}
.about-highlight-card p{ margin:0; color:var(--slate); font-size:0.9rem; line-height:1.55; }
.about-visual{ display:flex; justify-content:center; }
.about-visual svg{ width:100%; max-width:280px; }
.ring{ fill:none; stroke:var(--teal); opacity:0.25; }
.ring-2{ opacity:0.45; }
.ring-3{ opacity:0.7; }
.ring-core{ fill:var(--orange); }
.ring-1{ animation:spin-slow 18s linear infinite; transform-origin:150px 150px; }
.ring-2{ animation:spin-slow-rev 14s linear infinite; transform-origin:150px 150px; }
.ring-3{ animation:spin-slow 10s linear infinite; transform-origin:150px 150px; }
@keyframes spin-slow{ to{ transform:rotate(360deg); } }
@keyframes spin-slow-rev{ to{ transform:rotate(-360deg); } }

.link-more{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:0.95rem; color:var(--navy); margin-top:8px; }
.link-more svg{ stroke:var(--orange); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s var(--ease); }
.link-more:hover{ color:var(--teal); }
.link-more:hover svg{ transform:translateX(4px); }

/* =========================================================
   Formulário de serviço — redesign premium
   ========================================================= */
.section-form{
  background:#071A35;
  padding:80px 0;
}
.section-form .form-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);
  gap:36px;
  align-items:start;
}

/* Visual panel on LEFT via CSS order */
.section-form .form-visual{
  order:-1;
  position:relative;
  min-height:600px;
  border-radius:24px;
  padding:44px 40px;
  background-image:url('imagens/mainbackground.png');
  background-size:cover;
  background-position:center;
  background-color:#0a1f40;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:28px;
  overflow:hidden;
}
.section-form .form-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(2,18,41,0.72) 0%,rgba(2,18,41,0.92) 100%);
  border-radius:24px;
  pointer-events:none;
}
.section-form .form-visual > .form-copy{
  position:relative;
  z-index:2;
}
.section-form .form-copy p{ margin-bottom:0; color:rgba(255,255,255,0.82); line-height:1.6; }
.section-form .section-title{ color:#fff; margin-bottom:14px; }

/* Form card */
.section-form .form-content{
  background:#112846;
  border-radius:24px;
  padding:44px 40px;
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:0 24px 64px rgba(0,0,0,0.30);
}

/* Header above the form */
.form-header{ margin-bottom:28px; }
.form-main-title{
  font-family:var(--font-display);
  font-size:clamp(1.55rem,3vw,2rem);
  font-weight:700;
  color:#fff;
  margin:8px 0 10px;
  letter-spacing:-0.2px;
}
.form-main-subtitle{
  font-size:0.95rem;
  color:#B8C6D9;
  margin:0;
  line-height:1.6;
}

/* Form rows */
.section-form .form-row{ margin-bottom:20px; }
.section-form .form-row label{
  display:block;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:8px;
}

/* Icon wrapper */
.input-icon-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.input-icon{
  position:absolute;
  left:15px;
  font-size:1rem;
  pointer-events:none;
  z-index:2;
  line-height:1;
}

/* All inputs/selects/textarea inside section-form */
.section-form .form-row input,
.section-form .form-row select,
.section-form .form-row textarea{
  width:100%;
  font-family:var(--font-body);
  font-size:0.97rem;
  color:#fff;
  height:58px;
  padding:0 18px 0 46px;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:15px;
  background:#1B3557;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
  transition:border-color .22s,box-shadow .22s,background .22s;
}
.section-form .form-row textarea{
  height:auto;
  min-height:110px;
  padding:16px 18px;
  resize:vertical;
  line-height:1.55;
}
/* No icon on bare selects or textarea */
#area-cobertura{ padding-left:18px; }

.section-form .form-row input::placeholder,
.section-form .form-row textarea::placeholder{ color:#AFC2D8; }

.section-form .form-row select{
  color:#fff;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFC2D8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:44px;
}
.section-form .form-row select option{
  background:#1B3557;
  color:#fff;
}

/* Hover */
.section-form .form-row input:hover,
.section-form .form-row select:hover,
.section-form .form-row textarea:hover{
  border-color:rgba(255,255,255,0.28);
  background:#1e3c62;
}

/* Focus */
.section-form .form-row input:focus,
.section-form .form-row select:focus,
.section-form .form-row textarea:focus{
  border-color:#22D3B6;
  box-shadow:0 0 0 3px rgba(34,211,182,0.18);
  background:#1e3c62;
}

/* Submit button */
.btn-form-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  height:58px;
  border:none;
  border-radius:15px;
  background:linear-gradient(90deg,#22D3B6,#18B79E);
  color:#fff;
  font-family:var(--font-body);
  font-size:1rem;
  font-weight:700;
  cursor:pointer;
  margin-top:8px;
  box-shadow:0 8px 28px rgba(34,211,182,0.28);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),filter .25s var(--ease);
}
.btn-form-submit:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 40px rgba(34,211,182,0.40);
  filter:brightness(1.07);
}

/* Note text */
.section-form .form-note{ font-size:0.82rem; color:#B8C6D9; margin:14px 0 0; line-height:1.55; }
.section-form .form-note strong{ color:#fff; }

/* Authorized strip inside visual */
.section-form .authorized-strip{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:16px;
}
.section-form .authorized-badge{
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:#fff;
}
.section-form .authorized-pill-group{ display:flex; gap:10px; flex-wrap:wrap; }
.section-form .operator-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:32px;
  border-radius:999px;
  font-size:0.88rem;
  font-weight:700;
  padding:0 14px;
}
.section-form .operator-pill-nio{ background:rgba(69,182,73,0.18); color:var(--nio); border:1px solid rgba(69,182,73,0.28); }
.section-form .operator-pill-vero{ background:rgba(214,45,104,0.18); color:var(--vero); border:1px solid rgba(214,45,104,0.28); }
.section-form .operator-pill-algar{ background:rgba(0,104,166,0.18); color:#5bbde6; border:1px solid rgba(0,104,166,0.28); }

/* Benefits grid */
.section-form .form-benefits-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.section-form .form-benefit-item{
  display:flex;
  align-items:center;
  gap:10px;
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:14px;
  padding:12px 14px;
  font-size:0.88rem;
  font-weight:600;
  color:#fff;
}
.benefit-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22D3B6;
  flex-shrink:0;
}

/* =========================================================
   CTA final
   ========================================================= */
.cta-final{ background:linear-gradient(120deg, var(--navy), var(--navy-3)); padding:0; position:relative; overflow:hidden; }
.cta-final::before{
  content:""; position:absolute; top:-120px; right:-120px; width:340px; height:340px;
  background:radial-gradient(circle, rgba(var(--orange-rgb),0.35), transparent 70%);
}
.cta-final-inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 420px);
  gap:0;
  align-items:stretch;
  min-height:340px;
}
.cta-final-copy{
  position:relative;
  z-index:1;
  width:100%;
  max-width:680px;
  padding:80px 60px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:0;
}
.cta-final .eyebrow{ margin:0 0 18px; color:var(--teal-light); }
.cta-final-copy h2{ font-family:var(--font-display); color:var(--white); font-size:clamp(1.7rem, 3.6vw, 2.3rem); line-height:1.14; margin:0 0 16px; max-width:12ch; }
.cta-final-copy > p{ color:rgba(255,255,255,0.72); font-size:1.02rem; line-height:1.7; margin:0 0 34px; max-width:58ch; }
.cta-final-actions{ display:flex; justify-content:flex-start; flex-wrap:wrap; gap:16px; }
.cta-final .btn-ghost{
  border-color:rgba(255,255,255,0.24);
  color:var(--white);
  background:rgba(255,255,255,0.06);
}
.cta-final .btn-ghost:hover{
  border-color:var(--white);
  color:var(--navy);
  background:var(--white);
}
.cta-final-image{
  position:relative;
  min-height:340px;
  overflow:hidden;
}
.cta-final-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}
.cta-final-brand-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px;
  background:
    radial-gradient(circle at 20% 18%, rgba(var(--teal-rgb),0.16), transparent 36%),
    radial-gradient(circle at 80% 82%, rgba(var(--orange-rgb),0.18), transparent 34%),
    linear-gradient(160deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
}
.cta-final-brand-panel img{
  width:min(320px, 80%);
  height:auto;
  object-fit:contain;
  object-position:center;
  opacity:0.96;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,0.22));
}
.cta-final-brand-card{
  position:absolute;
  right:32px;
  bottom:32px;
  max-width:280px;
  padding:20px 18px;
  border-radius:22px;
  background:rgba(8,21,39,0.76);
  border:1px solid rgba(255,255,255,0.14);
  box-shadow:0 20px 40px rgba(0,0,0,0.24);
  backdrop-filter:blur(14px);
}
.cta-final-brand-label{
  display:inline-block;
  margin-bottom:10px;
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--teal-light);
}
.cta-final-brand-card strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.08rem;
  line-height:1.35;
  color:var(--white);
  margin-bottom:8px;
}
.cta-final-brand-card p{
  margin:0;
  font-size:0.88rem;
  line-height:1.55;
  color:rgba(255,255,255,0.76);
}
/* Fade edges so the image blends naturally into the section */
.cta-final-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right,  var(--navy) 0%, transparent 28%),
    linear-gradient(to bottom, var(--navy-3) 0%, transparent 22%),
    linear-gradient(to top,    var(--navy-3) 0%, transparent 22%);
  z-index:1;
  pointer-events:none;
}

/* =========================================================
   Hero interno (páginas Sobre / Contato)
   ========================================================= */
.page-hero{
  position:relative;
  padding:158px 0 84px;
  background-image:
    linear-gradient(140deg, rgba(4,18,38,0.95) 0%, rgba(11,31,58,0.88) 48%, rgba(12,145,121,0.22) 100%),
    radial-gradient(760px 380px at 10% 0%, rgba(var(--orange-rgb),0.18), transparent 62%),
    radial-gradient(720px 420px at 88% 18%, rgba(var(--teal-rgb),0.14), transparent 58%),
    url('imagens/bnlogo-transparent.png');
  background-repeat:no-repeat;
  background-size:cover, auto, auto, min(820px, 72vw);
  background-position:center, left top, right top, calc(100% + 140px) center;
  color:var(--white);
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(7,23,45,0.28) 0%, rgba(7,23,45,0.08) 42%, rgba(7,23,45,0.36) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 90px);
  pointer-events:none;
}
.page-hero .eyebrow{ display:block; }
.page-hero h1{ font-family:var(--font-display); font-size:clamp(2.2rem, 4.8vw, 3.25rem); font-weight:700; margin:0 0 18px; max-width:760px; letter-spacing:-0.5px; }
.page-hero .page-hero-lead{ color:rgba(255,255,255,0.78); font-size:1.08rem; max-width:620px; margin:0; line-height:1.7; }
.page-breadcrumb{ display:flex; justify-content:flex-start; align-items:center; gap:8px; font-family:var(--font-mono); font-size:0.78rem; letter-spacing:0.6px; color:rgba(255,255,255,0.45); margin-bottom:22px; }
.page-breadcrumb a{ color:rgba(255,255,255,0.75); }
.page-breadcrumb a:hover{ color:var(--teal-light); }
.page-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap:42px;
  align-items:center;
}
.page-hero-copy{ max-width:700px; }
.page-hero-panel{
  position:relative;
  min-height:360px;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
}
.page-hero-panel::before{
  content:"";
  position:absolute;
  inset:12% 0 0 18%;
  border-radius:32px;
  background:linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04));
  border:1px solid rgba(255,255,255,0.14);
  box-shadow:0 24px 70px rgba(0,0,0,0.2);
  backdrop-filter:blur(10px);
}
.page-hero-panel-logo{
  position:absolute;
  inset:0 auto auto 0;
  width:min(360px, 82%);
  opacity:0.92;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,0.22));
}
.page-hero-panel-card{
  position:relative;
  z-index:1;
  width:min(100%, 320px);
  padding:28px 24px;
  border-radius:24px;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.16);
  box-shadow:0 20px 54px rgba(0,0,0,0.24);
  backdrop-filter:blur(16px);
}
.page-hero-panel-kicker{
  display:inline-block;
  margin-bottom:14px;
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--teal-light);
}
.page-hero-panel-card strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.24rem;
  line-height:1.28;
  color:var(--white);
  margin-bottom:10px;
}
.page-hero-panel-card p{
  margin:0;
  color:rgba(255,255,255,0.74);
  line-height:1.6;
  font-size:0.94rem;
}
.page-hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.page-hero-points span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  color:rgba(255,255,255,0.9);
  font-size:0.88rem;
  font-weight:600;
}
.page-hero-points span::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--teal-light);
  box-shadow:0 0 0 4px rgba(var(--teal-light-rgb),0.14);
}

/* =========================================================
   Hero grande de operadora — moldura pronta para a imagem
   personalizada que o cliente vai enviar por operadora.
   Definido via --op-hero-image na página de cada operadora;
   até lá, cai num gradiente na cor da marca.
   ========================================================= */
.op-hero{
  position:relative;
  min-height:74vh;
  display:flex;
  align-items:flex-end;
  padding:170px 0 70px;
  overflow:hidden;
  color:var(--white);
}
.op-hero-bg{
  position:absolute; inset:0;
  background-image: var(--op-hero-image, none);
  background-size:cover;
  background-position:center;
  background-color:var(--navy);
}
.op-hero-bg::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(0deg, rgba(var(--navy-rgb),0.94) 0%, rgba(var(--navy-rgb),0.55) 55%, rgba(var(--navy-rgb),0.25) 100%),
    radial-gradient(circle at 80% 15%, rgba(255,255,255,0.08), transparent 40%);
}
.op-hero-placeholder-note{
  position:absolute;
  top:24px; right:24px;
  font-family:var(--font-mono);
  font-size:0.68rem;
  letter-spacing:0.4px;
  color:rgba(255,255,255,0.4);
  background:rgba(0,0,0,0.25);
  border:1px dashed rgba(255,255,255,0.25);
  border-radius:8px;
  padding:6px 10px;
  z-index:3;
}
.op-hero-content{ position:relative; z-index:2; max-width:640px; }
.op-hero h1{ font-family:var(--font-display); font-size:clamp(2.2rem, 4.8vw, 3.2rem); font-weight:700; margin:0 0 18px; letter-spacing:-0.4px; }
.op-hero .highlight{ color:var(--teal-light); }
.op-hero-lead{ font-size:1.08rem; line-height:1.6; color:rgba(255,255,255,0.82); max-width:540px; margin:0 0 30px; }

/* =========================================================
   Badge / selo de operadora
   ========================================================= */
.op-badge{
  display:inline-flex; align-items:center; gap:10px;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.2);
  padding:8px 18px 8px 8px;
  border-radius:999px;
  margin-bottom:22px;
}
.op-badge .op-badge-mark{
  width:32px; height:32px; border-radius:50%; background:var(--teal);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:0.68rem; color:var(--white);
}
.op-badge span{ font-family:var(--font-mono); font-size:0.76rem; letter-spacing:0.6px; text-transform:uppercase; color:rgba(255,255,255,0.9); }

/* =========================================================
   Missão / Valores (página Sobre)
   ========================================================= */
.values-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:44px; }
.value-card{ background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(238,244,248,0.92)); border:1px solid rgba(11,31,58,0.08); border-radius:var(--radius); padding:32px 26px; box-shadow:var(--shadow-card); }
.value-card .value-tag{ font-family:var(--font-mono); font-size:0.72rem; letter-spacing:1.4px; text-transform:uppercase; color:var(--teal); display:block; margin-bottom:14px; }
.value-card h3{ font-family:var(--font-display); font-size:1.2rem; margin:0 0 10px; color:var(--navy); }
.value-card p{ margin:0; font-size:0.94rem; line-height:1.6; color:var(--slate); }

/* =========================================================
   Linha do tempo (página Sobre)
   ========================================================= */
.timeline{ position:relative; margin-top:50px; padding-left:32px; border-left:2px solid rgba(var(--teal-rgb),0.25); }
.timeline-item{ position:relative; padding:0 0 38px 8px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:""; position:absolute; left:-40px; top:4px; width:16px; height:16px; border-radius:50%;
  background:var(--teal); border:3px solid var(--white); box-shadow:0 0 0 2px rgba(var(--teal-rgb),0.3);
}
.timeline-item::after{
  content:"";
  position:absolute;
  inset:-14px auto auto -14px;
  width:calc(100% + 14px);
  height:calc(100% - 4px);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,0.92), rgba(238,244,248,0.68));
  border:1px solid rgba(var(--navy-rgb),0.08);
  box-shadow:0 16px 28px -24px rgba(var(--navy-rgb),0.45);
  z-index:-1;
}
.timeline-item h3{ font-family:var(--font-display); font-size:1.05rem; margin:0 0 8px; color:var(--navy); }
.timeline-item p{ margin:0; color:var(--slate); font-size:0.94rem; line-height:1.6; max-width:560px; }

/* =========================================================
   Números
   ========================================================= */
.numbers-strip{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-top:56px; padding-top:48px; border-top:1px solid rgba(11,31,58,0.1); }
.number-item{ text-align:center; padding:20px 18px; border-radius:18px; background:linear-gradient(180deg, rgba(var(--teal-rgb),0.07), rgba(255,255,255,0.94)); border:1px solid rgba(var(--navy-rgb),0.08); box-shadow:0 16px 30px -24px rgba(var(--navy-rgb),0.45); }
.number-item .num{ display:block; font-family:var(--font-display); font-size:2.2rem; font-weight:700; color:var(--teal); }
.number-item .label{ font-size:0.85rem; color:var(--slate); }

/* =========================================================
   Depoimentos
   ========================================================= */
.section-testimonials{ background:var(--ice); }
.testimonials-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:44px; }
.testimonial-card{ background:var(--white); border-radius:var(--radius); padding:28px 26px; box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:16px; }
.testimonial-stars{ display:flex; gap:3px; }
.testimonial-stars svg{ fill:var(--orange); }
.testimonial-quote{ margin:0; font-size:0.95rem; line-height:1.6; color:var(--navy); flex-grow:1; }
.testimonial-person{ display:flex; align-items:center; gap:12px; }
.testimonial-avatar{ width:44px; height:44px; border-radius:50%; flex-shrink:0; }
.testimonial-person strong{ display:block; font-size:0.9rem; color:var(--navy); }
.testimonial-person span{ font-size:0.8rem; color:var(--slate); }

/* =========================================================
   Card do especialista humano
   ========================================================= */
.expert-card{ display:flex; align-items:center; gap:18px; background:var(--navy); border-radius:var(--radius); padding:24px; margin-top:24px; }
.expert-card .avatar-lg{ width:58px; height:58px; border-radius:50%; flex-shrink:0; }
.expert-card strong{ display:block; color:var(--white); font-size:1rem; margin-bottom:2px; }
.expert-card span{ display:block; color:rgba(255,255,255,0.65); font-size:0.85rem; }

/* =========================================================
   Planos e cross-sell (páginas de operadora)
   ========================================================= */
.plan-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:44px; }
.plan-card{
  background:var(--white); border:1px solid rgba(var(--navy-rgb),0.08); border-radius:var(--radius);
  padding:30px 26px; display:flex; flex-direction:column; gap:16px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  position:relative;
}
.plan-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.plan-card.featured{ border-color:var(--teal); box-shadow:var(--shadow-card); }
.plan-card-tag{
  position:absolute; top:-13px; left:26px; background:var(--teal); color:var(--white);
  font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.6px; text-transform:uppercase;
  padding:5px 12px; border-radius:999px;
}
.plan-card-name{ font-family:var(--font-mono); font-size:0.78rem; letter-spacing:1px; text-transform:uppercase; color:var(--teal); }
.plan-card-speed{ font-family:var(--font-display); font-size:2.2rem; font-weight:700; color:var(--navy); line-height:1; }
.plan-card-speed span{ font-size:1rem; font-weight:600; color:var(--slate); }
.plan-card ul{ display:flex; flex-direction:column; gap:10px; flex-grow:1; }
.plan-card li{ display:flex; align-items:flex-start; gap:9px; font-size:0.88rem; color:var(--slate); line-height:1.4; }
.plan-card li svg{ flex-shrink:0; margin-top:2px; fill:var(--teal); }
.plan-card-note{ font-size:0.76rem; color:var(--slate-light); text-align:center; }

/* ===== Plan Images Gallery ===== */
.plans-gallery{ display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; margin-top:44px; }
.plan-image-card{
  position:relative; border-radius:18px; overflow:hidden;
  box-shadow:0 10px 32px rgba(0,0,0,0.15);
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  background:var(--white);
}
.plan-image-card:hover{ transform:translateY(-8px); box-shadow:0 16px 48px rgba(0,0,0,0.25); }
.plan-image-card img{
  display:block; width:100%; height:100%; object-fit:cover;
  transition:transform 0.3s var(--ease);
}
.plan-image-card:hover img{ transform:scale(1.02); }

/* =========================================================
   Availability / coverage results
   ========================================================= */
#availability-input,
#availability-search{
  width:100%;
}

#availability-results{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:16px;
  margin-top:24px;
}

.availability-card,
.availability-empty{
  background:var(--white);
  border:1px solid rgba(var(--navy-rgb),0.08);
  border-radius:18px;
  padding:22px;
  box-shadow:var(--shadow-card);
}

.availability-card img{
  max-height:44px;
  width:auto;
  object-fit:contain;
  margin-bottom:14px;
}

.availability-card h3,
.availability-empty h3{
  margin:0 0 10px;
  font-family:var(--font-display);
  font-size:1.1rem;
}

.availability-card p,
.availability-empty p{
  margin:0 0 16px;
  color:var(--slate);
  line-height:1.6;
}

/* =========================================================
   Operator pages
   ========================================================= */
.operator-hero-copy{ max-width:700px; }
.operator-hero-actions{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:40px; }
.operator-hero-meta{ display:flex; flex-wrap:wrap; gap:18px 30px; color:rgba(255,255,255,0.75); font-size:0.9rem; }
.operator-hero-meta > div{ display:flex; align-items:center; gap:8px; min-width:0; }
.operator-plan-gallery,
.operator-benefit-grid,
.operator-authorized-grid,
.operator-alt-grid{ width:100%; }
.operator-plan-item{ display:flex; flex-direction:column; height:100%; }
.operator-plan-image{ width:100%; height:auto; object-fit:contain; }
.operator-benefit-card{ height:100%; }
.operator-authorized-panel,
.operator-coverage-card,
.operator-faq-list,
.operator-lifestyle-grid,
.operator-lifestyle-media{ width:100%; }
.operator-lifestyle-media img{ width:100%; height:auto; object-fit:cover; }
.operator-faq-item summary{ min-height:44px; display:flex; align-items:center; }
.operator-faq-item p,
#coverage-result,
#coverage-result-vero,
#coverage-result-algar{ overflow-wrap:anywhere; }

.crosssell-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; margin-top:36px; }
.crosssell-card{ display:flex; align-items:center; gap:16px; background:var(--ice); border-radius:var(--radius); padding:20px 22px; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.crosssell-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); }
.crosssell-card .op-badge-mark{ width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:0.75rem; color:var(--white); flex-shrink:0; }
.crosssell-card strong{ display:block; color:var(--navy); font-size:0.98rem; margin-bottom:2px; }
.crosssell-card span{ display:block; color:var(--slate); font-size:0.84rem; }

/* =========================================================
   Contato — cards e formulário
   ========================================================= */
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:60px; margin-top:10px; align-items:start; }
.contact-cards{ display:flex; flex-direction:column; gap:16px; }
.contact-card{ display:flex; gap:16px; align-items:flex-start; background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(238,244,248,0.92)); border:1px solid rgba(var(--navy-rgb),0.08); border-radius:var(--radius); padding:24px; transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.contact-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:rgba(var(--teal-rgb),0.28); }
.contact-card-icon{ width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg, var(--navy), var(--navy-3)); color:var(--teal-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 12px 22px -16px rgba(var(--navy-rgb),0.85); }
.contact-card-icon svg{ fill:currentColor; }
.contact-card h3{ font-family:var(--font-display); font-size:1rem; margin:0 0 4px; color:var(--navy); }
.contact-card p{ margin:0; font-size:0.92rem; color:var(--slate); line-height:1.5; }
.contact-card a{ color:var(--navy); font-weight:600; }
.contact-card a:hover{ color:var(--teal); }
.contact-hours{ margin-top:6px; background:linear-gradient(180deg, rgba(8,21,39,0.98), rgba(11,31,58,0.96)); border-radius:var(--radius); padding:24px; color:rgba(255,255,255,0.85); box-shadow:0 20px 32px -24px rgba(0,0,0,0.7); }
.contact-hours h3{ font-family:var(--font-display); color:var(--white); font-size:1rem; margin:0 0 14px; }
.contact-hours .hours-row{ display:flex; justify-content:space-between; font-size:0.9rem; padding:8px 0; border-bottom:1px solid rgba(255,255,255,0.1); }
.contact-hours .hours-row:last-child{ border-bottom:none; }
.contact-hours .hours-row span:last-child{ color:var(--teal-light); font-weight:600; }

.contact-aside-note{
  margin-top:18px;
  padding:22px 22px 20px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(var(--teal-rgb),0.1), rgba(255,255,255,0.92));
  border:1px solid rgba(var(--teal-rgb),0.18);
}
.contact-aside-note-label{
  display:inline-block;
  margin-bottom:10px;
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--teal);
}
.contact-aside-note p{ margin:0; color:var(--slate); line-height:1.6; font-size:0.92rem; }

.contact-form-wrap{ background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(238,244,248,0.84)); border:1px solid rgba(11,31,58,0.08); border-radius:var(--radius); padding:36px; box-shadow:var(--shadow-card); }
.contact-form-wrap h3{ font-family:var(--font-display); font-size:1.25rem; margin:0 0 6px; color:var(--navy); }
.contact-form-wrap > p{ margin:0 0 26px; color:var(--slate); font-size:0.92rem; }

.form-row{ margin-bottom:18px; }
.form-row label{ display:block; font-size:0.85rem; font-weight:600; color:var(--navy); margin-bottom:8px; }
.form-row input, .form-row select, .form-row textarea{
  width:100%; font-family:var(--font-body); font-size:0.95rem; color:var(--navy);
  padding:13px 15px; border:1.5px solid rgba(11,31,58,0.15); border-radius:var(--radius-sm);
  background:var(--white); transition:border-color .2s, box-shadow .2s;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 4px rgba(var(--teal-rgb),0.14);
}
.form-row textarea{ resize:vertical; min-height:100px; }
.form-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-note{ font-size:0.8rem; color:var(--slate-light); margin:14px 0 0; }
.form-note strong{ color:var(--navy); }

/* =========================================================
   Form Validation — Estilos de erro e campos obrigatórios
   ========================================================= */
.form-row label .required-asterisk{
  color:#FF6B6B;
  font-weight:700;
  margin-left:2px;
}

.form-error-msg{
  display:none;
  font-size:0.8rem;
  color:#FF6B6B;
  margin-top:6px;
  animation:slideDown .3s var(--ease) forwards;
  line-height:1.4;
}

@keyframes slideDown{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:translateY(0); }
}

.form-row.has-error .form-error-msg{
  display:block;
}

.form-row.has-error input,
.form-row.has-error select,
.form-row.has-error textarea{
  border-color:#FF6B6B;
  background-color:rgba(255, 107, 107, 0.04);
  box-shadow:0 0 0 4px rgba(255, 107, 107, 0.1), inset 0 0 0 1px rgba(255, 107, 107, 0.3);
}

.form-row.has-error input:focus,
.form-row.has-error select:focus,
.form-row.has-error textarea:focus{
  border-color:#FF6B6B;
  box-shadow:0 0 0 4px rgba(255, 107, 107, 0.18), inset 0 0 0 1px rgba(255, 107, 107, 0.3);
}

.map-wrap{ margin-top:70px; border-radius:24px; overflow:hidden; box-shadow:var(--shadow-card); border:1px solid rgba(11,31,58,0.08); }
.map-wrap iframe{ width:100%; height:340px; border:0; display:block; filter:grayscale(0.15) contrast(1.02) saturate(0.9); }

/* =========================================================
   Área do Cliente
   ========================================================= */
.client-shell{ max-width:520px; margin:0 auto; }
.client-card{
  background:var(--white); border:1px solid rgba(11,31,58,0.08); border-radius:24px;
  padding:40px 34px; box-shadow:var(--shadow-card);
}
.client-card h2{ font-family:var(--font-display); font-size:1.5rem; margin:0 0 8px; color:var(--navy); }
.client-card > p{ color:var(--slate); margin:0 0 28px; font-size:0.95rem; }
.client-security-note{
  display:flex; gap:10px; align-items:flex-start;
  background:var(--ice); border-radius:12px; padding:14px 16px;
  font-size:0.82rem; color:var(--slate); margin-top:20px; line-height:1.5;
}
.client-security-note svg{ flex-shrink:0; fill:var(--teal); margin-top:2px; }

.client-dashboard{ max-width:760px; margin:0 auto; }
.client-summary{
  background:var(--navy); border-radius:24px; padding:32px; color:var(--white);
  display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:center; margin-bottom:28px;
}
.client-summary-id strong{ display:block; font-family:var(--font-display); font-size:1.3rem; }
.client-summary-id span{ font-size:0.85rem; color:rgba(255,255,255,0.6); }
.client-status{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(var(--teal-rgb),0.18); border:1px solid rgba(var(--teal-rgb),0.3);
  color:var(--teal-light); font-size:0.82rem; font-weight:600;
  padding:8px 16px; border-radius:999px;
}
.client-status::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal-light); }

.client-info-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; margin-bottom:32px; }
.client-info-item{ background:var(--ice); border-radius:14px; padding:18px 20px; }
.client-info-item .lbl{ display:block; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--slate-light); margin-bottom:6px; }
.client-info-item .val{ font-weight:700; color:var(--navy); font-size:0.98rem; }

.client-actions-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.client-action-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  background:var(--white); border:1px solid rgba(11,31,58,0.08); border-radius:16px;
  padding:22px 20px; text-align:left; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
  font-family:inherit;
}
.client-action-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-card); border-color:var(--teal); }
.client-action-icon{ width:40px; height:40px; border-radius:10px; background:var(--navy); color:var(--teal-light); display:flex; align-items:center; justify-content:center; }
.client-action-icon svg{ fill:currentColor; }
.client-action-card strong{ font-size:0.92rem; color:var(--navy); }

.client-empty{ text-align:center; padding:20px 0; }
.client-empty-icon{
  width:72px; height:72px; margin:0 auto 22px;
  border-radius:50%; background:var(--ice); color:var(--slate);
  display:flex; align-items:center; justify-content:center;
}
.client-empty h3{ font-family:var(--font-display); font-size:1.25rem; color:var(--navy); margin:0 0 10px; }
.client-empty p{ color:var(--slate); margin:0 0 26px; line-height:1.6; }

.otp-row{ display:flex; gap:10px; }
.otp-row input{ text-align:center; letter-spacing:4px; font-weight:700; }

/* =========================================================
   Footer
   ========================================================= */
.site-footer{ background:var(--footer-bg); color:rgba(255,255,255,0.75); }
.footer-inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding:70px 0 46px; }
.footer-brand-text{ font-size:1.25rem; }
.footer-brand p{ margin-top:14px; font-size:0.9rem; line-height:1.6; color:rgba(255,255,255,0.55); max-width:260px; }
.footer-col h4{ font-family:var(--font-display); color:var(--white); font-size:0.95rem; margin:0 0 16px; letter-spacing:0.3px; }
.footer-col p{ margin:0 0 10px; font-size:0.9rem; }
.footer-col a:hover{ color:var(--teal-light); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,0.08); padding:22px 0; }
.footer-bottom p{ margin:0; font-size:0.82rem; color:rgba(255,255,255,0.45); }

/* =========================================================
   Botão flutuante WhatsApp
   ========================================================= */
.float-whatsapp{
  position:fixed; bottom:calc(26px + env(safe-area-inset-bottom)); right:calc(26px + env(safe-area-inset-right));
  width:60px; height:60px; border-radius:50%; background:var(--teal); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -8px rgba(var(--teal-rgb),0.65); z-index:90; transition:transform .25s var(--ease);
}
.float-whatsapp svg{ fill:currentColor; }
.float-whatsapp:hover{ transform:scale(1.08); }
.float-whatsapp::before{
  content:""; position:absolute; inset:0; border-radius:50%; background:var(--teal);
  animation:ripple 2.4s ease-out infinite; z-index:-1;
}
@keyframes ripple{ 0%{ transform:scale(1); opacity:.55; } 100%{ transform:scale(1.9); opacity:0; } }

/* =========================================================
   Cursor de sinal decorativo (desktop apenas)
   ========================================================= */
.signal-cursor{ display:none; }
@media (min-width:1024px){
  .signal-cursor{
    display:block; position:fixed; width:22px; height:22px;
    border:1.5px solid rgba(var(--teal-rgb),0.5); border-radius:50%;
    pointer-events:none; z-index:200; transform:translate(-50%,-50%);
    transition:width .2s, height .2s, border-color .2s, opacity .3s; opacity:0;
  }
}

/* =========================================================
   Scroll reveal
   ========================================================= */
.reveal{ opacity:0; transform:translate3d(0,32px,0) scale(.985); transition:opacity .8s var(--premium-ease), transform .8s var(--premium-ease); }
.reveal.in-view{ opacity:1; transform:translate3d(0,0,0) scale(1); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:960px){
  .hero-inner{ grid-template-columns:1fr; gap:44px; }
  .hero-copy{ text-align:left; }
  .hero-visual{ width:100%; max-width:100%; }
  .hero-image-card{ min-height:360px; }
  .hero-features{ grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; }
  .authorized-showcase{ margin-bottom:38px; }
  .authorized-cards{ gap:54px; }
  .hero-slider{ min-height:400px; }
  .section-form .form-panel{ grid-template-columns:1fr; }
  .section-form .form-visual{ order:1; min-height:280px; padding:36px 28px; }
  .section-form .form-content{ padding:36px 28px; }
  .benefits-layout{ grid-template-columns:1fr; }
  .benefits-aside{ position:static; }
  .benefits-grid{ grid-template-columns:repeat(2,1fr); }
  .operators-grid{ grid-template-columns:repeat(1,1fr); max-width:440px; margin-left:auto; margin-right:auto; }
  .about-inner{ grid-template-columns:1fr; }
  .about-visual{ order:-1; }
  .about-highlight-strip{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .values-grid{ grid-template-columns:repeat(2,1fr); }
  .numbers-strip{ grid-template-columns:repeat(2,1fr); row-gap:28px; }
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .page-hero-grid{ grid-template-columns:1fr; }
  .page-hero-panel{ min-height:300px; max-width:540px; }
  .testimonials-grid{ grid-template-columns:repeat(2,1fr); }
  .plan-grid{ grid-template-columns:1fr; max-width:420px; margin-left:auto; margin-right:auto; }
  .plans-gallery{ grid-template-columns:repeat(2, 1fr); gap:20px; }
  .crosssell-grid{ grid-template-columns:1fr; }
  .authorized-panel{ justify-content:center; text-align:center; }
  .authorized-copy{ text-align:center; }
  .client-info-grid{ grid-template-columns:1fr; }
  .client-actions-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:1024px){
  .container{ padding:0 22px; }
  .section{ padding:88px 0; }
  .hero{ padding:108px 0 64px; }
  .hero-inner{ gap:34px; }
  .hero-image-card{ min-height:420px; }
  .cta-final-inner{ grid-template-columns:minmax(0, 1fr) minmax(280px, 360px); }
}

@media (max-width:768px){
  .site-header{
    position:fixed;
    top:16px;
    left:0;
    right:0;
    z-index:140;
    background:transparent;
    backdrop-filter:none;
    box-shadow:none;
  }
  .header-inner{
    gap:12px;
    position:relative;
    min-height:70px;
    padding:10px 16px;
    border-radius:28px;
    border:1px solid rgba(255,255,255,0.16);
    background:rgba(8,23,45,0.56);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    box-shadow:0 20px 50px rgba(0,0,0,0.28);
  }
  .brand{ margin-right:0; }
  .brand-logo{ height:46px; border-radius:14px; }
  .menu-toggle{ margin-left:auto; }
  .main-nav{
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    width:100%;
    max-height:calc(100dvh - 118px);
    background:rgba(7,22,42,0.82);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    flex-direction:column;
    align-items:stretch;
    padding:14px;
    gap:8px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,0.14);
    box-shadow:0 28px 64px rgba(0,0,0,0.34);
    transform:translateY(-10px) scale(.985);
    opacity:0;
    overflow-y:auto;
    z-index:110;
    contain:layout style paint;
    will-change:transform, opacity;
    visibility:hidden; pointer-events:none;
    transition:transform .3s var(--ease), opacity .3s var(--ease), visibility .3s var(--ease);
  }
  .main-nav.open{
    transform:translateY(0) scale(1);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .main-nav > a,
  .main-nav .dropdown-toggle,
  .main-nav .nav-cliente{
    width:100%;
    min-height:50px;
    padding:13px 16px !important;
    border-radius:16px;
    font-size:1rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.09);
    color:rgba(255,255,255,0.94);
    transition:transform .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
  }
  .main-nav > a::after,
  .main-nav .dropdown-toggle::after{ display:none !important; }
  .main-nav > a:hover,
  .main-nav .dropdown-toggle:hover,
  .main-nav .nav-cliente:hover,
  .main-nav a.nav-active{
    background:rgba(255,255,255,0.14);
    color:var(--white);
  }
  .main-nav > a:active,
  .main-nav .dropdown-toggle:active,
  .main-nav .nav-cliente:active{ transform:scale(.985); }
  .main-nav a.nav-active{
    border-color:rgba(var(--teal-light-rgb),0.58);
    box-shadow:0 0 0 1px rgba(var(--teal-light-rgb),0.25) inset;
  }
  .nav-dropdown{ width:100%; }
  .nav-dropdown .dropdown-toggle{ color:rgba(255,255,255,0.92); }
  .nav-dropdown .dropdown-menu{
    position:static; transform:none; opacity:1; visibility:visible;
    background:rgba(255,255,255,0.03);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:12px;
    box-shadow:none;
    padding:0;
    margin-top:8px;
    width:100%;
    max-height:0;
    overflow:hidden;
    transition:max-height 0.32s cubic-bezier(.22,1,.36,1), padding 0.32s cubic-bezier(.22,1,.36,1);
  }
  .nav-dropdown.open .dropdown-menu{
    max-height:320px;
    padding:6px;
    transform:none;
    left:auto;
    top:auto;
    opacity:1;
    visibility:visible;
  }
  .nav-dropdown .dropdown-menu a{
    font-size:1rem;
    min-height:48px;
    padding:12px 16px;
    border-radius:10px;
    color:rgba(255,255,255,0.9);
    display:flex;
    align-items:center;
  }
  .nav-dropdown .dropdown-menu a:hover{
    background:rgba(255,255,255,0.09);
    color:var(--white);
  }
  .header-actions{ display:none; }
  .menu-toggle{ display:flex; }
  .main-nav-mobile-cta{
    display:block;
    width:100%;
    margin-top:4px;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,0.1);
  }
  .main-nav-mobile-cta .btn{
    width:100%;
    min-height:52px;
    border-radius:999px;
    background:linear-gradient(135deg, #0FA98C 0%, #24C9A8 100%);
    border:1px solid rgba(87,255,218,0.32);
    box-shadow:0 14px 30px -10px rgba(15,169,140,0.62), 0 0 26px rgba(36,201,168,0.26);
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease);
  }
  .main-nav-mobile-cta .btn:hover,
  .main-nav-mobile-cta .btn:active{
    transform:translateY(-2px);
    box-shadow:0 20px 40px -10px rgba(15,169,140,0.66), 0 0 34px rgba(36,201,168,0.32);
    filter:brightness(1.03);
  }
  .steps{ grid-template-columns:1fr; }
  .form-grid-2{ grid-template-columns:1fr; }
  .hero{ min-height:auto; background-position:center top; }
  .hero-network{ opacity:0.55; }
  .hero-inner{ margin-top:18px; }
  .hero-actions,
  .cta-final-actions{ width:100%; }
  .hero-actions .btn,
  .cta-final-actions .btn,
  .contact-form-wrap .btn,
  .btn-form-submit,
  .section-form .btn,
  .operator-plan-item .btn{ width:100%; }
  .hero-subtitle,
  .page-hero .page-hero-lead,
  .section-lead,
  .about-lead,
  .contact-card p,
  .timeline-item p,
  .value-card p,
  .step-body p,
  .cta-final-copy > p,
  .footer-col p{ font-size:1rem; }
  .benefits-grid,
  .values-grid,
  .testimonials-grid,
  .plans-gallery,
  .crosssell-grid,
  .client-actions-grid,
  .client-info-grid,
  .footer-inner,
  .contact-grid,
  .section-form .form-panel,
  .page-hero-grid{ grid-template-columns:1fr; }
  .benefits-aside{ position:static; }
  .operators-grid,
  .plan-grid{ grid-template-columns:1fr; max-width:none; }
  .numbers-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .footer-inner{ padding:48px 0 24px; gap:28px; }
  .footer-col p,
  .footer-col a{ min-height:44px; display:inline-flex; align-items:center; }
  .float-whatsapp{ right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); }
  .section-form .form-visual{ min-height:260px; padding:28px 24px; }
  .section-form .form-content{ padding:30px 22px; }
  .section-form .form-benefits-grid,
  .form-grid-2{ grid-template-columns:1fr; }
  .section-form .form-row input,
  .section-form .form-row select,
  .section-form .form-row textarea,
  .form-row input,
  .form-row select,
  .form-row textarea{ font-size:16px; }
  .operator-hero-shell{ min-height:auto !important; padding:112px 0 72px !important; }
  .operator-hero-actions{ width:100%; }
  .operator-hero-actions .btn{ flex:1 1 100%; }
  .operator-hero-meta{ flex-direction:column; align-items:flex-start; gap:12px; }
  .operator-plan-gallery,
  .operator-benefit-grid,
  .operator-authorized-grid,
  .operator-alt-grid,
  .operator-lifestyle-grid{ grid-template-columns:1fr !important; gap:20px !important; }
  .operator-authorized-panel{ padding:36px 22px !important; }
  .operator-coverage-card{ padding:24px 20px !important; }
  .operator-faq-item{ padding:20px !important; }
  .authorized-showcase{ padding:6px 0 42px; margin-bottom:30px; }
  .authorized-showcase::before{ inset:-52px -6% 0; }
  .authorized-title{ max-width:620px; }
  .authorized-cards{ gap:38px; margin-top:0; }
  .authorized-card{ width:170px; height:170px; border-radius:44px; }
  .authorized-item{ min-width:170px; }
}

@media (max-width:600px){
  .brand-logo{ height:44px; border-radius:14px; }
  .hero{ padding:108px 0 60px; min-height:auto; }
  .hero-title{ font-size:clamp(2rem, 10vw, 2.6rem); }
  .authorized-showcase{ padding:2px 0 34px; gap:16px; }
  .authorized-showcase::before{ inset:-40px -8% 10px; }
  .authorized-showcase-bg{ display:none; }
  .authorized-kicker{ font-size:0.62rem; letter-spacing:0.14em; }
  .authorized-title{ font-size:clamp(1.1rem, 5.4vw, 1.38rem); }
  .authorized-cards{
    display:flex;
    flex-wrap:nowrap;
    justify-content:center;
    align-items:flex-start;
    gap:10px;
  }
  .authorized-card{ width:clamp(92px, 27vw, 120px); height:clamp(92px, 27vw, 120px); border-radius:28px; }
  .authorized-item{ min-width:0; }
  .authorized-meta{ margin-top:10px; }
  .authorized-meta strong{ font-size:0.66rem; letter-spacing:0.09em; }
  .authorized-meta span{ font-size:0.55rem; letter-spacing:0.08em; }
  .hero-image-card{ min-height:300px; animation:none; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn, .cta-final-actions .btn{ justify-content:center; }
  .hero-features{
    grid-template-columns:1fr;
    gap:16px;
    padding:20px 0;
  }
  .feature-divider{ display:none; }
  .hero-feature{ padding:0; }
  .hero-slider{ min-height:440px; border-radius:26px; }
  .hero-slide-content{ width:calc(100% - 28px); margin:0 14px 16px; padding:20px; }
  .page-hero{ padding:116px 0 58px; background-size:cover, auto, auto, min(560px, 115vw); background-position:center, left top, right top, center 18%; }
  .op-hero{ min-height:58vh; padding:126px 0 50px; }
  .section{ padding:64px 0; }
  .authorized-section{ padding-top:48px; padding-bottom:48px; }
  .authorized-panel{ padding:28px 24px; }
  .benefits-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .benefit-card-premium{ padding:20px 16px; }
  .benefit-card-icon-wrap{ width:46px; height:46px; border-radius:12px; }
  .benefit-card-premium h3{ font-size:0.95rem; }
  .benefit-card-premium p{ font-size:0.84rem; }
  .benefit-card-operators{ flex-direction:column; align-items:flex-start; }
  .benefit-operators-logos{ margin-left:0; gap:16px; }
  .values-grid{ grid-template-columns:1fr; }
  .about-highlight-strip{ grid-template-columns:1fr; }
  .numbers-strip{ grid-template-columns:repeat(2,1fr); }
  .plans-gallery{ grid-template-columns:1fr; gap:18px; }
  .plan-image-card{ border-radius:14px; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn, .cta-final-actions .btn{ justify-content:center; }
  .cta-final-actions{ flex-direction:column; align-items:stretch; }
  .hero-stats{ gap:22px 28px; }
  .section-lead{ margin-bottom:36px; }
  .footer-inner{ grid-template-columns:1fr; padding:48px 0 24px; gap:32px; }
  .cta-final{ padding:0; }
  .cta-final-inner{ grid-template-columns:1fr; }
  .cta-final-copy{ max-width:none; padding:52px 20px 36px; }
  .cta-final-copy h2{ max-width:none; }
  .cta-final-copy > p{ max-width:none; }
  .cta-final-image{ height:280px; }
  .cta-final-brand-panel{ padding:28px 20px; }
  .cta-final-brand-panel img{ width:min(240px, 70%); }
  .cta-final-brand-card{ right:18px; left:18px; bottom:18px; max-width:none; }
  .cta-final-image::before{
    background:
      linear-gradient(to bottom, var(--navy-3) 0%, transparent 35%),
      linear-gradient(to top,    var(--navy-3) 0%, transparent 20%),
      linear-gradient(to right,  var(--navy-3) 0%, transparent 15%),
      linear-gradient(to left,   var(--navy-3) 0%, transparent 15%);
  }
  .contact-form-wrap{ padding:26px 22px; }
  .page-hero-copy, .page-hero-panel{ text-align:left; }
  .page-hero-panel{ min-height:auto; }
  .page-hero-panel::before{ inset:10% 0 0 8%; }
  .page-hero-panel-logo{ position:relative; width:min(280px, 78%); margin-bottom:18px; }
  .page-hero-panel-card{ width:100%; }
  .timeline{ padding-left:26px; }
  .timeline-item::before{ left:-34px; }
  .testimonials-grid{ grid-template-columns:1fr; }
  .client-actions-grid{ grid-template-columns:1fr; }
  .client-summary{ flex-direction:column; align-items:flex-start; }
  .btn-lg{ width:100%; justify-content:center; }
  .float-whatsapp{ width:54px; height:54px; bottom:calc(16px + env(safe-area-inset-bottom)); right:calc(16px + env(safe-area-inset-right)); }
}

@media (max-width:430px){
  .container{ padding:0 16px; }
  .section{ padding:60px 0; }
  .hero-title{ font-size:clamp(1.95rem, 9vw, 2.45rem); }
  .page-hero h1,
  .op-hero h1,
  .cta-final-copy h2,
  .section-title{ font-size:clamp(1.6rem, 8vw, 2rem); }
  .hero-stats,
  .page-hero-points,
  .operator-hero-meta{ gap:12px; }
  .numbers-strip{ grid-template-columns:1fr; }
  .number-item{ padding:18px 16px; }
  .cta-final-brand-card{ left:16px; right:16px; bottom:16px; }
  .contact-card,
  .value-card,
  .client-card,
  .operator-faq-item,
  .operator-authorized-panel,
  .operator-coverage-card{ padding-left:18px !important; padding-right:18px !important; }
}

@media (max-width:390px){
  .main-nav{ padding:88px 16px 20px; }
  .hero-actions,
  .cta-final-actions{ gap:12px; }
  .hero-feature-title{ font-size:0.84rem; }
  .hero-feature-desc{ font-size:0.76rem; }
  .page-breadcrumb{ font-size:0.72rem; }
}

@media (max-width:375px){
  .container{ padding:0 14px; }
  .btn,
  .btn-lg{ padding-left:18px; padding-right:18px; }
  .authorized-showcase,
  .cta-final-copy,
  .section-form .form-content{ padding-left:18px; padding-right:18px; }
}

@media (max-width:380px){
  .container{ padding:0 18px; }
  .hero{ padding:118px 0 56px; }
  .btn-lg{ padding:15px 22px; font-size:0.95rem; }
  .section{ padding:56px 0; }
  .section-title{ font-size:1.6rem; }
  .benefit-card, .operator-card-premium{ padding:0; }
  .operator-card-body{ padding:22px 20px 26px; }
  .about-inner{ gap:36px; }
  .hero-stats{ gap:18px 24px; }
  .stat-value{ font-size:1.5rem; }
  .numbers-strip{ grid-template-columns:1fr 1fr; gap:24px 16px; }
  .number-item .num{ font-size:1.8rem; }
  .contact-card{ padding:20px; }
}

/* Respeita quem prefere menos animação */
@media (prefers-reduced-motion: reduce){
  .hero-slide, .hero-slide-bg, .hero::after, .particle,
  .authorized-line, .authorized-node, .authorized-wave{ animation:none !important; }
  .authorized-card{ transform:none !important; transition:none !important; }
  .hero-slide:first-child{ opacity:1; }
}

@media (max-width:768px), (prefers-reduced-motion: reduce){
  .reveal,
  .benefit-card-premium,
  .operator-card-premium,
  .hero-image-card,
  .ring-1,
  .ring-2,
  .ring-3,
  .particle,
  .hero-slide,
  .hero-slide-bg{
    animation:none !important;
    transition-property:opacity, transform !important;
  }
  .reveal{ opacity:1; transform:none; }
}