/* Páginas públicas: site, proposta e cadastro da escola. */

:root{
  --indigo:#3E4095;
  --indigo-esc:#2C2E6E;
  --rosa:#C2456B;
  --tinta:#191A2C;
  --tinta-media:#4C4A62;
  --tinta-fraca:#726F87;
  --linha:#E4E2EE;
  --papel:#FFFFFF;
  --fundo:#F7F6FA;
  --ok:#1E7A56;
  --ok-bg:#E7F4EE;
  --erro:#B3123C;
  --erro-bg:#FCEBF0;
  --alerta:#8A5B00;
  --alerta-bg:#FDF3E0;
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--fundo);color:var(--tinta);
  font-family:"Source Sans 3","Segoe UI",Roboto,Arial,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,.marca,.numero{font-family:Montserrat,"Segoe UI",Arial,sans-serif}
h1{font-size:clamp(2rem,4.6vw,3rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin:0 0 16px;text-wrap:balance}
h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;letter-spacing:-.01em;margin:0 0 14px;text-wrap:balance}
h3{font-size:1.05rem;font-weight:600;margin:0 0 6px}
p{margin:0 0 16px}
a{color:var(--indigo)}
.centro{max-width:1060px;margin:0 auto;padding:0 24px}
.estreito{max-width:680px;margin:0 auto;padding:0 24px}

/* ---------- topo ---------- */
.barra{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 24px;max-width:1060px;margin:0 auto;
}
.marca{font-weight:800;font-size:1.1rem;color:#fff;text-decoration:none}
.barra .entrar{
  color:#fff;text-decoration:none;font-size:.9rem;font-weight:600;
  border:1px solid rgba(255,255,255,.55);border-radius:99px;padding:6px 16px;
}
.barra .entrar:hover{background:rgba(255,255,255,.15)}

/* ---------- capa ---------- */
.capa{
  background:linear-gradient(145deg,#3E4095 0%,#6E3E8E 58%,#C2456B 100%);
  color:#fff;padding-bottom:64px;
}
.capa h1{color:#fff}
.capa .chamada{max-width:640px;padding:34px 24px 0}
.capa .sub{font-size:1.15rem;opacity:.94;margin-bottom:26px}
.botao{
  display:inline-block;background:#fff;color:var(--indigo);font-weight:700;
  padding:13px 26px;border-radius:8px;text-decoration:none;border:0;font-size:1rem;cursor:pointer;
  font-family:inherit;
}
.botao:hover{filter:brightness(.96);text-decoration:none}
.botao.contorno{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6)}
.botao.cheio{background:var(--indigo);color:#fff;width:100%;padding:14px}
.botao.cheio:hover{background:var(--indigo-esc)}
.botao.claro{background:var(--papel);color:var(--tinta);border:1px solid var(--linha);font-weight:600}

/* ---------- blocos ---------- */
section{padding:56px 0}
.cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.cartao{background:var(--papel);border:1px solid var(--linha);border-radius:10px;padding:22px 24px}
.cartao p:last-child{margin-bottom:0}
.cartao .ico{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:8px;background:#EDEDF8;color:var(--indigo);font-weight:700;margin-bottom:12px;
}
.passos{counter-reset:passo;display:grid;gap:14px;margin:0;padding:0;list-style:none}
.passos li{
  counter-increment:passo;background:var(--papel);border:1px solid var(--linha);
  border-radius:10px;padding:18px 22px 18px 62px;position:relative;
}
.passos li::before{
  content:counter(passo);position:absolute;left:20px;top:18px;
  width:26px;height:26px;border-radius:50%;background:var(--indigo);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;
  font-family:Montserrat,sans-serif;
}
.passos strong{display:block;margin-bottom:2px}
.passos p{margin:0;color:var(--tinta-media);font-size:.95rem}

.preco{background:var(--papel);border:1px solid var(--linha);border-radius:12px;padding:30px 32px;text-align:center}
.preco .numero{font-size:2.6rem;font-weight:800;color:var(--indigo);line-height:1}
.preco .obs{color:var(--tinta-fraca);font-size:.95rem}

/* ---------- formulários públicos ---------- */
.painel{background:var(--papel);border:1px solid var(--linha);border-radius:12px;padding:28px 30px;margin-bottom:22px}
.painel h2{margin-bottom:4px}
.painel .legenda{color:var(--tinta-fraca);font-size:.95rem;margin-bottom:20px}
label{display:block;margin-bottom:15px;font-size:.88rem;font-weight:600;color:var(--tinta-media)}
input,select,textarea{
  display:block;width:100%;margin-top:5px;padding:11px 13px;font:inherit;font-size:1rem;
  font-weight:400;color:var(--tinta);border:1px solid var(--linha);border-radius:7px;background:#fff;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--indigo);outline-offset:-1px}
.dica{font-weight:400;font-size:.83rem;color:var(--tinta-fraca);margin-top:3px}
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 16px}
.mel{display:none !important}   /* armadilha para robô */

.aviso{padding:13px 18px;border-radius:8px;margin-bottom:20px;font-size:.95rem;border-left:3px solid}
.aviso.ok{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}
.aviso.erro{background:var(--erro-bg);border-color:var(--erro);color:var(--erro)}
.aviso.alerta{background:var(--alerta-bg);border-color:var(--alerta);color:var(--alerta)}

.condicoes{background:var(--fundo);border:1px solid var(--linha);border-radius:8px;padding:18px 22px;margin:0 0 20px}
.condicoes ul{margin:0;padding-left:20px}
.condicoes li{margin-bottom:9px;color:var(--tinta-media)}
.condicoes li:last-child{margin-bottom:0}

.resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--linha);
  border:1px solid var(--linha);border-radius:8px;overflow:hidden;margin-bottom:22px}
.resumo div{background:var(--papel);padding:16px 18px}
.resumo .rot{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-fraca)}
.resumo .val{font-size:1.35rem;font-weight:700;font-family:Montserrat,sans-serif;margin-top:4px}

.aceite{display:flex;gap:10px;align-items:flex-start;background:#EDEDF8;border-radius:8px;padding:16px 18px;margin-bottom:20px;font-weight:400;color:var(--tinta)}
.aceite input{width:auto;margin:3px 0 0}

.rodape{border-top:1px solid var(--linha);padding:28px 0;color:var(--tinta-fraca);font-size:.88rem;margin-top:40px}

@media (max-width:640px){
  body{font-size:16px}
  section{padding:40px 0}
  .painel{padding:22px 20px}
}

/* ---------- avisos de validação em campo ---------- */
.recado-campo{
  font-size:.85rem;font-weight:500;margin-top:6px;line-height:1.4;display:none;
}
.recado-campo.erro{color:var(--erro)}
.recado-campo.aviso{color:var(--alerta)}
input.campo-invalido{border-color:var(--erro);outline-color:var(--erro)}
.obrigatorio{color:var(--erro);font-weight:700;margin-left:2px}

/* ---------- o bonequinho no topo do site ---------- */
.marca{display:inline-flex;align-items:center;gap:9px}
