/* ============================================================
   WEB_JPM · Formulario compartido de precalificación y cita
   ------------------------------------------------------------
   Paleta y tokens vigentes. No se introduce ningún color nuevo.
   ============================================================ */
.jpm-lead{
  position:fixed;
  inset:0;
  z-index:2000;
  display:grid;
  place-items:center;
  padding:clamp(12px,3vw,40px);
  opacity:0;
  transition:opacity var(--motion-content,.32s) ease;
}
.jpm-lead--visible{opacity:1}
.jpm-lead[hidden]{display:none}

.jpm-lead__fondo{
  position:absolute;
  inset:0;
  background:rgba(35,24,33,.55);
  backdrop-filter:blur(6px);
}

.jpm-lead__panel{
  position:relative;
  width:min(760px,100%);
  max-height:calc(100vh - clamp(24px,6vw,80px));
  overflow-y:auto;
  overscroll-behavior:contain;
  background:var(--jpm-cream,#FBF8F3);
  border-radius:var(--radius-lg,22px);
  box-shadow:var(--shadow-lg,0 40px 90px -40px rgba(81,11,68,.55));
  padding:clamp(26px,3.4vw,46px);
  transform:translateY(12px);
  transition:transform var(--motion-content,.32s) cubic-bezier(.22,.61,.36,1);
}
.jpm-lead--visible .jpm-lead__panel{transform:none}

.jpm-lead__x{
  position:absolute;
  top:14px;
  right:16px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--jpm-muted,#6B5560);
  font-size:1.7rem;
  line-height:1;
  cursor:pointer;
}
.jpm-lead__x:hover{background:rgba(81,11,68,.07);color:var(--jpm-purple,#510B44)}

.jpm-lead__cab{margin-bottom:clamp(18px,2.2vw,28px);padding-right:44px}
.jpm-lead__ctx{
  font:800 .73rem/1.3 "Rubik",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--jpm-orange,#CC654B);
  margin:0 0 10px;
}
.jpm-lead__ctx b{color:var(--jpm-purple,#510B44);letter-spacing:.06em}
.jpm-lead__cab h2{
  font-size:clamp(1.5rem,2.6vw,2.1rem);
  line-height:1.08;
  max-width:none;
  margin:0 0 8px;
  color:var(--jpm-purple,#510B44);
}
.jpm-lead__sub{margin:0;color:var(--jpm-muted,#6B5560);font-size:.95rem}

.jpm-lead__form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 20px;
}
.jpm-lead__campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.jpm-lead__campo--full{grid-column:1/-1}
.jpm-lead__campo label{
  font:700 .82rem/1.3 "Rubik",sans-serif;
  color:var(--jpm-purple,#510B44);
}
.jpm-lead__opt{font-weight:400;color:var(--jpm-muted,#6B5560)}

.jpm-lead__form input,
.jpm-lead__form select{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--jpm-line,#E7DCE3);
  border-radius:12px;
  background:#fff;
  font:inherit;
  font-size:.95rem;
  color:var(--jpm-ink,#231821);
}
.jpm-lead__form input:focus-visible,
.jpm-lead__form select:focus-visible,
.jpm-lead__x:focus-visible,
.jpm-lead__form button:focus-visible{
  outline:2px solid var(--jpm-orange,#CC654B);
  outline-offset:2px;
}
.jpm-lead__form input[readonly]{
  background:rgba(81,11,68,.04);
  color:var(--jpm-purple,#510B44);
  font-weight:700;
}
.jpm-lead__mal{border-color:var(--jpm-jur,#973E48)}

.jpm-lead__nota{margin:0;font-size:.78rem;line-height:1.45;color:var(--jpm-muted,#6B5560)}
.jpm-lead__nota a{color:var(--jpm-purple,#510B44)}

.jpm-lead__check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font:inherit;
  font-size:.9rem;
  color:var(--jpm-ink,#231821);
  cursor:pointer;
}
.jpm-lead__check input{width:auto;margin-top:2px;flex:0 0 auto}

.jpm-lead__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.jpm-lead__error{
  grid-column:1/-1;
  padding:12px 14px;
  border-radius:12px;
  background:rgba(151,62,72,.08);
  border:1px solid rgba(151,62,72,.28);
  color:var(--jpm-jur,#973E48);
  font-size:.88rem;
}
.jpm-lead__error[hidden]{display:none}

.jpm-lead__acciones{grid-column:1/-1;margin-top:6px}
.jpm-lead__acciones .btn{width:100%;justify-content:center}

.jpm-lead__ok{text-align:center;padding:clamp(20px,3vw,36px) 0}
.jpm-lead__ok[hidden]{display:none}
.jpm-lead__ok h3{color:var(--jpm-purple,#510B44);margin-bottom:10px}
.jpm-lead__ok p{color:var(--jpm-muted,#6B5560);margin-bottom:22px}

@media(max-width:760px){
  .jpm-lead{padding:0;place-items:end stretch}
  .jpm-lead__panel{
    width:100%;
    max-height:92vh;
    border-radius:22px 22px 0 0;
    padding:26px 20px calc(26px + env(safe-area-inset-bottom,0px));
  }
  .jpm-lead__form{grid-template-columns:1fr}
  .jpm-lead__cab h2{font-size:1.35rem}
}

@media(prefers-reduced-motion:reduce){
  .jpm-lead,.jpm-lead__panel{transition:none}
  .jpm-lead__panel{transform:none}
}
