:root{
  --imp-azul-escuro:#0A2540;
  --imp-azul:#1AA7EC;
  --imp-azul-2:#0E6BA8;
  --imp-branco:#FFFFFF;
  --imp-bg:#F4F8FC;
  --imp-cinza:#E6EEF6;
  --imp-text:#1B2A41;
  --imp-muted:#6B7B92;
  --imp-erro:#D63F3F;
  --imp-ok:#2BB673;
  --imp-radius:14px;
  --imp-radius-sm:10px;
  --imp-shadow:0 10px 30px rgba(10,37,64,.10);
  --imp-shadow-strong:0 18px 48px rgba(10,37,64,.22);
  --imp-font:'Poppins','Inter',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
body.imp-checkout{margin:0;font-family:var(--imp-font);background:var(--imp-bg);color:var(--imp-text);}
.imp-top{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:var(--imp-branco);border-bottom:1px solid var(--imp-cinza);}
.imp-logo{display:flex;flex-direction:column;text-decoration:none;color:var(--imp-azul-escuro);}
.imp-logo strong{font-size:24px;letter-spacing:-.5px;color:var(--imp-azul-escuro);}
.imp-logo span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--imp-azul);}
.imp-secure{font-size:13px;color:var(--imp-muted);}
.imp-wrap{max-width:880px;margin:32px auto;padding:0 16px;}
.imp-steps{display:flex;list-style:none;padding:0;margin:0 0 24px;gap:8px;counter-reset:step;}
.imp-steps li{flex:1;padding:14px 12px;background:var(--imp-branco);border-radius:var(--imp-radius-sm);border:1px solid var(--imp-cinza);text-align:center;font-size:13px;font-weight:600;color:var(--imp-muted);position:relative;counter-increment:step;}
.imp-steps li::before{content:counter(step);display:inline-block;width:22px;height:22px;line-height:22px;border-radius:50%;background:var(--imp-cinza);color:var(--imp-muted);margin-right:6px;font-size:12px;}
.imp-steps li.active{color:var(--imp-azul-escuro);border-color:var(--imp-azul);box-shadow:var(--imp-shadow);}
.imp-steps li.active::before{background:var(--imp-azul);color:#fff;}
.imp-steps li.done{color:var(--imp-ok);}
.imp-steps li.done::before{background:var(--imp-ok);color:#fff;content:"✓";}
form#formContrato{background:var(--imp-branco);border-radius:var(--imp-radius);padding:32px;box-shadow:var(--imp-shadow);}
.step{display:none;animation:fade .35s ease;}
.step.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
h2{margin:0 0 6px;color:var(--imp-azul-escuro);font-size:24px;}
.lead{color:var(--imp-muted);margin:0 0 20px;}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.grid .full{grid-column:1/-1;}
label{display:flex;flex-direction:column;font-size:13px;font-weight:600;color:var(--imp-text);gap:6px;}
input,select,textarea{font:inherit;padding:12px 14px;border:1.5px solid var(--imp-cinza);border-radius:var(--imp-radius-sm);background:#fff;color:var(--imp-text);outline:none;transition:border .2s,box-shadow .2s;}
input:focus,select:focus,textarea:focus{border-color:var(--imp-azul);box-shadow:0 0 0 4px rgba(26,167,236,.15);}
input[aria-invalid="true"]{border-color:var(--imp-erro);}
.dropzone{margin-top:18px;border:2.5px dashed var(--imp-azul);border-radius:var(--imp-radius);padding:28px;text-align:center;background:#F0F8FE;cursor:pointer;transition:.2s;}
.dropzone.drag{background:#DDF0FB;transform:scale(1.01);}
.dropzone.ok{background:#E6F8EF;border-color:var(--imp-ok);}
.dz-icon{font-size:36px;}
.dz-pick{background:none;border:none;color:var(--imp-azul);text-decoration:underline;cursor:pointer;font-weight:700;}
.step-nav{display:flex;justify-content:space-between;margin-top:28px;gap:12px;}
.step-nav button{padding:14px 22px;border-radius:var(--imp-radius-sm);border:none;font-weight:700;cursor:pointer;font-size:15px;transition:.2s;}
.step-nav .prev{background:var(--imp-cinza);color:var(--imp-text);}
.step-nav .prev:hover{background:#d6dfeb;}
.step-nav .next{background:var(--imp-azul);color:#fff;box-shadow:var(--imp-shadow);}
.step-nav .next:hover{background:var(--imp-azul-2);transform:translateY(-1px);}
.step-nav .cta{background:var(--imp-azul);color:#fff;padding:16px 28px;font-size:16px;border-radius:var(--imp-radius);box-shadow:var(--imp-shadow-strong);}
.step-nav .cta:hover{background:var(--imp-azul-2);transform:translateY(-2px);box-shadow:0 24px 56px rgba(26,167,236,.35);}
.radio-group{border:none;padding:0;margin:0 0 18px;display:flex;gap:12px;}
.radio-group legend{font-weight:700;margin-bottom:10px;display:block;width:100%;}
.radio-card{flex:1;display:block;border:2px solid var(--imp-cinza);border-radius:var(--imp-radius);padding:14px;text-align:center;cursor:pointer;font-weight:600;}
.radio-card input{display:none;}
.radio-card:has(input:checked){border-color:var(--imp-azul);background:#F0F8FE;color:var(--imp-azul-escuro);}
.qtd.hidden,.hidden{display:none!important;}
.qtd{margin:0 0 16px;}
.dep{border:1.5px solid var(--imp-cinza);border-radius:var(--imp-radius);padding:18px;margin-bottom:14px;background:#FAFCFE;}
.dep legend{font-weight:700;color:var(--imp-azul-escuro);padding:0 8px;}
.contract-box{max-height:280px;overflow-y:auto;border:1.5px solid var(--imp-cinza);border-radius:var(--imp-radius);padding:18px;background:#FAFCFE;font-size:14px;line-height:1.6;}
.contract-box h3{margin-top:0;color:var(--imp-azul-escuro);}
.contract-box .nota{margin-top:14px;padding:12px;border-left:4px solid var(--imp-azul);background:#F0F8FE;border-radius:8px;}
.check-card{display:flex;align-items:flex-start;gap:10px;margin:18px 0;padding:14px;background:#F0F8FE;border-radius:var(--imp-radius);font-weight:600;}
.check-card input{margin-top:3px;width:18px;height:18px;accent-color:var(--imp-azul);}
.link{background:none;border:none;color:var(--imp-azul);text-decoration:underline;cursor:pointer;font:inherit;padding:0;}
.signature-area{margin-top:18px;}
#sigPad{display:block;width:100%;max-width:600px;height:180px;border:2px solid var(--imp-cinza);border-radius:var(--imp-radius);background:#fff;cursor:crosshair;touch-action:none;}
.sig-actions{margin-top:8px;}
.btn-ghost{background:transparent;border:1.5px solid var(--imp-cinza);padding:8px 14px;border-radius:var(--imp-radius-sm);cursor:pointer;font:inherit;}
.pay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px;}
.pay-card{display:block;border:2px solid var(--imp-cinza);border-radius:var(--imp-radius);padding:18px;text-align:center;cursor:pointer;font-weight:600;transition:.2s;}
.pay-card input{display:none;}
.pay-card:has(input:checked){border-color:var(--imp-azul);background:#F0F8FE;}
.pay-details{padding:18px;background:#F4F8FC;border-radius:var(--imp-radius);min-height:60px;font-size:14px;color:var(--imp-muted);}
.modal{position:fixed;inset:0;background:rgba(10,37,64,.55);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;}
.modal[hidden]{display:none;}
.modal-box{background:#fff;border-radius:var(--imp-radius);max-width:640px;width:100%;max-height:85vh;overflow:auto;padding:32px;position:relative;box-shadow:var(--imp-shadow-strong);}
.modal-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:28px;cursor:pointer;color:var(--imp-muted);}
.modal h3{color:var(--imp-azul-escuro);margin-top:0;}
.modal .cta{display:block;width:100%;margin-top:18px;background:var(--imp-azul);color:#fff;border:none;padding:14px;border-radius:var(--imp-radius-sm);font-weight:700;cursor:pointer;}
.imp-footer{text-align:center;padding:28px;color:var(--imp-muted);font-size:13px;}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--imp-azul-escuro);color:#fff;padding:12px 22px;border-radius:var(--imp-radius);box-shadow:var(--imp-shadow-strong);z-index:99999;animation:slide .3s;}
.toast.err{background:var(--imp-erro);}
@keyframes slide{from{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
@media(max-width:768px){
  .grid{grid-template-columns:1fr;}
  .pay-grid{grid-template-columns:1fr;}
  form#formContrato{padding:20px;}
  .imp-steps li{font-size:11px;padding:10px 6px;}
  .imp-steps li::before{display:block;margin:0 auto 4px;}
}

/* === Patch logo oficial v2 === */
.imp-top{background:#0A2540 !important;border-bottom:none !important;color:#fff !important;padding:14px 28px !important;display:flex;justify-content:space-between;align-items:center;}
.imp-logo, .imp-logo strong, .imp-logo span{display:none !important;}
.imp-logo-img{display:flex !important;align-items:center;text-decoration:none;}
.imp-logo-img img{height:54px !important;width:auto !important;max-width:240px !important;display:block;}
.imp-secure{color:#cfe6f4 !important;}
@media(max-width:768px){
  .imp-logo-img img{height:42px !important;}
  .imp-top{padding:10px 16px !important;}
  .imp-secure{font-size:11px !important;}
}
