/* Formulario de postulación en 3 pasos, confirmación y páginas de texto. Mismo look que la portada aprobada:
   morado profundo #3F1265 · morado #5A1E8C · morado vivo #7A2BB5 · dorado #F5C518 · lavanda #FBF8FE.
   Sin JavaScript se ven los tres pasos uno debajo del otro y el formulario igual funciona. */
*{box-sizing:border-box}
.pf{background:#FBF8FE;padding:28px 16px 64px}
.pf-caja{max-width:500px;margin:0 auto;background:#FFFFFF;border:1px solid #ECE3F4;border-radius:22px;box-shadow:0 14px 32px rgba(63,18,101,.10);padding:22px 20px 0}
.pf-volver{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-size:15px;color:#5A1E8C;text-decoration:none}
.pf-volver:hover{color:#3F1265;text-decoration:underline}

/* Paso y convocatoria, siempre a la vista */
.pf-arriba{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pf-paso-n{font-family:'Archivo',sans-serif;font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8A5A00}
.pf-a{font-size:14px;color:#5C4870}
.pf-a b{font-weight:800;color:#3F1265}
.pf-barra{display:flex;gap:6px;margin:8px 0 18px}
.pf-barra span{flex:1;height:6px;border-radius:6px;background:#E6DAF3}
.pf-barra span.lleno{background:linear-gradient(90deg,#C9950A,#F5C518)}
html:not(.js) .pf-arriba .pf-paso-n,html:not(.js) .pf-barra{display:none}

.pf-aviso{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:#FFF1F1;border:1px solid #E7A3A3;color:#8E1B1B;font-size:15px;font-weight:700}

/* Pasos */
.pf-paso{border:0;padding:0;margin:0 0 26px;min-width:0;display:flex;flex-direction:column;gap:16px}
html.js .pf-paso{display:none;margin-bottom:18px}
html.js .pf-paso.activo{display:flex}
.pf-h{padding:0;margin:0;font-family:'Archivo',sans-serif;font-stretch:112%;font-weight:900;font-size:28px;line-height:1.15;color:#3F1265}
.pf-h:focus{outline:none}
.pf-sub{margin:-10px 0 0;font-size:14px;color:#5C4870}

/* Campos */
.pf-campo{min-width:0;border:0;padding:0;margin:0}
.pf-lb{display:block;padding:0;margin:0 0 6px;font-weight:700;font-size:14px;line-height:20px;color:#3F1265}
.pf-lb small{font-weight:400;font-size:14px;color:#5C4870}
.pf-in{display:block;width:100%;height:48px;border:1.5px solid #CDB8E6;border-radius:12px;background:#FFFFFF;padding:0 14px;font-family:inherit;font-size:17px;color:#2B1640}
textarea.pf-in{height:auto;min-height:92px;padding:10px 14px;font-size:16px;line-height:1.35;resize:vertical}
.pf-in:focus{outline:3px solid rgba(122,43,181,.28);border-color:#7A2BB5}
.pf-in::placeholder{color:#75628A}
.pf-in[aria-invalid="true"]{border-color:#B3261E;background:#FFF8F8}
.pf-ayuda{margin:6px 0 0;font-size:13px;line-height:18px;color:#5C4870}
.pf-ok{display:none;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;line-height:18px;font-weight:700;color:#1B6B3A}
.pf-ok.visible{display:flex}
.pf-error{margin:6px 0 0;font-size:13px;line-height:18px;font-weight:700;color:#B3261E}
.pf-error:empty{display:none}
.pf-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pf-fecha{display:grid;grid-template-columns:84px minmax(0,1fr) 104px;gap:8px}
.pf-cel{display:flex;gap:8px}
.pf-cel span{flex:0 0 62px;height:48px;display:flex;align-items:center;justify-content:center;border:1.5px solid #CDB8E6;border-radius:12px;background:#F4ECFC;font-size:17px;font-weight:700;color:#3F1265}

/* Botones para elegir (son casillas y opciones de verdad, con la etiqueta dibujada como botón) */
.pf-chips{display:grid;gap:8px}
.pf-chips.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pf-chips.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pf-chip{position:relative;display:block;min-width:0}
.pf-chip input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.pf-chip label{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:6px 8px;border-radius:12px;border:1.5px solid #CDB8E6;background:#FFFFFF;color:#3F1265;font-size:15px;font-weight:700;line-height:1.15;text-align:center;cursor:pointer}
.pf-chip input:checked + label{border-color:#4A1677;background:linear-gradient(180deg,#7A2BB5 0%,#5A1E8C 55%,#4A1677 100%);color:#FFFFFF;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 14px rgba(74,22,119,.25)}
.pf-chip input:focus-visible + label{outline:3px solid rgba(122,43,181,.45);outline-offset:2px}

/* CV */
.pf-cv{display:flex;flex-direction:column;gap:10px;padding:14px;border:1.5px dashed #B99ADB;border-radius:14px;background:#FFFFFF}
.pf-cv-botones{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html.js .pf-cv-botones{display:grid}
html.js .pf-cv input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.pf-cv-boton{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border-radius:12px;border:1.5px solid #CDB8E6;background:#FFFFFF;color:#3F1265;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;padding:0 8px}
.pf-cv-boton:hover{background:#F4EBFC}
.pf-cv-elegido{display:none;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:#1B6B3A;font-weight:700;min-width:0}
.pf-cv-elegido.visible{display:flex}
.pf-cv-elegido span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-cv-quitar{flex:0 0 auto;min-height:44px;border:0;background:none;color:#5A1E8C;font-family:inherit;font-size:14px;font-weight:700;text-decoration:underline;cursor:pointer}

.pf-acepto{display:flex;align-items:flex-start;gap:12px;min-height:44px;font-size:14px;line-height:1.35;color:#2B1640}
.pf-acepto input{flex:0 0 24px;width:24px;height:24px;margin:0;accent-color:#5A1E8C}
.pf-acepto a{color:#5A1E8C;font-weight:700}

/* La casilla trampa: una persona no la ve ni llega a ella con el teclado */
.pf-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Botones de abajo: quedan a la vista mientras se llena el paso */
.pf-botones{position:sticky;bottom:0;display:flex;gap:10px;margin:0 -20px;padding:12px 20px calc(14px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid #ECE3F4;border-radius:0 0 22px 22px}
.pf-btn{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;font-family:inherit;font-weight:800;font-size:17px;cursor:pointer;text-decoration:none;padding:0 22px}
.pf-btn.oro{flex:1;border:0;color:#2B1640;background:linear-gradient(180deg,#FFE88F 0%,#F5C518 48%,#D9A408 100%);box-shadow:inset 0 1px 0 #FFF6C2,inset 0 -2px 0 rgba(120,80,0,.28),0 10px 22px rgba(201,149,10,.32)}
.pf-btn.borde{flex:0 0 110px;color:#4A1677;border:2px solid #7A2BB5;background:#FFFFFF;font-size:16px}
.pf-btn.borde:hover{background:#F4EBFC}
.pf-btn.morado{flex:1;border:0;color:#FFFFFF;background:linear-gradient(180deg,#7A2BB5 0%,#5A1E8C 55%,#4A1677 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 22px rgba(74,22,119,.32)}
.pf-btn.morado:hover{color:#FFFFFF}
.pf-btn[disabled]{opacity:.6;cursor:default}
.pf-btn[hidden]{display:none}
html:not(.js) #pf-atras,html:not(.js) #pf-siguiente{display:none}

/* Confirmación */
.pl-centro{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding-top:8px}
.pl-moneda{display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:'Archivo',sans-serif;font-weight:900;color:#3F1265;background:radial-gradient(circle at 36% 30%,#FFF6C2 0%,#F5C518 48%,#C9950A 100%);box-shadow:inset 0 0 0 3px rgba(255,255,255,.35),inset 0 0 0 5px rgba(160,110,0,.28),0 8px 14px rgba(160,110,0,.3)}
.pl-texto{margin:0;font-size:16px;color:#5C4870}
.pl-texto b{font-weight:800;color:#3F1265}
.pl-numero{display:flex;flex-direction:column;align-items:center;gap:4px;margin:20px 0;padding:16px;border-radius:18px;border:2px solid #E6B422;background:#FFFFFF;box-shadow:0 8px 20px rgba(63,18,101,.10);text-align:center}
.pl-numero .eti{font-family:'Archivo',sans-serif;font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8A5A00}
.pl-numero .num{font-family:'Archivo',sans-serif;font-stretch:112%;font-weight:900;font-size:32px;line-height:1.1;letter-spacing:.04em;color:#3F1265}
.pl-numero .nota{font-size:13px;color:#5C4870}
.pl-h2{margin:0 0 12px;font-family:'Archivo',sans-serif;font-weight:800;font-size:18px;color:#3F1265}
.pl-sigue{display:flex;flex-direction:column;gap:12px;margin:0 0 22px;padding:0;list-style:none}
.pl-sigue li{display:flex;align-items:center;gap:12px;font-size:15px}
.pl-sigue .pl-moneda{flex:0 0 36px;width:36px;height:36px;font-size:16px}

/* Páginas de texto (política de datos, avisos) */
.pt{background:#FBF8FE;padding:36px 16px 72px}
.pt-caja{max-width:760px;margin:0 auto;background:#FFFFFF;border:1px solid #ECE3F4;border-radius:22px;box-shadow:0 14px 32px rgba(63,18,101,.10);padding:32px 28px}
.pt-caja h1{margin:0 0 6px;font-family:'Archivo',sans-serif;font-stretch:112%;font-weight:900;font-size:34px;line-height:1.1;color:#3F1265}
.pt-caja h2{margin:26px 0 8px;font-family:'Archivo',sans-serif;font-weight:800;font-size:20px;color:#3F1265}
.pt-caja p,.pt-caja li{font-size:16px;color:#2B1640}
.pt-caja ul{padding-left:20px}
.pt-nota{font-size:14px;color:#5C4870}
.pt-acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
@media (max-width:420px){.pf{padding:14px 10px 48px}.pf-caja{padding:18px 16px 0;border-radius:18px}.pf-botones{margin:0 -16px;padding-left:16px;padding-right:16px;border-radius:0 0 18px 18px}.pt-caja{padding:24px 18px}.pf-chips.c3 label{font-size:14px}}
