/* Open Sans (SIL OFL 1.1, ver licencias/LICENCIA-OpenSans.txt), servida desde este sitio */
@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/opensans-400.a990fc35.woff2") format("woff2")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/opensans-600.55809808.woff2") format("woff2")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/opensans-700.d10e9b66.woff2") format("woff2")}
/* Fuente de reserva: métricas leídas de los TTF de Open Sans (Google Fonts v44) y de Arial / Arial Bold de Windows; ver NOTAS.md */
@font-face{font-family:"Open Sans Reserva";font-weight:400;src:local("Arial"),local("ArialMT");size-adjust:103.62%;ascent-override:103.15%;descent-override:28.27%;line-gap-override:0%}
@font-face{font-family:"Open Sans Reserva";font-weight:600;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:100.01%;ascent-override:106.87%;descent-override:29.29%;line-gap-override:0%}
@font-face{font-family:"Open Sans Reserva";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:103.38%;ascent-override:103.39%;descent-override:28.34%;line-gap-override:0%}

:root{
  color-scheme:light;
  --verde:#007A5E;
  --verde-osc:#004B3A;
  --amarillo:#F4D832;
  --texto:#4A4A4A;
  --blanco:#FFFFFF;
  --fondo-seccion:#F3F7F5;
  --linea:#D5E0DB;
  --linea-panel:#C9D8D1;
  --borde-campo:#6F7F79;
  --error:#A11D1D;
  --hueco:#DCE7E2;
  --relleno:#E3F0EA;
  --morado:#4A2A8A;
  --pendiente:#5E7069;
  --banda-h:52px;
  --cta-fijo-h:73px;
  --lateral:max(32px, env(safe-area-inset-left, 0px));
  --lateral-dcha:max(32px, env(safe-area-inset-right, 0px));
}
[hidden]{display:none !important}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--banda-h) + env(safe-area-inset-top, 0px) + 12px)}
body{
  margin:0;background:var(--blanco);color:var(--texto);
  font-family:"Open Sans","Open Sans Reserva",Arial,Helvetica,sans-serif;
  font-size:16px;line-height:1.6;
}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:10;background:#4A2A8A}
button,input,select{font:inherit;color:inherit}
h1,h2,h3,p,ul,ol,dl,dd{margin:0}
:focus-visible{outline:3px solid var(--verde-osc);outline-offset:2px}
[tabindex="-1"]:focus{outline:3px solid var(--verde-osc);outline-offset:2px}
.confirmacion:focus{outline-offset:8px}
#resumen-titulo:focus{outline:none}
.resumen:focus-within{outline:3px solid #004B3A;outline-offset:2px}
.vh{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Pendientes de GCR: sin contorno; los huecos entre corchetes van en gris (#5E7069) */
.corchete{color:var(--pendiente)}
.pend:focus{outline:none}
.contenedor{max-width:1200px;margin:0 auto;padding-left:var(--lateral);padding-right:var(--lateral-dcha)}

/* Banda de prototipo */
.banda{position:sticky;top:env(safe-area-inset-top, 0px);z-index:30;background:#4A2A8A;color:var(--blanco);font-size:14px;line-height:1.45}
.banda :focus-visible,.cierre :focus-visible{outline-color:var(--blanco)}
.banda-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 24px;padding-top:4px;padding-bottom:4px}
.banda-texto{padding:2px 0}
.banda-boton{min-height:44px;padding:0 16px;background:transparent;color:var(--blanco);border:1px solid var(--blanco);border-radius:6px;font-weight:600;cursor:pointer}
.opciones{padding-top:8px;padding-bottom:14px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 40px;border-top:1px solid rgba(255,255,255,.4)}
.opciones fieldset{border:0;margin:0;padding:0;min-width:0}
.opciones legend{padding:0;font-weight:700}
.opciones-radios{display:flex;flex-wrap:wrap;gap:0 20px}
.opcion{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.opcion input{width:20px;height:20px;margin:0;accent-color:var(--blanco)}
.opciones-casilla{align-self:flex-end}
.opciones{max-height:70vh;overflow-y:auto}
.op-pend{flex-basis:100%;padding-top:8px;border-top:1px solid rgba(255,255,255,.4)}
.op-pend-titulo{font-weight:700}
.op-pend ol{margin:4px 0 0;padding-left:24px}
.op-pend li{padding:2px 0}
.op-pend a{display:inline-block;vertical-align:top;min-height:24px;color:var(--blanco);text-decoration:underline;text-underline-offset:2px}

/* Cabecera */
.cabecera{border-bottom:1px solid var(--linea)}
.cabecera-fila{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:8px;padding-bottom:8px}
.marca{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}
.logo-hueco{display:flex;align-items:center;min-height:44px;max-width:240px;padding:4px 10px;border:1px solid var(--linea-panel);border-radius:4px;font-size:13px;line-height:1.3}
.etiqueta-prototipo{display:inline-block;padding:2px 8px;font-size:13px;line-height:1.4;font-weight:600;color:#4A2A8A;background:#EDE5F9;border:1px solid #4A2A8A;border-radius:4px}
.cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;background:var(--amarillo);color:var(--verde-osc);border:1px solid var(--verde-osc);border-radius:6px;font-weight:700;font-size:16px;text-decoration:none;cursor:pointer;text-align:center}

/* Primera pantalla */
.hero{display:grid;gap:24px;padding-top:20px;padding-bottom:64px;grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "form" "proceso" "apoyos"}
.hero-intro{grid-area:intro;display:flex;flex-direction:column;gap:14px}
.antetitulo{font-size:16px;font-weight:600;color:var(--verde)}
h1{font-size:30px;line-height:1.15;font-weight:700;color:var(--verde-osc);text-wrap:balance}
.subtitulo{font-size:18px;line-height:1.6;max-width:34em}
.apoyos{grid-area:apoyos;list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:16px;font-weight:600;color:var(--verde-osc);align-self:start;justify-self:start}
.apoyos li{display:inline-flex;align-items:center;gap:10px}
.proceso{grid-area:proceso;display:flex;flex-direction:column;gap:12px}
.pasos{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}
.paso{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-items:start;font-size:16px;line-height:1.5}
.paso p{padding-top:3px}
.paso strong{color:var(--verde-osc)}
.paso-num{width:32px;height:32px;border-radius:50%;border:2px solid var(--verde);background:var(--blanco);color:var(--verde);font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.paso-num.hecho{background:var(--verde);color:var(--blanco)}
.etiqueta-hecho{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:var(--relleno);color:var(--verde-osc);font-size:14px;font-weight:600}
.proceso-nota{padding-top:12px;border-top:1px solid var(--linea);font-size:14px;line-height:1.5;font-weight:600;color:var(--verde-osc);align-self:start}

/* Formulario */
.form-panel{grid-area:form;min-width:0;align-self:start;background:var(--blanco);border:1px solid var(--linea-panel);border-radius:10px;padding:24px;box-shadow:0 12px 32px rgba(0,75,58,.10)}
.form{display:flex;flex-direction:column;gap:10px}
.form-cabeza{display:flex;flex-direction:column;gap:4px}
.form-titulo{font-size:22px;line-height:1.25;color:var(--verde-osc);font-weight:700}
.form-intro{font-size:16px;line-height:1.5}
.form-req{font-size:14px;line-height:1.45}
.resumen{border:2px solid var(--error);border-radius:6px;padding:10px 14px}
.resumen-titulo{font-size:16px;font-weight:700;color:var(--error);line-height:1.4}
.resumen ul{padding-left:20px}
.resumen a{display:inline-flex;align-items:center;min-height:44px;color:var(--error);font-weight:600}
.campos{display:grid;grid-template-columns:minmax(0,1fr);column-gap:14px;row-gap:6px}
.campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.campo label{font-size:14px;font-weight:600;color:var(--verde-osc);line-height:1.4}
.opcional{font-weight:400;color:var(--texto)}
.campo input,.campo select{width:100%;height:44px;padding:0 12px;border:1px solid var(--borde-campo);border-radius:6px;background:var(--blanco);color:var(--texto);font-size:16px}
.campo input[aria-invalid="true"]{border:2px solid var(--error);padding:0 11px}
.campo-error{min-height:20px;font-size:14px;line-height:1.4;font-weight:600;color:var(--error)}
.casilla{display:flex;align-items:flex-start;gap:4px;font-size:14px;line-height:1.45}
.casilla input{flex:none;width:24px;height:24px;margin:0 10px 0 0;accent-color:var(--verde-osc)}
.casilla label{flex:1;min-height:44px;padding:1px 0;cursor:pointer}
.fallo:not(:empty){border:2px solid var(--error);border-radius:6px;padding:10px 14px;font-size:16px;line-height:1.5}
.fallo-titulo{font-weight:700;color:var(--error)}
.enviar{min-height:52px;width:100%;font-size:18px}
.privacidad{background:var(--fondo-seccion);border-radius:6px;padding:12px 14px;font-size:14px;line-height:1.5;display:flex;flex-direction:column;gap:6px}
.privacidad dl{display:flex;flex-direction:column;gap:4px}
.privacidad dl div{display:flex;flex-wrap:wrap;gap:0 6px}
.privacidad dt{font-weight:700;color:var(--verde-osc)}
.boton-texto{align-self:flex-start;min-height:44px;padding:0;background:transparent;border:0;color:var(--verde-osc);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
.nota-claves{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.45}
.nota-claves svg{flex:none;margin-top:1px}
.vivo{font-size:14px;font-weight:600;color:var(--verde);min-height:1px}
.confirmacion{display:flex;flex-direction:column;gap:12px}
.conf-icono{width:44px;height:44px;border-radius:50%;background:var(--verde);display:flex;align-items:center;justify-content:center}
.conf-titulo{font-size:22px;line-height:1.25;font-weight:700;color:var(--verde-osc)}
.conf-sub{font-size:18px;font-weight:700;color:var(--verde-osc);margin-top:8px}

/* Secciones */
.seccion{padding-top:56px;padding-bottom:56px}
.tintada{background:var(--fondo-seccion);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
h2.titulo-seccion{font-size:22px;line-height:1.2;font-weight:700;color:var(--verde-osc);text-wrap:balance}
.necesidades{display:grid;gap:24px}
.nec-intro{display:flex;flex-direction:column;gap:12px}
.nec-lista{display:flex;flex-direction:column;border-top:1px solid var(--linea-panel)}
.nec{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-areas:"icono texto" "icono estado";column-gap:14px;row-gap:4px;align-items:center;width:100%;text-align:left;padding:16px 12px;background:transparent;border:0;border-bottom:1px solid var(--linea-panel);color:var(--texto);cursor:pointer}
.nec[aria-pressed="true"]{background:var(--blanco)}
.nec svg{grid-area:icono;width:52px;height:52px;align-self:start;margin-top:4px}
.nec-texto{grid-area:texto;display:flex;flex-direction:column;gap:2px;min-width:0}
.nec-nombre{font-size:18px;font-weight:700;color:var(--verde-osc);line-height:1.35}
.nec-desc{font-size:16px;line-height:1.5}
.nec-estado{grid-area:estado;display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--verde-osc)}
.nec-punto{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--verde);display:flex;align-items:center;justify-content:center}
.nec-punto::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--verde);transform:scale(0);transition:transform .15s ease-out}
.nec[aria-pressed="true"] .nec-punto::after{transform:scale(1)}
.acomp{display:grid;gap:28px}
.foto{margin:0;min-width:0}
.foto img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:var(--hueco)}
.nota-ia{margin-top:8px;font-size:13px;line-height:1.45;color:var(--texto)}
.confianza .foto{grid-column:1 / -1}
.acomp-texto{display:flex;flex-direction:column;gap:24px}
.acomp-cols{display:grid;gap:24px}
.acomp-cols h3{font-size:16px;color:var(--verde-osc);margin-bottom:8px}
.acomp-cols ul{padding-left:20px;display:flex;flex-direction:column;gap:6px}
.confianza{display:grid;gap:40px;border-top:1px solid var(--linea)}
.confianza section{display:flex;flex-direction:column;gap:12px}
.confianza ul{padding-left:20px;display:flex;flex-direction:column;gap:4px}
.faq{display:grid;gap:24px}
.faq-lista{border-top:1px solid var(--linea-panel)}
.faq-item{border-bottom:1px solid var(--linea-panel)}
.faq-item h3{font-size:inherit}
.faq-boton{width:100%;min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 4px;background:transparent;border:0;text-align:left;font-size:18px;font-weight:600;line-height:1.4;color:var(--verde-osc);cursor:pointer}
.faq-signo{flex:none;position:relative;width:28px;height:28px;border-radius:50%;border:2px solid var(--verde)}
.faq-signo::before,.faq-signo::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--verde);transition:transform .15s ease-out}
.faq-signo::after{transform:rotate(90deg)}
.faq-boton[aria-expanded="true"] .faq-signo::after{transform:rotate(90deg) scaleX(0)}
.faq-panel{padding:0 48px 20px 4px;max-width:44em}
.cierre{background:var(--verde-osc);color:var(--blanco)}
.cierre .corchete{color:inherit}
/* Resaltado de 2 s al llegar desde la lista de pendientes: #5E7069 sobre #EDE5F9 se queda en 4,30:1, así que el texto pasa a #4A4A4A */
.pend.pend-resaltado{background:#EDE5F9;color:var(--texto)}
.cierre-fila{display:flex;flex-wrap:wrap;gap:24px 32px;align-items:center;justify-content:space-between}
.cierre svg{flex:none}
.cierre-texto{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:10px}
.cierre h2{color:var(--blanco)}
.cierre p{font-size:18px}
.cta-cierre{border:0;min-height:56px;padding:0 30px;font-size:18px}
.pie{border-top:1px solid var(--linea);font-size:13px;line-height:1.5}
.pie-filas{display:flex;flex-direction:column;gap:12px;padding-top:28px;padding-bottom:32px}

/* CTA fijo en móvil: altura reservada desde el CSS inicial */
.cta-fijo{display:none}

/* Banda en móvil: una fila con el botón «Opciones» */
@media (max-width:599.98px){
  .banda{font-size:13px;line-height:1.35}
  .banda-fila{flex-wrap:nowrap;gap:12px}
  .banda-texto{flex:1 1 auto;min-width:0}
  .banda-boton{flex:none;padding:0 12px}
  .solo-ancho{display:none}
}
@media (min-width:600px){
  .campos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .campo-ancho{grid-column:1 / -1}
  .acomp-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:959.98px){
  :root{--lateral:max(16px, env(safe-area-inset-left, 0px));--lateral-dcha:max(16px, env(safe-area-inset-right, 0px))}
  .cabecera .cta{display:none}
  body{padding-bottom:calc(var(--cta-fijo-h) + env(safe-area-inset-bottom, 0px))}
  html{scroll-padding-bottom:calc(var(--cta-fijo-h) + env(safe-area-inset-bottom, 0px) + 12px)}
  .cta-fijo{display:block;position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(var(--cta-fijo-h) + env(safe-area-inset-bottom, 0px));background:var(--blanco);border-top:1px solid var(--linea-panel);padding:12px var(--lateral-dcha) calc(12px + env(safe-area-inset-bottom, 0px)) var(--lateral);box-shadow:0 -6px 16px rgba(0,75,58,.08);transition:transform .2s ease-out,opacity .2s ease-out}
  .cta-fijo.oculto{transform:translateY(calc(100% + 24px));opacity:0}
  .cta-fijo .cta{display:flex;width:100%;min-height:48px}
  .form-panel{padding:20px 16px}
}
@media (min-width:960px){
  h1{font-size:40px}
  h2.titulo-seccion{font-size:30px}
  .hero{grid-template-columns:minmax(0,600px) minmax(0,470px);justify-content:space-between;column-gap:40px;row-gap:20px;grid-template-areas:"intro form" "apoyos form" "proceso form" ". form";grid-template-rows:auto auto auto 1fr;padding-top:16px}
  .form-panel{padding:20px 24px}
  .hero-intro{padding-top:8px}
  .seccion{padding-top:80px;padding-bottom:80px}
  .necesidades{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px}
  .nec{grid-template-columns:72px minmax(0,1fr) auto;grid-template-areas:"icono texto estado";gap:24px;padding:20px}
  .nec svg{width:72px;height:72px;align-self:center;margin-top:0}
  .acomp{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center}
  .confianza{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
  .confianza .foto img{aspect-ratio:3/1}
  .faq{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
  html{scroll-behavior:auto !important}
}
