:root{
  --terracota:#B85E40;
  --terracota-d:#9f4d33;
  --bege:#EDE2D2;
  --bege-d:#e3d3bf;
  --dourado:#B58A43;
  --branco:#FFFFFF;
  --marrom:#493127;
  --marrom-soft:#6c5a4b;
  --radius:20px;
  --shadow:0 10px 30px rgba(73,49,39,.12);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:Montserrat,system-ui,-apple-system,sans-serif;
  color:var(--marrom);
  background:
    radial-gradient(1200px 600px at 50% -10%, #f6efe3 0%, rgba(246,239,227,0) 60%),
    linear-gradient(170deg, #f3e9db 0%, var(--bege) 55%, var(--bege-d) 100%);
  min-height:100svh;
  -webkit-font-smoothing:antialiased;
}

/* layout mobile-first: cartão centralizado, respiro nas laterais */
.app{
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px 16px calc(24px + env(safe-area-inset-bottom));
  gap:16px;
}
.card{
  width:100%;
  max-width:480px;
  background:var(--branco);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:28px 22px 26px;
  position:relative;
  overflow:hidden;
}
.card::before{
  content:"";
  position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--terracota),var(--dourado));
}

.logo{display:block;height:54px;margin:4px auto 14px;object-fit:contain}

/* progresso */
.progress{display:flex;gap:8px;justify-content:center;margin:0 0 20px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--bege-d);transition:all .3s ease}
.dot.is-active{background:var(--terracota);transform:scale(1.25)}
.dot.is-done{background:var(--dourado)}

/* passos */
.step{display:none;animation:fade .35s ease both}
.step.is-active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

h1{font-size:23px;line-height:1.3;margin:2px 0 12px;color:var(--terracota);font-weight:700;text-align:center}
h2{font-size:20px;line-height:1.3;margin:2px 0 6px;color:var(--terracota);font-weight:700}
.lead{font-size:16px;line-height:1.6;color:var(--marrom);margin:0 0 14px;text-align:center}
.lead.small{font-size:14px;color:var(--marrom-soft)}
.sub{font-size:15px;line-height:1.55;color:var(--marrom-soft);margin:0 0 18px}
.hint{text-align:center;font-size:13px;color:var(--marrom-soft);margin:14px 0 0}

/* campos */
.field{display:block;margin:0 0 16px}
.field > span{display:block;font-size:14px;font-weight:600;margin:0 0 7px;color:var(--marrom)}
.field > span em{font-weight:500;color:var(--marrom-soft)}
.field small{display:block;font-size:12.5px;color:var(--marrom-soft);margin-top:7px;line-height:1.4}
input,textarea{
  width:100%;
  font-family:inherit;
  font-size:16px; /* evita zoom no iOS */
  color:var(--marrom);
  background:#fbf7f1;
  border:1.5px solid var(--bege-d);
  border-radius:14px;
  padding:14px 15px;
  transition:border-color .2s, box-shadow .2s, background .2s;
  resize:vertical;
}
input::placeholder,textarea::placeholder{color:#b8a894}
input:focus,textarea:focus{
  outline:none;
  border-color:var(--terracota);
  background:#fff;
  box-shadow:0 0 0 4px rgba(184,94,64,.12);
}
textarea{min-height:118px;line-height:1.5}

/* botões */
.btn{
  -webkit-appearance:none;appearance:none;border:none;cursor:pointer;
  width:100%;
  font-family:inherit;font-size:16px;font-weight:600;
  color:#fff;
  background:linear-gradient(180deg,var(--terracota),var(--terracota-d));
  padding:15px 18px;border-radius:14px;
  box-shadow:0 6px 16px rgba(184,94,64,.28);
  transition:transform .12s ease, box-shadow .2s, opacity .2s;
}
.btn:active{transform:translateY(1px) scale(.995)}
.btn:disabled{opacity:.6;cursor:default}
.btn.ghost{
  background:transparent;color:var(--marrom-soft);
  box-shadow:none;border:1.5px solid var(--bege-d);
}
.btn.next{margin-top:4px}
.row{display:flex;gap:12px;margin-top:6px}
.row .ghost{flex:0 0 38%}
.row .btn:not(.ghost){flex:1}

.err{color:#b02a2a;font-size:14px;margin:12px 0 0;min-height:1px;text-align:center}

/* sucesso */
.step-done{text-align:center;padding:6px 0}
.check{
  width:68px;height:68px;border-radius:50%;
  background:linear-gradient(180deg,var(--dourado),#a07a39);
  color:#fff;font-size:34px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin:6px auto 16px;
  box-shadow:0 8px 20px rgba(181,138,67,.35);
  animation:pop .45s cubic-bezier(.2,1.3,.5,1) both;
}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}

.foot{font-size:12.5px;color:var(--marrom-soft);opacity:.85;text-align:center}

/* telas maiores: só centraliza e dá um respiro extra */
@media(min-width:540px){
  .card{padding:34px 32px 30px}
  .logo{height:60px}
}
