/* ==========================================================================
   É Meu Direito, Vou Atrás! — Landing Page
   Design read: página de vendas longa, direct-response, confiança cívica
   + clareza fintech. Azul royal = autoridade/leitura de "prova"; branco
   quebrado = leitura longa; verde-limão reservado a CTA/selos.
   Dials — DESIGN_VARIANCE 5 · MOTION_INTENSITY 4 · VISUAL_DENSITY 4
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  /* ---- cor ---- */
  --blue-900:#0B1338;
  --blue-800:#111C4E;
  --blue-700:#1B2C8C;
  --blue-600:#2A3FB0;
  --blue-500:#3E56D6;
  --blue-100:#E7EAFB;

  --lime-500:#C6EE3F;
  --lime-600:#A9CE2A;
  --lime-ink:#16210A;

  --cream:#FAF9F4;
  --cream-dim:#F1F0E8;
  --ink:#111528;
  --ink-soft:#4B5170;
  --ink-faint:#7D82A0;
  --line:#E4E4DC;
  --line-on-blue:rgba(255,255,255,.16);
  --on-blue:#FFFFFF;
  --on-blue-muted:rgba(255,255,255,.72);

  --danger-bg:#FBEAEA;
  --danger-ink:#8C2E2E;

  --relief-bg:#F1FADD;

  /* ---- tipografia ---- */
  --font-display:'Sora', 'Segoe UI', system-ui, sans-serif;
  --font-body:'Manrope', 'Segoe UI', system-ui, sans-serif;

  --fs-hero: clamp(2.05rem, 1.35rem + 3.4vw, 3.6rem);
  --fs-h2: clamp(1.65rem, 1.25rem + 1.9vw, 2.5rem);
  --fs-h3: clamp(1.2rem, 1.05rem + .7vw, 1.4rem);
  --fs-lead: clamp(1.05rem, .95rem + .5vw, 1.2rem);
  --fs-body: 1rem;
  --fs-small: .875rem;
  --fs-micro: .75rem;

  /* ---- espaço / forma ---- */
  --section-pad: clamp(3.25rem, 2.4rem + 4vw, 6.5rem);
  --container: 1180px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --radius-pill: 999px;

  --shadow-soft: 0 20px 45px -20px rgba(11,19,56,.28);
  --shadow-card: 0 12px 30px -14px rgba(11,19,56,.18);

  --ease: cubic-bezier(.22,.68,0,1);
}

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

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  max-width:100%;
}

h1,h2,h3{
  font-family:var(--font-display);
  color:inherit;
  line-height:1.15;
  margin:0;
  letter-spacing:-.01em;
}

p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:clamp(1.25rem, 4vw, 2.5rem);
}

section{ padding-block:var(--section-pad); position:relative; }

.section--blue{ background:linear-gradient(175deg, var(--blue-800), var(--blue-700) 55%, var(--blue-800)); color:var(--on-blue); }
.section--cream{ background:var(--cream); }
.section--cream-dim{ background:var(--cream-dim); }
.section--danger{ background:var(--danger-bg); }
.section--relief{ background:var(--relief-bg); }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-body);
  font-weight:700;
  font-size:var(--fs-micro);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue-600);
}
.section--blue .eyebrow{ color:var(--lime-500); }

.section-head{
  max-width:640px;
  margin-bottom:clamp(2rem, 1.6rem + 1.8vw, 3.25rem);
}
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size:var(--fs-h2); margin-top:.6rem; }
.section-head .lead{ margin-top:.9rem; font-size:var(--fs-lead); color:var(--ink-soft); }
.section--blue .section-head .lead{ color:var(--on-blue-muted); }

/* ---------- reveal-on-scroll (motion motivada: orienta leitura, não decora) ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-stagger > *{ opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal-stagger.is-visible > *{ opacity:1; transform:none; }
.reveal-stagger.is-visible > *:nth-child(1){ transition-delay:.03s; }
.reveal-stagger.is-visible > *:nth-child(2){ transition-delay:.08s; }
.reveal-stagger.is-visible > *:nth-child(3){ transition-delay:.13s; }
.reveal-stagger.is-visible > *:nth-child(4){ transition-delay:.18s; }
.reveal-stagger.is-visible > *:nth-child(5){ transition-delay:.23s; }
.reveal-stagger.is-visible > *:nth-child(n+6){ transition-delay:.27s; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(11,19,56,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-on-blue);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:.85rem;
  gap:1rem;
}
.brand{
  display:flex; align-items:center; gap:.6rem;
}
.brand__logo{
  height:38px;
  width:auto;
  border-radius:8px;
  flex:none;
}
.brand__logo--footer{ height:52px; }
.header-cta{ flex:none; }
@media (max-width:640px){ .header-cta.header-cta{ display:none; } }

/* ==========================================================================
   Botões
   ========================================================================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-body);
  font-weight:800;
  font-size:clamp(.95rem, .9rem + .2vw, 1.05rem);
  padding:1rem 1.6rem;
  border-radius:var(--radius-pill);
  border:none;
  text-align:center;
  line-height:1.25;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease);
}
@media (min-width:640px){ .btn{ white-space:nowrap; } }
.btn--primary{
  background:var(--lime-500);
  color:var(--lime-ink);
  box-shadow:0 14px 30px -12px rgba(198,238,63,.55);
}
.btn--primary:hover{ background:var(--lime-600); transform:translateY(-2px); box-shadow:0 18px 34px -12px rgba(198,238,63,.65); }
.btn--primary:active{ transform:translateY(0); }
.btn--outline{
  background:transparent;
  color:var(--blue-700);
  border:2px solid var(--lime-600);
  box-shadow:none;
}
.btn--outline:hover{ background:rgba(198,238,63,.14); transform:translateY(-2px); }
.btn--outline:active{ transform:translateY(0); }
.site-header .btn--outline,
.section--blue .btn--outline{
  color:var(--on-blue);
  border-color:var(--lime-500);
}
.site-header .btn--outline:hover,
.section--blue .btn--outline:hover{ background:rgba(198,238,63,.2); }
.btn--small{ padding:.6rem 1.1rem; font-size:var(--fs-small); min-height:44px; }
.btn--block{ width:100%; }

.btn-note{
  margin-top:.75rem;
  font-size:var(--fs-small);
  color:var(--ink-faint);
  display:flex; align-items:center; justify-content:center; gap:.5rem; flex-wrap:wrap;
}
.section--blue .btn-note{ color:var(--on-blue-muted); }
.section--danger .btn-note{ color:var(--danger-ink); }
.btn-note .dot{ opacity:.5; }

.cta-block{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.cta-block.align-left{ align-items:flex-start; text-align:left; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  padding-top:clamp(2.5rem, 2rem + 2.5vw, 4rem);
  padding-bottom:clamp(3rem, 2.4rem + 3vw, 5rem);
  overflow:clip;
}
.hero .container{
  display:grid;
  gap:clamp(2.5rem, 2rem + 2vw, 3.5rem);
  align-items:center;
}
@media (min-width:960px){
  .hero .container{ grid-template-columns:.95fr 1.05fr; }
}

.hero h1{
  margin-top:1.1rem;
  font-size:var(--fs-hero);
  color:var(--on-blue);
  max-width:16ch;
}
.hero h1 em{
  font-style:normal;
  color:var(--lime-500);
}
.hero .subhead{
  margin-top:1.25rem;
  font-size:var(--fs-lead);
  color:var(--on-blue-muted);
  max-width:52ch;
}
.hero .cta-block{ margin-top:2rem; align-items:flex-start; text-align:left; }

.hero-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:320px;
}
.hero-visual__glow{
  position:absolute; inset:-10%;
  background:radial-gradient(closest-side, rgba(198,238,63,.22), transparent 70%);
  filter:blur(10px);
  z-index:0;
}
.float-chip{
  position:absolute; z-index:2;
  background:var(--on-blue);
  color:var(--ink);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  padding:.75rem .95rem;
  display:flex; align-items:center; gap:.6rem;
  font-size:.8rem;
  font-weight:700;
}
.float-chip--stat{ top:-6%; right:2%; }
.float-chip--stat .play-ico{ color:var(--blue-700); flex:none; }
.float-chip--stat .lbl{ color:var(--ink); font-weight:800; font-size:.85rem; white-space:nowrap; }
@media (max-width:959px){
  .float-chip--stat{ top:-4%; right:0%; }
}

/* ---------- foto real (substitui o placeholder quando a imagem final entra) ---------- */
.photo-frame{
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.photo-frame img,
.photo-frame video{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.photo-frame--hero-video{
  position:relative; z-index:1;
  width:min(300px, 78vw);
  aspect-ratio:9/16;
  box-shadow:var(--shadow-soft);
  background:var(--blue-900);
}
.photo-frame--hero-video video{
  object-fit:contain;
}
.video-mute-btn{
  position:absolute; z-index:5;
  right:.75rem; bottom:.75rem;
  width:44px; height:44px;
  border-radius:50%;
  border:none;
  background:rgba(11,19,56,.55);
  backdrop-filter:blur(4px);
  color:var(--on-blue);
  display:flex; align-items:center; justify-content:center;
  transition:background-color .2s var(--ease);
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.video-mute-btn:hover{ background:rgba(11,19,56,.75); }
.video-mute-btn .ico-unmuted{ display:none; }
.video-mute-btn[aria-pressed="true"] .ico-muted{ display:none; }
.video-mute-btn[aria-pressed="true"] .ico-unmuted{ display:block; }

/* ---------- placeholders de foto (a trocar pela imagem final) ---------- */
.img-placeholder{
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg, var(--blue-100), var(--cream-dim));
  border:2px dashed rgba(27,44,140,.3);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  text-align:center;
  color:var(--blue-700);
  padding:1.75rem 1.5rem;
}
.img-placeholder svg{ opacity:.6; }
.img-placeholder .cap{ font-family:var(--font-body); font-size:.8rem; font-weight:700; max-width:30ch; line-height:1.4; }
.img-placeholder .sub{ font-size:.7rem; font-weight:600; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; }

.img-placeholder--hero{
  position:relative; z-index:1;
  width:min(360px, 86vw);
  aspect-ratio:4/5;
  box-shadow:var(--shadow-soft);
  transform:rotate(-2deg);
  background:linear-gradient(150deg, var(--blue-100), #fff 65%);
}

.img-placeholder--wide{
  width:100%;
  aspect-ratio:21/8;
  margin-bottom:clamp(2rem, 1.6rem + 1.6vw, 3rem);
}
@media (max-width:640px){ .img-placeholder--wide{ aspect-ratio:16/10; } }

.img-placeholder--narrow{
  width:100%;
  aspect-ratio:4/3;
  margin-top:1.75rem;
}

.oferta .img-placeholder{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.35);
  color:var(--on-blue);
}
.oferta .img-placeholder .sub{ color:var(--on-blue-muted); }

/* ==========================================================================
   Prova / selos de confiança
   ========================================================================== */
.trust{ padding-block:clamp(2.25rem, 1.9rem + 1.5vw, 3rem); background:var(--cream-dim); border-bottom:1px solid var(--line); }
.trust-grid{
  display:grid; gap:1.1rem;
  grid-template-columns:repeat(2, 1fr);
}
@media (min-width:720px){ .trust-grid{ grid-template-columns:repeat(4, 1fr); } }
.trust-item{ display:flex; align-items:flex-start; gap:.65rem; }
.trust-item .ico{ color:var(--blue-600); flex:none; margin-top:.1rem; }
.trust-item p{ font-size:var(--fs-small); font-weight:600; color:var(--ink); line-height:1.45; }

/* ==========================================================================
   Expectativa real
   ========================================================================== */
.expectativa-body{
  max-width:620px;
  margin-inline:auto;
  display:flex; flex-direction:column; gap:1rem;
  text-align:center;
}
.expectativa-body p{ font-size:var(--fs-lead); color:var(--ink-soft); }
.expectativa-body strong{ color:var(--ink); }
.expectativa-body p.expectativa-close{
  margin-top:.5rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--fs-h3);
  color:var(--blue-700);
}

/* ==========================================================================
   Serve pra sua família também
   ========================================================================== */
.familia .container{
  display:grid; gap:clamp(2rem, 1.6rem + 1.6vw, 3rem);
}
@media (min-width:900px){ .familia .container{ grid-template-columns:.95fr 1.05fr; align-items:start; } }
.familia h2{ font-size:var(--fs-h2); max-width:16ch; }
.familia-body{
  display:flex; flex-direction:column; gap:1rem;
  text-align:left;
}
.familia-body p{ font-size:var(--fs-lead); color:var(--ink-soft); }
.familia-body p.familia-close{
  margin-top:.5rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--fs-h3);
  color:var(--ink);
}

/* ==========================================================================
   Objeções antes da oferta
   ========================================================================== */
.objecoes-list{ max-width:640px; margin-inline:auto; display:flex; flex-direction:column; gap:2rem; }
.objecoes-item h3{ font-family:var(--font-display); font-size:var(--fs-h3); color:var(--blue-700); margin-bottom:.75rem; }
.objecoes-item p{ font-size:var(--fs-body); color:var(--ink-soft); }
.objecoes-item p + p{ margin-top:.6rem; }

/* ==========================================================================
   Prova em números
   ========================================================================== */
.stats-grid{
  display:grid; gap:1rem;
  grid-template-columns:repeat(2, 1fr);
}
@media (min-width:860px){ .stats-grid{ grid-template-columns:repeat(4, 1fr); } }
.stat-card{
  min-width:0;
  background:var(--cream-dim);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:1.5rem 1.25rem;
  box-shadow:var(--shadow-card);
}
.stat-card .num{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(1.35rem, 1.1rem + 1vw, 1.85rem);
  color:var(--blue-700);
  line-height:1.15;
}
.stat-card .ctx{ margin-top:.6rem; font-size:var(--fs-small); color:var(--ink-soft); line-height:1.55; }
.stats-note{
  margin-top:clamp(1.5rem, 1.3rem + .8vw, 2rem);
  text-align:center;
  max-width:640px;
  margin-inline:auto;
  font-size:var(--fs-micro);
  color:var(--ink-faint);
}

/* ==========================================================================
   Dor
   ========================================================================== */
.dor .container{
  display:grid; gap:clamp(2rem, 1.6rem + 1.6vw, 3rem);
}
@media (min-width:900px){ .dor .container{ grid-template-columns:.95fr 1.05fr; align-items:start; } }
.dor h2{ font-size:var(--fs-h2); max-width:14ch; }
.dor-body p{ font-size:var(--fs-lead); color:var(--ink-soft); }
.dor-body p + p{ margin-top:1.1rem; }
.dor-body strong{ color:var(--ink); }
.result-box{
  margin-top:1.5rem;
  background:var(--danger-ink);
  color:var(--on-blue);
  border-radius:var(--radius-md);
  padding:1.25rem 1.4rem;
  display:flex; gap:.85rem; align-items:flex-start;
  box-shadow:var(--shadow-card);
}
.result-box .ico{ color:var(--lime-500); flex:none; margin-top:.15rem; }
.result-box p{ font-size:var(--fs-body); font-weight:600; color:var(--on-blue); }

/* ==========================================================================
   Agitação (lista dentro da seção Dor)
   ========================================================================== */
.agit-list{ display:flex; flex-direction:column; gap:.85rem; margin-top:1.5rem; }
.agit-item{
  display:flex; gap:.85rem; align-items:flex-start;
  background:var(--on-blue);
  border:1px solid var(--line);
  border-left:4px solid var(--lime-500);
  border-radius:var(--radius-md);
  padding:1.1rem 1.25rem;
  box-shadow:var(--shadow-card);
}
.agit-item .mark{
  flex:none; width:28px; height:28px; border-radius:50%;
  background:var(--blue-100); color:var(--blue-700);
  display:flex; align-items:center; justify-content:center;
}
.agit-item p{ font-size:var(--fs-body); color:var(--ink); font-weight:600; }

/* ==========================================================================
   Solução
   ========================================================================== */
.solucao .container{ display:grid; gap:clamp(2rem, 1.6rem + 1.6vw, 3rem); }
@media (min-width:960px){ .solucao .container{ grid-template-columns:.9fr 1.1fr; align-items:start; } }
.solucao-list{ display:grid; gap:.9rem; }
@media (min-width:640px){ .solucao-list{ grid-template-columns:1fr 1fr; } }
.solucao-item{
  display:flex; gap:.85rem; align-items:flex-start;
  background:var(--on-blue);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:1.1rem 1.2rem;
  box-shadow:var(--shadow-card);
}
.solucao-item .emoji{ font-size:1.25rem; flex:none; line-height:1; }
.solucao-item b{ display:block; font-size:var(--fs-small); color:var(--ink); }
.solucao-item span{ display:block; font-size:var(--fs-small); color:var(--ink-faint); margin-top:.15rem; }

/* ==========================================================================
   Benefícios — grid de 10
   ========================================================================== */
.beneficios{ background:var(--blue-900); color:var(--on-blue); }
.beneficios-grid{
  display:grid; gap:1rem;
  grid-template-columns:repeat(2, 1fr);
}
@media (min-width:640px){ .beneficios-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (min-width:1024px){ .beneficios-grid{ grid-template-columns:repeat(5, 1fr); } }
.beneficio-card{
  background:rgba(255,255,255,.05);
  border:1px solid var(--line-on-blue);
  border-radius:var(--radius-md);
  padding:1.35rem 1.1rem;
  display:flex; flex-direction:column; gap:.85rem;
  transition:background-color .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.beneficio-card:hover{ background:rgba(255,255,255,.09); border-color:rgba(198,238,63,.4); transform:translateY(-3px); }
.beneficio-card .ico{
  width:42px; height:42px; border-radius:11px;
  background:var(--lime-500); color:var(--lime-ink);
  display:flex; align-items:center; justify-content:center;
}
.beneficio-card b{ font-family:var(--font-display); font-size:.92rem; line-height:1.3; }
.beneficio-card b .n{ display:block; font-size:.68rem; font-weight:700; color:var(--lime-500); letter-spacing:.06em; margin-bottom:.35rem; }

.beneficios-close{ margin-top:clamp(2rem,1.7rem+1.2vw,2.75rem); text-align:center; }
.beneficios-close p{ font-size:var(--fs-lead); color:var(--on-blue-muted); max-width:46ch; margin-inline:auto; margin-bottom:1.75rem; }
.beneficios-close .btn-note{ font-size:var(--fs-small); max-width:none; margin-bottom:0; margin-top:.75rem; }

/* ==========================================================================
   Como funciona
   ========================================================================== */
.steps{
  display:grid; gap:1.75rem;
  counter-reset:step;
  position:relative;
}
@media (min-width:860px){
  .steps{ grid-template-columns:repeat(3, 1fr); }
  .steps::before{
    content:''; position:absolute; top:26px; left:16.5%; right:16.5%; height:2px;
    background:repeating-linear-gradient(90deg, var(--line) 0 10px, transparent 10px 18px);
    z-index:0;
  }
}
.step{ position:relative; z-index:1; text-align:left; }
.step__num{
  width:52px; height:52px; border-radius:50%;
  background:var(--blue-700); color:var(--on-blue);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.15rem;
  margin-bottom:1.1rem;
  box-shadow:var(--shadow-card);
}
.step h3{ font-size:var(--fs-h3); margin-bottom:.5rem; }
.step p{ color:var(--ink-soft); font-size:var(--fs-body); }
.como-funciona-nota{
  margin-top:clamp(2rem, 1.6rem + 1.6vw, 3rem);
  text-align:center;
  font-size:var(--fs-small);
  color:var(--ink-faint);
}

/* ==========================================================================
   Quebra de objeção — dúvida (painel citação) → virada → checklist que se resolve
   ========================================================================== */
.objection-card{
  max-width:680px;
  margin-inline:auto;
  background:var(--on-blue);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  padding:clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem);
}

.objection-doubt{
  position:relative;
  background:var(--blue-100);
  border-radius:var(--radius-md);
  padding:1.6rem 1.75rem 1.6rem 2.65rem;
  overflow:hidden;
}
.objection-doubt::before{
  content:'\201C';
  position:absolute;
  top:-.55rem; left:.7rem;
  font-family:var(--font-display);
  font-size:clamp(3.5rem, 3rem + 2vw, 5rem);
  line-height:1;
  color:var(--blue-600);
  opacity:.22;
  pointer-events:none;
}
.objection-doubt__text{
  position:relative;
  font-family:var(--font-body);
  font-style:italic;
  font-weight:600;
  font-size:var(--fs-lead);
  color:var(--blue-700);
}
.objection-doubt__dots{ opacity:.55; }

.objection-turn{
  margin-top:1.75rem;
  text-align:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--fs-h3);
  color:var(--ink);
  line-height:1.45;
}
.objection-turn span{ color:var(--blue-700); }

.objection-resolve{ margin-top:2rem; text-align:center; }
.objection-resolve > .eyebrow{ display:inline-block; margin-bottom:1.35rem; }

.objection-checklist{
  position:relative;
  max-width:400px;
  margin-inline:auto;
  text-align:left;
}
.objection-checklist::before{
  content:'';
  position:absolute;
  left:13px; top:14px; bottom:14px;
  width:2px;
  background:var(--line);
}
@media (min-width:600px){
  .objection-checklist{
    max-width:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:2rem;
    row-gap:.15rem;
  }
  .objection-checklist::before{ display:none; }
}
.objection-checklist li{
  position:relative;
  display:flex;
  align-items:center;
  gap:.9rem;
  padding-block:.5rem;
  font-weight:700;
  font-size:var(--fs-body);
  color:var(--ink);
}
.objection-checklist .ck{
  position:relative; z-index:1;
  flex:none;
  width:27px; height:27px;
  border-radius:50%;
  background:var(--cream);
  border:2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--lime-ink);
  transition:background-color .35s var(--ease), border-color .35s var(--ease);
}
.objection-checklist .ck svg{
  width:14px; height:14px;
  opacity:0;
  transform:scale(.4);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
  transition-delay:inherit;
}
.objection-checklist.is-visible li .ck{ background:var(--lime-500); border-color:var(--lime-500); }
.objection-checklist.is-visible li .ck svg{ opacity:1; transform:scale(1); }
.objection-checklist.is-visible li:nth-child(1) .ck{ transition-delay:.21s; }
.objection-checklist.is-visible li:nth-child(2) .ck{ transition-delay:.26s; }
.objection-checklist.is-visible li:nth-child(3) .ck{ transition-delay:.31s; }
.objection-checklist.is-visible li:nth-child(4) .ck{ transition-delay:.36s; }
.objection-checklist.is-visible li:nth-child(5) .ck{ transition-delay:.41s; }
.objection-checklist.is-visible li:nth-child(n+6) .ck{ transition-delay:.45s; }

/* ==========================================================================
   Oferta
   ========================================================================== */
.oferta{ background:linear-gradient(180deg, var(--blue-800), var(--blue-900)); color:var(--on-blue); }
.offer-card{
  max-width:600px;
  margin-inline:auto;
  background:var(--cream);
  color:var(--ink);
  border-radius:var(--radius-lg);
  padding:clamp(1.75rem, 1.4rem + 1.6vw, 2.75rem);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
}
.offer-card__head{ text-align:center; }
.offer-card__head h3{ font-family:var(--font-display); font-size:var(--fs-h3); color:var(--blue-700); }
.offer-price{ text-align:center; margin-block:1.5rem; }
.offer-price .now{ display:flex; align-items:baseline; justify-content:center; gap:.4rem; margin-top:.25rem; }
.offer-price .now .cur{ font-family:var(--font-display); font-weight:700; font-size:1.4rem; color:var(--blue-700); }
.offer-price .now .val{ font-family:var(--font-display); font-weight:800; font-size:clamp(2.75rem, 2.3rem + 1.8vw, 3.5rem); color:var(--blue-700); line-height:1; }
.offer-price .note{ margin-top:.5rem; font-size:var(--fs-small); color:var(--ink-faint); }

.offer-list{ display:grid; gap:.75rem; margin-block:1.75rem; }
.offer-list li{ display:flex; gap:.65rem; align-items:flex-start; font-size:var(--fs-small); font-weight:600; }
.offer-list li .ico{ color:var(--blue-600); flex:none; margin-top:.1rem; }

/* ==========================================================================
   Garantia
   ========================================================================== */
.garantia .container{ display:grid; gap:clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); align-items:center; }
@media (min-width:860px){ .garantia .container{ grid-template-columns:auto 1fr; } }
.shield-badge{
  width:132px; height:132px; border-radius:50%;
  background:var(--blue-100);
  color:var(--blue-700);
  display:flex; align-items:center; justify-content:center;
  margin-inline:auto;
  flex:none;
}
.shield-badge svg{ width:64px; height:64px; }
.garantia-text{ text-align:center; }
@media (min-width:860px){ .garantia-text{ text-align:left; } }
.garantia-text h2{ font-size:var(--fs-h2); }
.garantia-text p{ margin-top:.9rem; font-size:var(--fs-lead); color:var(--ink-soft); max-width:60ch; }
.garantia-text p:not(:first-of-type){ margin-inline:auto; }
@media (min-width:860px){ .garantia-text p:not(:first-of-type){ margin-inline:0; } }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-list{ max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:.75rem; }
.faq-item{
  background:var(--on-blue);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.15rem 1.35rem;
  font-family:var(--font-body);
  font-weight:700;
  font-size:var(--fs-body);
  color:var(--ink);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .plus{
  flex:none; width:26px; height:26px; border-radius:50%;
  background:var(--blue-100); color:var(--blue-700);
  display:flex; align-items:center; justify-content:center;
  transition:transform .25s var(--ease), background-color .25s var(--ease);
}
.faq-item[open] summary .plus{ background:var(--lime-500); color:var(--lime-ink); transform:rotate(45deg); }
.faq-item .faq-a{ padding:0 1.35rem 1.25rem; color:var(--ink-soft); font-size:var(--fs-body); max-width:65ch; }

/* ==========================================================================
   CTA final
   ========================================================================== */
.cta-final{ background:var(--lime-500); color:var(--lime-ink); text-align:center; }
.cta-final h2{ font-size:var(--fs-h2); max-width:20ch; margin-inline:auto; color:var(--lime-ink); }
.cta-final p{ margin-top:1rem; font-size:var(--fs-lead); max-width:56ch; margin-inline:auto; color:rgba(22,33,10,.8); }
.cta-final .cta-block{ margin-top:2rem; }
#dor .cta-block{ margin-top:2rem; }
#objecoes .cta-block{ margin-top:2.25rem; }
#prova-numeros .cta-block{ margin-top:2rem; }
.cta-final .btn--primary{ background:var(--blue-800); color:var(--on-blue); box-shadow:0 14px 30px -12px rgba(11,19,56,.4); }
.cta-final .btn--primary:hover{ background:var(--blue-900); }
.cta-final .btn-note{ color:rgba(22,33,10,.65); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background:var(--blue-900); color:var(--on-blue-muted); padding-block:clamp(2.25rem, 1.9rem + 1.5vw, 3rem); }
.site-footer .brand{ margin-bottom:1rem; }
.legal{ font-size:var(--fs-small); line-height:1.7; max-width:840px; }
.footer-bottom{ margin-top:1.75rem; padding-top:1.5rem; border-top:1px solid var(--line-on-blue); font-size:var(--fs-micro); display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:space-between; }

/* ==========================================================================
   Sticky mobile CTA
   ========================================================================== */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:var(--on-blue);
  border-top:1px solid var(--line);
  box-shadow:0 -12px 30px -18px rgba(11,19,56,.35);
  padding:.75rem clamp(1rem, 4vw, 1.5rem);
  display:flex; align-items:center; gap:.85rem;
  transform:translateY(110%);
  transition:transform .35s var(--ease);
}
.sticky-cta.is-visible{ transform:translateY(0); }
.sticky-cta__info{ flex:1; min-width:0; }
.sticky-cta__info .now{ font-family:var(--font-display); font-weight:800; color:var(--blue-700); font-size:1.05rem; }
.sticky-cta .btn{ flex:none; padding:.85rem 1.25rem; font-size:.9rem; }
@media (min-width:860px){ .sticky-cta{ display:none; } }

/* ==========================================================================
   utilitários
   ========================================================================== */
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
