:root{
  --green:#1A6B3A;
  --green-dark:#0F3D22;
  --green-bright:#28A05A;
  --green-tint:#E8F5EE;
  --green-tint2:#F2FAF5;
  --ink:#0D1A12;
  --muted:#56706A;
  --line:#D6E8DC;
  --white:#ffffff;
  --shadow:0 10px 30px rgba(15,61,34,.10);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,var(--green-tint) 0%,var(--green-tint2) 220px,#fff 600px);
  line-height:1.5;
}
.page{max-width:760px;margin:0 auto;padding:24px 16px 48px}

/* Brand bar */
.brandbar{display:flex;align-items:baseline;gap:12px;padding:6px 4px 18px}
.logo{font-size:24px;font-weight:800;color:var(--green-dark);letter-spacing:-.02em}
.logo span{color:var(--green-bright)}
.tagline{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}

/* Card */
.card{background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:26px 26px 22px;margin-bottom:18px}
.card-head .pill{display:inline-block;background:var(--green-tint);color:var(--green-dark);font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin-bottom:10px}
h1{font-size:26px;color:var(--green-dark);margin:2px 0 8px;line-height:1.15}
.lead{color:var(--muted);margin:0;font-size:15px}
.sub{color:var(--muted);font-size:14px;margin:2px 0 14px}

/* Progress */
.progress{display:flex;gap:6px;margin:22px 0 8px;flex-wrap:wrap}
.progress .step{flex:1;min-width:120px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);
  padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600}
.progress .step span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--green-tint);color:var(--green-dark);font-size:12px;font-weight:700;flex:none}
.progress .step.active{border-color:var(--green-bright);color:var(--green-dark);background:var(--green-tint2)}
.progress .step.active span{background:var(--green);color:#fff}
.progress .step.done span{background:var(--green-bright);color:#fff}

/* Sections / fields */
.fstep{padding-top:14px;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.fstep.hidden,.hidden{display:none}
h2{font-size:18px;color:var(--green-dark);margin:6px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--green-tint)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.field.span2{grid-column:1 / -1}
.field em{font-weight:400;color:var(--muted);font-style:normal}
.field input,.field textarea{font:inherit;font-weight:400;padding:11px 12px;border:1px solid var(--line);border-radius:10px;
  background:#fff;color:var(--ink);transition:border-color .15s, box-shadow .15s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--green-bright);box-shadow:0 0 0 3px rgba(40,160,90,.15)}
.field.required>span:after{content:" *";color:var(--green-bright)}

/* Question groups (radios) */
.qgroup{margin:16px 0}
.q{font-size:14px;font-weight:600;margin:0 0 8px}
.choices{display:flex;gap:10px;flex-wrap:wrap}
.choices label{display:inline-flex;align-items:center;gap:7px;font-size:14px;border:1px solid var(--line);
  padding:9px 14px;border-radius:10px;cursor:pointer;background:#fff;transition:.15s}
.choices label:hover{border-color:var(--green-bright)}
.choices input{accent-color:var(--green)}

.note{background:var(--green-tint2);border-left:4px solid var(--green-bright);padding:10px 14px;border-radius:0 8px 8px 0;
  font-size:13px;color:var(--muted);margin:14px 0}

/* Packages */
.packages{display:grid;gap:10px;margin:6px 0 16px}
.pkg{display:block;cursor:pointer}
.pkg input{position:absolute;opacity:0}
.pkg-body{border:1.5px solid var(--line);border-radius:12px;padding:13px 16px;transition:.15s}
.pkg:hover .pkg-body{border-color:var(--green-bright)}
.pkg input:checked + .pkg-body{border-color:var(--green);background:var(--green-tint2);box-shadow:0 0 0 3px rgba(40,160,90,.12)}
.pkg-top{display:flex;justify-content:space-between;align-items:baseline}
.pkg-top strong{font-size:15px;color:var(--green-dark)}
.pkg .price{font-size:18px;font-weight:800;color:var(--green)}
.pkg-body p{margin:5px 0 0;font-size:13px;color:var(--muted)}

/* Signature */
.sigwrap{margin:18px 0 6px}
.siglabel{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
#sigpad{width:100%;max-width:100%;height:160px;border:1px dashed var(--green-bright);border-radius:12px;background:#fff;touch-action:none;display:block}
.sigtools{margin-top:8px}

/* Consent */
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:16px;
  background:var(--green-tint2);padding:14px;border-radius:12px}
.consent input{margin-top:3px;accent-color:var(--green);width:18px;height:18px;flex:none}
.consent.required>span:after{content:" *";color:var(--green-bright)}

/* Nav + buttons */
.nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.btn{background:var(--green);color:#fff;border:none;font:inherit;font-weight:700;font-size:15px;padding:13px 26px;
  border-radius:10px;cursor:pointer;transition:.15s;margin-left:auto}
.btn:hover{background:var(--green-dark)}
.btn-ghost{background:#fff;color:var(--green-dark);border:1.5px solid var(--line);font:inherit;font-weight:600;
  padding:12px 20px;border-radius:10px;cursor:pointer}
.btn-ghost:hover{border-color:var(--green-bright)}

.formerror{background:#fdecec;border:1px solid #f3c2c2;color:#9c2a2a;padding:10px 14px;border-radius:10px;font-size:13.5px;margin-top:14px}

/* Thank you */
.thanks{text-align:center;padding:46px 26px}
.thanks .tick{width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;font-size:32px;
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.thanks p{color:var(--muted)}
.pay{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);text-align:left}
.pay h2{font-size:18px;color:var(--green-dark);border:0;margin:0 0 6px;padding:0}
.paysub{color:var(--muted);font-size:14px;margin:0 0 14px}
.paybtns{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.paybtn{display:block;text-align:center;background:var(--green);color:#fff;text-decoration:none;font-weight:700;
  font-size:15px;padding:14px 18px;border-radius:10px;transition:.15s}
.paybtn:hover{background:var(--green-dark)}
.paybtn-ghost{background:#fff;color:var(--green-dark);border:1.5px solid var(--line);font-weight:600}
.paybtn-ghost:hover{border-color:var(--green-bright);background:var(--green-tint2)}

.foot{font-size:11.5px;color:var(--muted);text-align:center;padding:6px 10px;line-height:1.6}

@media(max-width:560px){
  .grid{grid-template-columns:1fr}
  .card{padding:20px 16px}
  h1{font-size:22px}
}
