:root{
  --azul:#0060A0; --azul-oscuro:#004A7C; --azul-tinte:#EAF3FA;
  --naranja:#E07000; --naranja-hover:#C86400; --naranja-tinte:#FDF1E6;
  --verde:#30A050; --verde-texto:#1E7A3C; --verde-tinte:#E9F6ED;
  --gris:#7E7F80; --gris-texto:#55585B; --gris-tinte:#F1F2F3;
  --rojo:#B42318; --rojo-tinte:#FDECEA;
  --tinta:#1F2A33; --fondo:#F7F9FB; --papel:#FFFFFF; --linea:#D9E1E8; --campo:#FFFFFF;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --sans:'Public Sans','Segoe UI',Arial,sans-serif;
  color-scheme:only light;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);font:400 1rem/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--azul)}
:focus-visible{outline:3px solid var(--naranja);outline-offset:2px}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cont{width:min(1120px,100% - 2.5rem);margin-inline:auto}

/* Franja con los colores de marca */
.franja{height:5px;background:linear-gradient(90deg,var(--azul) 0 55%,var(--naranja) 55% 80%,var(--verde) 80% 100%)}

/* Encabezado */
.encabezado{background:var(--papel);border-bottom:1px solid var(--linea)}
.encabezado .cont{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:96px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{display:block;height:74px;width:auto}
.logo-texto{display:none;font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--azul)}
.logo-texto small{font-family:var(--sans);font-size:.75rem;color:var(--gris-texto);margin-left:.3rem}
.logo.sin-imagen img{display:none}
.logo.sin-imagen .logo-texto{display:block}
.btn-volver{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem 1.05rem;border:1.5px solid var(--azul);border-radius:6px;color:var(--azul);font-weight:600;font-size:.95rem;text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s}
.btn-volver:hover{background:var(--azul);color:#fff}
.btn-volver svg{flex:0 0 auto}

/* Portada clara */
.portada{background:var(--azul-tinte);padding:2.75rem 0 3rem;border-bottom:1px solid var(--linea)}
.portada h1{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4.2vw,2.9rem);line-height:1.1;letter-spacing:-.01em;margin:0 0 .6rem;color:var(--azul-oscuro)}
.portada .intro{margin:0;max-width:58ch;font-size:1.075rem;color:var(--gris-texto)}
.proceso{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.proceso li{background:var(--papel);border-radius:8px;padding:1.1rem 1.1rem 1.15rem;border-top:4px solid var(--c);box-shadow:0 1px 2px rgba(0,60,100,.06)}
.proceso li:nth-child(1){--c:var(--azul)}
.proceso li:nth-child(2){--c:var(--naranja)}
.proceso li:nth-child(3){--c:var(--gris)}
.proceso li:nth-child(4){--c:var(--verde)}
.proceso .num{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--c);color:#fff;font-weight:700;font-size:1.2rem;margin-bottom:.6rem}
.proceso strong{display:block;font-weight:600;line-height:1.3}
.proceso span.txt{display:block;color:var(--gris-texto);font-size:.875rem;margin-top:.2rem}
.gratis{display:flex;gap:.6rem;align-items:flex-start;margin:1.25rem 0 0;padding:.75rem 1rem;border-radius:8px;background:var(--verde-tinte);color:var(--tinta);font-size:.9rem;max-width:760px}
.gratis::before{content:"";flex:0 0 auto;width:.6rem;height:.6rem;border-radius:50%;background:var(--verde);margin-top:.4rem}

/* Zona del formulario */
.zona{padding:2.5rem 0 3.5rem}
.contenido{width:min(720px,100% - 2.5rem);margin-inline:auto}
.aviso-maqueta{font-size:.8rem;color:var(--gris-texto);background:var(--papel);border:1px dashed var(--linea);border-radius:6px;padding:.45rem .8rem;margin-bottom:1.5rem;display:inline-block}

.avance{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.avance li{font-size:.85rem;font-weight:600;color:var(--gris-texto);padding-top:.7rem;border-top:4px solid var(--linea);transition:border-color .25s,color .25s}
.avance li[data-estado="actual"]{border-color:var(--azul);color:var(--azul-oscuro)}
.avance li[data-estado="hecho"]{border-color:var(--verde);color:var(--verde-texto)}
.avance small{display:block;font-weight:500;color:var(--gris-texto);font-size:.75rem}

.tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:12px;padding:clamp(1.25rem,3.5vw,2.25rem);box-shadow:0 2px 10px rgba(0,60,100,.05)}
fieldset{border:0;margin:0;padding:0;min-width:0}
fieldset[hidden]{display:none}
legend{padding:0;font-family:var(--serif);font-size:1.6rem;font-weight:600;line-height:1.2;margin-bottom:.35rem;color:var(--azul-oscuro)}
.ayuda-paso{margin:0 0 1.75rem;color:var(--gris-texto)}

.rejilla{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1rem}
.ancho{grid-column:1/-1}
.campo label,.grupo-titulo{display:block;font-weight:600;font-size:.925rem;margin-bottom:.35rem}
.opcional{font-weight:400;color:var(--gris-texto)}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;font:inherit;color:var(--tinta);background:var(--campo);
  border:1.5px solid var(--linea);border-radius:6px;padding:.72rem .85rem;min-height:48px;
  transition:border-color .15s,box-shadow .15s}
textarea{min-height:110px;resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gris-texto) 50%),linear-gradient(135deg,var(--gris-texto) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.5rem}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px color-mix(in srgb,var(--azul) 22%,transparent)}
.doc{display:grid;grid-template-columns:130px 1fr;gap:.5rem}
.pista{font-size:.8rem;color:var(--gris-texto);margin-top:.3rem}
.error{font-size:.825rem;color:var(--rojo);margin-top:.3rem;display:none}
.campo.invalido .error,.grupo.invalido .error{display:block}
.campo.invalido input,.campo.invalido select,.campo.invalido textarea{border-color:var(--rojo)}

.opciones{display:flex;flex-wrap:wrap;gap:.5rem}
.opciones label{position:relative}
.opciones input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opciones span{display:inline-flex;align-items:center;min-height:44px;padding:.55rem 1rem;border:1.5px solid var(--linea);border-radius:999px;font-size:.9rem;font-weight:500;background:var(--campo);cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}
.opciones input:hover+span{border-color:var(--azul)}
.opciones input:checked+span{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600}
.opciones input:focus-visible+span{outline:3px solid var(--naranja);outline-offset:2px}
.grupo.invalido .opciones span{border-color:var(--rojo)}

.carga{display:block;border:2px dashed color-mix(in srgb,var(--azul) 45%,var(--linea));border-radius:10px;padding:1.75rem 1.25rem;text-align:center;cursor:pointer;background:var(--azul-tinte);transition:border-color .15s,background-color .15s}
.carga:hover,.carga.encima{border-color:var(--azul)}
.carga strong{display:block;font-size:1rem;color:var(--azul-oscuro)}
.carga p{margin:.25rem 0 0;font-size:.85rem;color:var(--gris-texto)}
.carga .icono{width:44px;height:44px;margin:0 auto .6rem;border-radius:50%;background:var(--azul);display:grid;place-items:center;color:#fff}
.campo.invalido .carga{border-color:var(--rojo);background:var(--rojo-tinte)}
.archivo{display:none;align-items:center;gap:.85rem;border:1.5px solid var(--verde);background:var(--verde-tinte);border-radius:10px;padding:.85rem 1rem}
.archivo.visible{display:flex}
.archivo .pdf{flex:0 0 auto;width:40px;height:48px;border-radius:4px;background:var(--papel);border:1px solid var(--linea);display:grid;place-items:center;font-size:.65rem;font-weight:700;color:var(--rojo)}
.archivo div{min-width:0;flex:1}
.archivo strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.925rem}
.archivo small{color:var(--verde-texto);font-weight:600}
.archivo button{font:600 .85rem var(--sans);color:var(--azul);background:none;border:0;cursor:pointer;padding:.5rem}

.contador{text-align:right}
.autorizacion{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;border-radius:8px;background:var(--gris-tinte);border:1.5px solid transparent}
.campo.invalido .autorizacion{border-color:var(--rojo);background:var(--rojo-tinte)}
.autorizacion input{width:22px;height:22px;margin:.1rem 0 0;flex:0 0 auto;accent-color:var(--verde)}
.autorizacion label{font-weight:400;font-size:.9rem;margin:0}

.acciones{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--linea)}
.btn{font:700 1rem var(--sans);border-radius:6px;min-height:52px;padding:.8rem 1.6rem;cursor:pointer;border:0;transition:background-color .15s}
.btn-principal{background:var(--naranja);color:#fff;margin-left:auto;font-size:1.2rem}
.btn-principal:hover{background:var(--naranja-hover)}
.btn-principal[disabled]{opacity:.75;cursor:progress}
.btn-sec{background:transparent;color:var(--azul);padding-inline:.5rem}
.btn-sec:hover{text-decoration:underline}
.btn-sec[hidden]{display:none}
.seguro{font-size:.8rem;color:var(--gris-texto);margin:1rem 0 0;text-align:center}

/* Éxito */
.exito[hidden]{display:none}
.sello{width:56px;height:56px;border-radius:50%;background:var(--verde);color:#fff;display:grid;place-items:center;margin-bottom:1.25rem}
.exito h2{font-family:var(--serif);font-weight:600;font-size:1.9rem;line-height:1.15;margin:0 0 .5rem;color:var(--verde-texto)}
.exito p{margin:0 0 1rem;color:var(--gris-texto)}
.resumen{margin:1.5rem 0;border:1px solid var(--linea);border-radius:8px;overflow:hidden}
.resumen div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 1rem;border-top:1px solid var(--linea);font-size:.925rem}
.resumen div:first-child{border-top:0;background:var(--azul-tinte)}
.resumen dt{color:var(--gris-texto)}
.resumen dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}
.acciones-exito{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.5rem}
.acciones-exito .btn-volver{min-height:48px}

/* Pie */
.pie{background:var(--papel);border-top:1px solid var(--linea)}
.pie .cont{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 2rem;padding:1.4rem 0;font-size:.85rem;color:var(--gris-texto)}
.pie p{margin:0}
.pie a{font-weight:600}

@media (max-width:900px){
  .proceso{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .encabezado .cont{min-height:68px}
  .logo img{height:44px}
  .btn-volver .largo{display:none}
  .portada{padding:1.75rem 0 2rem}
  .proceso{display:none}
  .gratis{margin-top:1rem}
  .rejilla{grid-template-columns:1fr}
  .doc{grid-template-columns:1fr}
  .avance li{font-size:.78rem}
  .avance small{display:none}
  .acciones{flex-wrap:wrap}
  .btn-principal{width:100%}
  .resumen div{flex-direction:column;gap:.1rem}
  .resumen dd{text-align:left}
}
@media (min-width:601px){ .btn-volver .corto{display:none} }
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Añadidos para la versión real */
.trampa{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.alerta{display:none;margin:0 0 1.25rem;padding:.85rem 1rem;border-radius:8px;background:var(--rojo-tinte);color:var(--rojo);border:1px solid color-mix(in srgb,var(--rojo) 35%,transparent);font-size:.925rem}
.alerta.visible{display:block}
.no-js .avance{display:none}
.no-js fieldset+fieldset{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--linea)}
.exito .btn-principal{display:inline-flex;align-items:center;text-decoration:none;margin-left:0}
a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
