/* ============================================================
   LEGALIZEI · Landing Page
   "Leve na cara, séria no motor."
   Tokens → base → componentes → seções → responsivo → motion
   ============================================================ */

/* ---------- tokens ---------- */
:root {
  --coral-50:#FEF3EE; --coral-100:#FBDDD1; --coral-200:#F8C3B0; --coral-300:#F5A184;
  --coral-400:#F47F58; --coral-500:#F2643C; --coral-600:#DD4E27; --coral-700:#B83D1C;
  --coral-800:#8C2F16; --coral-900:#5C1F0F;

  --ink-50:#FAF8F5; --ink-100:#F1EEE9; --ink-200:#E3DED7; --ink-300:#CBC5BC;
  --ink-400:#A19B92; --ink-500:#736E67; --ink-600:#524E48; --ink-700:#34363C;
  --ink-800:#24262C; --ink-900:#1B1E24;

  --success-50:#E7F6EF; --success-500:#17A06A; --success-700:#0B5E40;
  --warn-50:#FDF3E1;    --warn-500:#F5A524;    --warn-700:#8A5606;
  --danger-500:#E03E43; --danger-700:#971F25;

  --font: 'Sora', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --r-btn:16px; --r-card:16px; --r-field:16px;
  --shadow-coral:0 8px 24px rgba(242,100,60,.28);
  --shadow-card:0 6px 24px rgba(27,30,36,.06);
  --shadow-card-hover:0 14px 36px rgba(27,30,36,.10);

  /* gradiente assinatura do app: ink-900 + glow radial coral */
  --dark-glow:#1B1E24 radial-gradient(120% 80% at 15% 0%, rgba(242,100,60,.22), transparent 60%);

  --container:1120px;
  --ease-out:cubic-bezier(.22,1,.36,1);
}

/* ---------- base ---------- */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
body {
  margin:0; font-family:var(--font); color:var(--ink-900);
  background:var(--ink-50); line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,svg { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3,p,ul,ol { margin:0; }
button { font:inherit; cursor:pointer; }
input,textarea { font:inherit; color:var(--ink-900); }
::placeholder { color:var(--ink-500); }
.hidden { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.only-mobile { display:inline; }

:focus-visible { outline:3px solid var(--coral-600); outline-offset:3px; border-radius:6px; }

.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:20px; }

/* ---------- tipografia de seção ---------- */
.eyebrow {
  display:inline-flex; align-items:center; gap:6px;
  font-size:.8rem; font-weight:600; letter-spacing:.02em;
  color:var(--coral-700); background:var(--coral-50);
  border:1px solid var(--coral-100); border-radius:999px;
  padding:.45em 1em;
}
h1 { font-size:clamp(2.1rem, 4.6vw + 1rem, 3.7rem); font-weight:800; line-height:1.08; letter-spacing:-.02em; }
h2 { font-size:clamp(1.55rem, 2.4vw + .8rem, 2.4rem); font-weight:800; line-height:1.15; letter-spacing:-.015em; }
.section-head { text-align:center; max-width:640px; margin:0 auto 40px; }
.section-head h2 { margin-top:16px; }
.section-sub { margin-top:12px; color:var(--ink-500); font-size:1.02rem; }

/* ---------- botões ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; border-radius:var(--r-btn); text-decoration:none;
  font-weight:700; transition:transform .16s var(--ease-out), box-shadow .16s, background-color .16s;
}
.btn-primary {
  /* coral-600 + branco = 4.04:1 → AA só em texto grande; por isso font ≥1.2rem bold (19.2px) */
  background:var(--coral-600); color:#fff;
  padding:15px 28px; font-size:1.2rem;
  box-shadow:var(--shadow-coral);
}
.btn-primary:hover { background:var(--coral-700); transform:translateY(-2px); box-shadow:0 12px 30px rgba(242,100,60,.36); }
.btn-primary:active { transform:translateY(0) scale(.99); }
/* botão pequeno: texto <18.66px → fill coral-700 (5.6:1, AA em qualquer tamanho) */
.btn-sm { padding:10px 18px; font-size:.9rem; border-radius:13px; background:var(--coral-700); }
.btn-sm:hover { background:var(--coral-800); }

/* ---------- badges de loja ---------- */
.store-row { display:flex; flex-wrap:wrap; gap:12px; }
.store-row-center { justify-content:center; }
.store-badge {
  display:inline-flex; align-items:center; gap:11px;
  background:var(--ink-900); color:#fff; text-decoration:none;
  border:1px solid var(--ink-700); border-radius:14px;
  padding:10px 18px 10px 14px; min-width:172px;
  transition:transform .16s var(--ease-out), box-shadow .16s, border-color .16s;
}
.store-badge:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgba(27,30,36,.28); border-color:var(--ink-500); }
.store-badge svg { width:26px; height:26px; flex:none; }
.store-badge span { display:flex; flex-direction:column; line-height:1.15; }
.store-badge small { font-size:.68rem; font-weight:500; opacity:.75; }
.store-badge strong { font-size:1.02rem; font-weight:700; letter-spacing:-.01em; }
.store-badge-light { background:#fff; color:var(--ink-900); border-color:#fff; }
.store-badge-light:hover { box-shadow:0 12px 30px rgba(0,0,0,.35); border-color:#fff; }

/* ============================================================ HEADER */
.site-header {
  position:sticky; top:0; z-index:50;
  background:rgba(250,248,245,.86); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .2s, box-shadow .2s;
}
.site-header.scrolled { border-bottom-color:var(--ink-200); box-shadow:0 4px 20px rgba(27,30,36,.05); }
.header-inner { display:flex; align-items:center; gap:24px; height:68px; }
.brand { flex:none; }
.logo { height:26px; width:auto; }
.header-nav { display:none; gap:26px; margin-inline:auto; }
.header-nav a { text-decoration:none; font-size:.92rem; font-weight:600; color:var(--ink-600); transition:color .15s; }
.header-nav a:hover { color:var(--coral-700); }
.header-inner > .btn { margin-left:auto; }

/* ============================================================ HERO */
.hero { padding:56px 0 24px; position:relative; overflow:clip; }
.hero-grid { display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
.hero-copy { text-align:center; display:flex; flex-direction:column; align-items:center; }
.hero h1 { margin-top:20px; max-width:15ch; }
.hero-sub { margin-top:18px; font-size:clamp(1.02rem, .6vw + .9rem, 1.2rem); color:var(--ink-500); max-width:38ch; }
.hero-sub strong { color:var(--ink-700); }
.store-row { margin-top:28px; justify-content:center; }
.hero-proof { margin-top:22px; display:inline-flex; align-items:center; gap:9px; font-size:.92rem; color:var(--ink-500); }
.hero-proof svg { width:19px; height:19px; flex:none; }
.hero-proof strong { color:var(--ink-700); }

/* destaque "em dia" com traço coral */
.hl { position:relative; display:inline-block; white-space:nowrap; }
.hl-stroke { position:absolute; left:-2%; bottom:-.14em; width:104%; height:.28em; overflow:visible; }
.hl-stroke path { stroke-dasharray:230; stroke-dashoffset:230; animation:draw .7s .5s var(--ease-out) forwards; }
@keyframes draw { to { stroke-dashoffset:0; } }

/* visual: telefone + blob + avião */
.hero-visual { position:relative; display:flex; justify-content:center; padding:12px 0 8px; }
.hero-blob {
  position:absolute; inset:auto; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(480px, 92vw); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(closest-side, rgba(242,100,60,.16), transparent 72%);
  pointer-events:none;
}
.hero-plane { position:absolute; top:-30px; right:max(2vw, calc(50% - 300px)); width:170px; opacity:.95; pointer-events:none; }
.phone {
  position:relative; width:288px; padding:11px;
  background:var(--ink-900); border-radius:46px;
  box-shadow:0 30px 70px rgba(27,30,36,.28), 0 0 0 1px rgba(255,255,255,.06) inset;
  animation:float 7s ease-in-out infinite;
}
@keyframes float { 0%,100% { transform:translateY(0) rotate(-1.2deg); } 50% { transform:translateY(-12px) rotate(-1.2deg); } }
.phone::before { /* notch */
  content:""; position:absolute; top:22px; left:50%; transform:translateX(-50%);
  width:86px; height:22px; background:var(--ink-900); border-radius:12px; z-index:2;
}
.phone-screen { background:var(--ink-50); border-radius:36px; overflow:hidden; }
.app-top {
  background:var(--dark-glow);
  color:#fff; padding:52px 18px 18px;
}
.app-greet { display:flex; flex-direction:column; gap:1px; }
.app-hello { font-size:.98rem; font-weight:700; }
.app-biz { font-size:.7rem; opacity:.62; font-weight:500; }
.app-status {
  margin-top:14px; display:flex; align-items:center; gap:11px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:12px 13px;
}
.app-check {
  width:34px; height:34px; flex:none; border-radius:11px;
  background:var(--success-500); color:#fff;
  display:grid; place-items:center;
}
.app-check svg { width:18px; height:18px; }
.app-status strong { display:block; font-size:.8rem; line-height:1.25; }
.app-status small { font-size:.64rem; opacity:.66; }
.app-body { padding:13px 13px 16px; display:flex; flex-direction:column; gap:9px; }
.app-card {
  display:flex; align-items:center; gap:11px;
  background:#fff; border:1px solid var(--ink-100);
  border-radius:15px; padding:11px 12px;
  box-shadow:0 3px 10px rgba(27,30,36,.04);
}
.app-ico { font-size:1.15rem; flex:none; }
.app-card strong { display:block; font-size:.74rem; }
.app-card small { font-size:.64rem; color:var(--ink-500); line-height:1.3; }
.app-card-coral { background:var(--coral-50); border-color:var(--coral-100); }

/* ============================================================ MARQUEE */
.marquee-band {
  margin-top:44px; padding:38px 0 42px;
  background:var(--dark-glow); color:#fff;
}
.marquee-title { text-align:center; font-weight:700; font-size:clamp(1.05rem, 1.2vw + .8rem, 1.35rem); letter-spacing:-.01em; }
.marquee { overflow:hidden; margin-top:22px; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
/* sem gap no track: a largura de cada .mq-set (incl. margens) = 50% exato → loop sem salto */
.marquee-track { display:flex; width:max-content; animation:marquee 30s linear infinite; }
.marquee.paused .marquee-track { animation-play-state:paused; }
.mq-set { display:flex; }
@keyframes marquee { to { transform:translateX(-50%); } }
.mq-chip {
  display:inline-flex; align-items:center; gap:9px; white-space:nowrap;
  font-size:.92rem; font-weight:600; color:var(--ink-100);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13);
  border-radius:999px; padding:.6em 1.15em; margin-right:12px;
}
.mq-toggle {
  display:block; margin:18px auto 0; background:none;
  border:1px solid rgba(255,255,255,.22); border-radius:999px;
  color:var(--ink-200); font-size:.78rem; font-weight:600; padding:.5em 1.1em;
  transition:border-color .15s, color .15s;
}
.mq-toggle:hover { border-color:rgba(255,255,255,.5); color:#fff; }
.mq-chip i {
  font-style:normal; font-weight:800; font-size:.8em;
  width:1.55em; height:1.55em; border-radius:50%;
  display:inline-grid; place-items:center;
  background:var(--success-500); color:#fff;
}
.marquee-note { margin-top:20px; text-align:center; font-size:.9rem; color:var(--ink-300); }

/* ============================================================ VALIDADOR */
.validador { padding:84px 0; }
.concierge {
  max-width:560px; margin:0 auto;
  background:#fff; border:1px solid var(--ink-200); border-radius:26px;
  box-shadow:0 18px 50px rgba(27,30,36,.09);
  overflow:hidden;
}
.concierge-head {
  display:flex; align-items:center; gap:12px;
  padding:16px 22px; border-bottom:1px solid var(--ink-100);
  background:var(--ink-50);
}
.concierge-avatar { width:38px; height:38px; flex:none; }
.concierge-avatar svg { border-radius:12px; }
.concierge-head strong { display:block; font-size:.95rem; }
.concierge-head small { display:flex; align-items:center; gap:6px; font-size:.74rem; color:var(--ink-500); }
.online-dot { width:8px; height:8px; border-radius:50%; background:var(--success-500); box-shadow:0 0 0 3px var(--success-50); }

.c-state { padding:24px 22px 26px; display:flex; flex-direction:column; }
.c-bubble {
  align-self:flex-start;
  background:var(--ink-50); border:1px solid var(--ink-100);
  border-radius:4px 18px 18px 18px;
  padding:13px 16px; font-size:.95rem; color:var(--ink-700); line-height:1.55;
}
.c-field {
  display:block; margin-top:18px;
  background:#fff; border:1.5px solid var(--ink-200); border-radius:var(--r-field);
  padding:14px 16px;
  transition:border-color .18s, box-shadow .18s;
}
.c-field:focus-within { border-color:var(--coral-500); box-shadow:0 0 0 4px rgba(242,100,60,.12); }
.c-field textarea { width:100%; border:0; outline:0; resize:none; background:transparent; font-size:1rem; line-height:1.5; }
.c-field-row { display:flex; align-items:center; gap:11px; }
.c-field-row svg { width:20px; height:20px; color:var(--ink-400); flex:none; }
.c-field-row input { flex:1; border:0; outline:0; background:transparent; font-size:1.05rem; letter-spacing:.04em; }

.c-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.c-chip {
  background:#fff; border:1px solid var(--ink-200); border-radius:999px;
  padding:8px 15px; font-size:.85rem; color:var(--ink-700);
  transition:background-color .15s, border-color .15s, transform .12s;
}
.c-chip:hover { background:var(--coral-50); border-color:var(--coral-200); }
.c-chip:active { transform:scale(.96); }

.c-go { width:100%; margin-top:20px; }
.c-go[disabled] { opacity:.45; pointer-events:none; }
.c-link {
  background:none; border:0; margin-top:6px; padding:12px;
  font-size:.88rem; font-weight:600; color:var(--coral-700);
}
.c-link:hover { text-decoration:underline; }
.c-error { margin:10px 2px 0; font-size:.85rem; color:var(--danger-700); }

.c-thinking { align-items:center; text-align:center; padding-block:52px; }
.c-thinking p { font-size:.98rem; color:var(--ink-700); }
.c-thinking small { margin-top:6px; color:var(--ink-500); font-size:.85rem; max-width:34ch; }
.dots { display:flex; gap:7px; margin-bottom:18px; }
.dots span { width:10px; height:10px; border-radius:50%; background:var(--coral-500); animation:bounce 1s infinite ease-in-out; }
.dots span:nth-child(2) { animation-delay:.15s; } .dots span:nth-child(3) { animation-delay:.3s; }
@keyframes bounce { 0%,80%,100% { transform:translateY(0); opacity:.4; } 40% { transform:translateY(-8px); opacity:1; } }

.tag {
  align-self:flex-start; display:inline-flex; align-items:center; gap:7px;
  font-size:.82rem; font-weight:600; border-radius:999px; padding:.5em 1em;
}
.tag svg { width:15px; height:15px; }
.tag-success { color:var(--success-700); background:var(--success-50); }
.tag-warn { color:var(--warn-700); background:var(--warn-50); }

#v-ok, #v-wait { animation:rise .5s var(--ease-out) both; }
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }

.result-card {
  margin-top:16px; background:#fff; border:1px solid var(--ink-200);
  border-radius:18px; padding:18px; box-shadow:var(--shadow-card);
}
.result-main { display:flex; gap:14px; align-items:flex-start; }
.result-emoji { width:48px; height:48px; flex:none; border-radius:14px; background:var(--coral-50); display:grid; place-items:center; font-size:1.5rem; }
.result-main strong { display:block; font-size:1.1rem; line-height:1.3; letter-spacing:-.01em; }
.result-main small { display:block; margin-top:4px; font-size:.85rem; color:var(--ink-500); line-height:1.45; }
.result-cnae {
  margin-top:15px; display:flex; align-items:center; justify-content:space-between;
  background:var(--ink-50); border:1px solid var(--ink-100); border-radius:12px; padding:9px 14px;
}
.result-cnae span { font-size:.76rem; color:var(--ink-500); }
.result-cnae em { font-style:normal; font-size:.82rem; font-weight:600; color:var(--ink-600); }
.result-selo { margin-top:12px; display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--success-700); font-weight:500; }
.result-selo svg { width:15px; height:15px; flex:none; }

.wait-title { margin-top:16px; font-size:1.25rem; font-weight:800; line-height:1.3; letter-spacing:-.01em; }
.wait-motivo { margin-top:10px; font-size:.93rem; color:var(--ink-500); line-height:1.6; }
.wait-form { margin-top:18px; background:var(--ink-50); border:1px solid var(--ink-100); border-radius:18px; padding:18px; }
.wait-form p { font-size:.95rem; }
.wait-form small { color:var(--ink-500); font-size:.82rem; }
.wait-row { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.wait-row input {
  flex:1; border:1.5px solid var(--ink-200); border-radius:14px;
  padding:13px 16px; font-size:1rem; background:#fff; outline:0; /* ≥16px: evita zoom do iOS */
  transition:border-color .18s, box-shadow .18s;
}
.wait-row input:focus { border-color:var(--coral-500); box-shadow:0 0 0 4px rgba(242,100,60,.12); }
.wait-row .btn { padding:13px 22px; }
.wait-done { margin-top:12px; font-size:.9rem; color:var(--success-700); font-weight:600; }

/* ============================================================ DIFERENCIAIS */
.difs { padding:30px 0 84px; }
.difs-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.dif-card {
  background:#fff; border:1px solid var(--ink-200); border-radius:var(--r-card);
  padding:28px 26px; box-shadow:var(--shadow-card);
  transition:transform .25s var(--ease-out), box-shadow .25s;
}
.dif-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); }
.dif-anim { width:120px; height:120px; margin-bottom:6px; }
.dif-anim-svg svg { width:100%; height:100%; }
.dif-card h3 { font-size:1.15rem; font-weight:700; letter-spacing:-.01em; }
.dif-card p { margin-top:8px; font-size:.94rem; color:var(--ink-500); }

/* check animado do card mobile-first */
.pa-check { stroke-dasharray:26; stroke-dashoffset:26; }
.dif-card:hover .pa-check, .dif-card.in .pa-check { animation:draw-check .5s .3s var(--ease-out) forwards; }
@keyframes draw-check { to { stroke-dashoffset:0; } }

/* ============================================================ COMO FUNCIONA */
.steps { padding:0 0 84px; }
.steps-grid {
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr; gap:16px;
  counter-reset:passo;
}
.step {
  position:relative; background:#fff; border:1px solid var(--ink-200);
  border-radius:var(--r-card); padding:26px 24px 24px;
  box-shadow:var(--shadow-card);
}
.step-num {
  display:grid; place-items:center; width:44px; height:44px;
  border-radius:14px; background:var(--coral-500); color:#fff;
  font-weight:800; font-size:1.2rem; /* ≥18.66px bold = texto grande → 3.15:1 passa AA */
  box-shadow:var(--shadow-coral);
}
.step h3 { margin-top:16px; font-size:1.1rem; font-weight:700; }
.step p { margin-top:7px; font-size:.93rem; color:var(--ink-500); }
.steps-cta { text-align:center; margin-top:36px; }

/* ============================================================ PROVA */
.prova { padding:0 0 84px; }
.prova-grid { display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
.prova-copy h2 { margin-top:16px; }
.prova-copy > p { margin-top:16px; color:var(--ink-500); max-width:52ch; }
.prova-copy strong { color:var(--ink-700); }
.prova-stats { list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:12px; }
.prova-stats li {
  background:#fff; border:1px solid var(--ink-200); border-radius:16px;
  padding:16px 18px; display:flex; align-items:baseline; gap:12px;
}
.prova-stats strong { font-size:1.25rem; font-weight:800; color:var(--coral-600); letter-spacing:-.01em; white-space:nowrap; }
.prova-stats span { font-size:.88rem; color:var(--ink-500); }

.prova-chat {
  background:#fff; border:1px solid var(--ink-200); border-radius:26px;
  box-shadow:0 18px 50px rgba(27,30,36,.09); overflow:hidden;
  max-width:440px; width:100%; margin:0 auto;
}
.chat-head { display:flex; align-items:center; gap:12px; padding:15px 20px; background:var(--dark-glow); color:#fff; }
.chat-avatar { width:38px; height:38px; flex:none; }
.chat-avatar svg { border-radius:12px; }
.chat-head strong { display:block; font-size:.92rem; }
.chat-head small { font-size:.72rem; opacity:.65; }
.chat-body { padding:22px 18px; display:flex; flex-direction:column; gap:10px; background:var(--ink-50); }
.msg { max-width:82%; padding:11px 15px; font-size:.9rem; line-height:1.5; border-radius:18px; }
.msg-out { align-self:flex-end; background:var(--coral-700); color:#fff; border-bottom-right-radius:5px; }
.msg-in { align-self:flex-start; background:#fff; border:1px solid var(--ink-200); color:var(--ink-700); border-bottom-left-radius:5px; }

/* ============================================================ VS */
.vs { padding:0 0 84px; }
.vs-table-wrap { overflow-x:auto; border-radius:var(--r-card); }
.vs-table {
  width:100%; min-width:560px; border-collapse:separate; border-spacing:0;
  background:#fff; border:1px solid var(--ink-200); border-radius:var(--r-card);
  overflow:hidden; box-shadow:var(--shadow-card);
}
.vs-table th, .vs-table td { padding:17px 20px; text-align:left; font-size:.92rem; }
.vs-table thead th { font-size:.95rem; font-weight:800; border-bottom:1px solid var(--ink-200); }
.vs-table thead .vs-us { color:var(--coral-700); background:var(--coral-50); }
.vs-logo { width:22px; height:22px; display:inline-block; vertical-align:-5px; margin-right:8px; border-radius:6px; }
.vs-table tbody th { font-weight:600; color:var(--ink-500); font-size:.85rem; width:120px; }
.vs-table tbody tr + tr th, .vs-table tbody tr + tr td { border-top:1px solid var(--ink-100); }
.vs-table td.vs-us { background:var(--coral-50); font-weight:600; color:var(--ink-800); }
.vs-table td.vs-them { color:var(--ink-500); }
.vs-table td i {
  font-style:normal; font-weight:800; margin-right:9px;
  display:inline-grid; place-items:center; width:1.5em; height:1.5em; border-radius:50%; font-size:.8em;
}
.vs-table td.vs-us i { background:var(--success-500); color:#fff; }
.vs-table td.vs-them i { background:var(--ink-100); color:var(--ink-500); }

/* ============================================================ FAQ */
.faq { padding:0 0 92px; }
.faq-inner { max-width:720px; }
.faq-list { display:flex; flex-direction:column; gap:12px; }
.faq-list details {
  background:#fff; border:1px solid var(--ink-200); border-radius:18px;
  padding:0 22px; transition:box-shadow .2s;
}
.faq-list details[open] { box-shadow:var(--shadow-card); }
.faq-list summary {
  list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:19px 0; font-weight:700; font-size:.98rem; cursor:pointer;
}
.faq-list summary::-webkit-details-marker { display:none; }
.faq-ico { position:relative; width:22px; height:22px; flex:none; border-radius:50%; background:var(--coral-50); border:1px solid var(--coral-100); }
.faq-ico::before, .faq-ico::after {
  content:""; position:absolute; top:50%; left:50%; background:var(--coral-600);
  transform:translate(-50%,-50%); transition:transform .25s var(--ease-out);
}
.faq-ico::before { width:10px; height:2px; }
.faq-ico::after { width:2px; height:10px; }
details[open] .faq-ico::after { transform:translate(-50%,-50%) rotate(90deg); }
.faq-list details p { padding:0 0 20px; color:var(--ink-500); font-size:.93rem; line-height:1.65; }
.faq-list details a { color:var(--coral-700); font-weight:600; }

/* ============================================================ CTA FINAL */
.cta-final {
  background:var(--dark-glow);
  color:#fff; padding:88px 0; text-align:center;
}
.cta-inner { display:flex; flex-direction:column; align-items:center; }
.cta-logo { width:64px; height:64px; margin-bottom:26px; }
.cta-final h2 { max-width:18ch; font-size:clamp(1.8rem, 3vw + 1rem, 2.9rem); }
.cta-sub { margin-top:16px; font-size:1.05rem; color:var(--ink-300); max-width:44ch; }
.cta-sub strong { color:#fff; }
.cta-final .store-row { margin-top:32px; }
.cta-note { margin-top:20px; font-size:.84rem; color:var(--ink-400); }

/* ============================================================ FOOTER */
.site-footer { background:var(--ink-900); color:var(--ink-300); padding:36px 0 28px; border-top:1px solid var(--ink-800); }
.footer-inner { display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
.footer-brand { display:flex; gap:14px; align-items:flex-start; }
.footer-logo { width:34px; height:34px; flex:none; border-radius:10px; }
.footer-brand p { font-size:.84rem; line-height:1.6; }
.footer-brand strong { color:#fff; }
.footer-links { display:flex; flex-wrap:wrap; gap:20px; }
.footer-links a { font-size:.84rem; color:var(--ink-300); text-decoration:none; }
.footer-links a:hover { color:#fff; text-decoration:underline; }
.footer-links span { font-size:.84rem; color:var(--ink-400); }
.footer-legal { margin-top:22px; padding-top:20px; border-top:1px solid var(--ink-800); }
.footer-legal p { font-size:.78rem; color:var(--ink-400); }
.footer-legal p + p { margin-top:6px; }

/* ============================================================ SCROLL REVEAL */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.08s; } .reveal.d2 { transition-delay:.16s; }
.reveal.d3 { transition-delay:.24s; } .reveal.d4 { transition-delay:.32s; }

/* ============================================================ RESPONSIVO ≥720px */
@media (min-width:720px) {
  .only-mobile { display:none; }
  .header-nav { display:flex; }
  .logo { height:29px; }

  .difs-grid { grid-template-columns:1fr 1fr; gap:22px; }
  .steps-grid { grid-template-columns:repeat(3, 1fr); gap:20px; }
  .prova-stats { grid-template-columns:1fr; }
  .wait-row { flex-direction:row; }
  .wait-row .btn { flex:none; }
}

/* ============================================================ RESPONSIVO ≥1000px */
@media (min-width:1000px) {
  .hero { padding:84px 0 40px; }
  .hero-grid { grid-template-columns:1.05fr .95fr; gap:32px; }
  .hero-copy { text-align:left; align-items:flex-start; }
  .store-row { justify-content:flex-start; }
  .store-row-center { justify-content:center; }
  .hero-visual { padding:30px 0; }
  .hero-plane { top:-16px; right:8%; width:210px; }
  .phone { width:308px; }

  .difs-grid { grid-template-columns:repeat(4, 1fr); }
  .dif-card { padding:30px 24px; }
  .dif-anim { width:104px; height:104px; }

  .prova-grid { grid-template-columns:1.05fr .95fr; gap:64px; }
  .prova-copy { text-align:left; }
  .prova-stats { grid-template-columns:1fr; max-width:420px; }

  .marquee-band { margin-top:64px; }
}

/* ============================================================ MOTION OFF */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
  .hl-stroke path { stroke-dashoffset:0; }
  .pa-check { stroke-dashoffset:0; }
  /* chips quebram linha em vez de rolar/animar (sem região de scroll inacessível) */
  .marquee { -webkit-mask-image:none; mask-image:none; }
  .marquee-track, .mq-set { flex-wrap:wrap; justify-content:center; row-gap:10px; width:auto; }
  .mq-toggle { display:none; }
}

/* ============================================================ LEGAL (privacidade/termos) */
.legal { max-width:760px; margin:0 auto; padding:56px 20px 88px; }
.legal-eyebrow { color:var(--ink-500); font-size:.9rem; margin-bottom:8px; }
.legal h1 { font-size:clamp(1.7rem, 2.6vw + 1rem, 2.3rem); margin-bottom:8px; }
.legal .legal-updated { color:var(--ink-500); font-size:.88rem; margin-bottom:36px; }
.legal h2 { font-size:1.2rem; font-weight:700; margin-top:36px; margin-bottom:12px; }
.legal p, .legal li { color:var(--ink-600); line-height:1.75; font-size:.98rem; }
.legal p + p { margin-top:12px; }
.legal ul, .legal ol { margin-top:12px; padding-left:22px; display:flex; flex-direction:column; gap:8px; }
.legal a { color:var(--coral-700); text-decoration:underline; }
.legal strong { color:var(--ink-900); }
.legal .legal-empresa { background:var(--coral-50); border:1px solid var(--coral-100); border-radius:var(--r-card); padding:18px 20px; margin:20px 0 8px; font-size:.92rem; }
.legal .legal-empresa p { color:var(--ink-700); }

/* ============================================================ PRINT */
@media print {
  .reveal { opacity:1 !important; transform:none !important; }
  .cta-final, .marquee-band, .site-footer, .chat-head, .app-top { background:none !important; color:var(--ink-900) !important; }
  .cta-sub, .cta-note, .marquee-note, .mq-chip, .footer-brand p, .footer-legal p, .chat-head small { color:var(--ink-600) !important; }
  .site-header { position:static; }
  .hero-plane, .dif-anim, .mq-toggle { display:none; }
}
