/* Una sola página desplaza el contenido: compatible con trackpad, táctil y teclado. */
:root { --color-gris-texto:#655954; }
html { height:auto; min-height:100%; overflow-y:auto; overflow-x:clip; scroll-padding-top:110px; }
body.aplicacion, body.modo-app, body.modo-landing { height:auto; min-height:100dvh; overflow:visible; }
.app-shell { display:block; height:auto; min-height:100dvh; }
.area-principal { display:block; }
.area-contenido { overflow:visible; height:auto; padding:2.5rem max(1rem,5vw) 120px; }
.ocultar-scroll { scrollbar-width:auto; }
.ocultar-scroll::-webkit-scrollbar { display:block; width:10px; }
button, a, input, select { touch-action:manipulation; }
button, a.boton-enlace { min-height:44px; }
:focus-visible { outline:3px solid #075f75; outline-offset:4px; }
button:disabled { cursor:wait; opacity:.65; transform:none; }
img { max-width:100%; }
.saltar-contenido { position:fixed; z-index:1000; left:1rem; top:-100px; background:#fff; color:#752022; padding:1rem; border:2px solid; }
.saltar-contenido:focus { top:1rem; }
.aviso-global { position:fixed; top:90px; left:50%; transform:translateX(-50%); width:min(90vw,600px); background:#21352c; color:white; padding:1.1rem 1.4rem; border-radius:14px; z-index:300; box-shadow:0 12px 40px #0002; }
.cabecera { display:flex; flex-wrap:wrap; gap:1rem; min-height:88px; height:auto; padding:1rem max(1rem,4vw); position:sticky; top:0; }
.volver-portada { padding:0; flex-shrink:0; }
.volver-portada img { width:155px; height:auto; display:block; mix-blend-mode:multiply; }
.nav-app { display:flex; align-items:center; gap:.25rem; margin-right:auto; }
.nav-app button { padding:.7rem 1rem; font-size:.9rem; border-radius:10px; }
.nav-app button.activo { background:#f6e6e0; color:#812424; box-shadow:none; }
#contador-escritorio { font-size:.75rem; padding:.2rem .4rem; border-radius:6px; background:#e9e1db; }
.texto-superior-centro { display:block; position:static; transform:none; margin:0; }
.boton-alerta-demo { min-width:0; white-space:normal; }
.indicador-ia { max-width:160px; }
.punto-estado[data-estado="listo"] { background:#178340; }
.punto-estado[data-estado="espera"] { background:#a56a0a; }
.punto-estado[data-estado="error"] { background:#b12929; }
.logo-movil { display:none; }
.barra-navegacion-movil { z-index:60; }
.cuadricula-principal { grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr); gap:2rem; align-items:start; }
.titulo-gigante { font-size:clamp(2.4rem,5vw,4.2rem); line-height:1.06; }
.imagen-tarjeta { height:180px; object-fit:cover; background:#e9ded0; }
.consejo-simple { padding:2rem; background:#efe9dd; color:#3c382d; }
.consejo-simple .titulo-destacado { font-size:1.8rem; margin:1rem 0; }
.consejo-simple p { line-height:1.7; }
.consejo-simple hr { margin:1.5rem 0; border:0; border-top:1px solid #c9bfb0; }
.consejo-simple button { margin-top:1rem; }
.indicador-pasos { overflow:visible; }
.paso-item { cursor:pointer; }
.paso-item:disabled { cursor:default; opacity:1; }
.error-formulario { margin-top:1rem; color:#932525; font-weight:700; }
.formato-texto-ia { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.estado-plan { padding:.8rem 1rem; background:#eaf3ed; border-left:3px solid #32644a; margin-bottom:1rem; font-size:.9rem; line-height:1.6; }
.estado-plan.es-basico { background:#fff2d7; border-color:#9c711e; }
.estado-plan.es-provisional { background:#eef3f7; border-color:#526f82; color:#334d59; }
.estado-plan.es-provisional::before { content:''; display:inline-block; width:.85em; height:.85em; margin-right:.5rem; vertical-align:middle; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:espera-plan 1s linear infinite; }
@keyframes espera-plan { to { transform:rotate(360deg); } }
.referencias-plan { margin-top:1.5rem; border-top:1px solid #dcd5cb; padding-top:1.3rem; font-size:.88rem; line-height:1.6; }
.referencias-plan a { display:block; color:#842529; margin:.5rem 0; }
#reintentar-plan { margin-bottom:1rem; }
#vista-chat { height:auto!important; }
.tarjeta-chat { flex:none; min-height:550px; height:auto; overflow:visible; }
.area-mensajes { flex:none; height:350px; min-height:180px; overflow-y:auto; scrollbar-width:thin; overscroll-behavior-y:auto; }
.limpiar-chat { margin:.5rem 1rem; font-size:.85rem; text-decoration:underline; align-self:flex-start; }
.canal-acciones { display:flex; flex-direction:column; gap:.8rem; max-width:240px; }
.canal-acciones small { font-size:.78rem; line-height:1.5; color:#3e5e49; }
.nota-privacidad { grid-column:1/-1; font-size:.78rem; line-height:1.65; max-width:900px; }
.landing-header { background:#fffdf9f5; }
.hero-nobathack { gap:2rem; padding-top:4rem; padding-bottom:4rem; }
.hero-copy h1 { font-size:clamp(3.1rem,5.8vw,5.5rem); line-height:1.03; }
.hero-kicker { color:#83452c; font-size:.72rem; }
.hero-kicker::before { background:#a13e27; }
.hero-visual::before { background:linear-gradient(145deg,#f0bda1,#e8d7bb 70%,#edd6cd); }
.hero-orb-1 { background:#b94d32; }
.problem-strip { border-radius:16px; }
.section-heading h2 { font-size:clamp(2rem,3.8vw,3.5rem); }
.feature-card { border-radius:18px; }
.hero-trust, .hero-copy > p, .steps-grid p, .feature-card p, .floating-card small { color:#536057; }
.feature-main p { color:white; }
body.accesibilidad-alto-contraste .cabecera,
body.accesibilidad-alto-contraste .consejo-simple,
body.accesibilidad-alto-contraste .sources-section,
body.accesibilidad-alto-contraste .estado-plan,
body.accesibilidad-alto-contraste .nav-app button.activo { background:#111!important; color:#fff!important; border:1px solid #fff; }
body.accesibilidad-alto-contraste p, body.accesibilidad-alto-contraste small,
body.accesibilidad-alto-contraste .hero-trust, body.accesibilidad-alto-contraste .paso-item,
body.accesibilidad-alto-contraste a { color:#fff!important; }
body.accesibilidad-alto-contraste .sources-list b { color:#ffd400!important; }
.modal-sos { max-height:70dvh; overflow-y:auto; }
@media (max-width:1100px) { .indicador-ia { font-size:.75rem; } .cabecera { gap:.5rem; } .nav-app button { padding:.6rem .65rem; } }
@media (max-width:899px) {
    .nav-app { display:none; } .cabecera { display:flex; flex-wrap:wrap; justify-content:space-between; }
    .volver-portada img { width:125px; } .indicador-ia { max-width:140px; }
    .cuadricula-principal { grid-template-columns:1fr; } .columna-info { display:block; }
    .consejo-simple { padding:1.5rem; } .consejo-simple .titulo-destacado { font-size:1.5rem; }
    .area-contenido { padding:1.5rem 1rem 160px; }
    .boton-sos { bottom:94px; right:16px; width:54px; height:54px; }
    .accesibilidad-contenedor { bottom:94px; left:16px; }
    .modal-sos { bottom:157px; right:16px; max-width:calc(100vw - 32px); }
    .panel-accesibilidad { max-width:calc(100vw - 32px); max-height:65dvh; overflow-y:auto; }
    .hero-visual { min-height:480px; } .tarjeta-chat { min-height:0; } .area-mensajes { height:320px; }
}
@media (max-width:500px) {
    .cabecera { padding:.7rem; } .boton-alerta-demo { font-size:.7rem; padding:.5rem; } .indicador-ia { font-size:.65rem; padding:.4rem; }
    .volver-portada img { width:105px; } .hero-copy h1 { font-size:clamp(2.65rem,12vw,3.7rem); }
    .hero-visual { min-height:430px; } .floating-card { padding:.6rem; } .phone-mockup { transform:none; }
    .cuerpo-tarjeta { padding:1.2rem; } .pie-formulario { flex-wrap:wrap; gap:.8rem; }
    .paso-item { font-size:.8rem; gap:.35rem; } .circulo-paso { width:28px; height:28px; }
    .cabecera-resultado { flex-wrap:wrap; gap:1rem; } .contenedor-input-chat { padding:.75rem; }
    .canal-acciones { max-width:none; } .texto-descriptivo { overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
@media print {
    html,body.aplicacion,body.modo-app,.app-shell,.area-principal,.area-contenido { height:auto!important; overflow:visible!important; display:block!important; }
    .cabecera,.barra-navegacion-movil,.boton-sos,.accesibilidad-contenedor,.saltar-contenido,.aviso-global,.no-imprimir,.indicador-pasos,.cabecera-titulos,.rutas-navegacion { display:none!important; }
    .cuadricula-principal { display:block!important; } .area-impresion { box-shadow:none; border:0; }
    .formato-texto-ia { color:#000!important; font-size:11pt; } .area-contenido { padding:0!important; }
    .referencias-plan a { color:#000; } #reintentar-plan { display:none; }
}

.consejo-simple .titulo-destacado, .consejo-simple .subtitulo { color:#493b2c; }
body.accesibilidad-alto-contraste .consejo-simple .titulo-destacado, body.accesibilidad-alto-contraste .consejo-simple .subtitulo { color:#fff; }
@media (min-width:900px) { .card-source { left:-2%; top:3%; } }

@media print { .area-impresion { position:static!important; } .area-impresion, .area-impresion * { color:#000!important; background:#fff!important; } }
body.accesibilidad-alto-contraste .landing-brand img,
body.accesibilidad-alto-contraste .volver-portada img,
body.accesibilidad-alto-contraste .landing-footer img { mix-blend-mode:normal; background:#fff; }
body.accesibilidad-alto-contraste .phone-alert { background:#111; border-color:#fff; }
body.accesibilidad-alto-contraste .phone-alert strong,
body.accesibilidad-alto-contraste .phone-alert small,
body.accesibilidad-alto-contraste .phone-top { color:#fff; }
body.accesibilidad-alto-contraste .phone-step > span { background:#ffd400; color:#111; }
body.accesibilidad-alto-contraste .phone-step em { color:#ffd400; }

.titulo-chat { font-size:1.2rem; }

/* Ampliación del plan: controles nativos, texto legible y scroll de la página. */
[hidden] { display:none!important; }
.landing-brand img, .volver-portada img, .landing-footer img {
    width:240px; height:64px; object-fit:cover; object-position:50% 48%; mix-blend-mode:normal;
}
.indicador-pasos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; }
.paso-item { min-width:0; padding:.6rem .2rem; text-align:left; }
.circulo-paso { flex-shrink:0; }
.campo-condicional { margin-top:1rem; }
.etiqueta-formulario { display:block; }
textarea.caja-entrada { min-height:100px; resize:vertical; font:inherit; }
.texto-ayuda { display:block; line-height:1.6; margin:.4rem 0; }
.necesidades-familia { min-width:0; border:1px solid #d6cfc5; border-radius:16px; padding:1.2rem; }
.necesidades-familia legend { font-weight:800; color:#493b2c; padding:0 .4rem; }
.opciones-necesidades { display:grid; gap:.5rem; margin-top:.8rem; }
.opciones-necesidades label { display:flex; align-items:center; gap:.8rem; min-height:48px; padding:.7rem; background:#f7f3ec; border:1px solid #e2d9cf; border-radius:10px; cursor:pointer; line-height:1.5; }
.opciones-necesidades input { width:20px; height:20px; flex-shrink:0; accent-color:#8b2525; }
.aviso-situacion { padding:1rem; margin-top:1rem; background:#fff2df; color:#61330a; border-left:4px solid #a7521d; border-radius:8px; line-height:1.7; }
.whatsapp-section .conectar-whatsapp { background:#fff; color:#14562d; border:1px solid #2b7649; }
body.accesibilidad-alto-contraste .opciones-necesidades label,
body.accesibilidad-alto-contraste .aviso-situacion,
body.accesibilidad-alto-contraste .necesidades-familia legend,
body.accesibilidad-alto-contraste .whatsapp-section .conectar-whatsapp { background:#111!important; color:#fff!important; border-color:#fff; }
@media (max-width:600px) {
    .indicador-pasos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
    .landing-brand img, .volver-portada img { width:160px; height:44px; }
    .landing-footer img { width:210px; height:56px; }
    .necesidades-familia { padding:.8rem; }
    .pie-formulario button { flex:1 1 130px; }
}

/* Resultado con resumen y tres bloques: se imprime, comparte y lee como texto. */
.formato-texto-ia.plan-en-bloques { white-space:normal; line-height:1.65; }
.plan-resumen { padding:1.25rem; margin:1rem 0 1.5rem; background:#f6f1e9; border:1px solid #e5d9cc; border-radius:16px; }
.plan-resumen .plan-lugar { font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:#8a3533; font-weight:800; margin-bottom:.3rem; }
.plan-resumen .plan-hogar { color:#332b27; font-size:1.15rem; font-weight:800; margin:.2rem 0 .8rem; }
.plan-resumen dl { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.4rem .9rem; font-size:.9rem; }
.plan-resumen dt { font-weight:800; color:#655149; }
.plan-resumen dd { margin:0; overflow-wrap:anywhere; }
.plan-bloque { padding:1.2rem 0; border-top:1px solid #e8e0d7; break-inside:avoid; }
.plan-bloque h3 { display:flex; align-items:center; gap:.7rem; font-size:1.12rem; line-height:1.4; color:#66312e; margin:0 0 .9rem; }
.plan-numero { display:inline-grid; place-items:center; flex:0 0 30px; height:30px; border-radius:50%; background:#f4e5df; color:#87332f; font-size:.85rem; }
.plan-bloque ul { margin:0; padding-left:1.3rem; }
.plan-bloque li { margin:.65rem 0; padding-left:.2rem; color:#493c36; }
.plan-prioridad { border-top:0; background:#fff9f2; border-left:3px solid #a84c34; padding:1.2rem; border-radius:12px; margin-bottom:.5rem; }
body.accesibilidad-alto-contraste .plan-resumen,
body.accesibilidad-alto-contraste .plan-prioridad { background:#111!important; border-color:#fff; }
body.accesibilidad-alto-contraste .plan-bloque h3,
body.accesibilidad-alto-contraste .plan-bloque li,
body.accesibilidad-alto-contraste .plan-resumen dt,
body.accesibilidad-alto-contraste .plan-resumen dd { color:#fff!important; }
body.accesibilidad-alto-contraste .plan-numero { background:#ffd400; color:#111; }
@media (max-width:500px) {
 .plan-resumen { padding:1rem; }
 .plan-resumen dl { grid-template-columns:1fr; gap:.15rem; }
 .plan-resumen dd { margin-bottom:.5rem; }
 .plan-bloque h3 { font-size:1.05rem; }
}
@media print {
 .area-impresion .cuerpo-tarjeta { padding:0!important; }
 .area-impresion .formato-texto-ia li,
 .area-impresion .formato-texto-ia p { font-size:10.5pt; line-height:1.5; }
 .area-impresion .plan-bloque h3 { font-size:12pt; }
 .area-impresion .plan-bloque { padding:.75rem 0; }
 .area-impresion .plan-prioridad { padding:.8rem; }
 .area-impresion .referencias-plan { font-size:9pt; break-inside:avoid; }
 .plan-resumen,.plan-prioridad { border:1px solid #aaa; }
 .plan-resumen,.plan-bloque { break-inside:avoid; }
 .plan-numero { border:1px solid #555; }
}

/* Acuerdos: mismo panel y tipografía que los apoyos del formulario. */
.acuerdos-evacuacion { margin-top:2rem; background:var(--color-blanco); }
.acuerdos-evacuacion > .texto-ayuda { margin:.25rem 0 1.25rem; }
.campos-acuerdos { display:grid; gap:1.5rem; }
.campo-acuerdo { min-width:0; }
.campo-acuerdo .etiqueta-formulario { line-height:1.5; }
.campo-acuerdo .caja-entrada { display:block; min-width:0; min-height:52px; }
.campo-acuerdo .texto-ayuda { margin:.45rem 0 0; }
.confirmacion-acuerdos { padding-top:1.25rem; border-top:1px solid var(--color-borde); }
.acuerdos-evacuacion input::placeholder { color:var(--color-gris-texto); opacity:1; }
body.accesibilidad-alto-contraste .acuerdos-evacuacion { background:#111!important; border-color:#fff; }
@media (max-width:600px) {
 .campos-acuerdos { gap:1.25rem; }
 .acuerdos-evacuacion .caja-entrada { padding:.85rem; }
}

/* Acceso al chatbot dentro de la aplicación, también en el menú móvil. */
.nav-app { flex-wrap:wrap; }
.whatsapp-presentacion { max-width:700px; margin-bottom:2rem; }
.whatsapp-presentacion .titulo-gigante { margin:.6rem 0 1rem; }
.whatsapp-opciones { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.whatsapp-opcion { min-width:0; }
.whatsapp-opcion .cuerpo-tarjeta { display:flex; flex-direction:column; height:100%; padding:2rem; }
.whatsapp-paso { display:grid; place-items:center; align-self:flex-start; width:44px; height:44px; margin-bottom:1rem; border-radius:50%; background:#f4e5df; color:#87332f; font-weight:800; }
.whatsapp-opcion h2 { margin-bottom:.75rem; line-height:1.3; }
.whatsapp-instrucciones { padding-left:1.3rem; margin:1.25rem 0 1.75rem; line-height:1.7; color:#5d514a; }
.whatsapp-instrucciones li { margin:.6rem 0; padding-left:.15rem; }
.whatsapp-instrucciones code { display:inline-block; padding:.1rem .45rem; border-radius:5px; background:#f4e5df; color:#752022; font-weight:700; letter-spacing:.04em; }
.whatsapp-opcion button { margin-top:auto; width:100%; min-height:52px; white-space:normal; line-height:1.5; }
.whatsapp-ayuda { margin-top:1.5rem; padding:1.25rem 0; border-top:1px solid var(--color-borde); color:#5d514a; line-height:1.7; }
.whatsapp-ayuda p { margin-bottom:.6rem; }
.whatsapp-ayuda small { display:block; }
.boton-nav-movil { position:relative; min-width:0; }
body.accesibilidad-alto-contraste .whatsapp-paso,
body.accesibilidad-alto-contraste .whatsapp-instrucciones code { background:#ffd400; color:#111; }
body.accesibilidad-alto-contraste .whatsapp-instrucciones { color:#fff; }
body.accesibilidad-alto-contraste .whatsapp-ayuda { border-color:#fff; }
@media (max-width:899px) {
 .boton-nav-movil { flex:1 1 auto; padding:.25rem; font-size:.75rem; }
 body.accesibilidad-texto-grande .boton-nav-movil { font-size:.875rem; }
}
@media (max-width:700px) {
 .whatsapp-opciones { grid-template-columns:1fr; }
 .whatsapp-opcion .cuerpo-tarjeta { padding:1.4rem; }
}
@media (max-width:360px) {
 .whatsapp-presentacion .titulo-gigante { font-size:2rem; }
}
