/* Sistema visual das LPs — ver .claude/skills/lp-design/SKILL.md
   Superfícies em camadas (Material) + profundidade suave (Fluent), tonalizadas a
   partir do verde-petróleo da marca. Sem fotografia, a página precisa de matéria:
   tom, elevação e uma âncora escura. Fundo branco puro lê como folha em branco. */

:root{
  /* tons derivados da marca — nada de cinza neutro, tudo levemente petróleo */
  --tinta:#0c242d;
  --marca:#1f4e5f;
  --marca-claro:#2f7288;
  --marca-fraca:#e3ecef;
  --fundo:#eaf0f2;
  --superficie:#ffffff;
  --superficie-2:#f5f9fa;
  --texto:#10212a;
  --suave:#4d626c;
  --linha:#d3dfe3;
  --claro:#fff;
  --borda:#d3dfe3;
  --fonte:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --curva:cubic-bezier(.2,0,0,1);
  /* elevação em três níveis, como no Material: cada degrau é uma intenção */
  --elev1:0 1px 2px rgba(12,36,45,.06),0 1px 3px rgba(12,36,45,.05);
  --elev2:0 2px 6px rgba(12,36,45,.07),0 8px 20px rgba(12,36,45,.07);
  --elev3:0 4px 10px rgba(12,36,45,.08),0 20px 48px rgba(12,36,45,.12);
}

*{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  font-family:var(--fonte);
  font-size:1.0625rem;
  line-height:1.6;
  background:var(--fundo);
  color:var(--texto);
  -webkit-font-smoothing:antialiased;
}

/* ---- cabeçalho: escuro, ancora a marca desde o primeiro pixel ---- */
header{
  position:sticky;top:0;z-index:5;
  padding:14px 24px;
  background:rgba(12,36,45,.92);
  backdrop-filter:saturate(180%) blur(12px);
  color:#fff;font-size:.8125rem;
}
header strong{font-weight:600}
header span{color:#9fc0cb;margin-left:8px}

footer{
  padding:56px 24px 40px;
  background:var(--tinta);color:#9fc0cb;
  font-size:.8125rem;text-align:left;
}
footer a{color:#c8dde4}
/* O rodape cruza as tres areas entre si: e por esses links que o buscador
   descobre e relaciona as paginas, e que o visitante troca de assunto sem voltar. */
.rodape{
  max-width:1060px;margin:0 auto;
  display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.rodape strong{display:block;color:#fff;font-size:.875rem;font-weight:600;margin-bottom:12px}
.rodape ul{list-style:none;margin:0;padding:0}
.rodape li{margin-bottom:9px;line-height:1.5}
.rodape address{font-style:normal;line-height:1.7}
.rodape-base{
  max-width:1060px;margin:36px auto 0;padding-top:24px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.75rem;color:#7fa3b0;
}
.rodape-base p{max-width:none;margin:0 0 8px}
.rodape-base p:last-child{margin:0}

main{max-width:1060px;margin:auto;padding:0 24px}
section{margin:88px 0}

/* ---- abertura: faixa escura de ponta a ponta, com brilho radial ---- */
.hero{
  position:relative;
  padding:96px 24px 132px;
  text-align:center;color:#fff;
  background:
    radial-gradient(1100px 520px at 50% -8%, rgba(96,168,190,.45), transparent 62%),
    linear-gradient(165deg,#0c242d 0%,#1f4e5f 58%,#276379 100%);
  margin-top:0;
}
.hero::after{  /* borda de luz na base: separa sem usar traço duro */
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
}
.hero > *{max-width:820px;margin-left:auto;margin-right:auto}
/* a faixa vive fora de <main>: ocupa a largura por natureza, sem cálculo em vw
   (vw conta a barra de rolagem e criava 8px de rolagem lateral no desktop) */
h1{
  font-size:clamp(2.2rem,5.2vw,3.5rem);
  line-height:1.1;letter-spacing:-.02em;font-weight:650;
  margin:0 0 20px;
}
.hero p{
  font-size:clamp(1.05rem,2.1vw,1.3rem);
  line-height:1.5;color:#cfe2e9;
  max-width:36em;margin:0 auto 36px;
}
.hero .cta{background:#fff;color:var(--tinta);box-shadow:var(--elev2)}
.hero .cta:hover{background:#f2f8fa}

h2{
  font-size:clamp(1.5rem,3vw,2rem);
  line-height:1.18;letter-spacing:-.015em;font-weight:650;
  margin:0 0 28px;
}
h3{font-size:1.0625rem;line-height:1.35;letter-spacing:-.005em;font-weight:650;margin:0 0 10px}
p{max-width:36em}

/* ---- botões: pílula, elevação leve, reação rápida ---- */
.cta,button{
  display:inline-block;
  background:var(--marca);color:var(--claro);
  border:0;border-radius:980px;
  padding:14px 28px;
  font-family:var(--fonte);font-size:1.0625rem;font-weight:600;
  text-decoration:none;cursor:pointer;
  box-shadow:var(--elev1);
  transition:background .2s var(--curva),box-shadow .2s var(--curva),transform .2s var(--curva);
}
.cta:hover,button:hover{background:var(--marca-claro);box-shadow:var(--elev2)}
.cta:active,button:active{transform:translateY(1px)}
button:disabled{background:#b9c9cf;box-shadow:none;cursor:not-allowed}

/* ---- cards: superfície branca sobre fundo tonalizado, com faixa da marca ---- */
.blocos{
  display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  margin-top:-72px;position:relative;z-index:1;  /* sobem sobre a faixa escura */
}
.blocos div{
  position:relative;overflow:hidden;
  background:var(--superficie);
  border-radius:16px;padding:30px 26px 28px;
  box-shadow:var(--elev2);
  transition:box-shadow .25s var(--curva),transform .25s var(--curva);
}
.blocos div::before{  /* acento superior: cor onde há significado, não decoração solta */
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--marca),var(--marca-claro));
}
.blocos div:hover{box-shadow:var(--elev2);transform:translateY(-2px)}
.blocos p{color:var(--suave);margin:0}

/* ---- passos numerados ---- */
ol{counter-reset:passo;list-style:none;padding:0;max-width:36em}
ol li{counter-increment:passo;position:relative;padding:0 0 24px 52px;color:var(--suave)}
ol li::before{
  content:counter(passo);
  position:absolute;left:0;top:-1px;
  width:32px;height:32px;border-radius:10px;
  background:var(--marca-fraca);color:var(--marca);
  font-size:.9375rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}

/* ---- chat: o card que sobe sobre a faixa escura ---- */
#chat{
  background:var(--superficie);
  border-radius:20px;padding:44px 36px;
  box-shadow:var(--elev3);
  scroll-margin-top:80px;
  position:relative;z-index:1;
}
#chat h2{margin-bottom:20px}
#consent label{display:block;max-width:36em;font-size:.9375rem;color:var(--suave);margin-bottom:24px}
#consent input{margin-right:10px;accent-color:var(--marca);width:18px;height:18px;vertical-align:-3px}
#msgs{
  max-height:60vh;overflow-y:auto;
  display:flex;flex-direction:column;gap:10px;margin-bottom:16px;
  padding-right:4px;
}
.msg{
  padding:13px 17px;border-radius:18px;max-width:85%;white-space:pre-wrap;
  box-shadow:var(--elev1);animation:surge .28s var(--curva);
}
.bot{background:var(--superficie-2);align-self:flex-start;border-bottom-left-radius:5px}
.eu{background:var(--marca);color:var(--claro);align-self:flex-end;border-bottom-right-radius:5px}
@keyframes surge{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

#opcoes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
#opcoes button{
  background:var(--marca-fraca);color:var(--marca);
  border:0;box-shadow:none;
  padding:11px 18px;font-size:.9375rem;font-weight:600;
}
#opcoes button:hover{background:#d2e2e7}
#form{display:flex;gap:8px;align-items:center}
#texto{
  flex:1;padding:14px 20px;
  border:1px solid var(--linha);border-radius:980px;
  font-family:var(--fonte);font-size:1.0625rem;background:var(--superficie-2);
  transition:border-color .2s var(--curva),background .2s var(--curva);
}
#texto:focus{outline:none;border-color:var(--marca);background:var(--superficie)}
.anexo{display:flex;align-items:center;padding:0 10px;cursor:pointer;font-size:1.35rem;min-height:44px}
/* o input fica invisível, mas NÃO com display:none: navegador de celular ignora o
   clique no rótulo quando o campo está display:none, e o seletor de arquivo não abre */
.anexo input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}

/* ---- perguntas frequentes ---- */
details{
  background:var(--superficie);border-radius:14px;
  box-shadow:var(--elev1);margin-bottom:10px;padding:18px 22px;
}
details summary{
  cursor:pointer;font-weight:600;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
details summary::-webkit-details-marker{display:none}
details summary::after{
  content:"";flex:none;width:10px;height:10px;
  border-right:2px solid var(--marca);border-bottom:2px solid var(--marca);
  transform:rotate(45deg);transition:transform .25s var(--curva);
}
details[open] summary::after{transform:rotate(-135deg)}
details p{color:var(--suave);margin:14px 0 0}

@media (max-width:640px){
  section{margin:64px 0}
  .hero{padding:40px 20px 56px}
  /* o nome completo + OAB quebra em duas linhas no celular e come a primeira tela */
  header{padding:10px 18px;font-size:.75rem}
  h1{font-size:1.75rem}
  .hero p{font-size:1rem;margin-bottom:24px}
  #chat{padding:28px 20px;border-radius:18px}
  .blocos{margin-top:-56px}
  .blocos div{padding:26px 22px 24px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}

/* ---- foco de teclado: leitor de tela e robô leem a mesma árvore ---- */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{
  outline:3px solid var(--marca-claro);outline-offset:2px;border-radius:6px;
}
.hero a:focus-visible{outline-color:#fff}
