*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --brand:#0d1b6e;
  --accent:#3949ab;
  --light:#e8eaf6;
}

body{
  font-family:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;
  background:#f4f6fb;
  color:#1a1a2e;
  min-height:100vh;
}

/* ── Header ── */
.hdr{
  background:linear-gradient(135deg,#0d1b6e 0%,#1a237e 50%,#283593 100%);
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:68px;
  position:sticky;
  top:0;
  z-index:200;
  box-shadow:0 2px 20px rgba(0,0,0,.3);
}
.hdr-logo{display:flex;align-items:center;height:100%;gap:12px;}
.hdr-logo img{height:44px;width:auto;object-fit:contain;display:block;}
.hdr-logo-text{
  color:#fff;
  font-size:18px;
  font-weight:800;
  letter-spacing:1px;
}
.hdr-badge{
  background:rgba(255,255,255,.13);
  color:rgba(255,255,255,.9);
  font-size:11px;
  font-weight:700;
  letter-spacing:1.8px;
  text-transform:uppercase;
  padding:7px 18px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.22);
  white-space:nowrap;
}

/* ── Steps bar ── */
.steps-bar{
  background:#fff;
  border-bottom:1px solid #e8eaf6;
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  height:56px;
  position:sticky;
  top:68px;
  z-index:100;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.si{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:600;
  color:#ccc;
  cursor:default;
  padding:0 4px;
}
.si.active{color:var(--brand);}
.si.done{color:#43a047;}
.sn{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;border:2px solid #ddd;color:#ccc;
  flex-shrink:0;transition:all .3s;
}
.si.active .sn{background:var(--brand);border-color:var(--brand);color:#fff;}
.si.done .sn{background:#43a047;border-color:#43a047;color:#fff;}
.sl{width:56px;height:2px;background:#e0e0e0;margin:0 6px;flex-shrink:0;}
.sl.done{background:#43a047;}

/* ── Screen transitions ── */
.screen{display:none;animation:fi .3s ease;}
.screen.active{display:block;}
@keyframes fi{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── Welcome / Apresentação ── */
.welcome-wrap{max-width:700px;margin:0 auto;padding:52px 24px 80px;text-align:center;}
.welcome-logo-hero{
  margin-bottom:22px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 4px 28px rgba(0,0,0,.07);
  padding:32px 44px;
  border:1px solid #eaecf5;
  display:flex;align-items:center;justify-content:center;
}
.welcome-logo-hero img{max-width:380px;width:100%;border-radius:8px;display:block;}
.welcome-logo-hero .logo-placeholder{
  font-size:56px;font-weight:900;color:var(--brand);
  letter-spacing:4px;
}
.wcard{
  background:#fff;border-radius:18px;
  box-shadow:0 4px 28px rgba(0,0,0,.07);
  padding:44px;text-align:left;margin-bottom:32px;border:1px solid #eaecf5;
}
.wcard h1{font-size:24px;font-weight:800;color:var(--brand);margin-bottom:18px;line-height:1.35;}
.wcard h1 em{color:var(--accent);font-style:normal;}
.wcard p{font-size:14.5px;color:#555;line-height:1.85;margin-bottom:14px;}
.wcard p:last-child{margin-bottom:0;}
.wcard p strong{color:#1a1a2e;}

/* ── Buttons ── */
.btn-p{
  background:linear-gradient(135deg,#0d1b6e,#3949ab);
  color:#fff;border:none;border-radius:50px;
  padding:16px 60px;font-size:15px;font-weight:800;
  cursor:pointer;box-shadow:0 6px 22px rgba(13,27,110,.35);
  transition:transform .15s,box-shadow .15s;
  display:inline-flex;align-items:center;gap:10px;
  font-family:inherit;
}
.btn-p:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(13,27,110,.45);}
.btn-s{
  background:#fff;color:var(--brand);border:2px solid var(--brand);
  border-radius:50px;padding:12px 32px;font-size:13.5px;font-weight:700;
  cursor:pointer;transition:all .15s;font-family:inherit;
}
.btn-s:hover{background:var(--brand);color:#fff;}
.btn-gen{
  background:linear-gradient(135deg,#0d1b6e,#3949ab);
  color:#fff;border:none;border-radius:50px;
  padding:17px 60px;font-size:15px;font-weight:800;
  cursor:pointer;box-shadow:0 6px 22px rgba(13,27,110,.35);
  transition:transform .15s;display:inline-flex;align-items:center;gap:10px;
  font-family:inherit;
}
.btn-gen:hover{transform:translateY(-2px);}

/* ── Form wrapper ── */
.fw{max-width:700px;margin:0 auto;padding:36px 24px 80px;}

/* ── Form sections ── */
.fsec{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 18px rgba(0,0,0,.06);
  margin-bottom:22px;overflow:hidden;border:1px solid #eaecf5;
}
.fsh{
  padding:18px 26px;display:flex;align-items:center;gap:12px;
  border-bottom:1px solid #f0f2fa;
  background:linear-gradient(135deg,#f8f9ff,#fff);
}
.fsi{
  width:38px;height:38px;border-radius:10px;
  background:var(--light);display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}
.fsh-t h2{font-size:14.5px;font-weight:800;color:var(--brand);}
.fsh-t p{font-size:11.5px;color:#aaa;margin-top:2px;}
.fsb{padding:22px 26px;display:flex;flex-direction:column;gap:17px;}

/* ── Form rows / fields ── */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fg label.lb{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:7px;}
.fg label.lb .rq{color:#e53935;margin-left:2px;}
.fg input,.fg select{
  width:100%;padding:11px 15px;border:1.5px solid #e0e4f0;border-radius:9px;
  font-size:14px;font-family:inherit;background:#fafbff;color:#1a1a2e;
  transition:border .2s,box-shadow .2s;
}
.fg input:focus,.fg select:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(57,73,171,.1);
}
.fg select{cursor:pointer;}

/* ── Nav row ── */
.fnav{display:flex;justify-content:flex-end;margin-top:4px;}

/* ── Radio groups ── */
.rg{display:flex;flex-direction:column;gap:7px;}
.ro{
  display:flex;align-items:center;gap:11px;padding:10px 15px;
  border-radius:9px;border:1.5px solid #e0e4f0;cursor:pointer;
  font-size:14px;color:#444;background:#fafbff;
  user-select:none;transition:all .18s;
}
.ro:hover{border-color:var(--accent);background:#f0f2ff;color:var(--brand);}
.ro input{accent-color:var(--brand);width:15px;height:15px;cursor:pointer;flex-shrink:0;}
.ro.sel{border-color:var(--brand);background:var(--light);color:var(--brand);font-weight:600;}

/* ── CTA block ── */
.fcta{text-align:center;margin-top:6px;}

/* ── Error message ── */
.form-error{
  background:#ffebee;color:#c62828;border:1px solid #ef9a9a;
  border-radius:10px;padding:14px 20px;margin-bottom:20px;
  font-size:14px;font-weight:600;
}

/* ── Obrigado page ── */
.obg-wrap{max-width:600px;margin:0 auto;padding:80px 24px;text-align:center;}
.obg-icon{font-size:64px;margin-bottom:24px;}
.obg-card{
  background:#fff;border-radius:20px;
  box-shadow:0 4px 28px rgba(0,0,0,.08);
  padding:52px 44px;border:1px solid #eaecf5;
}
.obg-card h1{font-size:26px;font-weight:800;color:var(--brand);margin-bottom:16px;}
.obg-card p{font-size:15px;color:#555;line-height:1.8;}

/* ── Footer ── */
.ftr{
  background:#0d1b6e;color:rgba(255,255,255,.45);
  text-align:center;padding:22px;font-size:12px;
}
.ftr strong{color:rgba(255,255,255,.8);}

/* ── Responsive ── */
@media(max-width:600px){
  .hdr{padding:0 18px;}
  .fw{padding:24px 14px 60px;}
  .frow{grid-template-columns:1fr;}
  .wcard{padding:28px 22px;}
  .btn-p,.btn-gen{padding:14px 36px;}
}
