:root{
  --navy:#001F44;
  --royal:#242C50;
  --cyan:#76BEDB;
  --white:#FFFFFF;
  --body:#4B4D53;
  --soft:#F3F4F6;
  --line:rgba(0,31,68,.14);
  --danger:#C73E4C;
  --shadow:0 34px 84px rgba(0,31,68,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Poppins,Arial,sans-serif;
  color:var(--white);
  background:
    radial-gradient(circle at 88% 12%, rgba(118,190,219,.12), transparent 22%),
    radial-gradient(circle at 12% 85%, rgba(118,190,219,.07), transparent 24%),
    linear-gradient(135deg,#001F44 0%,#0A2550 45%,#242C50 100%);
  min-height:100vh;
}
.shell{width:min(calc(100% - 40px),1220px);margin:0 auto}
.form-header{position:sticky;top:0;z-index:50;background:rgba(0,31,68,.72);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand img{width:155px;height:auto;display:block}
.back-link{font-size:14px;font-weight:600;color:#D9EAF2;text-decoration:none}
.back-link:hover{color:var(--white)}
.wizard-page{padding-bottom:80px}
.wizard-hero{padding:68px 0 34px}
.hero-shell{text-align:center;max-width:980px}
.eyebrow,.micro-label{display:block;font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.16em;color:#76BEDB;text-transform:uppercase}
.hero-shell h1{margin:18px auto 18px;font-size:clamp(42px,6vw,74px);line-height:1.04;letter-spacing:-.055em}
.hero-shell p{margin:0 auto;max-width:880px;font-size:18px;line-height:1.7;color:rgba(255,255,255,.86)}
.wizard-card{
  background:#fff;
  color:var(--navy);
  border:1px solid rgba(255,255,255,.14);
  border-radius:34px;
  padding:38px 40px 34px;
  box-shadow:var(--shadow);
}
.progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.progress-head h2{margin:12px 0 0;font-size:clamp(28px,3vw,40px);letter-spacing:-.035em;line-height:1.12}
.step-label{font-size:12px;font-weight:700;color:rgba(0,31,68,.6);white-space:nowrap;padding-top:6px}
.progress-track{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:22px 0 34px}
.progress-track span{height:6px;border-radius:999px;background:rgba(0,31,68,.10);transition:.25s}
.progress-track span.active{background:var(--cyan)}
.form-step{animation:stepIn .32s ease both}
.step-heading{margin-bottom:28px}
.step-heading h3{margin:0 0 10px;font-size:22px;line-height:1.2}
.step-heading p{margin:0;color:var(--body);font-size:14px;line-height:1.7}
.fields{display:grid;gap:18px}
.two-cols{grid-template-columns:1fr 1fr}
.field{display:grid;gap:8px}
.field.full{grid-column:1/-1}
.field>span,.question-label{font-size:12px;font-weight:700;color:var(--navy)}
.field em,.question-label em{font-style:normal;color:var(--danger)}
input,select,textarea{
  width:100%;
  font:500 15px/1.45 Poppins,Arial,sans-serif;
  color:var(--navy);
  background:#fff;
  border:1px solid rgba(0,31,68,.18);
  border-radius:18px;
  padding:16px 18px;
  outline:none;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
input,select{min-height:58px}
textarea{min-height:138px;resize:vertical}
input:focus,select:focus,textarea:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 4px rgba(118,190,219,.18);
}
input.invalid,select.invalid,textarea.invalid,.invalid-group{
  border-color:var(--danger)!important;
  box-shadow:0 0 0 3px rgba(199,62,76,.12)!important;
}
.question-block{display:grid;gap:12px;margin-bottom:22px}
.option-grid{display:grid;gap:14px}
.option-grid.cols-2{grid-template-columns:1fr 1fr}
.option-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.option-card{
  position:relative;
  display:flex;
  min-height:76px;
  align-items:center;
  justify-content:flex-start;
  border:1px solid rgba(0,31,68,.14);
  border-radius:22px;
  background:#fff;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
  overflow:hidden;
}
.option-card:hover{transform:translateY(-1px);border-color:rgba(118,190,219,.6);box-shadow:0 16px 28px rgba(0,31,68,.08)}
.option-card input{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}
.option-card span{
  position:relative;
  z-index:1;
  width:100%;
  padding:18px 20px;
  font-size:15px;
  font-weight:700;
  line-height:1.45;
}
.option-card.is-selected{
  background:rgba(118,190,219,.18);
  border-color:rgba(118,190,219,.82);
  box-shadow:0 14px 30px rgba(118,190,219,.20);
}
.option-card.is-selected span{color:var(--navy)}
.address-preview{
  margin-top:20px;
  padding:16px 18px;
  border-radius:16px;
  background:var(--soft);
  border:1px solid rgba(0,31,68,.08);
}
.address-preview strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#418ba8;margin-bottom:6px}
.address-preview p{margin:0;color:var(--body);font-size:14px;line-height:1.6}
.review-note{
  margin-top:20px;
  padding:16px 18px;
  border-radius:16px;
  background:#F7FAFC;
  border:1px solid rgba(0,31,68,.08);
  color:var(--body);
  font-size:13px;
  line-height:1.6;
}
.form-actions{
  display:flex;
  justify-content:flex-start;
  gap:12px;
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid rgba(0,31,68,.10);
}
.btn{
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:0 28px;
  border:1px solid transparent;
  font:700 15px/1 Poppins,Arial,sans-serif;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s, box-shadow .2s, background .2s, border-color .2s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--cyan);color:var(--navy);box-shadow:0 12px 28px rgba(118,190,219,.22)}
.btn-primary:hover{background:#8CCAE2}
.btn-ghost{background:#fff;border-color:rgba(0,31,68,.14);color:rgba(0,31,68,.42)}
.form-status{min-height:22px;margin:14px 0 0;font-size:13px;text-align:left;color:var(--danger)}
.success-card{text-align:center;padding:56px 20px 12px}
.success-icon{
  width:74px;height:74px;display:grid;place-items:center;
  margin:0 auto 24px;border-radius:50%;
  background:var(--cyan);color:var(--navy);font-size:34px;font-weight:700;
  box-shadow:0 0 0 12px rgba(118,190,219,.14)
}
.success-card h3{font-size:32px;line-height:1.1;margin:12px 0}
.success-card p{max-width:640px;margin:0 auto 28px;color:var(--body);font-size:15px;line-height:1.75}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:980px){
  .wizard-hero{padding:54px 0 26px}
  .hero-shell p{font-size:16px}
  .wizard-card{padding:30px 26px}
}
@media(max-width:760px){
  .shell{width:min(calc(100% - 28px),1220px)}
  .header-inner{height:76px}
  .brand img{width:136px}
  .wizard-hero{padding:40px 0 20px}
  .hero-shell h1{font-size:44px}
  .hero-shell p{font-size:15px}
  .progress-head{flex-direction:column;gap:10px}
  .progress-track{gap:6px}
  .two-cols,.option-grid.cols-2,.option-grid.cols-3{grid-template-columns:1fr}
  .wizard-card{border-radius:24px;padding:24px 18px}
  .step-heading h3{font-size:20px}
  .form-actions{display:grid;grid-template-columns:1fr 1fr}
  .form-actions .btn{width:100%;padding-inline:16px}
}
@media(max-width:560px){
  .hero-shell h1{font-size:38px}
  .btn{min-height:54px;font-size:14px}
}
.form-actions [hidden]{display:none !important}


/* Estado final do formulário: exibe apenas o agradecimento. */
.wizard-card.is-complete .progress-head,
.wizard-card.is-complete .progress-track { display:none !important; }
.wizard-card.is-complete .success-card { padding:54px 20px 30px; }
