/* =========================================================================
   Ramon Matias — sites premium
   Tokens derivados por medição do layout original (793px de largura,
   equivalente a um viewport de 1440px → fator 1.8159).
   ========================================================================= */

:root{
  /* cor — amostrada do layout original */
  --c-black:#000000;
  --c-ink:#06070A;
  --c-surface-dark:#0B0C0E;
  --c-surface-dark-soft:#090B0D;
  --c-surface-contact:#05080A;
  --c-light:#F7F7F7;
  --c-white:#FFFFFF;

  --c-text-strong:#000000;
  --c-text-muted:#4A4D53;
  --c-text-invert:#FFFFFF;
  --c-text-invert-muted:#A2A4AA;

  --c-primary:#0642F4;
  --c-primary-strong:#0335CC;
  --c-accent:#0B50FF;
  /* mesmo azul, clareado o suficiente para 4.5:1 em texto pequeno sobre fundo escuro */
  --c-accent-dark:#3A72FF;

  --c-border-light:#ECECED;
  --c-border-dark:#1C1D20;

  --shadow-card:0 2px 10px rgba(15,17,26,.05), 0 12px 32px rgba(15,17,26,.06);
  --shadow-card-hover:0 4px 14px rgba(15,17,26,.07), 0 22px 48px rgba(15,17,26,.10);
  --shadow-dark:0 18px 48px rgba(0,0,0,.55);

  /* forma */
  --r-sm:12px;
  --r-md:16px;
  --r-lg:20px;
  --r-xl:28px;
  --r-pill:999px;

  /* espaço */
  --sp-1:4px;  --sp-2:8px;   --sp-3:12px; --sp-4:16px;
  --sp-5:24px; --sp-6:32px;  --sp-7:40px; --sp-8:56px;
  --sp-9:72px; --sp-10:96px;

  /* layout */
  --container:1440px;  /* 1320 de conteúdo + 2 × 60 de gutter */
  --gutter:60px;

  /* tipografia */
  --font:"Plus Jakarta Sans","Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
  /* tamanhos calibrados pela largura real das linhas do layout original */
  --fs-display:clamp(38px, 4.72vw, 68px);
  --fs-h2:clamp(28px, 2.71vw, 39px);
  --fs-h3:clamp(18px, 1.39vw, 20px);
  --fs-stat:clamp(26px, 2.36vw, 34px);
  --fs-lead:clamp(16px, 1.29vw, 18.5px);
  --fs-body:16px;
  --fs-sm:16px;
  --fs-xs:14px;
  --fs-eyebrow:15px;

  /* movimento */
  --dur-fast:180ms;
  --dur:420ms;
  --dur-slow:680ms;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{
  margin:0;
  background:var(--c-black);
  color:var(--c-text-invert);
  font-family:var(--font);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.1}
p{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px;border-radius:4px}
.section--light :focus-visible,
.section--white :focus-visible{outline-color:var(--c-primary)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--c-primary);color:#fff;padding:12px 20px;border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus{left:0}

.container{
  width:100%;max-width:var(--container);
  margin-inline:auto;padding-inline:var(--gutter);
}

/* ---------- tipografia utilitária ---------- */
.eyebrow{
  font-size:var(--fs-eyebrow);font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--c-accent);
}
.eyebrow--traco{display:flex;align-items:center;gap:14px}
.eyebrow--traco::before{content:"";width:34px;height:2px;background:currentColor;flex:none}
.accent{color:var(--c-accent)}
.hero .eyebrow,
.section--dark .eyebrow{color:var(--c-accent-dark)}
.section__title{font-size:var(--fs-h2);line-height:1.26;margin-top:24px}
/* maior que as outras seções, menor que o h1 do hero */
.section__title--xl{font-size:clamp(32px,3.6vw,52px);line-height:1.14;font-weight:800;margin-top:28px}
.section__lede{
  font-size:var(--fs-body);line-height:2;
  color:var(--c-text-invert-muted);margin-top:20px;
}
.section--light .section__lede,
.section--white .section__lede{color:var(--c-text-muted)}
.section--light .section__title,
.section--white .section__title{color:var(--c-text-strong)}

/* ---------- botões e links ---------- */
.btn{
  display:inline-flex;align-items:center;gap:16px;
  padding:0 13px 0 40px;min-height:70px;border-radius:var(--r-pill);
  font-weight:600;font-size:17px;
  transition:background var(--dur-fast) var(--ease),
             transform var(--dur-fast) var(--ease),
             box-shadow var(--dur-fast) var(--ease);
}
.btn--primary{background:var(--c-primary);color:#fff}
.btn--primary:hover{background:var(--c-primary-strong);transform:translateY(-2px);box-shadow:0 10px 26px rgba(6,66,244,.32)}
.btn--primary:active{transform:translateY(0) scale(.985)}
.btn--sm{min-height:56px;padding:0 6px 0 40px;font-size:var(--fs-body);gap:14px}
.btn__icon{
  display:grid;place-items:center;width:44px;height:44px;flex:none;
  border-radius:50%;background:rgba(255,255,255,.16);
  transition:transform var(--dur-fast) var(--ease);
}
.btn__icon svg{width:18px;height:18px}
.btn:hover .btn__icon{transform:translateX(3px)}
.btn--sm .btn__icon{width:40px;height:40px}
.btn--sm .btn__icon svg{width:16px;height:16px}

.link-underline{
  position:relative;font-weight:600;font-size:var(--fs-body);padding-bottom:8px;
}
.link-underline::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:var(--c-accent);transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.link-underline:hover::after{transform:scaleX(.55)}

.link-arrow{
  display:inline-flex;align-items:center;gap:12px;margin-top:30px;
  color:var(--c-accent-dark);font-weight:600;font-size:18px;
}
.link-arrow svg{width:18px;height:18px;transition:transform var(--dur-fast) var(--ease)}
.link-arrow:hover svg{transform:translateX(5px)}
.link-arrow--dark{color:var(--c-primary)}

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{
  position:fixed;inset:0 0 auto;z-index:50;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--c-border-dark);
}
.site-header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);
  min-height:110px;
}
.logo{display:block;flex:none;line-height:0}
.logo img{
  width:auto;height:54px;
  transition:transform var(--dur) var(--ease);
}
.logo:hover img{transform:scale(1.04)}

.nav{display:flex;align-items:center;gap:32px}
.nav__list{display:flex;align-items:center;gap:24px;font-size:15px;font-weight:500}
.nav__list a{position:relative;padding:6px 0;color:rgba(255,255,255,.86);transition:color var(--dur-fast) var(--ease)}
.nav__list a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;
  background:var(--c-accent);transform:scaleX(0);transform-origin:right;
  transition:transform var(--dur) var(--ease);
}
.nav__list a:hover{color:#fff}
.nav__list a:hover::after{transform:scaleX(1);transform-origin:left}

.nav-toggle{display:none;width:44px;height:44px;place-items:center}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  display:block;width:22px;height:2px;background:#fff;border-radius:2px;
  transition:transform var(--dur) var(--ease),opacity var(--dur-fast) var(--ease);
}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute}
.nav-toggle span::before{transform:translateY(-7px)}
.nav-toggle span::after{transform:translateY(7px)}
.nav-toggle[aria-expanded="true"] span{transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::before{transform:rotate(90deg)}
.nav-toggle[aria-expanded="true"] span::after{opacity:0}

/* =========================================================================
   01 · HERO
   ========================================================================= */
.hero{
  position:relative;
  background:
    radial-gradient(120% 90% at 78% 40%, rgba(9,20,64,.85) 0%, rgba(0,0,0,0) 60%),
    var(--c-black);
  overflow:hidden;
}
.hero__grid{position:relative;min-height:886px;padding-top:200px;z-index:2}
.hero__content{position:relative;z-index:2;max-width:520px}
.hero__title{font-size:var(--fs-display);line-height:1.18;margin-top:48px;font-weight:800}
.hero__lede{
  font-size:var(--fs-lead);line-height:2;color:var(--c-text-invert-muted);
  margin-top:12px;max-width:420px;
}
.hero__actions{display:flex;align-items:center;gap:34px;flex-wrap:wrap;margin-top:44px}

.hero__visual{
  position:absolute;right:var(--gutter);bottom:0;width:61.4%;max-width:810px;
  aspect-ratio:810 / 770;   /* as camadas são absolutas: a área precisa de altura própria */
  z-index:1;pointer-events:none;
  /* o recorte vem do layout: dissolve as bordas para não deixar costura visível */
  -webkit-mask-image:
    linear-gradient(to right, transparent 0, #000 7%),
    linear-gradient(to bottom, transparent 0, #000 6%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right, transparent 0, #000 7%),
    linear-gradient(to bottom, transparent 0, #000 6%);
  mask-composite:intersect;
}
/* três camadas independentes: letreiro, foto e card de resultado.
   Percentuais medidos sobre a área do visual (810 × 770 @1440). */
.hero__photo{
  /* topo um pouco acima do eyebrow, base colada na borda da seção */
  position:absolute;z-index:2;left:0;bottom:0;
  width:auto;height:93.5%;
  filter:drop-shadow(0 18px 44px rgba(0,0,0,.5));
}
.hero__neon{
  position:absolute;z-index:1;
  left:50%;top:12.1%;width:auto;height:34.2%;
}

.hero__stat{
  position:absolute;z-index:3;margin:0;
  left:59.6%;top:57.3%;width:39.9%;
  padding:36px 30px 17px 42px;
  border-radius:var(--r-lg);
  background:rgba(11,16,34,.55);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 44px rgba(0,0,0,.45);
}
.hero__stat__title{
  margin-left:66px;font-size:16px;font-weight:600;color:rgba(255,255,255,.92);
}
.hero__stat__row{display:flex;align-items:center;gap:13px;margin-top:21px}
.hero__stat__icon{width:53px;height:53px;flex:none;color:var(--c-accent-dark)}
.hero__stat__value{
  font-size:49px;font-weight:700;line-height:1;letter-spacing:-.03em;
  color:var(--c-accent-dark);font-variant-numeric:tabular-nums;
}
.hero__stat__desc{
  margin:20px 0 0 66px;font-size:16.5px;line-height:1.65;
  color:var(--c-text-invert-muted);max-width:170px;
}

/* =========================================================================
   SEÇÕES — base
   ========================================================================= */
.section{position:relative}
.section--light{background:var(--c-light);color:var(--c-text-strong)}
.section--white{background:var(--c-white);color:var(--c-text-strong)}
.section--dark{background:var(--c-black);color:var(--c-text-invert)}

.split{display:grid;align-items:start}
.split__aside{min-width:0}

/* medidas por seção */
.section--sobre{padding:104px 0 96px}
.split--sobre{grid-template-columns:1fr 1fr;gap:80px;align-items:center}

.section--solucao,.section--beneficios,.section--processo,
.section--servicos,.section--modelos,.section--comparativo,
.section--resultados,.section--depoimentos,.section--faq{padding:96px 0 104px}

.section--contato{padding:96px 0 104px}
.split--contato{grid-template-columns:440px 1fr;gap:72px}
.split--faq{grid-template-columns:380px 1fr;gap:64px}

/* cabeçalho comum das seções em bloco único */
.solucao__head{max-width:820px}

/* =========================================================================
   02 · SOBRE
   ========================================================================= */
.split--sobre .section__lede{max-width:46ch}

.pills{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:var(--r-pill);
  background:var(--c-primary);color:#fff;
  font-size:var(--fs-sm);font-weight:600;
}
.pill svg{width:18px;height:18px;flex:none}
.pill--ghost{
  background:transparent;color:var(--c-text-muted);font-weight:500;
  border:1px solid var(--c-border-light);padding:10px 18px;font-size:var(--fs-xs);
}
.pills--suave{gap:10px;margin-top:28px}

/* mockup: composição em CSS, sem imagem — navegador + celular sobreposto */
.mockup{position:relative;padding:22px 44px 44px 22px}
.mockup__browser{
  border-radius:var(--r-lg);overflow:hidden;
  background:var(--c-white);
  box-shadow:0 30px 70px rgba(15,17,26,.16), 0 2px 8px rgba(15,17,26,.06);
  /* o halo azul que separa o mockup do fundo claro */
  outline:6px solid rgba(6,66,244,.10);
}
.mockup__bar{
  display:flex;align-items:center;gap:8px;
  padding:14px 18px;background:var(--c-ink);
}
.mockup__bar span{width:9px;height:9px;border-radius:50%;background:#3A3D44;flex:none}
.mockup__bar span:first-child{background:var(--c-primary)}
.mockup__url{
  margin-left:12px;padding:5px 16px;border-radius:var(--r-pill);
  background:#16181D;color:#9598A0;font-size:12px;line-height:1.4;
}
.mockup__screen{
  display:grid;grid-template-columns:1fr .8fr;gap:28px;align-items:center;
  padding:44px 38px;background:#FBFAF8;min-height:280px;
}
.mockup__eyebrow{
  font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--c-primary);
}
.mockup__title{
  margin-top:14px;font-size:clamp(20px,2vw,30px);font-weight:700;
  line-height:1.15;letter-spacing:-.02em;color:var(--c-text-strong);
}
.mockup__text{margin-top:14px;font-size:13px;line-height:1.6;color:var(--c-text-muted);max-width:26ch}
.mockup__cta{
  display:inline-block;margin-top:22px;padding:11px 22px;
  border-radius:var(--r-pill);background:var(--c-primary);
  color:#fff;font-size:13px;font-weight:600;
}
.mockup__thumb{
  height:100%;min-height:150px;border-radius:var(--r-sm);
  background:linear-gradient(150deg,#0B1022 0%,var(--c-primary) 140%);
}
.mockup__phone{
  position:absolute;right:0;bottom:0;width:32%;max-width:190px;
  display:grid;align-content:center;gap:12px;
  padding:26px 20px;border-radius:22px;
  background:var(--c-white);border:1px solid var(--c-border-light);
  box-shadow:0 24px 54px rgba(15,17,26,.20);
}
.mockup__line{height:14px;border-radius:6px;background:#E7E7E9}
.mockup__line--dark{background:var(--c-ink);height:18px}
.mockup__line--short{width:62%}
.mockup__line--cta{height:26px;border-radius:var(--r-pill);background:var(--c-primary)}

/* =========================================================================
   CARDS — base e grades
   ========================================================================= */
.grid{display:grid;margin-top:60px}
.grid--3{grid-template-columns:repeat(3,1fr);gap:24px}
.grid--4{grid-template-columns:repeat(4,1fr);gap:20px}

.card{
  position:relative;border-radius:var(--r-md);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.card__icon{width:52px;height:52px;flex:none;color:var(--c-primary)}
.card__title{font-size:21px;color:var(--c-text-strong);font-weight:700}
.card__text{margin-top:12px;font-size:var(--fs-sm);line-height:1.75;color:var(--c-text-muted)}

/* card claro numerado — solução, processo, resultados */
.card--pilar{
  overflow:hidden;padding:32px 32px 52px;border-radius:var(--r-lg);
  background:var(--c-white);box-shadow:var(--shadow-card);
}
.section--light .card--pilar{background:var(--c-white)}
.card--pilar:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
/* barra curta no topo — a assinatura visual do card */
.card--pilar::before{
  content:"";position:absolute;top:0;left:0;width:98px;height:6px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
  border-radius:var(--r-lg) 0 6px 0;
}
/* filete discreto no rodapé, fecha o card sem pedir mais texto */
.card--pilar::after{
  content:"";position:absolute;left:32px;bottom:26px;width:76px;height:1px;
  background:var(--c-border-light);
}
.card--pilar__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.card--pilar__icon{
  display:grid;place-items:center;width:44px;height:44px;flex:none;
  border-radius:13px;color:#fff;
  background:linear-gradient(140deg,var(--c-accent),var(--c-primary));
  box-shadow:0 8px 18px rgba(6,66,244,.28);
}
.card--pilar__icon svg{width:21px;height:21px}
.card--pilar__num{
  font-size:12px;font-weight:600;letter-spacing:.06em;
  color:#A6A9AF;font-variant-numeric:tabular-nums;
}
.card--pilar .card__title{margin-top:38px}
.card--pilar .card__text{max-width:36ch}

/* card escuro numerado — estrutura inicial, serviços */
.card--etapa{
  padding:29px 26px 34px;border-radius:var(--r-lg);
  background:var(--c-surface-dark);border:1px solid var(--c-border-dark);
}
.card--etapa:hover{transform:translateY(-4px);border-color:#2C2D31;box-shadow:var(--shadow-dark)}
.card--etapa .card__icon{width:46px;height:46px;color:var(--c-accent-dark)}
.card--etapa__num{margin-top:20px;font-weight:700;font-size:var(--fs-sm);line-height:1.1;color:var(--c-accent-dark)}
.card--etapa .card__title{margin-top:14px;font-size:19px;color:var(--c-text-invert)}
.card--etapa .card__text{margin-top:14px;font-size:14px;line-height:1.75;color:var(--c-text-invert-muted)}

/* faixa de fechamento da seção de estrutura inicial */
.faixa{
  display:flex;align-items:center;gap:16px;
  margin-top:24px;padding:24px 30px;border-radius:var(--r-lg);
  background:rgba(6,66,244,.10);border:1px solid rgba(58,114,255,.28);
  color:#fff;font-size:var(--fs-lead);font-weight:600;
}
.faixa svg{width:22px;height:22px;flex:none;color:var(--c-accent-dark)}

/* =========================================================================
   07 · MODELOS
   ========================================================================= */
.card--modelo{
  display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);
  background:var(--c-white);box-shadow:var(--shadow-card);
}
.card--modelo:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
/* placeholder do print: bloco de marca até existir a captura real do modelo */
.card--modelo__media{
  display:grid;place-items:center;aspect-ratio:16/9;
  background:linear-gradient(140deg,#0B1022 0%,var(--c-primary) 150%);
}
.card--modelo__media span{
  font-size:var(--fs-xs);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.9);
}
.card--modelo__body{display:flex;flex-direction:column;flex:1;padding:28px 28px 32px}
.card--modelo .card__text{max-width:none;font-size:15px}
.card--modelo .link-arrow{margin-top:auto;padding-top:22px;font-size:16px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.tags li{
  padding:6px 14px;border-radius:var(--r-pill);
  background:var(--c-light);border:1px solid var(--c-border-light);
  font-size:13px;color:var(--c-text-muted);
}

/* =========================================================================
   08 · COMPARATIVO
   ========================================================================= */
.comparativo{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:60px}
.compara{padding:40px 38px 44px;border-radius:var(--r-xl);border:1px solid var(--c-border-dark)}
.compara--padrao{background:var(--c-surface-dark)}
.compara--premium{
  background:
    radial-gradient(60% 90% at 80% 0%, rgba(11,80,255,.24) 0%, rgba(5,8,10,0) 62%),
    var(--c-surface-contact);
  border-color:rgba(58,114,255,.34);
  box-shadow:var(--shadow-dark);
}
.compara__eyebrow{
  font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--c-text-invert-muted);
}
.compara--premium .compara__eyebrow{color:var(--c-accent-dark)}
.compara__title{margin-top:16px;font-size:28px;color:var(--c-text-invert)}
.compara__lede{margin-top:12px;font-size:var(--fs-sm);line-height:1.7;color:var(--c-text-invert-muted)}
.compara__list{display:grid;gap:14px;margin-top:30px}
.compara__list li{
  display:flex;align-items:center;gap:14px;
  font-size:var(--fs-sm);color:rgba(255,255,255,.88);
}
.compara__list svg{width:20px;height:20px;flex:none;stroke-width:2;color:#6C7079}
.compara--premium .compara__list svg{color:var(--c-accent-dark)}

/* =========================================================================
   10 · DEPOIMENTOS
   ========================================================================= */
.grid--depoimentos{gap:18px}
.card--depo{
  display:flex;flex-direction:column;
  padding:28px 26px 30px;border-radius:var(--r-lg);
  background:var(--c-surface-dark);border:1px solid var(--c-border-dark);
}
.card--depo:hover{transform:translateY(-4px);border-color:#2C2D31;box-shadow:var(--shadow-dark)}
.card--depo__tag{
  font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--c-accent-dark);
}
.card--depo__quote{
  margin:18px 0 0;font-size:15px;line-height:1.75;
  color:rgba(255,255,255,.88);
}
.card--depo__quote::before{content:"“"}
.card--depo__quote::after{content:"”"}
.card--depo__autor{
  margin-top:auto;padding-top:24px;font-size:var(--fs-xs);font-weight:700;
  color:var(--c-text-invert);
}
.card--depo__autor span{
  display:block;margin-top:4px;font-weight:500;color:var(--c-text-invert-muted);
}

/* =========================================================================
   11 · CONTATO
   ========================================================================= */
.split--contato .section__lede{max-width:42ch}
.proximos{
  margin-top:40px;padding:30px 32px 34px;border-radius:var(--r-lg);
  background:var(--c-white);border:1px solid var(--c-border-light);
}
.proximos__title{font-size:19px;color:var(--c-text-strong)}
.proximos__text{margin-top:12px;font-size:15px;line-height:1.75;color:var(--c-text-muted)}
.contact-list{display:grid;gap:16px;margin-top:26px}
.contact-list a{
  display:inline-flex;align-items:center;gap:14px;
  font-size:var(--fs-sm);color:var(--c-text-strong);
  transition:color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);
}
.contact-list svg{width:19px;height:19px;flex:none;color:var(--c-primary)}
.contact-list a:hover{color:var(--c-primary);transform:translateX(3px)}

.form{
  padding:40px 40px 44px;border-radius:var(--r-xl);
  background:var(--c-white);box-shadow:var(--shadow-card);
}
.form__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.field{display:block}
.field--full{grid-column:1 / -1}
.field__label{
  display:block;margin-bottom:8px;
  font-size:var(--fs-xs);font-weight:600;color:var(--c-text-strong);
}
.field__input{
  width:100%;padding:14px 16px;border-radius:var(--r-sm);
  border:1px solid var(--c-border-light);background:var(--c-light);
  font:inherit;font-size:15px;color:var(--c-text-strong);
  transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);
}
.field__input:focus{border-color:var(--c-primary);background:var(--c-white);outline:none}
textarea.field__input{resize:vertical;min-height:110px}
.form .btn{margin-top:28px;min-height:62px}
.form__aviso{margin-top:18px;font-size:13px;line-height:1.7;color:var(--c-text-muted);max-width:52ch}

/* =========================================================================
   12 · FAQ
   ========================================================================= */
.faq__nota{margin-top:28px;font-size:var(--fs-xs);color:var(--c-text-invert-muted)}
.faq{display:grid;gap:12px}
.faq__item{
  border:1px solid var(--c-border-dark);border-radius:var(--r-md);
  background:var(--c-surface-dark);
  transition:border-color var(--dur-fast) var(--ease);
}
.faq__item[open]{border-color:rgba(58,114,255,.34)}
.faq__item summary{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 24px;cursor:pointer;list-style:none;
  font-size:var(--fs-lead);font-weight:600;color:var(--c-text-invert);
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__mais{
  display:grid;place-items:center;width:32px;height:32px;flex:none;
  border-radius:50%;background:rgba(58,114,255,.14);color:var(--c-accent-dark);
  transition:transform var(--dur) var(--ease);
}
.faq__mais svg{width:16px;height:16px}
.faq__item[open] .faq__mais{transform:rotate(45deg)}
.faq__item p{
  padding:0 24px 24px;font-size:15px;line-height:1.85;
  color:var(--c-text-invert-muted);max-width:70ch;
}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{background:var(--c-ink);padding:64px 0 34px;color:var(--c-text-invert)}
.site-footer__grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1.35fr 1.5fr 1.1fr;
  gap:32px;align-items:start;
}
.site-footer__brand .logo img{height:60px}
.site-footer__brand p{
  margin-top:22px;font-size:var(--fs-xs);line-height:1.85;
  color:var(--c-text-invert-muted);max-width:230px;
}
.site-footer__col h2{font-size:18px;font-weight:700;letter-spacing:-.01em}
.site-footer__col ul{display:grid;gap:10px;margin-top:18px}
.site-footer__col a{
  display:inline-block;padding-block:2px;
  font-size:var(--fs-xs);color:#B7BAC0;
  transition:color var(--dur-fast) var(--ease);
}
.site-footer__col a:hover{color:#fff}
.site-footer__col--contato a{display:inline-flex;align-items:center;gap:12px}
.site-footer__col--contato svg{width:17px;height:17px;flex:none}

.site-footer__base{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-top:52px;padding-top:26px;
  border-top:1px solid var(--c-border-dark);
}
.site-footer__copy{font-size:15px;color:#6C6F76}
.site-footer__topo{margin-top:0;font-size:15px}

/* WhatsApp fixo */
.whats-fixo{
  position:fixed;right:24px;bottom:24px;z-index:60;
  display:inline-flex;align-items:center;gap:12px;
  padding:14px 22px;border-radius:var(--r-pill);
  background:var(--c-primary);color:#fff;font-size:15px;font-weight:600;
  box-shadow:0 14px 34px rgba(6,66,244,.38);
  transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);
}
.whats-fixo:hover{background:var(--c-primary-strong);transform:translateY(-2px)}
.whats-fixo svg{width:22px;height:22px;flex:none}

/* =========================================================================
   MOTION — estados iniciais (aplicados só quando o JS assume o controle)
   ========================================================================= */
.js-motion [data-hero]{opacity:0}
.js-motion .reveal,
.js-motion .faq__item,
.js-motion .site-footer__col,
.js-motion .site-footer__brand,
.js-motion .mockup__phone,
.js-motion .form .field{opacity:0}

/* =========================================================================
   RESPONSIVO
   ========================================================================= */
@media (max-width:1280px){
  :root{--gutter:40px}
  .nav{gap:24px}
  .nav__list{gap:18px;font-size:14px}
  .hero__grid{min-height:760px;padding-top:170px}
  .hero__visual{width:58%}
  .split--sobre{gap:48px}
  .split--contato{grid-template-columns:380px 1fr;gap:48px}
  .split--faq{grid-template-columns:320px 1fr;gap:44px}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .form{padding:32px}
}

@media (max-width:1024px){
  :root{--gutter:32px}
  .site-header__inner{min-height:80px}
  .logo img{height:46px}

  .hero__grid{min-height:0;padding-block:128px 0}
  .hero__stat{padding:28px 24px 14px 30px}
  .hero__stat__title{margin-left:52px;font-size:15px}
  .hero__stat__icon{width:42px;height:42px}
  .hero__stat__value{font-size:38px}
  .hero__stat__desc{margin:16px 0 0 52px;font-size:15px}
  .hero__content{max-width:none}
  .hero__lede{max-width:60ch}
  .hero__visual{
    position:relative;right:auto;bottom:auto;
    width:100%;max-width:620px;margin:40px auto 0;
  }

  .split{grid-template-columns:1fr !important;gap:40px !important}
  .split__aside{max-width:70ch;padding-top:0 !important}
  .split--sobre .section__lede{max-width:60ch}

  .section--sobre,.section--solucao,.section--beneficios,.section--processo,
  .section--servicos,.section--modelos,.section--comparativo,
  .section--resultados,.section--depoimentos,.section--faq,
  .section--contato{padding:72px 0}

  .grid{margin-top:40px}
  .grid--3{grid-template-columns:repeat(2,1fr);gap:20px}
  .comparativo{margin-top:40px}
}

@media (max-width:768px){
  :root{--gutter:24px}

  .nav{
    position:fixed;inset:80px 0 auto;flex-direction:column;align-items:stretch;gap:0;
    padding:8px 24px 28px;background:rgba(4,5,8,.97);
    backdrop-filter:blur(16px);border-bottom:1px solid var(--c-border-dark);
    transform:translateY(-12px);opacity:0;visibility:hidden;
    max-height:calc(100vh - 80px);overflow-y:auto;
    transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur);
  }
  .nav.is-open{transform:none;opacity:1;visibility:visible}
  .nav__list{flex-direction:column;align-items:stretch;gap:0;font-size:17px}
  .nav__list a{display:block;padding:15px 0;border-bottom:1px solid var(--c-border-dark)}
  .nav__list a::after{display:none}
  .nav .btn{margin-top:22px;justify-content:space-between;width:100%}
  .nav-toggle{display:grid;position:relative}

  .hero__grid{padding-block:112px 0}
  /* no celular as camadas saem da caixa proporcional e empilham */
  .hero__visual{aspect-ratio:auto;max-width:520px;margin-top:32px}
  .hero__photo{
    position:relative;left:auto;top:auto;bottom:auto;
    width:100%;height:auto;filter:none;
    /* aqui o corte não cai na borda da seção: dissolve no fundo */
    -webkit-mask-image:linear-gradient(to bottom, #000 84%, transparent 100%);
    mask-image:linear-gradient(to bottom, #000 84%, transparent 100%);
  }
  .hero__neon{left:44%;top:0;width:55%}
  /* no celular o card sai de cima da foto e vira um bloco legível */
  .hero__stat{
    position:static;width:100%;margin-top:20px;
    padding:24px 22px;backdrop-filter:none;
    background:rgba(11,16,34,.85);
  }
  .hero__stat__title,.hero__stat__desc{margin-left:0}
  .hero__stat__desc{max-width:none}
  .hero__stat__row{margin-top:14px}
  .hero__actions{gap:24px;margin-top:40px}

  .section--sobre,.section--solucao,.section--beneficios,.section--processo,
  .section--servicos,.section--modelos,.section--comparativo,
  .section--resultados,.section--depoimentos,.section--faq,
  .section--contato{padding:64px 0}

  .mockup{padding:0 0 60px}
  .mockup__screen{grid-template-columns:1fr;padding:28px 24px;min-height:0}
  .mockup__thumb{min-height:110px}
  .mockup__phone{width:42%;padding:20px 16px;gap:10px}

  .grid--3,.grid--4{grid-template-columns:1fr;gap:16px}
  .card--pilar{padding:28px 26px 46px}
  .card--pilar::after{left:26px}
  .comparativo{grid-template-columns:1fr;gap:16px}
  .compara{padding:32px 26px 36px}

  .form{padding:26px 22px 30px;border-radius:var(--r-lg)}
  .form__grid{grid-template-columns:1fr;gap:16px}
  .form .btn{width:100%;justify-content:space-between}

  .faq__item summary{padding:18px 20px;font-size:16px}
  .faq__item p{padding:0 20px 20px}

  .site-footer{padding:56px 0 32px}
  .site-footer__grid{grid-template-columns:repeat(2,1fr);gap:36px 24px}
  .site-footer__brand{grid-column:1 / -1}

  /* no celular o botão fixo vira só o ícone, para não cobrir o conteúdo */
  .whats-fixo{right:16px;bottom:16px;padding:16px}
  .whats-fixo span{display:none}
}

@media (max-width:480px){
  .hero__actions{flex-direction:column;align-items:flex-start;gap:20px}
  .hero__actions .btn{width:100%;justify-content:space-between}
  .site-footer__grid{grid-template-columns:1fr;gap:32px}
}

/* =========================================================================
   REDUCED MOTION
   O escopo `html:not(.forca-motion)` deixa o ?motion=1 conferir as animações
   numa máquina com "reduzir movimento" ligado. Sem o parâmetro, vale a
   preferência do sistema.
   ========================================================================= */
@media (prefers-reduced-motion:reduce){
  html:not(.forca-motion){scroll-behavior:auto}
  html:not(.forca-motion) *,
  html:not(.forca-motion) *::before,
  html:not(.forca-motion) *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  html:not(.forca-motion).js-motion [data-hero],
  html:not(.forca-motion).js-motion .reveal,
  html:not(.forca-motion).js-motion .faq__item,
  html:not(.forca-motion).js-motion .site-footer__col,
  html:not(.forca-motion).js-motion .site-footer__brand,
  html:not(.forca-motion).js-motion .mockup__phone,
  html:not(.forca-motion).js-motion .form .field{opacity:1 !important;transform:none !important}
  html:not(.forca-motion) .hero__visual{transform:none !important}
}
