/* =====================================================
   Préstamo Líder — Rediseño fintech (variante AZUL, color
   tomado del isotipo del logo; el verde se conserva como
   acento de éxito/confirmación en toda la interfaz)
   ===================================================== */

:root{
  --pl-green-900:#043d2e;
  --pl-green-800:#065f46;
  --pl-green-700:#047857;
  --pl-green-600:#059669;
  --pl-green-500:#10b981;
  --pl-green-400:#34d399;
  --pl-green-300:#6ee7b7;
  --pl-green-100:#e7fbf3;
  --pl-green-50:#f3fdf9;

  --pl-blue-900:#262b57;
  --pl-blue-800:#2f2f6b;
  --pl-blue-700:#353279;
  --pl-blue-600:#53518d;
  --pl-blue-500:#7270a1;
  --pl-blue-400:#9a98bc;
  --pl-blue-300:#bebdd4;
  --pl-blue-100:#ebeaf2;
  --pl-blue-50:#f7f7fa;

  --pl-ink:#0b1f19;
  --pl-ink-soft:#3f5c53;
  --pl-red:#e11d48;
  --pl-red-bg:#fef2f2;
  --pl-amber:#b45309;
  --pl-amber-bg:#fffbeb;

  --pl-radius-lg:20px;
  --pl-radius-md:14px;
  --pl-radius-sm:10px;
  --pl-shadow-soft:0 10px 30px rgba(4,61,46,.10);
  --pl-shadow-card:0 2px 10px rgba(4,61,46,.06);
  --pl-font:'Manrope','Segoe UI',system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--pl-font);
  color:var(--pl-ink);
  background:var(--pl-blue-50);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 20px;}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:999px;font-weight:700;font-size:1rem;
  padding:14px 28px;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  font-family:inherit;
}
.btn:disabled{opacity:.55;cursor:not-allowed;}
.btn:active:not(:disabled){transform:scale(.98);}
.btn-primary{
  background:linear-gradient(135deg,var(--pl-blue-600),var(--pl-blue-800));
  color:#fff;box-shadow:0 8px 20px rgba(53,50,121,.35);
}
.btn-primary:hover:not(:disabled){box-shadow:0 10px 26px rgba(53,50,121,.45);}
.btn-outline{
  background:#fff;color:var(--pl-blue-700);border:2px solid var(--pl-blue-300);
}
.btn-outline:hover:not(:disabled){border-color:var(--pl-blue-500);}
.btn-ghost{background:transparent;color:var(--pl-ink-soft);}
.btn-block{width:100%;}
.btn-lg{padding:16px 32px;font-size:1.05rem;}

/* ---------- Hero / landing ---------- */
.pl-header{
  position:sticky;top:0;z-index:40;background:#ffffff;
  border-bottom:1px solid rgba(4,61,46,.06);
  height:74px;
}
.pl-header .container{display:flex;align-items:center;justify-content:space-between;padding:5px 20px;height:100%;}
.pl-logo{font-weight:800;font-size:1.25rem;color:var(--pl-blue-800);letter-spacing:-.02em;flex-shrink:0;}
.pl-logo span{color:var(--pl-green-500);}
.pl-logo-img{height:64px !important;width:auto !important;max-width:320px;display:block;flex-shrink:0;}
.pl-header .btn{flex-shrink:0;}
@media (max-width:560px){
  .pl-header{height:62px;}
  .pl-logo-img{height:52px !important;max-width:260px;}
}

.pl-hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(160deg,var(--pl-blue-900) 0%,var(--pl-blue-700) 55%,var(--pl-green-400) 130%);
  padding:64px 0 100px;
}
.pl-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(600px 300px at 85% 10%, rgba(255,255,255,.12), transparent 60%);
  pointer-events:none;
}
.pl-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;position:relative;z-index:1;}
.pl-eyebrow{
  display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25);padding:6px 14px;border-radius:999px;
  font-size:.82rem;font-weight:700;letter-spacing:.02em;margin-bottom:18px;
}
.pl-hero h1{font-size:clamp(2rem,4vw,2.9rem);line-height:1.12;font-weight:800;margin:0 0 18px;letter-spacing:-.02em;}
.pl-hero h1 em{font-style:normal;color:var(--pl-blue-300);}
.pl-hero p.lead{font-size:1.15rem;color:rgba(255,255,255,.85);max-width:520px;margin:0 0 28px;line-height:1.55;}
.pl-hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.pl-hero-note{margin-top:22px;font-size:.85rem;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:8px;}

.pl-hero-card{
  background:#fff;border-radius:var(--pl-radius-lg);padding:28px;color:var(--pl-ink);
  box-shadow:0 25px 60px rgba(0,0,0,.25);
}
.pl-hero-card .stat{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px dashed rgba(4,61,46,.12);}
.pl-hero-card .stat:last-child{border-bottom:none;}
.pl-hero-card .stat b{color:var(--pl-blue-700);font-size:1.1rem;}

.pl-trust-strip{background:#fff;border-bottom:1px solid rgba(4,61,46,.06);}
.pl-trust-strip .container{display:flex;flex-wrap:wrap;gap:28px;justify-content:center;padding:18px 20px;font-size:.85rem;color:var(--pl-ink-soft);font-weight:600;}
.pl-trust-strip .item{display:flex;align-items:center;gap:8px;}

.pl-section{padding:72px 0;}
.pl-section h2{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;text-align:center;margin:0 0 12px;letter-spacing:-.02em;}
.pl-section p.section-lead{text-align:center;color:var(--pl-ink-soft);max-width:560px;margin:0 auto 42px;font-size:1.05rem;}

.pl-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.pl-benefit-card{
  background:#fff;border-radius:var(--pl-radius-md);padding:26px;box-shadow:var(--pl-shadow-card);
  border:1px solid rgba(4,61,46,.06);
}
.pl-benefit-card .icon{
  width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--pl-green-100),var(--pl-green-300));color:var(--pl-green-800);
  font-size:1.35rem;margin-bottom:14px;
}
.pl-benefit-card h3{margin:0 0 8px;font-size:1.05rem;}
.pl-benefit-card p{margin:0;color:var(--pl-ink-soft);font-size:.95rem;line-height:1.5;}

.pl-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:pl-step;}
.pl-step-card{position:relative;background:#fff;border-radius:var(--pl-radius-md);padding:24px 20px;border:1px solid rgba(4,61,46,.06);}
.pl-step-card::before{
  counter-increment:pl-step;content:counter(pl-step);
  width:34px;height:34px;border-radius:50%;background:var(--pl-blue-700);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:14px;
}
.pl-step-card h4{margin:0 0 6px;font-size:.98rem;}
.pl-step-card p{margin:0;font-size:.88rem;color:var(--pl-ink-soft);}

.pl-faq{max-width:760px;margin:0 auto;}
.pl-faq-cat{margin:26px 0 4px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-blue-700);}
.pl-faq-cat:first-child{margin-top:0;}
.pl-faq-item{border-bottom:1px solid rgba(4,61,46,.1);}
.pl-faq-q{
  width:100%;text-align:left;background:none;border:none;padding:18px 4px;font-weight:700;font-size:1rem;
  cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--pl-ink);font-family:inherit;
}
.pl-faq-q .chev{transition:transform .2s ease;color:var(--pl-green-600);}
.pl-faq-item.open .chev{transform:rotate(180deg);}
.pl-faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;color:var(--pl-ink-soft);font-size:.94rem;line-height:1.55;}
.pl-faq-item.open .pl-faq-a{max-height:500px;padding-bottom:16px;}

.pl-footer{background:var(--pl-blue-900);color:rgba(255,255,255,.75);padding:32px 0;font-size:.85rem;text-align:center;}
.pl-footer strong{color:#fff;}
.pl-footer-grid{
  display:flex;flex-wrap:wrap;justify-content:center;gap:36px 56px;
  text-align:left;margin:0 0 28px;padding-bottom:28px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.pl-footer-col h4{
  color:var(--pl-green-400);font-size:.85rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;margin:0 0 12px;
}
.pl-footer-col p{margin:0 0 10px;line-height:1.6;font-size:1.05rem;font-weight:600;color:#fff;}
.pl-footer-col a{color:#fff;text-decoration:none;}
.pl-footer-col a:hover{color:var(--pl-green-400);}
.pl-footer-social{display:flex;gap:12px;margin-top:4px;}
.pl-footer-social a{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;font-size:1.15rem;
  transition:background .15s ease,transform .15s ease;
}
.pl-footer-social a:hover{background:var(--pl-green-600);transform:translateY(-2px);}
.pl-footer-fiscal{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:22px;margin-bottom:24px;
}
.pl-footer-fiscal img{max-height:58px;width:auto;border-radius:4px;}
.pl-footer-legal{
  font-size:.7rem;line-height:1.6;color:rgba(255,255,255,.5);
  max-width:880px;margin:0 auto 18px;text-align:center;
}

/* ---------- Wizard (formulario) ---------- */
.pl-form-section{
  background:linear-gradient(180deg,var(--pl-blue-100),var(--pl-blue-50));
  padding:72px 0 90px;
}
.pl-wizard{
  max-width:640px;margin:0 auto;background:#fff;border-radius:var(--pl-radius-lg);
  box-shadow:var(--pl-shadow-soft);overflow:hidden;border:1px solid rgba(4,61,46,.06);
  position:relative;
}

/* Overlay de envío (paso 5): cubre todo el wizard mientras se espera la
   respuesta del envío final, con un spinner grande y una frase que va
   rotando — el envío ahora puede tardar varios segundos (ver demora
   agregada entre los dos webservices de riesgo en enviarapi-v2.php), y
   este overlay evita que el formulario se vea "colgado" mientras tanto. */
.pl-submit-overlay{
  display:none; position:absolute; inset:0; z-index:50;
  background:linear-gradient(160deg,var(--pl-blue-50),var(--pl-green-50));
  flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:40px 30px;
}
.pl-submit-overlay.show{ display:flex; }
.pl-submit-overlay .pl-submit-spinner{
  width:52px;height:52px;border:4px solid rgba(53,50,121,.15);border-top-color:var(--pl-blue-700);
  border-radius:50%;animation:pl-spin .8s linear infinite;margin-bottom:24px;flex-shrink:0;
}
.pl-submit-overlay p{
  margin:0;font-size:.98rem;font-weight:700;color:var(--pl-ink);max-width:320px;line-height:1.5;
}
.pl-submit-overlay p i{color:var(--pl-blue-700);margin-right:4px;}
.pl-wizard-head{
  padding:26px 30px 0;
}
.pl-wizard-head h2{font-size:1.35rem;margin:0 0 4px;text-align:left;}
.pl-wizard-head p{margin:0 0 20px;color:var(--pl-ink-soft);font-size:.92rem;}

.pl-progress{display:flex;gap:6px;padding:0 30px 22px;}
.pl-progress .bar{flex:1;height:5px;border-radius:99px;background:rgba(4,61,46,.1);overflow:hidden;}
.pl-progress .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pl-blue-500),var(--pl-blue-700));transition:width .3s ease;}

.pl-wizard-body{padding:6px 30px 30px;}
/* Alto mínimo estable: evita que el formulario "suba" o "baje" a la vista
   del usuario cuando el contenido de un paso es más corto que otro (por
   ejemplo el paso 1, sólo el comprobante, contra el paso 4, la grilla
   completa). El contenido más largo sigue creciendo lo que necesite. */
.pl-wizard-body{min-height:460px;}
.pl-step-panel{display:none;animation:pl-fade .25s ease;min-height:400px;}
.pl-step-panel.active{display:block;}
@keyframes pl-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

.pl-field{margin-bottom:18px;}
.pl-field label{display:block;font-weight:700;font-size:.88rem;margin-bottom:7px;color:var(--pl-ink);}
.pl-field .hint{font-size:.78rem;color:var(--pl-ink-soft);margin-top:5px;}
.pl-input, .pl-select{
  width:100%;padding:13px 14px;border-radius:var(--pl-radius-sm);border:1.5px solid rgba(4,61,46,.16);
  font-size:1rem;font-family:inherit;background:#fbfefc;transition:border-color .15s ease, box-shadow .15s ease;
}
.pl-input:focus,.pl-select:focus{outline:none;border-color:var(--pl-blue-500);box-shadow:0 0 0 4px rgba(83,81,141,.18);}
.pl-input.is-invalid,.pl-select.is-invalid{border-color:var(--pl-red);background:var(--pl-red-bg);}
.pl-input.is-valid{border-color:var(--pl-green-500);}
.pl-error-msg{color:var(--pl-red);font-size:.82rem;margin-top:6px;font-weight:600;display:none;}
.pl-error-msg.show{display:block;}

.pl-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:520px){.pl-row-2{grid-template-columns:1fr;}}

.pl-toggle-line{
  display:flex;align-items:center;gap:10px;margin:-4px 0 20px;padding:12px 14px;
  background:var(--pl-green-50);border:1px dashed var(--pl-green-300);border-radius:var(--pl-radius-sm);
}
.pl-toggle-line input{width:18px;height:18px;accent-color:var(--pl-green-600);}
.pl-toggle-line label{font-size:.88rem;font-weight:600;margin:0;cursor:pointer;color:var(--pl-ink);}

/* Dropzone archivo */
.pl-dropzone{
  border:2px dashed rgba(53,50,121,.25);border-radius:var(--pl-radius-md);padding:22px;text-align:center;
  cursor:pointer;background:var(--pl-blue-50);transition:border-color .15s ease, background .15s ease;
}
.pl-dropzone:hover,.pl-dropzone.dragover{border-color:var(--pl-blue-500);background:var(--pl-blue-100);}
.pl-dropzone .ico{font-size:1.8rem;color:var(--pl-blue-600);margin-bottom:6px;}
.pl-dropzone p{margin:0;font-size:.9rem;color:var(--pl-ink-soft);}
.pl-dropzone strong{color:var(--pl-blue-700);}
.pl-dropzone.has-file{border-style:solid;border-color:var(--pl-green-500);background:var(--pl-green-100);}
.pl-file-chip{
  display:none;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;background:#fff;
  border:1px solid rgba(4,61,46,.12);border-radius:var(--pl-radius-sm);font-size:.85rem;
}
.pl-file-chip.show{display:flex;}
.pl-file-chip .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.pl-file-chip button{background:none;border:none;color:var(--pl-red);cursor:pointer;font-size:1rem;font-weight:700;}

/* Cards de tipo de cliente */
.pl-client-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px;}
@media (max-width:520px){.pl-client-grid{grid-template-columns:1fr;}}
.pl-client-card{
  border:1.5px solid rgba(4,61,46,.14);border-radius:var(--pl-radius-sm);padding:14px 16px;
  cursor:pointer;font-size:.9rem;font-weight:600;color:var(--pl-ink);background:#fff;
  transition:border-color .15s ease, background .15s ease, transform .1s ease;
  display:flex;align-items:center;gap:10px;
}
.pl-client-card:hover{border-color:var(--pl-blue-400);}
.pl-client-card.selected{
  border-color:var(--pl-green-600);background:var(--pl-green-50);
  box-shadow:0 0 0 3px rgba(16,185,129,.15);
}
.pl-client-card .dot{width:16px;height:16px;border-radius:50%;border:2px solid rgba(4,61,46,.25);flex-shrink:0;}
.pl-client-card.selected .dot{border-color:var(--pl-green-600);background:radial-gradient(circle,var(--pl-green-600) 45%,transparent 50%);}

.pl-subquestion{
  margin-top:16px;padding:16px;border-radius:var(--pl-radius-md);background:var(--pl-green-50);
  border:1px solid rgba(4,61,46,.08);
}
.pl-subquestion > p{margin:0 0 12px;font-weight:700;font-size:.88rem;}

/* Sub-pregunta a pantalla completa (paso 4): reemplaza la grilla entera,
   nunca se muestra "más abajo" en la misma vista. */
.pl-subquestion-full{
  margin-top:0;padding:28px 22px;min-height:280px;display:flex;flex-direction:column;justify-content:center;
}
.pl-subquestion-title{margin:0 0 20px;font-weight:800;font-size:1.05rem;color:var(--pl-ink);}
.pl-radio-list{display:flex;flex-direction:column;gap:9px;}
.pl-radio-opt{
  display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid rgba(4,61,46,.12);
  border-radius:var(--pl-radius-sm);padding:11px 14px;cursor:pointer;font-size:.87rem;font-weight:600;
}
.pl-radio-opt input{width:16px;height:16px;accent-color:var(--pl-green-600);}
.pl-radio-opt.selected{border-color:var(--pl-green-600);background:var(--pl-green-100);}

.pl-summary{background:var(--pl-green-50);border-radius:var(--pl-radius-md);padding:18px;margin-bottom:20px;font-size:.88rem;}
.pl-summary .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(4,61,46,.08);}
.pl-summary .row:last-child{border-bottom:none;}
.pl-summary .row span:first-child{color:var(--pl-ink-soft);}
.pl-summary .row span:last-child{font-weight:700;text-align:right;max-width:60%;}

.pl-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px;}

.pl-banner{
  display:none;align-items:flex-start;gap:10px;padding:13px 16px;border-radius:var(--pl-radius-sm);
  font-size:.87rem;margin-bottom:16px;font-weight:600;
}
.pl-banner.show{display:flex;}
.pl-banner.error{background:var(--pl-red-bg);color:var(--pl-red);border:1px solid rgba(225,29,72,.25);}
.pl-banner.warn{background:var(--pl-amber-bg);color:var(--pl-amber);border:1px solid rgba(180,83,9,.25);}
.pl-banner.info{background:var(--pl-blue-100);color:var(--pl-blue-800);border:1px solid rgba(53,50,121,.25);}
.pl-banner button.retry{
  margin-left:auto;background:none;border:1px solid currentColor;border-radius:8px;padding:5px 12px;
  font-weight:700;cursor:pointer;font-size:.8rem;color:inherit;flex-shrink:0;
}

.pl-spinner{
  width:18px;height:18px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;
  animation:pl-spin .7s linear infinite;display:inline-block;
}
@keyframes pl-spin{to{transform:rotate(360deg);}}

.pl-name-badge{
  display:flex;align-items:center;gap:10px;background:var(--pl-green-100);border:1px solid rgba(5,150,105,.25);
  border-radius:var(--pl-radius-sm);padding:12px 14px;margin-bottom:18px;font-size:.9rem;
}
.pl-name-badge .avatar{
  width:32px;height:32px;border-radius:50%;background:var(--pl-green-600);color:#fff;display:flex;
  align-items:center;justify-content:center;font-weight:800;flex-shrink:0;
}

@media (max-width:860px){
  .pl-hero-grid{grid-template-columns:1fr;}
  .pl-benefits,.pl-steps{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .pl-benefits,.pl-steps{grid-template-columns:1fr;}
  .pl-wizard-head,.pl-wizard-body{padding-left:20px;padding-right:20px;}
}
