:root{
  --green:#8fae6a;
  --green-dark:#6f9450;
  --green-soft:#eaf1e2;
  --navy:#1f333f;
  --navy-2:#26404f;
  --text:#2c3e4a;
  --muted:#647581;
  --border:#dde5d8;
  --bg:#eef3ea;
  --white:#ffffff;
  --required:#df5b60;
  --info-bg:#eef2f6;
  --info-border:#26404f;
  --warn-bg:#fbf3d9;
  --warn-border:#e3cd85;
  --danger-bg:#fceceb;
  --danger-border:#df5b60;
  --radius:12px;
  --shadow:0 4px 16px rgba(20,30,20,0.07);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
a{color:inherit;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* ---------- Top bar ---------- */
.topbar{
  background:var(--green);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 32px;
}
.topbar .brand{
  display:flex;align-items:center;gap:10px;
  font-weight:700;font-size:18px;
}
.topbar .brand .logo{
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,0.25);
  display:flex;align-items:center;justify-content:center;
}
.topbar a.back-link{
  font-size:14px;font-weight:600;text-decoration:underline;color:#fff;
}

/* ---------- Page header ---------- */
.page-header{
  background:linear-gradient(180deg,var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  text-align:center;
  padding:36px 20px 30px;
}
.page-header h1{margin:0 0 8px;font-size:30px;font-weight:800;}
.page-header p{margin:0;color:#cfd9dd;font-size:15px;}

/* ---------- Steps nav ---------- */
.steps-nav{
  background:#fff;
  padding:18px 24px 0;
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--border);
}
.steps-track{
  display:flex;
  justify-content:space-between;
  max-width:1240px;
  margin:0 auto;
  flex-wrap:wrap;
  gap:8px 4px;
}
.step-dot{
  background:none;border:none;cursor:pointer;
  display:flex;align-items:center;gap:8px;
  padding:4px 6px 14px;
  font-family:inherit;
  color:var(--muted);
}
.step-dot .dot{
  width:26px;height:26px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;flex-shrink:0;
}
.step-dot .label{font-size:14px;font-weight:600;white-space:nowrap;}
.step-dot.upcoming{cursor:not-allowed;}
.step-dot.upcoming .dot{background:#eef1ee;color:#9aa7a0;}
.step-dot.upcoming .label{color:#9aa7a0;}
.step-dot.active .dot{background:var(--green);box-shadow:0 0 0 4px var(--green-soft);}
.step-dot.active .label{color:var(--navy);}
.step-dot.completed .dot{background:var(--navy);}
.step-dot.completed .dot::after{content:"✓";}
.step-dot.completed .dot > span{display:none;}
.steps-progress{height:4px;background:var(--border);margin-top:-1px;position:relative;}
.steps-progress-fill{height:4px;background:var(--green);width:0%;transition:width .25s ease;}

/* ---------- Layout ---------- */
.wizard-main{max-width:900px;margin:0 auto;padding:28px 20px 10px;}
.step-panel{animation:fadein .2s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

.notice{
  display:flex;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px 18px;
  font-size:14px;color:var(--text);
  margin-bottom:20px;
}
.notice svg{flex-shrink:0;color:var(--navy);}

.card{
  background:#fff;border-radius:16px;box-shadow:var(--shadow);
  padding:32px;margin-bottom:24px;border:1px solid #eef0ea;
}
.card-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.card-head .icon-badge{
  width:34px;height:34px;border-radius:8px;background:var(--green-soft);
  display:flex;align-items:center;justify-content:center;color:var(--navy);
}
.card h2{font-size:22px;margin:0;color:var(--navy);font-weight:800;}
.card > p.subtitle{margin:6px 0 26px;color:var(--muted);font-size:14.5px;}

.section-divider{
  display:flex;align-items:center;gap:12px;margin:28px 0 18px;
}
.section-divider .label{
  font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--navy);white-space:nowrap;
}
.section-divider .line{flex:1;height:1px;background:var(--green);opacity:.5;}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.form-grid.single{grid-template-columns:1fr;}
@media (max-width:640px){.form-grid{grid-template-columns:1fr;}}

.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.full{grid-column:1/-1;}
.form-group label{font-size:14px;font-weight:700;color:var(--navy);}
.form-group .hint{font-size:12.5px;color:var(--muted);font-style:italic;margin-top:2px;}
.req-mark{color:var(--required);font-weight:700;margin-left:2px;}

input[type=text],input[type=email],input[type=tel],input[type=date],
select,textarea{
  width:100%;padding:11px 14px;border:1px solid var(--border);
  border-radius:9px;font-size:14.5px;color:var(--text);
  background:#fff;font-family:inherit;
}
textarea{resize:vertical;min-height:90px;}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft);
}
input.invalid,select.invalid,textarea.invalid{
  border-color:var(--required)!important;background:#fff8f8;
}
.error-text{display:none;color:var(--required);font-size:12.5px;font-weight:600;}
.error-text.show{display:block;}

/* option cards (radio, big descriptive) */
.option-cards{display:flex;flex-direction:column;gap:10px;}
.option-card{
  display:flex;align-items:center;gap:14px;
  border:1.5px solid var(--border);border-radius:12px;padding:16px 18px;
  cursor:pointer;background:#fff;transition:.15s;
}
.option-card:hover{border-color:var(--green);}
.option-card .opt-icon{
  width:34px;height:34px;border-radius:8px;background:#f3f5f0;color:var(--navy);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.option-card .opt-text{flex:1;}
.option-card .opt-text strong{display:block;font-size:15px;color:var(--navy);}
.option-card .opt-text span{font-size:13px;color:var(--muted);}
.option-card input[type=radio]{width:18px;height:18px;accent-color:var(--green);flex-shrink:0;}
.option-card.is-selected{border-color:var(--green);background:var(--green-soft);}
.options-group.invalid .option-card{border-color:var(--required);}

/* compact tri/segmented buttons e.g. Yes/No */
.choice-row{display:flex;gap:10px;flex-wrap:wrap;}
.choice-btn{
  flex:1;min-width:110px;text-align:center;padding:11px 14px;
  border:1.5px solid var(--border);border-radius:9px;cursor:pointer;
  font-weight:600;font-size:14.5px;background:#fff;color:var(--text);
}
.choice-btn input{position:absolute;opacity:0;width:0;height:0;}
.choice-btn.is-selected{border-color:var(--navy);background:var(--navy);color:#fff;}
.options-group.invalid .choice-btn{border-color:var(--required);}

/* chip checkboxes */
.chip-group{display:flex;flex-wrap:wrap;gap:8px;}
.chip{
  border:1.5px solid var(--border);border-radius:8px;padding:8px 14px;
  font-size:13.5px;font-weight:600;cursor:pointer;background:#fff;color:var(--text);
}
.chip input{position:absolute;opacity:0;width:0;height:0;}
.chip.is-selected{border-color:var(--green);background:var(--green-soft);color:var(--navy-2);}
.chip-category{font-size:12px;font-weight:800;letter-spacing:.03em;color:var(--navy);margin:14px 0 8px;}
.chip-category:first-child{margin-top:0;}

/* vertical radio list */
.radio-list{display:flex;flex-direction:column;gap:10px;}
.radio-option{
  display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);
  border-radius:9px;padding:13px 16px;cursor:pointer;font-size:14.5px;font-weight:600;
}
.radio-option input{width:16px;height:16px;accent-color:var(--green);}
.radio-option.is-selected{border-color:var(--green);background:var(--green-soft);}

/* info boxes */
.info-box{background:var(--info-bg);border-left:3px solid var(--info-border);border-radius:8px;padding:14px 16px;font-size:13.5px;margin-bottom:18px;display:flex;gap:10px;align-items:flex-start;}
.warn-box{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:14px 16px;font-size:13.5px;margin-bottom:18px;}
.danger-box{background:var(--danger-bg);border:1.5px solid var(--danger-border);border-radius:8px;padding:14px 16px;font-size:13.5px;margin-bottom:18px;}
.subtle-box{background:#f3f6f1;border-radius:8px;padding:12px 16px;font-size:13px;color:var(--muted);}

/* consent blocks */
.consent-item{background:#f6f9f4;border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:14px;}
.consent-item h3{margin:0 0 6px;font-size:15.5px;color:var(--navy);}
.consent-item p{margin:0 0 12px;font-size:13.5px;color:var(--muted);}
.consent-check{display:flex;align-items:flex-start;gap:10px;font-weight:600;font-size:14px;cursor:pointer;}
.consent-check input{margin-top:2px;width:17px;height:17px;accent-color:var(--green);flex-shrink:0;}

.signature-box{border:1.5px dashed var(--border);border-radius:10px;padding:22px;background:#fbfcfa;}
.signature-box .sig-label{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--navy);margin-bottom:10px;}
.signature-box input[type=text]{border:none;border-bottom:1.5px solid var(--navy);border-radius:0;font-size:22px;padding:4px 2px 8px;font-family:'Brush Script MT',cursive,inherit;}
.signature-box input[type=text]:focus{box-shadow:none;}

/* bottom nav */
.bottom-nav{
  max-width:900px;margin:10px auto 0;padding:18px 20px 30px;
  display:flex;align-items:center;justify-content:space-between;
}
.bottom-nav .step-count{color:var(--muted);font-size:14px;font-weight:600;}
.btn{
  border:none;border-radius:999px;padding:13px 26px;font-size:15px;font-weight:700;
  cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:8px;
}
.btn-primary{background:var(--green);color:#fff;}
.btn-primary:hover{background:var(--green-dark);}
.btn-ghost{background:none;color:var(--navy);padding:13px 8px;}
.btn-ghost:hover{text-decoration:underline;}

/* toast */
#toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--navy);color:#fff;padding:13px 22px;border-radius:9px;
  font-size:14px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.2);
  opacity:0;pointer-events:none;transition:.25s;z-index:100;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* confirmation */
.confirm-wrap{max-width:760px;margin:0 auto;padding:60px 20px 30px;text-align:center;}
.confirm-check{
  width:76px;height:76px;border-radius:50%;border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:var(--green);
}
.confirm-wrap h1{font-size:32px;color:var(--navy);margin:0 0 14px;font-weight:800;}
.confirm-wrap p{color:var(--muted);font-size:16px;max-width:560px;margin:0 auto 8px;}
.confirm-wrap p.bold{color:var(--navy);font-weight:700;margin:16px auto 30px;}
.next-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:32px;text-align:left;margin-bottom:26px;}
.next-card h2{font-size:20px;color:var(--navy);margin:0 0 18px;}
.next-card ol{margin:0;padding-left:20px;color:var(--text);}
.next-card li{margin-bottom:12px;font-size:15px;}
.contact-pill{
  display:inline-flex;align-items:center;gap:26px;background:#fff;border-radius:999px;
  box-shadow:var(--shadow);padding:14px 28px;margin-bottom:26px;font-weight:700;color:var(--navy);font-size:14.5px;flex-wrap:wrap;justify-content:center;
}
.contact-pill span{display:flex;align-items:center;gap:8px;}

/* footer */
footer.site-footer{background:var(--navy);color:#cfd7da;padding:28px 32px 20px;margin-top:20px;}
.footer-top{display:flex;justify-content:space-between;align-items:center;max-width:1240px;margin:0 auto;flex-wrap:wrap;gap:12px;}
.footer-top .links{display:flex;gap:26px;font-weight:700;color:#fff;font-size:14px;}
.footer-divider{border-top:1px solid #37505d;margin:18px auto 16px;max-width:1240px;}
.footer-crisis{text-align:center;color:var(--green);font-weight:800;font-size:14px;}

@media (max-width:700px){
  .steps-track{overflow-x:auto;justify-content:flex-start;}
  .contact-pill{flex-direction:column;gap:10px;}
}
