:root { --fundo:#f5f7f6; --texto:#16211d; --suave:#5b6b65; --marca:#0f766e; --marca-escura:#0b5750;
        --borda:#d6dfdb; --perigo:#b42318; --ok:#067647; --alerta-fundo:#fff7e6; --cartao:#ffffff; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background:var(--fundo);
       color:var(--texto); line-height:1.55; }
.topo { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 1.25rem;
        background:#0d1f1b; color:#fff; flex-wrap:wrap; }
.marca { color:#fff; text-decoration:none; font-size:1.15rem; letter-spacing:.02em; }
.marca b { color:#5eead4; }
nav { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
nav a { color:#e2f3ef; text-decoration:none; }
main { max-width:960px; margin:0 auto; padding:1.5rem 1.25rem 3rem; }
h1 { font-size:1.7rem; margin:.2rem 0 1rem; }
h2 { font-size:1.2rem; margin:1.2rem 0 .5rem; }
.destaque { padding:1.5rem 0; }
.lead { font-size:1.15rem; color:var(--suave); }
.cartoes { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1rem; }
.cartoes article, .bloco, .caixa-form { background:var(--cartao); border:1px solid var(--borda); border-radius:12px; padding:1rem 1.25rem; }
.bloco { margin-top:1rem; }
.caixa-form { max-width:460px; margin:1rem auto; }
.campo { margin:.8rem 0; display:flex; flex-direction:column; gap:.3rem; }
.campo.caixa { flex-direction:row; flex-wrap:wrap; align-items:flex-start; gap:.5rem; }
.campo.caixa label { flex:1; }
.campo.caixa .erro-campo { flex-basis:100%; }
.campo.caixa input { margin-top:.35rem; }
input[type=email], input[type=password], input[type=text] { font:inherit; padding:.6rem .7rem; border:1px solid var(--borda);
       border-radius:8px; background:#fff; width:100%; }
input:focus-visible, button:focus-visible, a:focus-visible { outline:3px solid #5eead4; outline-offset:2px; }
.com-erro input { border-color:var(--perigo); }
.erro, .erro-campo { color:var(--perigo); }
.erro-campo { margin:0; font-size:.92rem; }
.botao { display:inline-block; font:inherit; background:var(--marca); color:#fff; border:0; border-radius:8px;
         padding:.65rem 1.1rem; cursor:pointer; text-decoration:none; }
.botao:hover { background:var(--marca-escura); }
.botao.pequeno { padding:.4rem .8rem; }
.botao.secundario { background:#fff; color:var(--marca); border:1px solid var(--marca); }
.botao.perigo { background:var(--perigo); }
button.link { background:none; border:0; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; padding:0; }
form.inline { display:inline; }
.nota { color:var(--suave); font-size:.95rem; }
.ok { color:var(--ok); }
.alerta { background:var(--alerta-fundo); border-radius:8px; padding:.6rem .8rem; }
.avisos .aviso { background:#e6f4f1; border-radius:8px; padding:.6rem .8rem; }
.lista { padding-left:1.1rem; }
.rodape { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem; padding:1rem 1.25rem;
          color:var(--suave); border-top:1px solid var(--borda); max-width:960px; margin:0 auto; }
@media (max-width: 560px) { h1 { font-size:1.4rem; } .topo { padding:.8rem 1rem; } main { padding:1rem; } }
.documento { max-width: 780px; }
.documento h2 { margin-top: 1.6rem; }
.caixa-form.largo { max-width: 820px; }
.termos-caixa { max-height: 50vh; overflow: auto; border: 1px solid var(--borda); border-radius: 8px;
                padding: .5rem 1rem; margin: 1rem 0; background: var(--fundo); }
.termos-caixa h1 { font-size: 1.25rem; }
.termos-caixa h2 { font-size: 1.05rem; }
