/* ============================================================
   HOPEFY — Home
   Home orientada a conversão: fotos reais de pessoas, movimento com
   GSAP + Lenis e um único pedido por dobra. Complementa css/hopefy.css.
   O prefixo v2- (da segunda geração da home, set/2026) isola estas
   classes das do design system.
   ============================================================ */

:root {
  --v2-creme: #FFFBF1;
  --v2-papel: #FFFDF8;
  --v2-noite: #0E1A3A;
  --v2-noite-2: #16244A;
  --v2-lilas: #F3ECFF;
  --v2-texto: #3A4150;
  --v2-serif: 'Instrument Serif', 'Iowan Old Style', Georgia, serif;
  --v2-ease: cubic-bezier(.22, 1, .36, 1);
  --v2-ease-expo: cubic-bezier(.16, 1, .3, 1);
  --v2-ease-mola: cubic-bezier(.34, 1.56, .64, 1);
  --v2-raio: clamp(22px, 2.4vw, 34px);
  --v2-gutter: clamp(1rem, 4vw, 3rem);
  --v2-max: 1320px;
}

/* Lenis (rolagem suave) */
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }

body.v2 { background: var(--v2-creme); color: var(--ink); overflow-x: clip; }
.v2 img, .v2 video { max-width: 100%; }
.v2-container { width: min(100% - 2 * var(--v2-gutter), var(--v2-max)); margin-inline: auto; }
.v2-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.v2-pular {
  position: absolute; left: 1rem; top: -80px; z-index: 300;
  background: var(--ink); color: #fff; padding: .75rem 1.2rem; border-radius: 999px; font-weight: 700;
}
.v2-pular:focus { top: 1rem; text-decoration: none; }

/* Grão de filme — textura estática, quase imperceptível */
/* Sem mix-blend-mode: numa camada fixa de tela inteira ele obrigaria o
   navegador a recompor tudo a cada quadro de rolagem. */
.v2-grao {
  position: fixed; inset: 0; z-index: 150; pointer-events: none; opacity: .035;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

@media (max-width: 767px), (prefers-reduced-motion: reduce) { .v2-grao { display: none; } }

/* ---------- Tipografia ---------- */
/* A linha mais longa ("Juntos, a gente") mede ~8,4em: a fonte acompanha a
   largura da coluna para cada linha caber inteira, sem quebrar em duas. */
.v2-display {
  font-size: clamp(2.35rem, 10.2vw, 5.1rem); font-weight: 800; letter-spacing: -.052em;
  line-height: .93; margin: 0; color: var(--ink);
}
@media (min-width: 1024px) { .v2-display { font-size: clamp(3.2rem, 5.55vw, 5.3rem); } }
.v2-h2 {
  font-size: clamp(2.35rem, 5.1vw, 4.55rem); font-weight: 800; letter-spacing: -.047em;
  line-height: .98; margin: 0 0 1.3rem; text-wrap: balance;
}
.v2-h2--menor { font-size: clamp(2.1rem, 4.2vw, 3.7rem); }
.v2-serif {
  font-family: var(--v2-serif); font-style: italic; font-weight: 400;
  letter-spacing: -.015em; font-size: 1.1em; line-height: .8;
}
.v2-lead { font-size: clamp(1.05rem, 1.32vw, 1.24rem); line-height: 1.62; color: var(--v2-texto); max-width: 37rem; margin: 0; }
.v2-eyebrow {
  display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1.2rem;
  font-size: .78rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--magenta);
}
.v2-eyebrow svg { width: 15px; height: 15px; flex: none; }
.v2-eyebrow--amarelo { color: var(--amarelo); }
.v2-eyebrow--azul { color: var(--azul); }

.v2-linha { display: block; overflow: clip; padding-bottom: .08em; margin-bottom: -.08em; }
.v2-linha > span { display: inline-block; }
.v2-split-linha { overflow: clip; padding-bottom: .1em; margin-bottom: -.1em; }

/* Marca-texto desenhado sob "conquista" */
.v2-marca { position: relative; display: inline-block; white-space: nowrap; }
.v2-marca__traco {
  position: absolute; left: -3%; right: -2%; bottom: -.02em; width: 105%; height: .34em; z-index: -1;
  overflow: visible; color: var(--amarelo);
}
.v2-marca__traco path { fill: none; stroke: currentColor; stroke-width: 18; stroke-linecap: round; }

/* ---------- Botões ---------- */
.v2-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .85rem;
  padding: .72rem .74rem .72rem 1.55rem; border: 0; border-radius: 999px; cursor: pointer;
  font: inherit; font-weight: 800; font-size: 1.02rem; letter-spacing: -.012em; line-height: 1.2;
  isolation: isolate; overflow: hidden; text-decoration: none !important; white-space: nowrap;
  transition: box-shadow .35s ease, color .35s ease;
}
.v2-btn::before {
  content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  transform: translateY(101%); transition: transform .55s var(--v2-ease);
}
.v2-btn:hover::before, .v2-btn:focus-visible::before { transform: translateY(0); }
.v2-btn__seta {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; flex: none;
  transition: transform .55s var(--v2-ease), background .35s ease, color .35s ease;
}
.v2-btn__seta svg { width: 17px; height: 17px; }
.v2-btn:hover .v2-btn__seta { transform: rotate(-45deg); }
.v2-btn--amarelo { background: var(--amarelo); color: var(--ink); box-shadow: 0 22px 40px -20px rgba(160, 140, 20, .85); }
.v2-btn--amarelo::before { background: #fff; }
.v2-btn--amarelo .v2-btn__seta { background: var(--ink); color: #fff; }
.v2-btn--azul { background: var(--azul); color: #fff; box-shadow: 0 22px 40px -20px rgba(44, 75, 155, .9); }
.v2-btn--azul::before { background: var(--azul-escuro); }
.v2-btn--azul .v2-btn__seta { background: var(--amarelo); color: var(--ink); }
.v2-btn--branco { background: #fff; color: var(--ink); }
.v2-btn--branco::before { background: var(--amarelo); }
.v2-btn--branco .v2-btn__seta { background: var(--azul); color: #fff; }
.v2-btn--bloco { width: 100%; justify-content: space-between; }
.v2-btn--grande { font-size: 1.1rem; padding: .8rem .82rem .8rem 1.8rem; }

.v2-link-seta {
  display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--ink);
  padding: .3rem 0; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat;
  transition: background-size .45s var(--v2-ease);
}
.v2-link-seta:hover { text-decoration: none; background-size: 0 2px; background-position: 100% 100%; color: var(--ink); }
.v2-link-seta svg { width: 16px; height: 16px; }

/* ---------- Header ---------- */
.v2 .header {
  background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none;
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease, transform .55s var(--v2-ease);
}
.v2 .header.rolou {
  background: rgba(255, 251, 241, .8); backdrop-filter: blur(16px) saturate(1.5); -webkit-backdrop-filter: blur(16px) saturate(1.5);
  border-bottom-color: rgba(19, 19, 19, .06); box-shadow: 0 12px 30px -22px rgba(20, 36, 77, .35);
}
.v2 .header.v2-header--oculto { transform: translateY(-105%); }
.v2 .menu-aberto .header, .v2.menu-aberto .header { transform: none; }
.header-home { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; width: min(100% - 2 * var(--v2-gutter), var(--v2-max)); margin-inline: auto; }
.header-home .nav-esq { display: flex; gap: 1.6rem; }
.header-home .nav-esq a { color: var(--grafite); font-weight: 600; font-size: .92rem; }
.header-home .nav-esq a:hover { color: var(--azul); text-decoration: none; }
.header-home .acoes-dir { display: flex; gap: .8rem; justify-content: flex-end; align-items: center; }
@media (max-width: 920px) {
  .header-home { grid-template-columns: auto 1fr auto; }
  .header-home > a { justify-self: start; }
  .header-home .nav-esq { display: none; }
  .menu-aberto .header-home .nav-esq {
    display: flex; flex-direction: column; position: fixed; inset: var(--header-h) 0 auto;
    background: #fff; padding: 1.5rem; gap: 1.2rem; border-bottom: 1px solid var(--borda); box-shadow: var(--sombra-lg);
  }
}

/* ============================================================
   1. HERO
   ============================================================ */
.v2-hero {
  position: relative; isolation: isolate; overflow: clip;
  min-height: 100svh; display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--header-h) + clamp(1rem, 3.5vh, 2.6rem)) 0 clamp(1.5rem, 4vh, 2.6rem);
}
.v2-hero__fundo { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.v2-bolha { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .9; }
.v2-bolha--lilas { width: 46vw; height: 46vw; left: -14vw; top: -18vw; background: #EFE3FF; }
.v2-bolha--amarela { width: 38vw; height: 38vw; right: -8vw; top: 12vh; background: #FFF3B8; opacity: .8; }
.v2-bolha--rosa { width: 26vw; height: 26vw; right: 26vw; bottom: -12vw; background: #FBDDF0; opacity: .7; }

.v2-hero__grid {
  display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  gap: clamp(2rem, 4vw, 4.5rem); align-items: center;
}
.v2-hero__texto { position: relative; z-index: 2; }
.v2-pill {
  display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 clamp(1.1rem, 2.4vh, 1.7rem);
  padding: .42rem 1rem .42rem .42rem; border-radius: 999px; background: #fff;
  box-shadow: 0 10px 30px -18px rgba(20, 36, 77, .45), inset 0 0 0 1px rgba(19, 19, 19, .05);
  font-size: .86rem; font-weight: 600; color: var(--grafite);
}
.v2-pill strong { color: var(--ink); font-weight: 800; }
.v2-pill__flor { width: 28px; height: 28px; border-radius: 50%; background: var(--amarelo); display: grid; place-items: center; color: var(--magenta); }
.v2-pill__flor svg { width: 15px; height: 15px; }
.v2-hero .v2-display { margin-bottom: clamp(1.1rem, 2.6vh, 1.8rem); }
.v2-hero .v2-display .v2-serif { color: var(--magenta); }
.v2-hero__acoes { display: flex; align-items: center; flex-wrap: wrap; gap: .9rem 1.6rem; margin-top: clamp(1.3rem, 3vh, 2rem); }
.v2-hero__garantias { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .86rem; font-weight: 600; color: var(--grafite); }
.v2-hero__garantias li { display: inline-flex; align-items: center; gap: .35rem; }
.v2-hero__garantias svg { width: 16px; height: 16px; color: var(--verde); }

/* Trilho de taxas: 0% acima da dobra */
.v2-taxas {
  display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start;
  gap: clamp(1.2rem, 3vw, 2.8rem); margin: clamp(1.6rem, 3.6vh, 2.4rem) 0 0; padding-top: clamp(1.1rem, 2.4vh, 1.5rem);
  border-top: 1.5px dashed rgba(19, 19, 19, .16);
}
.v2-taxa { margin: 0; }
.v2-taxa dt { font-size: clamp(1.75rem, 2.7vw, 2.45rem); font-weight: 900; letter-spacing: -.045em; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.v2-taxa dd { margin: .4rem 0 0; font-size: .8rem; line-height: 1.38; color: var(--cinza); max-width: 12.5rem; }
.v2-taxa--zero dt { color: var(--azul); }
.v2-taxa--zero dt span { background: linear-gradient(transparent 62%, var(--amarelo) 62%, var(--amarelo) 92%, transparent 92%); }

/* A flor de fotos */
.v2-hero__visual { position: relative; z-index: 1; }
.v2-flor { position: relative; width: min(100%, 610px, 70vh); aspect-ratio: 1; margin-inline: auto; }
.v2-flor__anel {
  position: absolute; inset: -9%; width: 118%; height: 118%; z-index: 0; overflow: visible;
  color: rgba(19, 19, 19, .38); font-size: 7.1px; font-weight: 800; letter-spacing: .32em;
}
.v2-flor__anel text { fill: currentColor; }
.v2-flor__petalas { position: absolute; inset: 0; z-index: 1; }
.v2-petala {
  position: absolute; width: calc(50% - .4rem); aspect-ratio: 1; overflow: hidden;
  background: #E8EDF9; box-shadow: 0 34px 60px -34px rgba(20, 36, 77, .55); will-change: transform;
}
.v2-petala img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v2-petala--a { left: 0; top: 0; border-radius: 50% 50% 0 50%; transform-origin: 100% 100%; }
.v2-petala--b { right: 0; top: 0; border-radius: 50% 50% 50% 0; transform-origin: 0 100%; }
.v2-petala--c { left: 0; bottom: 0; border-radius: 50% 0 50% 50%; transform-origin: 100% 0; }
.v2-petala--d { right: 0; bottom: 0; border-radius: 0 50% 50% 50%; transform-origin: 0 0; }
.v2-flor__miolo {
  position: absolute; left: 50%; top: 50%; z-index: 2; width: 20%; aspect-ratio: 1; translate: -50% -50%;
  border-radius: 50%; background: var(--amarelo); display: grid; place-items: center;
  box-shadow: 0 0 0 clamp(6px, .9vw, 11px) var(--v2-creme), 0 22px 40px -14px rgba(20, 36, 77, .45);
}
.v2-flor__miolo svg { width: 50%; height: 50%; color: var(--magenta); }

.v2-chip {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: .6rem;
  padding: .5rem 1rem .5rem .5rem; border-radius: 999px; background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 40px -20px rgba(20, 36, 77, .55), inset 0 0 0 1px rgba(19, 19, 19, .05);
  font-size: .84rem; font-weight: 700; white-space: nowrap; color: var(--ink); will-change: transform;
}
.v2-chip__ic { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.v2-chip__ic svg { width: 17px; height: 17px; }
/* Acima da cabeça da avó: na altura de 12% o selo cobria os olhos dela */
.v2-chip--1 { left: -7%; top: -3%; }
.v2-chip--2 { right: -9%; top: 46%; }
.v2-chip--3 { left: 3%; bottom: 4%; }

.v2-hero__rodape {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;
  margin-top: clamp(1.4rem, 3.4vh, 2.4rem); font-size: .84rem; color: var(--cinza);
}
.v2-hero__rodape strong { color: var(--ink); }
.v2-doare { display: inline-flex; align-items: center; gap: .6rem; }
.v2-doare__selo { width: 30px; height: 30px; border-radius: 50%; background: var(--azul); color: var(--amarelo); display: grid; place-items: center; flex: none; }
.v2-doare__selo svg { width: 15px; height: 15px; }
.v2-rolar { display: inline-flex; align-items: center; gap: .7rem; font-weight: 700; color: var(--ink); }
.v2-rolar__trilho { width: 22px; height: 36px; border-radius: 999px; border: 2px solid currentColor; position: relative; }
.v2-rolar__trilho::after { content: ''; position: absolute; left: 50%; top: 7px; width: 4px; height: 7px; margin-left: -2px; border-radius: 4px; background: currentColor; animation: v2-rolar 1.8s var(--v2-ease) infinite; }
@keyframes v2-rolar { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

@media (max-width: 1023px) {
  .v2-hero { min-height: auto; }
  .v2-hero__grid { grid-template-columns: 1fr; }
  .v2-hero__visual { order: 2; margin-top: .5rem; }
  .v2-flor { width: min(92%, 520px); }
  .v2-chip--1 { left: -2%; } .v2-chip--2 { right: -3%; }
  .v2-rolar { display: none; }
}
@media (max-width: 560px) {
  .v2-chip--2 { display: none; }
  .v2-chip--1 { top: -4%; } .v2-chip--3 { bottom: 2%; left: auto; right: 2%; }
  .v2-taxas { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
  .v2-taxa dd { font-size: .74rem; }
  .v2-chip { font-size: .74rem; padding: .38rem .75rem .38rem .38rem; }
  .v2-chip__ic { width: 26px; height: 26px; }
  .v2-chip__ic svg { width: 14px; height: 14px; }
  .v2-hero__acoes .v2-btn { width: 100%; justify-content: space-between; }
}

/* ---------- Entrada do hero: CSS puro, na primeira pintura ----------
   Nada aqui espera o GSAP chegar da CDN. O título é o LCP da home: se ele
   dependesse do JS para aparecer, o navegador só o contaria depois (a home
   antiga perdia ~2,8 s de LCP no celular assim). As linhas sobem da
   máscara em poucos quadros, e o parágrafo de apoio nunca fica invisível
   — só desliza — porque no celular é ele o maior bloco da tela.
   As animações usam translate/scale/rotate individuais: o GSAP mexe em
   transform (paralaxe do mouse e da rolagem) e os dois se somam. */
@keyframes v2-sobe-linha { from { translate: 0 105%; } }
@keyframes v2-surge { from { opacity: 0; translate: 0 22px; } }
@keyframes v2-desliza { from { translate: 0 22px; } }
@keyframes v2-floresce { from { scale: 0; rotate: -14deg; } }
@keyframes v2-miolo { from { opacity: 0; scale: 0; rotate: -120deg; } }
@keyframes v2-chip { from { opacity: 0; translate: 0 22px; scale: .85; } }
@keyframes v2-traco { from { stroke-dashoffset: 1; } }

.v2-hero .v2-linha > span { animation: v2-sobe-linha 1.2s var(--v2-ease-expo) both; }
.v2-hero .v2-linha:nth-child(2) > span { animation-delay: .07s; }
.v2-hero .v2-linha:nth-child(3) > span { animation-delay: .14s; }
.v2-hero .v2-linha:nth-child(4) > span { animation-delay: .21s; }
.v2-marca__traco path { stroke-dasharray: 1; animation: v2-traco 1s cubic-bezier(.65, 0, .35, 1) .75s both; }
.v2-hero .v2-pill { animation: v2-surge .9s var(--v2-ease) both; }
.v2-hero .v2-lead { animation: v2-desliza 1.1s var(--v2-ease) .2s both; }
.v2-hero__acoes { animation: v2-surge 1s var(--v2-ease) .3s both; }
.v2-taxas { animation: v2-surge 1s var(--v2-ease) .4s both; }
.v2-hero__rodape { animation: v2-surge 1s var(--v2-ease) .5s both; }
.v2-petala { animation: v2-floresce 1.5s var(--v2-ease-expo) both; }
.v2-petala--a { animation-delay: .15s; }
.v2-petala--b { animation-delay: .26s; }
.v2-petala--d { animation-delay: .37s; }
.v2-petala--c { animation-delay: .48s; }
.v2-flor__miolo { animation: v2-miolo 1.3s var(--v2-ease-mola) .6s both; }
.v2-chip { animation: v2-chip 1s var(--v2-ease-mola) both; }
.v2-chip--1 { animation-delay: .85s; }
.v2-chip--2 { animation-delay: .97s; }
.v2-chip--3 { animation-delay: 1.09s; }
.v2-sem-movimento .v2-hero *, .v2-sem-movimento .v2-marca__traco path { animation: none !important; }

/* ============================================================
   2. FAIXAS (marquee)
   ============================================================ */
.v2-faixas { position: relative; z-index: 3; height: clamp(120px, 15vw, 210px); margin: clamp(-2.4rem, -3vw, -1rem) 0; pointer-events: none; }
.v2-faixa {
  position: absolute; left: -5%; right: -5%; top: 50%; overflow: hidden;
  padding: clamp(.75rem, 1.4vw, 1.2rem) 0; box-shadow: 0 20px 40px -24px rgba(20, 36, 77, .5);
}
.v2-faixa--amarela { background: var(--amarelo); color: var(--ink); transform: translateY(-50%) rotate(-3deg); z-index: 2; }
.v2-faixa--azul { background: var(--azul); color: #fff; transform: translateY(-50%) rotate(2.4deg); z-index: 1; }
.v2-faixa__trilho { display: flex; width: max-content; will-change: transform; }
.v2-faixa__grupo { display: flex; align-items: center; flex: none; gap: clamp(1.2rem, 2.4vw, 2.2rem); padding-right: clamp(1.2rem, 2.4vw, 2.2rem); }
.v2-faixa__item { font-size: clamp(1.45rem, 3.3vw, 3rem); font-weight: 800; letter-spacing: -.04em; white-space: nowrap; line-height: 1; }
.v2-faixa__item em { font-family: var(--v2-serif); font-weight: 400; font-style: italic; letter-spacing: -.01em; }
.v2-faixa svg { width: clamp(20px, 2.4vw, 34px); height: clamp(20px, 2.4vw, 34px); flex: none; }
.v2-faixa--amarela svg { color: var(--magenta); }
.v2-faixa--azul svg { color: var(--amarelo); }

/* ============================================================
   3. CAUSAS — trilho horizontal
   ============================================================ */
.v2-causas { position: relative; padding: clamp(5rem, 9vw, 8rem) 0 clamp(2rem, 5vw, 4rem); overflow: clip; }
.v2-causas__palco { position: relative; }
.v2-causas__topo {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.4rem, 4vw, 4rem);
  align-items: end; margin-bottom: clamp(1.8rem, 4vh, 3rem);
}
.v2-causas__topo .v2-h2 { margin-bottom: 0; }
.v2-causas__dica { display: flex; align-items: center; gap: .9rem; margin-top: 1.3rem; font-size: .82rem; font-weight: 700; color: var(--cinza); }
.v2-causas__barra { position: relative; width: 120px; height: 3px; border-radius: 3px; background: rgba(19, 19, 19, .1); overflow: hidden; }
.v2-causas__barra i { position: absolute; inset: 0; background: var(--magenta); transform-origin: left; transform: scaleX(.08); }
.v2-causas__janela { position: relative; }
.v2-causas__trilho {
  display: flex; gap: clamp(.9rem, 1.6vw, 1.5rem); margin: 0; padding: 0 var(--v2-gutter); list-style: none;
  width: max-content; will-change: transform;
}
.v2-causas__trilho > li { flex: none; }
.v2-causa {
  --w: clamp(250px, min(23vw, 40vh), 380px);
  position: relative; display: block; width: var(--w); aspect-ratio: 3 / 4; border-radius: var(--v2-raio);
  overflow: hidden; isolation: isolate; color: #fff; text-decoration: none !important; background: #22305a;
  transform: translateZ(0);
}
.v2-causa img {
  position: absolute; top: 0; left: -8%; width: 116%; max-width: none; height: 100%; object-fit: cover; z-index: -2;
  transition: scale 1s var(--v2-ease); will-change: transform;
}
.v2-causa::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(8, 14, 36, 0) 38%, rgba(8, 14, 36, .78) 100%);
  transition: opacity .5s ease;
}
.v2-causa__num {
  position: absolute; top: 1rem; left: 1rem; font-size: .74rem; font-weight: 800; letter-spacing: .12em;
  padding: .36rem .7rem; border-radius: 999px; background: rgba(14, 26, 58, .38);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
/* Em repouso só o nome da causa; no hover a grade abre a descrição e o CTA */
.v2-causa__txt {
  position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1.25rem;
  display: grid; grid-template-rows: auto 1fr; transition: grid-template-rows .65s var(--v2-ease);
}
.v2-causa__mais { overflow: hidden; min-height: 0; }
.v2-causa h3 { font-size: clamp(1.3rem, 1.75vw, 1.62rem); line-height: 1.05; margin: 0; color: #fff; letter-spacing: -.035em; }
.v2-causa p { font-size: .88rem; line-height: 1.45; margin: .45rem 0 0; color: rgba(255, 255, 255, .86); }
.v2-causa__cta {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; padding: .5rem .9rem;
  border-radius: 999px; background: var(--amarelo); color: var(--ink); font-size: .8rem; font-weight: 800;
}
.v2-causa__cta svg { width: 14px; height: 14px; }
@media (hover: hover) and (pointer: fine) {
  .v2-causa__txt { grid-template-rows: auto 0fr; }
  .v2-causa:hover .v2-causa__txt, .v2-causa:focus-visible .v2-causa__txt { grid-template-rows: auto 1fr; }
  .v2-causa p, .v2-causa__cta { opacity: 0; transform: translateY(12px); transition: opacity .45s ease, transform .6s var(--v2-ease); }
  .v2-causa__cta { transition-delay: .06s; }
  .v2-causa:hover p, .v2-causa:hover .v2-causa__cta, .v2-causa:focus-visible p, .v2-causa:focus-visible .v2-causa__cta { opacity: 1; transform: none; }
  .v2-causa:hover img { scale: 1.06; }
}
.v2-causa--fim { background: var(--amarelo); color: var(--ink); display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem; }
.v2-causa--fim::after { display: none; }
.v2-causa--fim h3 { color: var(--ink); font-size: clamp(1.6rem, 2.3vw, 2.2rem); transform: none !important; }
.v2-causa--fim p { color: rgba(19, 19, 19, .75); opacity: 1 !important; transform: none !important; font-size: .95rem; }
.v2-causa__flor { width: 64px; height: 64px; color: var(--magenta); }
.v2-causa--fim .v2-btn { align-self: flex-start; }

@media (min-width: 1024px) {
  /* Fixado pelo ScrollTrigger: o palco ocupa a tela inteira enquanto o trilho corre */
  .v2-causas__palco { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-block: 1.5rem; }
}
@media (min-width: 1024px) and (max-height: 780px) {
  /* Notebook baixo: título e cards precisam caber juntos na tela fixada */
  .v2-causas__topo { margin-bottom: 1.2rem; }
  .v2-causas .v2-h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
  .v2-causas .v2-eyebrow { margin-bottom: .7rem; }
}
@media (max-width: 1023px) {
  .v2-causas__topo { grid-template-columns: 1fr; }
  .v2-causas__trilho {
    width: auto; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--v2-gutter);
    padding-bottom: 1rem; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  .v2-causas__trilho::-webkit-scrollbar { display: none; }
  .v2-causas__trilho > li { scroll-snap-align: start; }
  .v2-causa { --w: min(74vw, 330px); }
  .v2-causa img { left: 0; width: 100%; }
}

/* ============================================================
   4. ZERO — o 0% que vira janela
   ============================================================ */
.v2-zero { position: relative; background: var(--v2-noite); color: #fff; }
.v2-zero__palco {
  position: relative; height: 100svh; min-height: 560px; overflow: hidden; isolation: isolate;
  background: var(--v2-noite);
}
.v2-zero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.v2-zero__veu {
  position: absolute; inset: 0; z-index: 1; opacity: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(14, 26, 58, .72) 0%, rgba(14, 26, 58, .35) 42%, rgba(14, 26, 58, 0) 70%),
    linear-gradient(180deg, rgba(14, 26, 58, .1) 0%, rgba(14, 26, 58, .3) 45%, rgba(14, 26, 58, .9) 100%);
}
.v2-zero__mascara { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; will-change: transform; transform-origin: 50% 50%; }
.v2-zero__pergunta, .v2-zero__resposta { position: absolute; left: 0; right: 0; z-index: 3; text-align: center; margin: 0; padding-inline: var(--v2-gutter); }
.v2-zero__pergunta { top: calc(var(--header-h) + 3vh); font-size: clamp(1.05rem, 1.7vw, 1.45rem); font-weight: 600; color: rgba(255, 255, 255, .78); }
.v2-zero__pergunta em { font-family: var(--v2-serif); font-size: 1.25em; color: var(--amarelo); }
.v2-zero__resposta { bottom: 7vh; font-size: clamp(1.2rem, 2.3vw, 2rem); font-weight: 800; letter-spacing: -.03em; }
.v2-zero__resposta span { color: var(--amarelo); }
/* Sem animação: a frase vem logo abaixo do palco, no fluxo normal */
.v2-zero__frase { position: relative; padding: clamp(3.5rem, 7vw, 5.5rem) 0 0; }
/* Com animação: o JS move a frase para dentro do palco fixado */
.v2-zero--animado .v2-zero__frase {
  position: absolute; left: 0; right: 0; bottom: clamp(3rem, 9vh, 6rem); z-index: 3; opacity: 0; padding: 0;
}
.v2-zero__frase .v2-h2 { max-width: 15ch; color: #fff; margin-bottom: 1rem; }
.v2-zero__frase .v2-h2 em { color: var(--amarelo); }
.v2-zero__frase p { max-width: 36rem; font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.6; color: rgba(255, 255, 255, .88); margin: 0; }

/* ============================================================
   5. SIMULADOR
   ============================================================ */
.v2-sim { position: relative; background: var(--v2-noite); color: #fff; padding: clamp(4.5rem, 9vw, 8rem) 0; overflow: clip; }
.v2-sim::before {
  content: ''; position: absolute; width: 60vw; height: 60vw; right: -22vw; top: -20vw; border-radius: 50%;
  background: radial-gradient(circle, rgba(44, 75, 155, .55), transparent 65%); pointer-events: none;
}
.v2-sim__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.v2-sim .v2-h2 { color: #fff; }
.v2-sim .v2-h2 em { color: var(--amarelo); }
.v2-sim .v2-lead { color: rgba(255, 255, 255, .75); }
.v2-sim__campo { margin-top: clamp(1.8rem, 4vw, 2.6rem); }
.v2-sim__campo label { display: block; font-weight: 700; font-size: .95rem; margin-bottom: .7rem; color: rgba(255, 255, 255, .85); }
.v2-sim__valor { display: flex; align-items: baseline; gap: .5rem; border-bottom: 2px solid rgba(255, 255, 255, .18); padding-bottom: .3rem; margin-bottom: 1.4rem; transition: border-color .3s; }
.v2-sim__valor:focus-within { border-color: var(--amarelo); }
.v2-sim__valor span { font-size: clamp(1.4rem, 2.6vw, 2.2rem); font-weight: 800; color: rgba(255, 255, 255, .55); }
.v2-sim__valor input {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #fff;
  font: inherit; font-size: clamp(2.4rem, 5.4vw, 4.4rem); font-weight: 900; letter-spacing: -.05em; font-variant-numeric: tabular-nums;
}
.v2-range {
  --p: 37.5%;
  -webkit-appearance: none; appearance: none; width: 100%; height: 10px; border-radius: 999px; outline: none; cursor: pointer;
  background: linear-gradient(90deg, var(--amarelo) var(--p), rgba(255, 255, 255, .14) var(--p));
}
.v2-range::-webkit-slider-thumb {
  -webkit-appearance: none; width: 32px; height: 32px; border-radius: 50%; background: #fff;
  border: 7px solid var(--amarelo); box-shadow: 0 8px 22px rgba(0, 0, 0, .45); cursor: grab; transition: transform .25s var(--v2-ease);
}
.v2-range::-webkit-slider-thumb:active { transform: scale(1.12); cursor: grabbing; }
.v2-range::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 7px solid var(--amarelo); box-shadow: 0 8px 22px rgba(0, 0, 0, .45); cursor: grab; }
.v2-range:focus-visible { outline: 3px solid rgba(245, 233, 119, .55); outline-offset: 8px; }
.v2-range__marcas { display: flex; justify-content: space-between; margin-top: .7rem; font-size: .76rem; color: rgba(255, 255, 255, .5); font-weight: 600; }
.v2-nunca__titulo { margin: 2.2rem 0 .8rem; font-weight: 700; font-size: .92rem; color: rgba(255, 255, 255, .85); }
.v2-nunca { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.v2-nunca li {
  display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .85rem; border-radius: 999px;
  border: 1.5px solid rgba(255, 255, 255, .16); font-size: .84rem; font-weight: 600; color: rgba(255, 255, 255, .9);
}
.v2-nunca svg { width: 14px; height: 14px; color: var(--amarelo); }

.v2-recibo {
  position: relative; background: var(--v2-papel); color: var(--ink); border-radius: 26px 26px 6px 6px;
  padding: clamp(1.5rem, 3vw, 2.3rem); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .75); rotate: 1.2deg;
}
.v2-recibo::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -12px; height: 14px;
  background: radial-gradient(circle at 10px -2px, transparent 11px, var(--v2-papel) 11.5px) 0 0 / 20px 14px repeat-x;
}
.v2-recibo__topo { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: .4rem; border-bottom: 2px solid var(--ink); }
.v2-recibo__topo img { height: 24px; width: auto; }
.v2-recibo__topo span { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cinza); }
.v2-recibo dl { margin: 0; }
.v2-recibo__linha { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .9rem 0; border-bottom: 1.5px dashed var(--borda); font-size: .96rem; }
.v2-recibo__linha dt { color: var(--grafite); }
.v2-recibo__linha dt b { font-weight: 800; color: var(--ink); margin-left: .25rem; }
.v2-recibo__linha dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v2-recibo__linha--zero { background: linear-gradient(90deg, rgba(245, 233, 119, .5), rgba(245, 233, 119, 0)); margin: 0 -.8rem; padding-inline: .8rem; border-radius: 10px; border-bottom-color: transparent; }
.v2-recibo__linha--zero dd { color: var(--verde); }
.v2-recibo__total { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; padding: 1.3rem 0 1rem; }
.v2-recibo__total span { font-weight: 700; color: var(--grafite); }
.v2-recibo__total strong { font-size: clamp(2.2rem, 4.2vw, 3.4rem); font-weight: 900; letter-spacing: -.05em; line-height: 1; color: var(--azul); font-variant-numeric: tabular-nums; }
.v2-recibo__nota { font-size: .82rem; line-height: 1.5; color: var(--cinza); margin: 0 0 1.3rem; }

@media (max-width: 1023px) {
  .v2-sim__grid { grid-template-columns: 1fr; }
  .v2-recibo { rotate: 0deg; }
}

/* ============================================================
   6. COMO FUNCIONA — passos com foto fixa
   ============================================================ */
.v2-passos { position: relative; background: var(--v2-papel); padding: clamp(5rem, 10vw, 8rem) 0 clamp(3rem, 6vw, 5rem); }
.v2-sec-topo { max-width: 50rem; margin-bottom: clamp(2.4rem, 5vw, 4rem); }
.v2-sec-topo--centro { margin-inline: auto; text-align: center; }
.v2-sec-topo--centro .v2-lead { margin-inline: auto; }
.v2-passos__palco {
  display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2rem, 6vw, 6rem);
  align-items: center; min-height: calc(100svh - var(--header-h));
}
.v2-passos__coluna { position: relative; }
.v2-passos__lista { list-style: none; margin: 0; padding: 0; position: relative; }
.v2-passos__linha { position: absolute; left: 1.3rem; top: 1.6rem; bottom: 1.6rem; width: 2px; background: rgba(19, 19, 19, .08); border-radius: 2px; }
.v2-passos__linha i { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--azul); transform-origin: top; transform: scaleY(var(--prog, 0)); border-radius: 2px; }
.v2-passo { position: relative; padding: 1rem 0 1rem 4.2rem; transition: opacity .5s ease; }
.v2-passo__num {
  position: absolute; left: 0; top: 1rem; width: 2.65rem; height: 2.65rem; border-radius: 50%; display: grid; place-items: center;
  font-weight: 800; font-size: .98rem; background: var(--v2-papel); border: 2px solid rgba(19, 19, 19, .14);
  transition: background .4s ease, border-color .4s ease, color .4s ease, transform .5s var(--v2-ease);
}
.v2-passo h3 { font-size: clamp(1.3rem, 2vw, 1.75rem); letter-spacing: -.035em; margin: .35rem 0 .35rem; }
.v2-passo p { margin: 0; color: var(--v2-texto); line-height: 1.6; max-width: 30rem; }
.v2-passo__foto-m { display: none; }
.v2-passos__midia { position: relative; width: min(100%, 520px); aspect-ratio: 4 / 5; margin-left: auto; }
.v2-passos__foto { position: absolute; inset: 0; margin: 0; border-radius: 36px; overflow: hidden; clip-path: inset(100% 0 0 0 round 36px); transition: clip-path 1s var(--v2-ease); background: #E8EDF9; }
.v2-passos__foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 1.4s var(--v2-ease); }
.v2-passos__foto.ativo { clip-path: inset(0 0 0 0 round 36px); z-index: 1; }
.v2-passos__foto.ativo img { transform: scale(1); }
.v2-passos__foto.saindo { clip-path: inset(0 0 0 0 round 36px); z-index: 0; }
.v2-passos__contador {
  position: absolute; right: -1.2rem; top: 1.6rem; z-index: 4; width: 84px; height: 84px; border-radius: 50%;
  background: var(--amarelo); display: grid; place-items: center; text-align: center; font-weight: 900; font-size: 1.5rem;
  letter-spacing: -.04em; line-height: 1; box-shadow: 0 20px 40px -18px rgba(160, 140, 20, .9);
}
.v2-passos__contador small { display: block; font-size: .6rem; letter-spacing: .12em; font-weight: 800; margin-top: .15rem; }

/* Cartões de interface que acompanham cada passo */
.v2-ui {
  position: absolute; left: -12%; bottom: 7%; z-index: 5; width: min(300px, 80%);
  background: #fff; color: var(--ink); border-radius: 22px; padding: 1rem 1.1rem;
  box-shadow: 0 34px 70px -30px rgba(20, 36, 77, .6), inset 0 0 0 1px rgba(19, 19, 19, .05);
  opacity: 0; transform: translateY(24px) scale(.96); pointer-events: none;
  transition: opacity .45s ease, transform .7s var(--v2-ease);
}
.v2-ui.ativo { opacity: 1; transform: none; transition-delay: .25s; }
.v2-ui__topo { display: flex; align-items: center; gap: .55rem; font-size: .8rem; font-weight: 800; margin-bottom: .75rem; }
.v2-ui__ic { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; flex: none; }
.v2-ui__ic svg { width: 15px; height: 15px; }
.v2-ui__linhas span { display: block; height: 8px; border-radius: 6px; background: #EEF1F6; margin-bottom: .45rem; }
.v2-ui__linhas span:nth-child(2) { width: 86%; } .v2-ui__linhas span:nth-child(3) { width: 64%; }
.v2-ui__nota { font-size: .78rem; color: var(--cinza); margin: .3rem 0 0; }
.v2-ui__link { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem .7rem; border-radius: 12px; background: var(--azul-claro); font-weight: 800; font-size: .86rem; color: var(--azul); }
.v2-ui__botoes { display: flex; gap: .4rem; margin-top: .6rem; }
.v2-ui__botoes span { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .3rem; padding: .45rem .5rem; border-radius: 10px; font-size: .74rem; font-weight: 800; }
.v2-ui__botoes svg { width: 14px; height: 14px; }
.v2-ui__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.v2-ui__lista li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; font-size: .82rem; font-weight: 700; padding: .45rem .55rem; border-radius: 10px; background: #F7F8FB; }
.v2-ui__lista li span { display: inline-flex; align-items: center; gap: .45rem; }
.v2-ui__lista svg { width: 15px; height: 15px; }
.v2-ui__lista small { font-size: .7rem; font-weight: 700; color: var(--verde); }
.v2-ui__valor { font-size: 1.6rem; font-weight: 900; letter-spacing: -.04em; line-height: 1.1; }

@media (min-width: 1024px) {
  .v2-js-passos .v2-passos__palco { min-height: 100svh; padding-block: 2rem; }
  .v2-js-passos .v2-passo { cursor: pointer; }
  /* A opacidade fica no texto: no item inteiro, a linha de progresso
     apareceria através do círculo do número. */
  .v2-js-passos .v2-passo h3, .v2-js-passos .v2-passo p { opacity: .32; transition: opacity .5s ease; }
  .v2-js-passos .v2-passo .v2-passo__num { color: rgba(19, 19, 19, .4); }
  .v2-js-passos .v2-passo.ativo h3, .v2-js-passos .v2-passo.ativo p { opacity: 1; }
  .v2-js-passos .v2-passo.ativo .v2-passo__num { color: var(--ink); }
  .v2-js-passos .v2-passo.ativo .v2-passo__num { background: var(--amarelo); border-color: var(--amarelo); transform: scale(1.08); }
}
@media (max-width: 1023px) {
  .v2-passos__palco { grid-template-columns: 1fr; min-height: 0; }
  .v2-passos__midia { display: none; }
  .v2-passos__linha { display: none; }
  .v2-passo { padding: 0 0 2.6rem; }
  .v2-passo__num { position: static; margin-bottom: .6rem; background: var(--amarelo); border-color: var(--amarelo); }
  .v2-passo__foto-m { display: block; margin: 1.2rem 0 0; border-radius: 26px; overflow: hidden; aspect-ratio: 4 / 5; max-width: 460px; background: #E8EDF9; }
  .v2-passo__foto-m img { width: 100%; height: 100%; object-fit: cover; }
}

/* ============================================================
   7. TRANSPARÊNCIA
   ============================================================ */
.v2-transp { position: relative; background: var(--v2-creme); padding: clamp(5rem, 10vw, 8rem) 0; overflow: clip; }
.v2-transp__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.v2-transp__visual { position: relative; width: min(100%, 580px); aspect-ratio: 1 / 1.06; margin-inline: auto; }
.v2-transp__arco {
  position: absolute; left: 6%; right: 6%; top: 20%; bottom: 0; border-radius: 999px 999px 32px 32px;
  background: radial-gradient(120% 90% at 50% 0%, #3A5DB8 0%, var(--azul) 55%, #213B80 100%); overflow: hidden;
}
.v2-transp__arco::after {
  content: ''; position: absolute; width: 70%; aspect-ratio: 1; left: 50%; top: 58%; translate: -50% -50%;
  background: url('../assets/brand/flor-amarela.svg') center / contain no-repeat; opacity: .16;
}
.v2-transp__pessoa { position: absolute; left: 50%; bottom: 0; width: 84%; height: auto; translate: -50% 0; z-index: 1; filter: drop-shadow(0 30px 40px rgba(14, 26, 58, .25)); }
.v2-extrato {
  position: absolute; left: -9%; top: 34%; z-index: 3; width: min(290px, 64%); background: #fff; border-radius: 20px;
  padding: 1rem 1rem .8rem; box-shadow: 0 34px 70px -30px rgba(20, 36, 77, .65);
}
.v2-extrato__topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; font-size: .78rem; font-weight: 800; }
.v2-tag { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 999px; background: #F2F4F7; color: var(--cinza); }
.v2-extrato ul { list-style: none; margin: 0; padding: 0; }
.v2-extrato li { display: grid; grid-template-columns: 1fr auto; gap: .1rem .6rem; padding: .55rem 0; border-top: 1px dashed var(--borda); font-size: .8rem; }
.v2-extrato li b { font-weight: 800; font-variant-numeric: tabular-nums; }
.v2-extrato li small { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; color: var(--verde); }
.v2-extrato li small svg { width: 12px; height: 12px; }
.v2-notif {
  position: absolute; right: -7%; bottom: 13%; z-index: 3; display: flex; gap: .7rem; align-items: center;
  width: min(300px, 68%); padding: .8rem .9rem; border-radius: 18px; background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 30px 60px -28px rgba(20, 36, 77, .6);
}
.v2-notif__ic { width: 38px; height: 38px; border-radius: 12px; background: var(--magenta); color: #fff; display: grid; place-items: center; flex: none; }
.v2-notif__ic svg { width: 18px; height: 18px; }
.v2-notif small { display: block; font-size: .68rem; color: var(--cinza); font-weight: 600; }
.v2-notif strong { display: block; font-size: .82rem; line-height: 1.3; }
.v2-selo-giro { position: absolute; right: 2%; top: 4%; z-index: 3; width: clamp(96px, 11vw, 128px); aspect-ratio: 1; }
.v2-selo-giro svg.v2-selo-giro__texto { width: 100%; height: 100%; overflow: visible; }
.v2-selo-giro__texto text { font-size: 10.5px; font-weight: 800; letter-spacing: .26em; fill: var(--ink); }
.v2-selo-giro__centro { position: absolute; inset: 27%; border-radius: 50%; background: var(--verde); color: #fff; display: grid; place-items: center; box-shadow: 0 12px 26px -10px rgba(27, 158, 107, .8); }
.v2-selo-giro__centro svg { width: 50%; height: 50%; }
.v2-selo-giro__fundo { position: absolute; inset: 0; border-radius: 50%; background: var(--amarelo); z-index: -1; }
.v2-lista-check { list-style: none; margin: 1.8rem 0 2.2rem; padding: 0; display: grid; gap: .85rem; }
.v2-lista-check li { display: flex; gap: .75rem; align-items: flex-start; font-weight: 600; color: var(--grafite); line-height: 1.5; }
.v2-lista-check__ic { width: 26px; height: 26px; border-radius: 50%; background: var(--verde-suave); color: var(--verde); display: grid; place-items: center; flex: none; margin-top: -.05rem; }
.v2-lista-check__ic svg { width: 14px; height: 14px; }
@media (max-width: 1023px) {
  .v2-transp__grid { grid-template-columns: 1fr; }
  .v2-transp__visual { order: 2; width: min(100%, 500px); }
  .v2-extrato { left: -2%; } .v2-notif { right: -2%; }
}
@media (max-width: 560px) {
  /* Na tela pequena o rosto vem primeiro: fica só o extrato, no canto de baixo */
  .v2-extrato { width: 60%; top: auto; bottom: 3%; left: -2%; padding: .75rem .8rem .5rem; }
  .v2-extrato li { font-size: .72rem; }
  .v2-extrato li:nth-child(3) { display: none; }
  .v2-notif { display: none; }
  .v2-selo-giro { right: 0; top: 2%; }
}

/* ============================================================
   8. EMBAIXADORES — a rede
   ============================================================ */
.v2-rede { position: relative; padding: clamp(5rem, 10vw, 8rem) 0; background: linear-gradient(180deg, var(--v2-creme) 0%, var(--v2-lilas) 100%); overflow: clip; }
.v2-rede__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.v2-rede__mapa { position: relative; width: min(100%, 600px); aspect-ratio: 1; margin-inline: auto; }
.v2-rede__linhas { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.v2-rede__orbita { fill: none; stroke: rgba(44, 75, 155, .16); stroke-width: 1.5; stroke-dasharray: 3 7; }
.v2-rede__linha { fill: none; stroke: var(--azul); stroke-width: 2.2; stroke-linecap: round; opacity: .45; }
.v2-rede__gota { fill: var(--magenta); }
.v2-rede__centro {
  position: absolute; left: 50%; top: 50%; width: 29%; aspect-ratio: 1; translate: -50% -50%; z-index: 2;
  border-radius: 50%; background: var(--amarelo); display: grid; place-content: center; justify-items: center; gap: .3rem; text-align: center;
  box-shadow: 0 0 0 12px rgba(245, 233, 119, .35), 0 0 0 26px rgba(245, 233, 119, .15), 0 30px 50px -20px rgba(160, 140, 20, .8);
}
.v2-rede__centro svg { width: 34%; height: auto; aspect-ratio: 1; color: var(--magenta); }
.v2-rede__centro strong { font-size: clamp(.8rem, 1.1vw, 1rem); line-height: 1.1; letter-spacing: -.02em; }
.v2-no { position: absolute; left: var(--x); top: var(--y); width: 17%; translate: -50% -50%; margin: 0; z-index: 3; text-align: center; }
.v2-no img { width: 100%; aspect-ratio: 1; border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: 0 18px 34px -16px rgba(20, 36, 77, .6); background: #E8EDF9; }
.v2-no figcaption {
  position: absolute; left: 50%; top: calc(100% - .5rem); translate: -50% 0; white-space: nowrap;
  padding: .28rem .65rem; border-radius: 999px; background: #fff; font-size: clamp(.64rem, .85vw, .76rem); font-weight: 800;
  box-shadow: 0 10px 24px -14px rgba(20, 36, 77, .6);
}
.v2-rede__destaque {
  display: flex; gap: 1rem; align-items: center; margin: 1.8rem 0 2.2rem; padding: 1.1rem 1.2rem; border-radius: 20px;
  background: rgba(255, 255, 255, .75); box-shadow: inset 0 0 0 1px rgba(44, 75, 155, .1);
}
.v2-rede__destaque strong { font-size: clamp(2.2rem, 3.6vw, 3rem); font-weight: 900; letter-spacing: -.05em; color: var(--azul); line-height: 1; flex: none; }
.v2-rede__destaque p { margin: 0; font-size: .92rem; line-height: 1.5; color: var(--grafite); }
@media (max-width: 1023px) {
  .v2-rede__grid { grid-template-columns: 1fr; }
  .v2-rede__mapa { width: min(100%, 470px); }
}

/* ============================================================
   9. RECURSOS — bento
   ============================================================ */
.v2-bento { padding: clamp(5rem, 10vw, 8rem) 0; background: var(--v2-papel); }
.v2-bento__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(230px, auto); gap: clamp(.8rem, 1.3vw, 1.15rem); }
.v2-tile {
  position: relative; overflow: hidden; isolation: isolate; border-radius: var(--v2-raio); padding: clamp(1.4rem, 2.2vw, 2rem);
  background: #fff; box-shadow: inset 0 0 0 1px rgba(19, 19, 19, .06); display: flex; flex-direction: column; justify-content: space-between; gap: 1.2rem;
  transition: transform .7s var(--v2-ease), box-shadow .45s ease;
}
.v2-tile:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px rgba(19, 19, 19, .04), 0 34px 60px -34px rgba(20, 36, 77, .45); }
.v2-tile h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); letter-spacing: -.035em; line-height: 1.08; margin: 0 0 .5rem; }
.v2-tile p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--v2-texto); }
.v2-tile--2x2 { grid-column: span 2; grid-row: span 2; }
.v2-tile--2 { grid-column: span 2; }
.v2-tile--azul { background: var(--azul); color: #fff; box-shadow: none; }
.v2-tile--azul p { color: rgba(255, 255, 255, .8); }
.v2-tile--amarelo { background: var(--amarelo); box-shadow: none; }
.v2-tile--amarelo p { color: rgba(19, 19, 19, .72); }
.v2-tile--magenta { background: var(--magenta); color: #fff; box-shadow: none; }
.v2-tile--magenta p { color: rgba(255, 255, 255, .85); }
.v2-tile--noite { background: var(--v2-noite); color: #fff; box-shadow: none; }
.v2-tile--noite p { color: rgba(255, 255, 255, .75); }
.v2-tile__ic { width: 48px; height: 48px; border-radius: 15px; display: grid; place-items: center; background: rgba(255, 255, 255, .16); }
.v2-tile__ic svg { width: 24px; height: 24px; }
/* Micro-interface: pontual x recorrente */
.v2-recorrente { display: grid; gap: .8rem; }
.v2-alternar { display: inline-grid; grid-template-columns: 1fr 1fr; padding: 5px; border-radius: 999px; background: rgba(255, 255, 255, .14); position: relative; width: min(100%, 320px); font-weight: 800; font-size: .88rem; }
.v2-alternar span { position: relative; z-index: 1; text-align: center; padding: .6rem .9rem; transition: color .4s ease; }
.v2-alternar::before { content: ''; position: absolute; top: 5px; bottom: 5px; left: 5px; width: calc(50% - 5px); border-radius: 999px; background: var(--amarelo); transition: transform .7s var(--v2-ease); }
.v2-alternar[data-estado="recorrente"]::before { transform: translateX(100%); }
.v2-alternar[data-estado="recorrente"] span:last-child, .v2-alternar[data-estado="pontual"] span:first-child { color: var(--ink); }
.v2-cartao-mensal { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border-radius: 20px; background: #fff; color: var(--ink); width: min(100%, 360px); box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .6); }
.v2-cartao-mensal__ic { width: 44px; height: 44px; border-radius: 14px; background: var(--verde-suave); color: var(--verde); display: grid; place-items: center; flex: none; }
.v2-cartao-mensal__ic svg { width: 22px; height: 22px; }
.v2-cartao-mensal small { display: block; font-size: .72rem; color: var(--cinza); font-weight: 600; }
.v2-cartao-mensal strong { font-size: 1rem; }
/* Meios de pagamento */
.v2-meios { display: flex; flex-wrap: wrap; gap: .5rem; }
.v2-meios span { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; border-radius: 999px; background: var(--v2-creme); font-weight: 800; font-size: .86rem; box-shadow: inset 0 0 0 1px rgba(19, 19, 19, .06); }
.v2-meios svg { width: 16px; height: 16px; color: var(--azul); }
/* Ajudante IA */
.v2-bolhas { display: grid; gap: .45rem; }
.v2-bolha-msg { justify-self: start; max-width: 92%; padding: .6rem .85rem; border-radius: 16px 16px 16px 4px; background: rgba(255, 255, 255, .18); font-size: .82rem; line-height: 1.4; }
.v2-bolha-msg--eu { justify-self: end; border-radius: 16px 16px 4px 16px; background: #fff; color: var(--ink); }
.v2-digitando { display: inline-flex; gap: 4px; padding: .7rem .85rem; border-radius: 16px 16px 16px 4px; background: rgba(255, 255, 255, .18); justify-self: start; }
.v2-digitando i { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: v2-digita 1.2s infinite ease-in-out; }
.v2-digitando i:nth-child(2) { animation-delay: .15s; } .v2-digitando i:nth-child(3) { animation-delay: .3s; }
@keyframes v2-digita { 0%, 60%, 100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-4px); opacity: 1; } }
/* Cartaz com QR */
.v2-cartaz { position: absolute; right: -8%; bottom: -14%; width: 52%; aspect-ratio: 3 / 4; background: #fff; border-radius: 12px; padding: 10% 10% 0; rotate: -8deg; box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .45); z-index: -1; }
.v2-cartaz__foto { height: 34%; border-radius: 6px; overflow: hidden; background: #ddd; }
.v2-cartaz__foto img { width: 100%; height: 100%; object-fit: cover; }
.v2-cartaz__qr { margin-top: 10%; width: 56%; aspect-ratio: 1; background:
  conic-gradient(from 90deg at 3px 3px, #131313 25%, transparent 0) 0 0 / 12px 12px,
  linear-gradient(#fff, #fff); border: 4px solid #131313; border-radius: 4px; }
.v2-tile--amarelo .v2-tile__corpo { max-width: 62%; }
.v2-link-curto { display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; border-radius: 14px; background: #fff; font-weight: 800; color: var(--azul); width: fit-content; box-shadow: 0 18px 34px -24px rgba(20, 36, 77, .6); }
.v2-link-curto svg { width: 18px; height: 18px; color: #1B9E6B; }
.v2-selos { display: flex; flex-wrap: wrap; gap: .45rem; }
.v2-selos span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .75rem; border-radius: 999px; border: 1.5px solid rgba(255, 255, 255, .2); font-size: .8rem; font-weight: 700; }
.v2-selos svg { width: 14px; height: 14px; color: var(--amarelo); }
@media (max-width: 1023px) {
  .v2-bento__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .v2-bento__grid { grid-template-columns: 1fr; }
  .v2-tile--2x2, .v2-tile--2 { grid-column: auto; grid-row: auto; }
  .v2-tile--amarelo .v2-tile__corpo { max-width: 100%; }
  .v2-cartaz { width: 40%; right: -4%; bottom: -18%; }
}

/* ============================================================
   10. VAMOS JUNTOS
   ============================================================ */
.v2-juntos { padding: 0 0 clamp(5rem, 9vw, 7rem); background: var(--v2-papel); }
.v2-juntos__caixa {
  position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem;
  background: var(--magenta); color: #fff; border-radius: clamp(28px, 3.4vw, 48px);
  padding: clamp(2.2rem, 5vw, 4.5rem); padding-right: 0; padding-bottom: 0;
}
.v2-juntos__texto { padding-bottom: clamp(2.2rem, 5vw, 4.5rem); }
.v2-juntos .v2-h2 { color: #fff; }
.v2-juntos .v2-h2 em { color: var(--amarelo); }
.v2-juntos .v2-lead { color: rgba(255, 255, 255, .88); }
.v2-juntos__chips { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.8rem 0 2.2rem; padding: 0; list-style: none; }
.v2-juntos__chips li { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1rem; border-radius: 999px; border: 1.5px solid rgba(245, 233, 119, .7); color: var(--amarelo); font-weight: 700; font-size: .9rem; }
.v2-juntos__chips svg { width: 16px; height: 16px; }
.v2-juntos__visual { position: relative; min-height: 420px; align-self: stretch; clip-path: inset(-40% 0 0 -40% round 0 0 clamp(28px, 3.4vw, 48px) 0); }
.v2-juntos__arco { position: absolute; left: 10%; right: -1px; bottom: 0; height: 82%; border-radius: 999px 0 0 0; background: var(--amarelo); }
.v2-juntos__pessoa { position: absolute; right: 0; bottom: 0; width: min(100%, 470px); height: auto; z-index: 1; }
.v2-juntos__balao {
  position: absolute; left: 0; top: 18%; z-index: 2; padding: .8rem 1rem; border-radius: 18px 18px 18px 4px; background: #fff; color: var(--ink);
  font-size: .84rem; font-weight: 700; box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .5); max-width: 210px; line-height: 1.35;
}
.v2-juntos__balao small { display: block; color: var(--magenta); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; margin-bottom: .2rem; }
.v2-blog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: clamp(1.4rem, 3vw, 2rem); }
.v2-blog a {
  display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.2rem; border-radius: 20px; background: var(--v2-creme);
  color: var(--ink); box-shadow: inset 0 0 0 1px rgba(19, 19, 19, .07); transition: transform .5s var(--v2-ease), background .3s ease;
}
.v2-blog a:hover { text-decoration: none; transform: translateY(-4px); background: var(--amarelo); }
.v2-blog__ic { width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--magenta); display: grid; place-items: center; flex: none; }
.v2-blog__ic svg { width: 20px; height: 20px; }
.v2-blog h3 { font-size: .95rem; margin: 0; line-height: 1.35; flex: 1; letter-spacing: -.01em; }
.v2-blog a > svg { width: 20px; height: 20px; flex: none; }
@media (max-width: 1023px) {
  .v2-juntos__caixa { grid-template-columns: 1fr; padding-right: clamp(2.2rem, 5vw, 4.5rem); }
  .v2-juntos__texto { padding-bottom: 0; }
  .v2-juntos__visual { min-height: 360px; margin-right: calc(-1 * clamp(2.2rem, 5vw, 4.5rem)); }
  .v2-juntos__balao { top: 0; }
  .v2-blog { grid-template-columns: 1fr; }
}

/* ============================================================
   11. CONFIANÇA
   ============================================================ */
.v2-confianca { background: var(--v2-noite); color: #fff; padding: clamp(4rem, 8vw, 6.5rem) 0; position: relative; overflow: clip; }
.v2-confianca__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.v2-confianca .v2-h2 { color: #fff; margin: 0; }
.v2-confianca .v2-h2 em { color: var(--amarelo); }
.v2-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.v2-numeros > div { padding: 0 1.2rem; border-left: 1.5px solid rgba(255, 255, 255, .14); }
.v2-numeros dt { display: flex; align-items: baseline; gap: .12em; font-size: clamp(2.3rem, 4.1vw, 3.7rem); font-weight: 900; letter-spacing: -.055em; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v2-numeros dt small { font-size: .42em; font-weight: 800; letter-spacing: -.02em; color: var(--amarelo); }
.v2-numeros dd { margin: .6rem 0 0; font-size: .86rem; line-height: 1.45; color: rgba(255, 255, 255, .7); }
.v2-selos-seg { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(1.4rem, 3vw, 2rem); border-top: 1.5px solid rgba(255, 255, 255, .12); }
.v2-selos-seg span, .v2-selos-seg a { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .95rem; border-radius: 999px; background: rgba(255, 255, 255, .07); font-size: .84rem; font-weight: 700; color: rgba(255, 255, 255, .88); }
.v2-selos-seg a { color: var(--amarelo); background: transparent; box-shadow: inset 0 0 0 1.5px rgba(245, 233, 119, .5); }
.v2-selos-seg a:hover { text-decoration: none; background: rgba(245, 233, 119, .1); }
.v2-selos-seg svg { width: 16px; height: 16px; color: var(--amarelo); }
@media (max-width: 1023px) {
  .v2-confianca__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .v2-numeros { grid-template-columns: 1fr; gap: 1.4rem; }
  .v2-numeros > div { padding: 0 0 0 1rem; }
}

/* ============================================================
   12. FAQ
   ============================================================ */
.v2-faq { padding: clamp(5rem, 10vw, 8rem) 0; background: var(--v2-creme); }
.v2-faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.v2-faq__topo { position: sticky; top: calc(var(--header-h) + 2rem); }
.v2-faq__ajuda { margin-top: 1.8rem; font-size: .95rem; color: var(--v2-texto); }
.v2-faq__ajuda a { font-weight: 700; }
.v2-pergunta { border-bottom: 1.5px solid rgba(19, 19, 19, .1); }
.v2-pergunta:first-child { border-top: 1.5px solid rgba(19, 19, 19, .1); }
.v2-pergunta summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.2rem;
  padding: 1.35rem 0; font-size: clamp(1.05rem, 1.45vw, 1.28rem); font-weight: 700; letter-spacing: -.022em; line-height: 1.3;
}
.v2-pergunta summary::-webkit-details-marker { display: none; }
.v2-pergunta summary:hover { color: var(--azul); }
.v2-pergunta summary:focus-visible { outline: 3px solid rgba(44, 75, 155, .4); outline-offset: 4px; border-radius: 8px; }
.v2-pergunta__icone {
  width: 42px; height: 42px; border-radius: 50%; flex: none; display: grid; place-items: center;
  box-shadow: inset 0 0 0 1.5px rgba(19, 19, 19, .18); transition: transform .6s var(--v2-ease), background .3s ease, box-shadow .3s ease;
}
.v2-pergunta__icone svg { width: 18px; height: 18px; }
.v2-pergunta[open] .v2-pergunta__icone { transform: rotate(135deg); background: var(--amarelo); box-shadow: none; }
.v2-pergunta__resposta { overflow: hidden; }
.v2-pergunta__resposta p { margin: 0; padding: 0 3.8rem 1.6rem 0; color: var(--v2-texto); line-height: 1.72; }
@media (max-width: 1023px) {
  .v2-faq__grid { grid-template-columns: 1fr; }
  .v2-faq__topo { position: static; }
  .v2-pergunta__resposta p { padding-right: 0; }
}

/* ============================================================
   13. CTA FINAL
   ============================================================ */
.v2-final { position: relative; isolation: isolate; overflow: hidden; color: #fff; min-height: 100svh; display: flex; align-items: center; padding: clamp(6rem, 12vw, 9rem) 0; background: var(--v2-noite); }
/* O pôster do vídeo entra pelo JS quando a seção se aproxima (sem JS, pelo <noscript> do <head>) */
.v2-final__midia { position: absolute; inset: 0; z-index: -2; background: var(--v2-noite); }
.v2-final__midia video, .v2-final__midia img { width: 100%; height: 100%; object-fit: cover; }
.v2-final__veu { position: absolute; inset: 0; z-index: -1; background: linear-gradient(95deg, rgba(14, 26, 58, .92) 0%, rgba(14, 26, 58, .66) 48%, rgba(14, 26, 58, .28) 100%); }
.v2-final__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.v2-final__titulo { font-size: clamp(2.9rem, 7vw, 6.3rem); font-weight: 800; letter-spacing: -.055em; line-height: .93; margin: 0 0 1.4rem; color: #fff; }
.v2-final__titulo em { color: var(--amarelo); }
.v2-final .v2-lead { color: rgba(255, 255, 255, .85); }
.v2-final__garantias { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin: 1.8rem 0 0; padding: 0; list-style: none; font-weight: 700; font-size: .92rem; }
.v2-final__garantias li { display: inline-flex; align-items: center; gap: .4rem; }
.v2-final__garantias svg { width: 17px; height: 17px; color: var(--amarelo); }
.v2-form {
  background: rgba(255, 253, 248, .97); color: var(--ink); border-radius: 30px; padding: clamp(1.5rem, 3vw, 2.3rem);
  box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .8);
}
.v2-form__titulo { font-size: clamp(1.35rem, 2vw, 1.7rem); letter-spacing: -.035em; margin: 0 0 .35rem; }
.v2-form__sub { font-size: .92rem; color: var(--cinza); margin: 0 0 1.4rem; }
.v2-form fieldset { border: 0; margin: 0 0 1.2rem; padding: 0; }
.v2-form legend, .v2-form label.v2-rotulo { font-weight: 800; font-size: .92rem; margin-bottom: .6rem; padding: 0; display: block; }
.v2-escolhas { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.v2-escolha { position: relative; }
.v2-escolha input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.v2-escolha span {
  display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: .9rem 1rem; border-radius: 18px; background: #fff;
  box-shadow: inset 0 0 0 2px var(--borda); font-weight: 800; font-size: .92rem; line-height: 1.25; transition: box-shadow .25s ease, background .25s ease;
}
.v2-escolha small { font-weight: 600; font-size: .76rem; color: var(--cinza); }
.v2-escolha svg { width: 22px; height: 22px; color: var(--azul); }
.v2-escolha input:checked + span { box-shadow: inset 0 0 0 2px var(--azul), 0 0 0 4px rgba(44, 75, 155, .12); background: var(--azul-claro); }
.v2-escolha input:focus-visible + span { outline: 3px solid rgba(44, 75, 155, .45); outline-offset: 2px; }
.v2-form .input-prefixo { margin-bottom: .45rem; }
.v2-form .input { font-size: 1.15rem; font-weight: 700; padding-block: 1rem; border-radius: 16px; }
.v2-form__dica { font-size: .8rem; color: var(--cinza); margin: 0 0 1.3rem; }
@media (max-width: 1023px) {
  .v2-final { min-height: auto; }
  .v2-final__grid { grid-template-columns: 1fr; }
  .v2-final__veu { background: linear-gradient(180deg, rgba(14, 26, 58, .7) 0%, rgba(14, 26, 58, .9) 60%); }
}

/* ============================================================
   Rodapé amarelo (igual ao da home oficial)
   ============================================================ */
.footer-amarelo { background: #F0E986; color: var(--ink); padding: 3.2rem 0 1.8rem; }
.footer-amarelo a { color: var(--ink); font-weight: 600; }
.footer-amarelo a:hover { color: var(--azul); }
.footer-amarelo h4 { font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .9rem; }
.footer-amarelo ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .9rem; }
.fa-grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.3fr; gap: 2rem; margin-bottom: 2.2rem; }
@media (max-width: 980px) { .fa-grid { grid-template-columns: 1fr 1fr; } }
.fa-base { border-top: 1.5px solid rgba(19, 19, 19, .18); padding-top: 1.3rem; font-size: .82rem; color: rgba(19, 19, 19, .75); display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.fa-sociais { display: flex; gap: .6rem; margin-top: 1rem; }
.fa-sociais a { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid rgba(19, 19, 19, .3); display: grid; place-items: center; }
.fa-sociais a:hover { background: rgba(19, 19, 19, .08); }
.fa-sociais svg { width: 18px; height: 18px; }
.fa-selo { display: inline-flex; align-items: center; gap: .55rem; border: 1.5px solid rgba(19, 19, 19, .3); border-radius: 10px; padding: .5rem .8rem; font-size: .7rem; line-height: 1.35; margin-top: .9rem; }
.fa-selo svg { width: 18px; height: 18px; color: var(--azul); flex: none; }

/* ============================================================
   CTA fixo no celular + controle de movimento
   ============================================================ */
.v2-fixo {
  position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 85;
  display: none; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem .55rem .55rem 1.1rem;
  border-radius: 999px; background: rgba(14, 26, 58, .94); color: #fff; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 20px 44px -18px rgba(0, 0, 0, .6); transform: translateY(160%); transition: transform .6s var(--v2-ease);
}
.v2-fixo.visivel { transform: none; }
.v2-fixo small { display: block; font-size: .7rem; color: rgba(255, 255, 255, .65); font-weight: 600; }
.v2-fixo strong { font-size: .86rem; }
.v2-fixo .v2-btn { padding: .45rem .45rem .45rem 1rem; font-size: .9rem; gap: .55rem; }
.v2-fixo .v2-btn__seta { width: 32px; height: 32px; }
@media (max-width: 767px) { .v2-fixo { display: flex; } }

/* Botão discreto: só o ícone; o rótulo abre no hover/foco */
.v2-movimento {
  position: fixed; right: 16px; bottom: 16px; z-index: 86; display: inline-flex; align-items: center; gap: 0;
  padding: .4rem; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .88); color: var(--ink);
  font: inherit; font-size: .76rem; font-weight: 700; cursor: pointer; box-shadow: 0 12px 30px -14px rgba(20, 36, 77, .55);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: gap .4s var(--v2-ease), padding .4s var(--v2-ease);
}
.v2-movimento__ic { width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; flex: none; }
.v2-movimento__ic svg { width: 11px; height: 11px; }
.v2-movimento__txt { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .45s var(--v2-ease); }
.v2-movimento:hover, .v2-movimento:focus-visible { gap: .5rem; padding-right: .85rem; }
.v2-movimento:hover .v2-movimento__txt, .v2-movimento:focus-visible .v2-movimento__txt { max-width: 12rem; }
@media (max-width: 767px) {
  .v2-movimento { right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); opacity: .8; transition: bottom .6s var(--v2-ease), opacity .3s; }
  /* Sobe junto quando a barra de CTA fixa aparece */
  .v2-fixo-visivel .v2-movimento { bottom: calc(80px + env(safe-area-inset-bottom)); }
}
@media (max-width: 480px) { .v2-pill__extra { display: none; } }

/* ============================================================
   Movimento reduzido / pausado
   ============================================================ */
.v2-sem-movimento .v2-rolar__trilho::after,
.v2-sem-movimento .v2-digitando i { animation: none; }
.v2-sem-movimento .v2-causa img, .v2-sem-movimento .v2-passos__foto, .v2-sem-movimento .v2-passos__foto img { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .v2 *, .v2 *::before, .v2 *::after { scroll-behavior: auto !important; }
}
