/* Application wizard. Builds on tokens, nav, buttons and .lang-switch from landing.css */
body{background:var(--off-white);}
.app-wrap{max-width:820px;margin:0 auto;padding:108px 20px 80px;}
.app-intro{text-align:center;margin-bottom:28px;}
.app-intro h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,2.8rem);font-weight:900;line-height:1.15;margin-bottom:12px;}
.app-intro h1 em{color:var(--blue);}
.app-intro p{font-size:16px;color:var(--text-mid);line-height:1.75;max-width:620px;margin:0 auto;}
.app-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px;}
.app-facts span{background:var(--white);border:1px solid var(--border);border-radius:100px;padding:6px 14px;font-size:13px;font-weight:600;color:var(--text-mid);}

/* Progress */
.progress-wrap{position:sticky;top:66px;z-index:50;background:var(--off-white);padding:14px 0 12px;}
.progress{height:6px;background:var(--grey-light);border-radius:100px;overflow:hidden;}
.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--blue-light));transition:width 0.35s ease;}
.progress-label{margin-top:8px;font-size:12px;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-light);}
.progress-label b{color:var(--blue);}

/* Card + steps */
.app-card{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:40px 40px 32px;box-shadow:0 8px 40px rgba(0,0,0,0.05);}
.app-step{display:none;}
.app-step.active{display:block;animation:fadeUp 0.35s ease both;}
.step-title{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:700;margin-bottom:6px;}
.step-sub{font-size:14px;color:var(--text-light);line-height:1.7;margin-bottom:26px;}
.block{border:none;margin:0 0 30px;padding:0;min-width:0;}
.block legend{display:block;width:100%;font-size:11px;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--blue);padding:0 0 10px;margin-bottom:18px;border-bottom:1px solid var(--blue-border);}
.info-box{background:var(--blue-pale);border:1px solid var(--blue-border);border-radius:10px;padding:16px 18px;font-size:14px;color:var(--text-mid);line-height:1.7;margin-bottom:18px;}
.info-box strong{color:var(--text);}
.decl-text{font-size:14px;color:var(--text-mid);line-height:1.75;background:var(--off-white);border-radius:10px;padding:16px 18px;margin-bottom:14px;}

/* Questions */
.q{margin-bottom:18px;}
.q-label{display:block;font-size:14px;font-weight:600;color:var(--text);line-height:1.55;margin-bottom:8px;}
.q-hint{display:block;font-size:12.5px;color:var(--text-light);margin:-4px 0 8px;line-height:1.5;}
.q input:not([type=radio]):not([type=checkbox]),.q select,.q textarea{width:100%;padding:12px 15px;background:var(--off-white);border:1.5px solid var(--border);border-radius:9px;font-family:'Inter',sans-serif;font-size:15px;color:var(--text);outline:none;transition:border-color 0.2s,background 0.2s,box-shadow 0.2s;}
.q textarea{min-height:120px;resize:vertical;line-height:1.6;}
.q input:focus,.q select:focus,.q textarea:focus{border-color:var(--blue);background:var(--white);box-shadow:0 0 0 3px rgba(0,102,255,0.1);}
.q input[readonly]{background:var(--grey-light);color:var(--text-mid);}
.q.invalid .q-label{color:#c0341a;}
.q.invalid input:not([type=radio]):not([type=checkbox]),.q.invalid select,.q.invalid textarea{border-color:#e03a1a;background:rgba(224,58,26,0.04);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px;}
.opts{display:flex;flex-wrap:wrap;gap:8px;}
.opts.cols3{display:grid;grid-template-columns:repeat(3,1fr);}
.opt{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid var(--border);border-radius:9px;background:var(--off-white);cursor:pointer;font-size:14px;color:var(--text-mid);transition:all 0.15s;}
.opt:hover{border-color:var(--blue-border);}
.opt input{accent-color:var(--blue);width:16px;height:16px;margin:0;}
.opt:has(input:checked){border-color:var(--blue);background:var(--blue-pale);color:var(--blue);font-weight:600;}
.q.invalid .opt{border-color:rgba(224,58,26,0.45);}
.agree{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--text);line-height:1.6;cursor:pointer;}
.agree input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue);flex-shrink:0;}

/* Repeatable rows */
.rows-head,.row{display:grid;grid-template-columns:var(--cols) 34px;gap:8px;align-items:center;}
.rows-head{font-size:11px;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-light);margin-bottom:6px;}
.row{margin-bottom:8px;}
.row input,.row select{padding:10px 12px !important;font-size:14px !important;}
.row-remove{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--white);color:var(--text-light);font-size:18px;cursor:pointer;line-height:1;}
.row-remove:hover{color:#c0341a;border-color:rgba(224,58,26,0.4);}
.add-row{margin-top:4px;background:none;border:1.5px dashed var(--blue-border);color:var(--blue);border-radius:9px;padding:9px 16px;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}
.add-row:hover{background:var(--blue-pale);}
.add-row[disabled]{opacity:0.4;cursor:not-allowed;}

/* Money */
.money-row{display:grid;grid-template-columns:1fr 170px;gap:16px;align-items:center;}
.money-row .q-label{margin-bottom:0;}
.money-total input{font-weight:800;}

/* Nav buttons + status */
.wizard-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid var(--border);}
.wizard-nav button{font-family:'Inter',sans-serif;}
.wizard-nav .btn-outline-dark[hidden]{display:none;}
.wizard-nav .btn-primary{margin-left:auto;}
.wizard-nav .btn-primary:disabled{opacity:0.6;cursor:wait;transform:none;}
.draft-note{text-align:center;font-size:12px;color:var(--text-light);margin-top:14px;}
.app-error{display:none;margin-top:18px;padding:16px 18px;border-radius:10px;background:rgba(224,58,26,0.07);border:1.5px solid rgba(224,58,26,0.25);color:#8f2410;font-size:14px;line-height:1.65;}
.app-error.show{display:block;}
.app-error a{color:#8f2410;font-weight:700;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}

/* Success */
.app-success{display:none;text-align:center;}
.app-success.show{display:block;}
.app-success h2{font-family:'Playfair Display',serif;font-size:2rem;margin:18px 0 12px;}
.app-success p{font-size:16px;color:var(--text-mid);line-height:1.8;max-width:560px;margin:0 auto 14px;}
.app-success .next-steps{text-align:left;max-width:520px;margin:24px auto;padding:0;list-style:none;counter-reset:ns;}
.app-success .next-steps li{position:relative;padding:0 0 14px 42px;font-size:15px;color:var(--text-mid);line-height:1.6;}
.app-success .next-steps li::before{counter-increment:ns;content:counter(ns);position:absolute;left:0;top:-2px;width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;}

@media(max-width:640px){
  .app-wrap{padding:92px 14px 60px;}
  .progress-wrap{top:54px;}
  .app-card{padding:26px 18px 22px;border-radius:14px;}
  .grid2,.grid3,.money-row{grid-template-columns:1fr;}
  .opts.cols3{grid-template-columns:1fr 1fr;}
  .rows-head{display:none;}
  .row{grid-template-columns:1fr 34px;padding:10px;border:1px solid var(--border);border-radius:10px;}
  .row > :not(.row-remove){grid-column:1;}
  .row-remove{grid-column:2;grid-row:1;}
}
