/* Paleta institucional ATEL */
:root{
  --azul:#033bee;
  --azul-escuro:#021f7d;
  --laranja:#ff8b00;
  --laranja-escuro:#d97600;
  --tinta:#101322;
  --tinta-suave:#5b6076;
  --linha:#dfe3f0;
  --fundo:#f4f6fc;
  --branco:#fff;
  --erro:#c62828;
  --raio:14px;
  --sombra:0 10px 30px rgba(3,59,238,.10);
}

*{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--tinta);
  background:var(--fundo);
}

/* ---------- topo ---------- */
.topo{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 20px;background:var(--azul);color:#fff;
}
.marca{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.01em}
.marca-logo{
  width:26px;height:26px;border-radius:8px;background:var(--laranja);
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.28);
}
.topo-tag{
  background:var(--laranja);color:#fff;font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;padding:5px 10px;border-radius:999px;
}

/* ---------- hero ---------- */
main{max-width:820px;margin:0 auto;padding:28px 20px 60px}
.hero{text-align:center;margin-bottom:26px}
.hero h1{
  font-size:clamp(26px,5vw,38px);line-height:1.18;margin:0 0 12px;
  letter-spacing:-.02em;
}
.hero h1 em{
  font-style:normal;color:var(--azul);white-space:nowrap;
  background:linear-gradient(transparent 62%,rgba(255,139,0,.3) 62%);
}
.hero p{margin:0 auto;max-width:52ch;color:var(--tinta-suave)}
.hero-passos{
  list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
  margin:20px 0 0;padding:0;font-size:13px;font-weight:600;color:var(--tinta-suave);
}
.hero-passos li{
  display:flex;align-items:center;gap:7px;background:var(--branco);
  border:1px solid var(--linha);border-radius:999px;padding:6px 14px 6px 8px;
}
.hero-passos b{
  display:grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:var(--linha);color:var(--tinta-suave);font-size:12px;
}
.hero-passos .ativo{border-color:var(--azul);color:var(--azul);background:#fff}
.hero-passos .ativo b{background:var(--azul);color:#fff}

/* ---------- formulário ---------- */
.cartao{
  background:var(--branco);border:1px solid var(--linha);
  border-radius:var(--raio);box-shadow:var(--sombra);
  padding:26px;
}
fieldset{border:0;margin:0 0 22px;padding:0}
fieldset:last-of-type{margin-bottom:14px}
legend{
  font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;
  color:var(--azul);padding:0 0 12px;
}
legend small{font-weight:600;text-transform:none;letter-spacing:0;color:var(--tinta-suave)}

.linha{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.linha-cep{grid-template-columns:180px 1fr}
.linha-tres{grid-template-columns:110px 1fr 1fr}
.linha-cidade{grid-template-columns:1fr 90px}

.campo{display:block;margin-bottom:14px}
.linha .campo{margin-bottom:0}
.linha{margin-bottom:14px}
.campo > span{
  display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:var(--tinta);
}
.campo > span i{color:var(--laranja-escuro);font-style:normal}

input,select,textarea{
  width:100%;font:inherit;color:inherit;background:#fbfcff;
  border:1.5px solid var(--linha);border-radius:10px;padding:11px 12px;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
textarea{resize:vertical;min-height:78px}
input:hover,select:hover,textarea:hover{border-color:#c3cbe6}
input:focus,select:focus,textarea:focus{
  outline:none;background:#fff;border-color:var(--azul);
  box-shadow:0 0 0 3px rgba(3,59,238,.15);
}
input[name=uf]{text-transform:uppercase}
.campo.invalido input,.campo.invalido select{border-color:var(--erro);background:#fff8f8}

.erro,.dica{display:block;font-size:12.5px;margin-top:5px;min-height:0}
.erro{color:var(--erro);font-weight:600}
.dica{color:var(--tinta-suave)}

.aviso-geral{
  background:#fff3f3;border:1px solid #f3c3c3;color:var(--erro);
  border-radius:10px;padding:11px 13px;font-size:14px;font-weight:600;margin:0 0 14px;
}

/* ---------- botão ---------- */
.botao{
  display:block;width:100%;border:0;cursor:pointer;
  background:var(--laranja);color:#fff;
  font:700 17px/1 inherit;padding:16px;border-radius:12px;
  box-shadow:0 6px 16px rgba(255,139,0,.32);
  transition:transform .12s,background .15s,box-shadow .15s;
  text-align:center;text-decoration:none;
}
.botao:hover{background:var(--laranja-escuro);box-shadow:0 8px 20px rgba(255,139,0,.4)}
.botao:active{transform:translateY(1px)}
.botao:disabled{background:#c9cee0;box-shadow:none;cursor:progress}
.botao-alt{background:var(--azul);box-shadow:0 6px 16px rgba(3,59,238,.3)}
.botao-alt:hover{background:var(--azul-escuro);box-shadow:0 8px 20px rgba(3,59,238,.38)}

.rodape-form{font-size:13px;color:var(--tinta-suave);text-align:center;margin:14px 0 0}
.pe{text-align:center;font-size:13px;color:var(--tinta-suave);padding:0 20px 34px}

/* ---------- overlay de sucesso ---------- */
.overlay{
  position:fixed;inset:0;background:rgba(2,31,125,.55);backdrop-filter:blur(3px);
  display:grid;place-items:center;padding:22px;z-index:10;
}
.overlay[hidden]{display:none}
.overlay-cartao{
  background:#fff;border-radius:var(--raio);padding:32px 26px;max-width:400px;
  text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28);
}
.overlay-cartao h2{margin:0 0 8px;font-size:22px;color:var(--azul)}
.overlay-cartao p{margin:0 0 20px;color:var(--tinta-suave)}
.check{
  width:58px;height:58px;margin:0 auto 16px;border-radius:50%;
  background:var(--azul);color:#fff;display:grid;place-items:center;
  font-size:30px;font-weight:700;
}

@media (max-width:600px){
  .cartao{padding:20px 16px}
  .linha,.linha-cep,.linha-tres,.linha-cidade{grid-template-columns:1fr}
  .hero-passos{font-size:12px}
}
