/* =====================================================================================================
   OKEYBOT · sitio.css — la única hoja de estilos del sitio
   Misma mano que la landing de referencia de la casa (papel crema, logo negro, tarjetas blancas): los valores
   de color, radio, sombra, tamaño y corte (600 / 700 / 860 / 1024) están copiados de ahí. Lo que la referencia no trae
   (secciones largas, pasos, acordeón, garantía, calculadora, prosa legal, marco oscuro suelto) está hecho
   con las mismas reglas. Pensada primero para celular. Se ve todo junto en dev/galeria.html.

   ÍNDICE DE CLASES (nombre → para qué sirve)

   Base y página
     .salto                enlace «Saltar al contenido» (primer elemento del body)
     .sr                   texto solo para lector de pantalla
     .pantalla             contenedor de página: ancho máximo 1100 px y margen lateral --pad
     .columna              bloque centrado de 36rem (tarjetas, formularios) · .media 42rem · .ancha 60rem
     .centro               centra el texto del bloque

   Cabecera (parciales/cabecera.html)
     .cabecera             envoltorio; sin barra, sin fondo, sin raya
     .cab-centro           fila que centra el logo
     .cab-logo             enlace del logo (la imagen mide 68 px de alto; 88 px desde 700)
                           (arriba no hay menú: el guion lo sacó; los enlaces del sitio van en el pie)

   Portada y títulos
     .portada              bloque centrado del arranque de una página
     .pastilla-fila        fila que centra una pastilla bajo el logo
     .pastilla             pastilla blanca de borde fino · .pastilla.tinta negra · .pastilla.chica · .pastilla-punto punto azul que late
     .titulo               título principal (h1) · .titulo.interior deja aire abajo (páginas interiores)
     .linea                cada renglón del título o de la bajada (desde 700 px van uno por renglón)
     .bajada               línea de apoyo del título principal · .junto no corta
     .portada-acciones     botón principal + enlace debajo de la bajada (22rem)
     .beneficios           viñetas negras en negrita (lista centrada como bloque)

   Botones y enlaces
     .btn                  botón principal negro, ancho completo, 52 px · .btn.auto ancho según el texto
     .btn-sec              botón secundario blanco con borde, mismo tamaño
     .btn-chico            botón chico blanco de 44 px («Volver», «Cancelar»)
     .botonera             pila de botones (22rem) · .botonera.en-fila dos columnas desde 600 px
     .enlace               enlace negro subrayado con área táctil de 44 px · .enlace.azul versión azul
     .fl                   flecha o ícono de trazo de 16 px dentro de botones y filas
     .humano               párrafo con el enlace azul que va encima de la raya del pie

   Secciones
     .seccion              ritmo vertical entre secciones largas · .seccion.junta menos aire · .seccion.primera sin aire arriba
     .seccion-cab          cabecera centrada de sección (rótulo + título + una línea)
     .rotulo               rótulo chico en mayúsculas · .rotulo.izq alineado a la izquierda
     .titulo-seccion       título de sección (h2)
     .apoyo                la única línea de apoyo bajo un título de sección
     .letra-chica          texto chico gris centrado

   Tarjetas, filas y listas
     .tarjeta              tarjeta blanca con sombra · .tarjeta-h su título · .tarjeta-p su línea de apoyo
     .tarjetas             grilla de tarjetas (2 columnas desde 600) · .de-tres 3 columnas desde 860
     .ficha                tarjeta chica plana · .ficha-ico ícono · .ficha-t rótulo (hasta 4 palabras) · .ficha-p línea (hasta 12)
     .opciones / .opcion   filas grandes con flecha (botón o enlace); al pasar o tocar se ponen negras
     .filas / .fila        filas con rótulo y una línea · .fila-n número · .fila-ico ícono · .fila-tx · .fila-t · .fila-p
                           .filas.en-dos dos columnas desde 700
     .lista-p              viñetas chicas para texto plegado · .nota-l aclaración gris bajo un renglón
     .marca-si / .marca-no sello redondo con tilde negra / con cruz gris
     .kid                  sello negro rectangular («01», «A»)
     .sello                etiqueta gris chica dentro de tarjetas

   Piezas institucionales
     .pasos / .paso        pasos numerados (cuatro fases) · .paso-n · .paso-t · .paso-p
     details.pregunta      acordeón de preguntas frecuentes (dentro de .preguntas) · .pregunta-r la respuesta
     details.plegable      «ver más» dentro de una tarjeta · .plegable-c su contenido
     .encaje               dos columnas «es para vos / no es para vos» · .encaje-col.si / .encaje-col.no · .encaje-t · .encaje-lista
     .garantia             tarjeta de garantía (borde negro) · .garantia-cab · .garantia-ico · .garantia-t · .garantia-p
                           .garantia-pasos (lista con .kid) · .garantia-nota (la condición)
     .tira                 tira de datos cortos · .tira-n número · .tira-t rótulo · .tira.de-2 / .tira.de-4
     .cierre               bloque final «papel» · .cierre-t · .cierre-p · .cierre-nota
     .barra-fija           botón flotante inferior del celular (lo muestra sitio.js con data-visible="si")
     .prosa                texto largo de Privacidad y Términos · .prosa-fecha
     .pagina-error         página no encontrada

   Formularios
     .campo                etiqueta + control + ayuda + error · .campo.opcional
     .entrada              control suelto de 52 px (input, textarea, select) · .entrada-eti su etiqueta, si no va en .campo
     .campos-dos           dos campos en fila (país + WhatsApp)
     .con-prefijo          control con prefijo fijo («USD»)
     .casilla              casilla de verificación con texto
     .ayuda / .err         ayuda gris / error (aparece solo cuando tiene texto)
     .datos                nota legal bajo el botón
     .aviso-ok             estado «enviado» · .aviso-ok-t · .aviso-ok-p
     .aviso-error          error general del formulario
     .calc                 panel de la calculadora (va sobre una .tarjeta) · .calc-campos (2 columnas desde 600; .campo.entera ocupa las dos)
                           .calc-resultado (resumen en .tira + escenarios + supuestos plegados)
     .escenarios / .escenario   los tres escenarios · .escenario-n · .escenario-p · .escenario-monto · .escenario.referencia

   Pantallas de ejemplo (oscuras, HTML y CSS, sin imágenes por red)
     .escena               caja que deja aire para lo que sobresale del marco · .escena.sin-notas sin ese aire
     .marco                pantalla oscura · .marco.se-funde se desvanece hacia abajo · .marco.aire-abajo deja lugar a una nota abajo
     .marco-cab            cabecera: .marco-puntos (tres puntos) · .marco-tag (pastilla «EJEMPLO») · .marco-rot (rótulo a la derecha)
     .marco-miga / .marco-h / .marco-sub / .marco-sec   ruta, título, bajada y rótulo de bloque dentro del marco
     .marco-caja           recuadro de texto · .marco-caja.acento con borde de acento
     .burbujas / .burbuja  conversación · .burbuja.entra (la del cliente) · .burbuja.sale (la del agente) · .burbuja-n · .burbuja-h
     .marco-lista / .marco-fila   lista con estado · .marco-fila-ico · .marco-fila-t · .marco-fila-d · .marco-estado
                           estados: .marco-fila.en-curso · .marco-fila.hecha
     .marco-datos / .marco-dato   tarjetas de dato · .marco-dato.acento
     .marco-barra          barra de avance (el avance va en --v, de 0 a 1)
     .nota                 nota blanca flotante que sobresale del marco · .nota.arriba-der / .nota.abajo-izq · .nota-c su tarjeta

   Pie (parciales/pie.html)
     .pie                  raya fina + enlaces + aviso de Meta + legales · .pie-nav · .pie-meta · .pie-legal · .pie-extra

   Movimiento
     [data-aparece]        aparición suave al entrar en pantalla (la activa sitio.js; sin script queda visible)
     .late / .hueso        relleno de carga

   PARCIALES Y SUS CLAVES (lenguaje de plantillas de build.mjs; todas existen en datos/sitio.json o las arma build.mjs)
     cabeza.html          contenido del head, SIN las etiquetas head (la página las escribe y puede sumar lo suyo después).
                          Usa: titulo, descripcion, canonical, og_titulo, og_descripcion (si la página no los define valen
                          el título y la descripción), og_imagen_url, og_imagen_alt, version, sitio.nombre, sitio.gtm,
                          sitio.ga4, sitio.calendly_url y, sin escape, meta_robots y jsonld_script (etiqueta completa o vacío).
                          Las páginas noindex (las dos de error) salen sin canónica ni og:url (bloque @si no noindex).
                          Sin scripts en línea: la medición la arranca /js/sitio.js leyendo tres <meta name="okeybot:…">.
     cabecera.html        enlace «Saltar al contenido» + logo, sin menú. La página necesita <main id="contenido">.
                          Usa: sitio.nombre y volver_html (la pastilla de volver: sale sola con el metadato
                          "volver": "inicio" o "recursos"; sin él queda vacía).
     pie.html             los tres enlaces (Recursos · Contacto · WhatsApp) + pie + la ventana del calendario y el aviso
                          «Reserva hecha», ocultos. Va después de cerrar main. Usa: sitio.nombre, pie_enlaces_html,
                          agenda_html y anio.
     barra-fija.html      barra fija de abajo con el botón negro «Agendar mi diagnóstico»; va al final del body.
                          Usa: barra_fija_html.
                          Las claves volver_html, pie_enlaces_html, agenda_html, barra_fija_html y anio salen de
                          datos/global.mjs y están en todas las páginas.
     calculadora.html     la tarjeta de la calculadora (formulario y resultado). Usa: sitio.calendly_url.
                          Tras calcular, su único botón es el negro «Agendar una llamada» (solo en /consultoria).

   CLASES DE LOS BLOQUES DEL FINAL (cada bloque las explica en su propio comentario)
     legales y error      .pagina-legal
     calculadora y preguntas   .calc-resultado.en-pantalla · .marco.calc-pantalla · .calc-barras · .calc-barra · .calc-leyendas
                          .calc-linea · .tarjeta.de-preguntas · .preguntas.en-tarjeta
     recursos             .recurso-tx · .recurso-t · .recurso-cab · .recurso-estado · .recurso-incluye · .recurso-cierre
                          .recurso-mas · .candado-cab · .candado-ico · .candado-t · .candado-p
     portada              .ancla · .pila · .tarjeta-t · .pie-enlaces · .agenda… · .reserva…
     portada 2            todo lo propio de la página de inicio (clases p2-…)
     contacto             .contacto · .via · .via-tx · .via-t · .via-p · .campo-error

   ATRIBUTOS QUE LEE sitio.js
     data-evento="nombre"   mide el clic con ese nombre; los demás data-* viajan como parámetros
                            (data-cta-zone="hero" llega como cta_zone). En un <details> se mide al abrirse.
     data-evento-carga="nombre"  mide ese evento una vez, al cargar la página, con los demás data-* como parámetros
                            (resource_view en el <main> del detalle de un recurso).
     data-calendly="origen" abre Calendly en ventana emergente; el href del enlace es el respaldo.
     data-aparece           aparición suave al entrar en pantalla (--i escalona varias piezas).
     data-sin-barra         mientras esa zona está a la vista, la barra fija se esconde.
     data-barra-desde       la barra fija aparece cuando este elemento ya salió de la pantalla (si falta, vale el h1).
     data-seccion="zona"    nombre de la zona para medir (detalle_open en los plegables, whatsapp_click).
     data-abre-con="ancla"  en <details>: se abre solo al llegar por ese ancla (#method-4d, #filtro-icp, #modelo-sociedad).
     data-grupo="nombre"    en <details>: uno abierto por vez dentro del grupo.
     data-anio              recibe el año en curso.
   ===================================================================================================== */

/* ---------- Variables (los mismos nombres que la referencia) ---------- */
:root{
  --fondo:#f5f1e8;   /* crema */
  --papel:#ece5d6;   /* crema más hondo: bloque final y contenedores de piezas blancas */
  --tarjeta:#ffffff;
  --tinta:#000000;
  --texto:#18181b;
  --suave:#52525b;
  --tenue:#63636b;   /* la referencia usa #71717a (4,3 a 1 sobre crema); este llega a AA sobre crema, papel y blanco */
  --linea:#e4decf;
  --linea-fuerte:#d3ccba;
  --borde-campo:#8c8473; /* borde de campos y casillas: 3,7 a 1 sobre blanco (en la referencia es --linea-fuerte, 1,6 a 1); va de 1 px */
  --marcador:#71717a;    /* texto de ejemplo de los campos: 4,8 a 1 sobre blanco (en la referencia es #a1a1aa, 2,6 a 1) */
  --azul:#1B70FF;        /* puntos, barras y foco */
  --azul-texto:#1558D6;  /* texto y enlaces */
  --azul-suave:rgba(27,112,255,.10);
  --error:#b42318;
  --error-suave:#fef3f2;
  --radio:18px;
  --radio-m:12px;
  --pad:12px;
  --f-titulo:"Helvetica Neue",Arial,system-ui,sans-serif;
  --f-texto:"Satoshi",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sombra:0 8px 30px -14px rgba(0,0,0,.16);
  --sombra-tarjeta:0 8px 30px -12px rgba(0,0,0,.12);
  --sombra-chica:0 1px 2px rgba(0,0,0,.04);
  --sombra-flotante:0 22px 60px -22px rgba(0,0,0,.42),0 2px 6px rgba(0,0,0,.05);
  --aire-seccion:44px; /* separación entre secciones largas */
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:16px}
body{
  margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  background:var(--fondo);color:var(--texto);
  font-family:var(--f-texto);font-size:16px;line-height:1.45;
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;
}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote,fieldset,legend{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button,a,summary,label{-webkit-tap-highlight-color:rgba(0,0,0,.06)}
svg{display:block}
img{max-width:100%}
a{color:var(--azul-texto);text-underline-offset:3px}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--azul);outline-offset:2px;border-radius:6px}
.salto{position:absolute;left:8px;top:-60px;z-index:100;display:inline-flex;align-items:center;min-height:44px;background:#000;color:#fff;padding:10px 14px;border-radius:10px;font-weight:700;text-decoration:none}
.salto:focus{top:8px}

main{flex:1 0 auto;width:100%}
.pantalla{
  width:100%;max-width:1100px;margin:0 auto;
  padding:0 max(var(--pad),env(safe-area-inset-right)) 0 max(var(--pad),env(safe-area-inset-left));
}
.columna{width:100%;max-width:36rem;margin-left:auto;margin-right:auto}
.columna.media{max-width:42rem}
.columna.ancha{max-width:60rem}
.centro{text-align:center}

/* ---------- Cabecera: solo el logo, centrado y limpio. Arriba no hay menú (guion 2.3): los enlaces viven en el pie. ---------- */
.cabecera{position:relative;width:100%;flex-shrink:0}
.cab-centro{display:flex;justify-content:center;padding:28px 20px 0;background:transparent}
.cab-logo{display:block;border-radius:8px;line-height:0}
.cab-logo img{display:block;height:68px;width:auto;max-width:none}

/* ---------- Pastilla ---------- */
.pastilla-fila{text-align:center;padding:14px var(--pad) 0}
.pastilla{
  display:inline-flex;align-items:center;gap:9px;max-width:100%;
  padding:8px 14px;border:1px solid var(--linea);border-radius:999px;background:#fff;
  box-shadow:var(--sombra-chica);
  font-size:13.5px;font-weight:700;line-height:1.25;letter-spacing:normal;text-transform:none;color:var(--tinta);text-align:left;
}
.pastilla.tinta{border-color:var(--tinta);background:var(--tinta);color:#fff;box-shadow:none}
.pastilla.chica{padding:4px 10px;font-size:12px;gap:6px}
.pastilla-punto{flex:none;width:8px;height:8px;border-radius:50%;background:var(--azul);animation:latido 1.4s ease-in-out infinite}

/* ---------- Portada: título principal y bajada ---------- */
.portada{text-align:center}
.titulo{
  font-family:var(--f-titulo);font-weight:800;letter-spacing:-.03em;color:var(--tinta);
  font-size:clamp(21px,6.2vw,28px);line-height:1.14;text-wrap:balance;text-align:center;
  max-width:34rem;margin:16px auto 0;
}
.titulo:focus{outline:none}
.titulo.interior{margin-bottom:16px}
.bajada{
  font-family:var(--f-texto);font-weight:500;color:#3f3f46;
  font-size:clamp(15px,4.2vw,18px);line-height:1.3;text-wrap:balance;text-align:center;
  max-width:30rem;margin:10px auto 0;
}
.bajada u{text-underline-offset:3px;text-decoration-thickness:1.5px}
.bajada .junto{white-space:nowrap}
.portada-acciones{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;max-width:22rem;margin:18px auto 0}
.portada-acciones .letra-chica{margin-top:6px}
.beneficios{
  display:flex;flex-direction:column;gap:6px;width:fit-content;max-width:100%;
  margin:16px auto 0;padding:0 4px;text-align:left;
}
.beneficios li{display:flex;align-items:flex-start;gap:12px;font-size:15px;font-weight:700;line-height:1.35;color:var(--texto)}
.beneficios li::before{content:"";flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--tinta)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:52px;padding:12px 20px;
  border:0;border-radius:14px;background:var(--tinta);color:#fff;
  font-family:var(--f-texto);font-size:16px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;
  transition:transform .12s ease,background .15s ease;
}
@media (hover:hover){.btn:hover{background:#27272a}}
.btn:active{transform:scale(.985)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.65;cursor:default}
.btn svg{width:18px;height:18px;flex:none}
.btn.auto,.btn-sec.auto{width:auto}
.btn-sec{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:52px;padding:12px 20px;
  border:1.5px solid var(--linea-fuerte);border-radius:14px;background:#fff;color:var(--tinta);
  font-family:var(--f-texto);font-size:16px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;
  box-shadow:var(--sombra-chica);
  transition:transform .12s ease,background .15s ease,border-color .15s ease;
}
@media (hover:hover){.btn-sec:hover{border-color:var(--tinta);background:var(--fondo)}}
.btn-sec:active{transform:scale(.985)}
.btn-sec[disabled]{opacity:.65;cursor:default}
.btn-sec svg{width:18px;height:18px;flex:none}
.btn-chico{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 16px;
  border:1px solid var(--linea);border-radius:12px;background:#fff;color:var(--texto);
  font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;box-shadow:var(--sombra-chica);
}
@media (hover:hover){.btn-chico:hover{border-color:var(--linea-fuerte);background:var(--fondo)}}
.botonera{display:grid;gap:10px;width:100%;max-width:22rem;margin-left:auto;margin-right:auto}
.enlace{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;
  background:none;border:0;border-radius:8px;
  color:var(--tinta);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;
}
.enlace.azul{color:var(--azul-texto)}
.fl{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.humano{flex-shrink:0;margin:18px 0 0;padding:0 var(--pad);text-align:center}
.humano a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:var(--azul-texto);text-underline-offset:3px}

/* ---------- Secciones: ritmo vertical, rótulo, título de sección y una línea de apoyo ---------- */
.seccion{padding-top:var(--aire-seccion);scroll-margin-top:0}
.seccion.junta{padding-top:24px}
.seccion.primera{padding-top:0}
.seccion-cab{text-align:center;margin:0 auto 18px}
.rotulo{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--suave);text-align:center;margin:0 0 8px}
.rotulo.izq{text-align:left}
.titulo-seccion{
  font-family:var(--f-titulo);font-weight:800;letter-spacing:-.03em;color:var(--tinta);
  font-size:clamp(19px,5.4vw,24px);line-height:1.16;text-wrap:balance;text-align:center;
  max-width:34rem;margin:0 auto;
}
.titulo-seccion:focus{outline:none}
.apoyo{font-size:15px;line-height:1.4;color:var(--suave);text-align:center;text-wrap:balance;max-width:30rem;margin:8px auto 0}
.letra-chica{font-size:12.5px;line-height:1.45;color:var(--suave);text-align:center;margin-top:8px}

/* ---------- Tarjeta blanca ---------- */
.tarjeta{
  border:1px solid var(--linea);border-radius:16px;background:#fff;
  box-shadow:var(--sombra-tarjeta);padding:16px;text-align:left;scroll-margin-top:12px;
}
.tarjeta-h{
  font-family:var(--f-titulo);font-weight:800;letter-spacing:-.03em;color:var(--tinta);
  font-size:20px;line-height:1.2;text-align:center;text-wrap:balance;margin:0 0 16px;
}
.tarjeta-h:focus{outline:none}
.tarjeta-p{font-size:14.5px;line-height:1.45;color:var(--suave);text-align:center;text-wrap:balance;margin:-8px 0 14px}
.tarjeta .btn,.tarjeta .btn-sec{margin-top:12px}
.tarjeta .err{margin-top:6px}
.tarjetas{display:grid;gap:10px}
.ficha{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;border:1px solid var(--linea);border-radius:16px;background:#fff;padding:14px;text-align:left}
.ficha>*{grid-column:2}
.ficha-ico{
  grid-column:1;grid-row:1 / span 3;display:grid;place-items:center;width:34px;height:34px;margin:1px 12px 0 0;
  border:1px solid var(--linea);border-radius:10px;background:var(--fondo);color:var(--tinta);
}
.ficha-ico svg,.fila-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ficha-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:17px;line-height:1.2;color:var(--tinta)}
.ficha-p{font-size:14px;line-height:1.45;color:var(--suave);margin-top:4px}
.sello{display:inline-block;font-size:12px;font-weight:700;line-height:1.3;padding:4px 9px;border-radius:999px;background:#f4f4f5;color:var(--texto)}
.kid{flex:none;display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 6px;border-radius:6px;background:var(--tinta);color:#fff;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}

/* ---------- Fila de opción con flecha (botón o enlace) ---------- */
.opciones{display:grid;gap:10px}
.opcion{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:56px;padding:12px 18px;
  border:1.5px solid var(--linea);border-radius:16px;background:#fff;color:var(--tinta);
  font-family:var(--f-texto);font-size:15px;font-weight:700;line-height:1.35;letter-spacing:-.01em;text-align:left;text-decoration:none;
  box-shadow:var(--sombra-chica);
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.opcion .fl{opacity:.45}
@media (hover:hover){
  .opcion:hover{background:var(--tinta);border-color:var(--tinta);color:#fff}
  .opcion:hover .fl{opacity:1}
}
.opcion:active{background:var(--tinta);border-color:var(--tinta);color:#fff}
.opcion[data-elegida="true"]{border-color:var(--tinta);box-shadow:inset 0 0 0 1px var(--tinta)}
.opcion[data-elegida="true"] .fl{opacity:1}

/* ---------- Filas con rótulo y una línea ---------- */
.filas{display:grid;gap:8px}
.fila{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px;
  min-height:56px;padding:10px 14px;border:1px solid var(--linea);border-radius:12px;background:#fff;
  color:var(--tinta);text-align:left;text-decoration:none;
}
.fila-n{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--tinta);color:#fff;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.fila-ico{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--linea);border-radius:10px;background:var(--fondo);color:var(--tinta)}
.fila-tx{display:flex;flex-direction:column;min-width:0}
.fila-t{font-size:15px;font-weight:700;line-height:1.25;color:var(--tinta)}
.fila-p{font-size:13px;line-height:1.35;color:var(--suave);margin-top:1px}
.fila .fl{opacity:.45}
a.fila{transition:border-color .15s ease}
@media (hover:hover){a.fila:hover{border-color:var(--tinta)}a.fila:hover .fl{opacity:1}}
a.fila:active{border-color:var(--tinta)}

/* ---------- Viñetas chicas y sellos ---------- */
.lista-p li{position:relative;padding-left:16px;font-size:14px;line-height:1.45;color:var(--texto)}
.lista-p li+li{margin-top:8px}
.lista-p li::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--tinta)}
.lista-p .nota-l{display:block;font-size:12.5px;color:var(--suave);margin-top:2px}
.marca-si,.marca-no{flex:none;display:inline-block;width:20px;height:20px;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:11px}
.marca-si{background-color:var(--tinta);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.4 5 8.8l4.5-5.4'/%3E%3C/svg%3E")}
.marca-no{box-shadow:inset 0 0 0 1.5px var(--tenue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2363636b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3.2 3.2l5.6 5.6M8.8 3.2 3.2 8.8'/%3E%3C/svg%3E")}

/* ---------- Pasos numerados (cuatro fases) ---------- */
.pasos{display:grid;gap:8px;counter-reset:paso}
.paso{
  display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;
  padding:14px;border:1px solid var(--linea);border-radius:12px;background:#fff;text-align:left;
}
.paso-n{
  grid-row:1 / span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--tinta);color:#fff;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;
}
.paso-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:17px;line-height:1.2;color:var(--tinta);align-self:center;min-height:28px;display:flex;align-items:center}
.paso-p{grid-column:2;font-size:14px;line-height:1.45;color:var(--suave);margin-top:2px}
.paso details.plegable{grid-column:2}

/* ---------- Acordeón: preguntas frecuentes y «ver más» ---------- */
.preguntas{display:grid;gap:8px}
details.pregunta{border:1px solid var(--linea);border-radius:12px;background:#fff;text-align:left}
details.pregunta[open]{border-color:var(--linea-fuerte);box-shadow:0 4px 16px -10px rgba(0,0,0,.18)}
details.pregunta>summary{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;
  min-height:56px;padding:10px 14px;border-radius:12px;
  font-size:15px;font-weight:700;line-height:1.3;color:var(--tinta);cursor:pointer;list-style:none;
}
details.pregunta>summary::-webkit-details-marker,details.plegable>summary::-webkit-details-marker{display:none}
details.pregunta>summary::after,details.plegable>summary::after{
  content:"";width:8px;height:8px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .2s ease;flex:none;
}
details.pregunta[open]>summary::after,details.plegable[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.pregunta-r{padding:0 14px 14px;font-size:14.5px;line-height:1.5;color:var(--texto)}
.pregunta-r p+p,.plegable-c p+p{margin-top:8px}
details.pregunta[open]>.pregunta-r,details.plegable[open]>.plegable-c{animation:aparece .25s ease-out}
details.plegable{margin-top:10px;border-top:1px dashed var(--linea-fuerte)}
details.plegable>summary{
  display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;
  font-size:13.5px;font-weight:700;color:var(--tinta);cursor:pointer;list-style:none;
}
.plegable-c{padding-bottom:6px;font-size:14px;line-height:1.5;color:var(--texto)}
@keyframes aparece{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- «Es para vos / no es para vos» ---------- */
.encaje{display:grid;gap:10px}
.encaje-col{border:1px solid var(--linea);border-radius:16px;background:#fff;padding:16px;text-align:left}
.encaje-col.si{border:1.5px solid var(--tinta)}
.encaje-col.no{border-style:dashed;border-color:var(--linea-fuerte);background:#faf8f3}
.encaje-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:19px;line-height:1.2;color:var(--tinta);margin-bottom:12px}
.encaje-lista{display:grid;gap:10px}
.encaje-lista li{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start;font-size:14.5px;line-height:1.4;color:var(--texto)}
.encaje-lista li::before{content:"";width:20px;height:20px;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:11px}
.encaje-col.si .encaje-lista li::before{background-color:var(--tinta);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.4 5 8.8l4.5-5.4'/%3E%3C/svg%3E")}
.encaje-col.no .encaje-lista li{color:var(--suave)}
.encaje-col.no .encaje-lista li::before{box-shadow:inset 0 0 0 1.5px var(--tenue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2363636b' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3.2 3.2l5.6 5.6M8.8 3.2 3.2 8.8'/%3E%3C/svg%3E")}

/* ---------- Tarjeta de garantía (la única con borde negro, como lo más importante del plan en la referencia) ---------- */
.garantia{border:1.5px solid var(--tinta);border-radius:16px;background:#fff;padding:16px;text-align:left;box-shadow:var(--sombra-tarjeta)}
.garantia-cab{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;margin-bottom:12px}
.garantia-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--tinta);color:#fff}
.garantia-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.garantia-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:19px;line-height:1.2;color:var(--tinta);text-wrap:balance}
.garantia-p{font-size:13.5px;line-height:1.4;color:var(--suave);margin-top:3px}
.garantia-pasos li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--linea)}
.garantia-pasos .kid{margin-top:1px}
.garantia-pasos b{display:block;font-size:15px;font-weight:700;line-height:1.3;color:var(--tinta)}
.garantia-pasos span:not(.kid){display:block;font-size:14px;line-height:1.45;color:var(--suave);margin-top:1px}
.garantia-nota{padding-top:12px;border-top:1px dashed var(--linea-fuerte);font-size:12.5px;line-height:1.45;color:var(--suave)}

/* ---------- Tira de datos cortos ---------- */
.tira{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  border:1px solid var(--linea);border-radius:16px;background:var(--linea);overflow:hidden;
}
.tira.de-2,.tira.de-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.tira>*{display:flex;flex-direction:column;justify-content:center;background:#fff;padding:12px 8px;text-align:center;min-width:0}
.tira-n{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.03em;font-size:clamp(18px,5.4vw,24px);line-height:1.1;color:var(--tinta);font-variant-numeric:tabular-nums}
.tira-t{margin-top:3px;font-size:12px;line-height:1.3;color:var(--suave);text-wrap:balance}

/* ---------- Bloque final «papel»: un título, una línea y el botón negro ---------- */
.cierre{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 14px 18px;border-radius:16px;background:var(--papel);scroll-margin-top:12px}
.cierre-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:19px;line-height:1.2;color:var(--tinta);text-wrap:balance;margin:0}
.cierre-t:focus{outline:none}
.cierre-p{font-size:14.5px;color:var(--suave);margin-bottom:8px;max-width:26rem;text-wrap:balance}
.cierre .btn,.cierre .btn-sec{max-width:22rem}
.cierre-nota{font-size:12.5px;color:var(--tenue);margin:2px 0 4px}

/* ---------- Botón flotante inferior (celular). Lo muestra sitio.js con data-visible="si"; sin script no aparece. ---------- */
.barra-fija{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  padding:10px max(var(--pad),env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));
  background:rgba(245,241,232,.94);border-top:1px solid var(--linea);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transform:translateY(105%);visibility:hidden;
  transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s linear .28s;
}
.barra-fija[data-visible="si"]{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s}
.barra-fija .btn{max-width:26rem;margin:0 auto;display:flex;min-height:48px}
body[data-barra="si"] .pie{padding-bottom:calc(86px + env(safe-area-inset-bottom))}

/* ---------- Formularios (siempre 16 px de letra: iOS no hace zoom al enfocar) ---------- */
.entrada,.campo input:not([type="checkbox"]):not([type="radio"]),.campo select,.campo textarea{
  display:block;width:100%;min-height:48px;padding:11px 12px;
  border:1px solid var(--borde-campo);border-radius:12px;background:#fff;color:var(--tinta);
  font-family:var(--f-texto);font-size:16px;line-height:1.25;
  scroll-margin-block:110px;
}
.entrada{min-height:52px;padding:13px 14px;line-height:1.4}
.campo textarea,textarea.entrada{min-height:104px;line-height:1.4;resize:vertical}
.entrada::placeholder,.campo input::placeholder,.campo textarea::placeholder{color:var(--marcador);opacity:1}
.entrada:focus,.campo input:not([type="checkbox"]):not([type="radio"]):focus,.campo select:focus,.campo textarea:focus{
  outline:none;border-color:var(--tinta);box-shadow:inset 0 0 0 .5px var(--tinta),0 0 0 3px rgba(27,112,255,.45);
}
/* Los :not repetidos son para ganarle en peso a la regla base de los campos. */
.entrada[aria-invalid="true"],.campo input[aria-invalid="true"]:not([type="checkbox"]):not([type="radio"]),.campo select[aria-invalid="true"],.campo textarea[aria-invalid="true"]{
  border-color:var(--error);background:var(--error-suave);
}
.entrada[disabled],.campo input[disabled],.campo select[disabled],.campo textarea[disabled]{opacity:.6;cursor:default}
.campo select,select.entrada{
  appearance:none;-webkit-appearance:none;padding-right:30px;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2318181b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:12px;
}
.campo{margin-top:10px}
.campo:first-child{margin-top:0}
.campo label,.campo legend,.entrada-eti{display:block;font-size:13px;font-weight:700;color:var(--tinta);margin-bottom:5px}
.campo.opcional label::after,.campo.opcional legend::after{content:" (opcional)";font-weight:500;color:var(--suave)}
.campos-dos{display:grid;grid-template-columns:minmax(0,9.4rem) minmax(0,1fr);gap:8px}
.con-prefijo{position:relative}
.con-prefijo>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--suave);pointer-events:none}
.con-prefijo>input{padding-left:50px !important}
.casilla{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;
  min-height:44px;padding:9px 0;cursor:pointer;font-size:14px;line-height:1.45;color:var(--texto);
}
.casilla input{
  appearance:none;-webkit-appearance:none;margin:0;width:22px;height:22px;flex:none;
  border:1px solid var(--borde-campo);border-radius:6px;background:#fff;display:grid;place-items:center;cursor:pointer;
}
.casilla input::after{content:"";width:11px;height:6px;border-left:2.4px solid #fff;border-bottom:2.4px solid #fff;transform:translateY(-1.5px) rotate(-45deg) scale(0);transition:transform .12s ease}
.casilla input:checked{background:var(--tinta);border-color:var(--tinta)}
.casilla input:checked::after{transform:translateY(-1.5px) rotate(-45deg) scale(1)}
.err{display:flex;align-items:flex-start;gap:6px;margin-top:5px;font-size:13px;line-height:1.35;font-weight:700;color:var(--error)}
.err:empty{display:none}
.err::before{content:"!";flex:none;display:grid;place-items:center;width:15px;height:15px;margin-top:1px;border-radius:50%;background:var(--error);color:#fff;font-size:10.5px;font-weight:800}
.ayuda{margin-top:5px;font-size:12.5px;line-height:1.35;color:var(--suave)}
.ayuda b{font-weight:700;color:var(--tinta);font-variant-numeric:tabular-nums;white-space:nowrap}
form .btn{margin-top:14px}
.datos{margin-top:10px;font-size:12px;line-height:1.4;color:var(--suave);text-align:center}
.aviso-ok{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px 4px;text-align:center}
.aviso-ok:focus{outline:none}
.aviso-ok::before{
  content:"";width:46px;height:46px;margin-bottom:6px;border-radius:50%;background:var(--tinta) no-repeat center / 24px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 10 17l9-10.5'/%3E%3C/svg%3E");
  animation:pop .35s cubic-bezier(.2,1.4,.4,1);
}
.aviso-ok-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:19px;line-height:1.2;color:var(--tinta);text-wrap:balance}
.aviso-ok-p{font-size:14.5px;line-height:1.45;color:var(--suave);max-width:26rem;text-wrap:balance}
.aviso-error{margin-top:12px;padding:10px 12px;border:1px solid var(--error);border-radius:12px;background:var(--error-suave);font-size:13.5px;line-height:1.4;font-weight:700;color:var(--error)}
.aviso-error:empty{display:none}

/* ---------- Calculadora: campos numéricos y resultado con tres escenarios ---------- */
.calc{position:relative}
.calc-campos{display:grid;gap:10px}
.calc-campos .campo{margin-top:0}
.calc-resultado{margin-top:16px;padding-top:16px;border-top:1px dashed var(--linea-fuerte)}
.calc-resultado:focus{outline:none}
.calc-resultado .tira{margin-bottom:10px}
.calc-resultado .tira-n{font-size:clamp(15px,4.3vw,20px)}
.escenarios{display:grid;gap:8px}
.escenario{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;
  padding:12px 14px;border:1px solid var(--linea);border-radius:12px;background:var(--fondo);
}
.escenario.referencia{border:1.5px solid var(--tinta);background:#fff}
.escenario-n{display:flex;align-items:center;gap:8px;min-height:24px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.escenario.referencia .escenario-n{color:var(--tinta)}
.escenario-p{grid-column:1;font-size:12.5px;line-height:1.35;color:var(--suave);margin-top:2px}
.escenario-monto{
  grid-column:2;grid-row:1 / span 2;font-family:var(--f-titulo);font-weight:800;letter-spacing:-.03em;
  font-size:21px;line-height:1.1;color:var(--tinta);font-variant-numeric:tabular-nums;white-space:nowrap;
}

/* ---------- Prosa larga (Privacidad y Términos: la única excepción a la regla de poco texto) ---------- */
.prosa{max-width:40rem;margin:0 auto;font-size:16px;line-height:1.65;color:var(--texto);text-align:left;text-wrap:pretty}
.prosa>*+*{margin-top:14px}
.prosa h2{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:20px;line-height:1.25;color:var(--tinta);margin-top:34px;text-wrap:balance}
.prosa h3{font-size:17px;font-weight:700;line-height:1.3;color:var(--tinta);margin-top:24px}
.prosa h2+*,.prosa h3+*{margin-top:8px}
.prosa ul,.prosa ol{display:grid;gap:6px;padding-left:22px}
.prosa ul{list-style:disc}
.prosa ol{list-style:decimal}
.prosa li::marker{color:var(--suave)}
.prosa strong,.prosa b{font-weight:700;color:var(--tinta)}
.prosa a{color:var(--azul-texto);font-weight:500}
.prosa-fecha{font-size:13px;line-height:1.4;color:var(--suave);text-align:center;margin:10px 0 0}

/* ---------- Página de error ---------- */
.pagina-error{text-align:center;padding:10px 0 6px}
.pagina-error .pastilla{margin-top:14px}

/* ---------- Pie: raya fina, enlaces, aviso de Meta y legales ---------- */
.pie{
  flex-shrink:0;margin-top:10px;
  padding:14px max(var(--pad),env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));
  border-top:1px solid var(--linea);text-align:center;font-size:11.5px;line-height:1.5;color:var(--suave);
  display:flex;flex-direction:column;align-items:center;
}
.pie a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:var(--azul-texto);text-underline-offset:3px}
.pie-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0 18px;margin-bottom:2px}
.pie-meta{max-width:44rem;margin:4px auto 6px;font-size:11px;line-height:1.5;color:var(--suave);text-wrap:pretty}
.pie-extra{display:block}
.pie-sep{display:none}
.pie a.pie-legal{font-size:inherit;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:3px}

/* ---------- Relleno de carga y animaciones con nombre (solo opacity y transform) ---------- */
.late{animation:respira 1.6s ease-in-out infinite;pointer-events:none}
.hueso{display:block;height:1em;border-radius:6px;background:var(--linea)}
@keyframes latido{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
@keyframes respira{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes flota{from{transform:translate3d(0,3px,0)}to{transform:translate3d(0,-2px,0)}}

/* Aparición al entrar en pantalla. La clase del <html> la pone sitio.js recién cuando puede observar:
   sin script, o con movimiento reducido, nada queda oculto. */
@media (prefers-reduced-motion:no-preference){
  html.con-aparicion [data-aparece]{opacity:0;transform:translateY(14px);transition:opacity .5s ease-out,transform .5s ease-out;transition-delay:calc(var(--i,0) * 70ms)}
  html.con-aparicion [data-aparece].visto{opacity:1;transform:none}
}

/* =====================================================================
   PANTALLAS DE EJEMPLO · marco oscuro suelto
   Paleta de noche, grises y un acento que solo se usa adentro. Fuera del marco no se usa.
   Todo es decoración: el contenedor lleva role="img" y aria-label, y lo de adentro aria-hidden.
   ===================================================================== */
.escena{position:relative;width:100%;max-width:26rem;margin:0 auto;padding:16px 12px 22px;pointer-events:none;-webkit-user-select:none;user-select:none}
.escena.sin-notas{padding:0}
.marco{
  --marco-noche:#0E1218;
  --marco-tinta:#F2F3F5;
  --marco-suave:#A3ABB9;
  --marco-gris:#7f8898;
  --marco-linea:rgba(255,255,255,.09);
  --marco-acento:#D4A84B;
  --marco-acento-alto:#E8C15A;
  --marco-acento-tenue:rgba(212,168,75,.16);
  --marco-acento-borde:rgba(212,168,75,.46);
  --marco-sombra:36 26% 20%;
  position:relative;overflow:hidden;
  font-size:13px;line-height:1.4;font-weight:500;color:var(--marco-tinta);text-align:left;letter-spacing:normal;
  background:linear-gradient(180deg,#161c26 0,var(--marco-noche) 14em);
  border:1px solid rgba(255,255,255,.10);border-radius:20px;
  padding:12px 14px 14px;
  box-shadow:0 .4em .8em hsl(var(--marco-sombra) / .10),0 2em 4.4em -1em hsl(var(--marco-sombra) / .22),0 5em 9em -2.8em hsl(var(--marco-sombra) / .24),inset 0 1px 0 rgba(255,255,255,.08);
}
.marco b,.marco i{font-style:normal;font-weight:inherit}
.marco.aire-abajo{padding-bottom:5.2em} /* deja libre el rincón que tapa una .nota.abajo-izq */
/* Se funde hacia abajo, como las pantallas del mockup: para que «asome» en vez de terminar con un borde. */
.marco.se-funde{
  border-bottom:0;border-radius:20px 20px 0 0;padding-bottom:34px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 62%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 62%,transparent 100%);
}
.marco-cab{display:flex;align-items:center;gap:.8em;min-height:1.6em;margin-bottom:.9em;color:var(--marco-gris);font-size:.86em;line-height:1.2}
.marco-puntos{display:inline-flex;gap:.4em}
.marco-puntos i{width:.55em;height:.55em;border-radius:50%;background:#3a4150}
.marco-tag{
  display:inline-flex;align-items:center;height:1.9em;padding:0 .75em;border-radius:99em;
  font-size:.9em;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1;
  border:1px solid rgba(255,255,255,.16);color:var(--marco-suave);white-space:nowrap;
}
.marco-rot{margin-left:auto;white-space:nowrap}
.marco-miga{font-size:.86em;line-height:1.4;color:var(--marco-gris);margin-bottom:.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marco-h{font-size:1.55em;font-weight:700;letter-spacing:-.03em;line-height:1.12}
.marco-sub{color:var(--marco-suave);margin-top:.3em;text-wrap:balance}
.marco-sec{font-size:.8em;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--marco-gris);margin:1.4em 0 .6em;white-space:nowrap}
.marco-caja{border:1px solid var(--marco-linea);background:rgba(255,255,255,.025);border-radius:1em;padding:.8em .95em;color:#d5d9e0}
.marco-caja.acento{border-color:var(--marco-acento-borde);background:none}
.burbujas{display:grid;gap:.5em;margin-top:.9em}
.burbuja{position:relative;max-width:86%;padding:.55em .85em .6em;border-radius:1.05em;line-height:1.35}
.burbuja.entra{justify-self:start;border-top-left-radius:.3em;border:1px solid var(--marco-linea);background:rgba(255,255,255,.07);color:#d5d9e0}
.burbuja.sale{justify-self:end;border-top-right-radius:.3em;background:#fff;color:#111B21}
.burbuja-n{display:block;font-size:.84em;line-height:1.3;font-weight:700;color:var(--marco-suave);margin-bottom:.1em}
.burbuja.sale .burbuja-n{color:#55555c}
.burbuja-h{float:right;margin:.55em 0 -.15em .8em;font-size:.78em;line-height:1;color:var(--marco-gris)}
.burbuja.sale .burbuja-h{color:#667781}
.marco-lista{display:grid;gap:.25em}
.marco-fila{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:.8em;
  padding:.65em .7em;border-radius:1em;border:1px solid transparent;
}
.marco-fila-ico{width:1.7em;height:1.7em;border-radius:50%;border:1px solid #39414f;display:grid;place-content:center}
.marco-fila-ico::after{content:"";width:.5em;height:.5em;border-radius:50%;background:#39414f}
.marco-fila-t{display:block;font-weight:700}
.marco-fila-d{display:block;color:#8f98a7;font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marco-estado{font-size:.82em;font-weight:700;padding:.28em .75em;border-radius:99em;border:1px solid #333b49;color:#97a0af;white-space:nowrap}
.marco-fila.en-curso{background:var(--marco-acento-tenue);border-color:var(--marco-acento-borde)}
.marco-fila.en-curso .marco-fila-t{color:var(--marco-acento-alto)}
.marco-fila.en-curso .marco-fila-ico{border-color:var(--marco-acento)}
.marco-fila.en-curso .marco-fila-ico::after{background:var(--marco-acento)}
.marco-fila.en-curso .marco-estado{border-color:var(--marco-acento-borde);color:var(--marco-acento-alto)}
.marco-fila.hecha .marco-fila-ico{border-color:var(--marco-tinta);background:var(--marco-tinta)}
.marco-fila.hecha .marco-fila-ico::after{width:.72em;height:.4em;border-radius:0;background:none;border-left:.16em solid var(--marco-noche);border-bottom:.16em solid var(--marco-noche);transform:translateY(-.08em) rotate(-45deg)}
.marco-fila.hecha .marco-estado{border-color:rgba(255,255,255,.28);color:var(--marco-tinta)}
.marco-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6em}
.marco-dato{border:1px solid var(--marco-linea);background:rgba(255,255,255,.025);border-radius:1em;padding:.75em .95em .8em;min-width:0}
.marco-dato span{display:block;font-size:.78em;line-height:1.3;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--marco-gris)}
.marco-dato b{display:block;margin-top:.15em;font-size:1.6em;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.marco-dato.acento b{color:var(--marco-acento-alto)}
.marco-barra{height:.5em;margin-top:.7em;border-radius:99em;background:#232a36;overflow:hidden}
.marco-barra i{display:block;height:100%;border-radius:inherit;background:var(--marco-acento);transform-origin:left center;transform:scaleX(var(--v,.5))}
/* Nota blanca que sobresale del marco (la tarjeta del «cuello de botella» del mockup, suelta). */
.nota{position:absolute;z-index:2;max-width:64%}
.nota.arriba-der{top:0;right:0;transform:rotate(2.5deg)}
.nota.abajo-izq{left:0;bottom:0;transform:rotate(-2deg)}
.nota-c{
  background:#fff;border:1px solid rgba(11,11,12,.11);border-radius:16px;padding:10px 13px 11px;color:#0b0b0c;
  box-shadow:0 .4em .8em hsl(36 26% 20% / .10),0 2em 4.4em -1em hsl(36 26% 20% / .22),0 5em 9em -2.8em hsl(36 26% 20% / .24),inset 0 1px 0 rgba(255,255,255,.9);
  animation:flota 7s ease-in-out infinite alternate;
}
.nota.abajo-izq .nota-c{animation-duration:8.5s;animation-delay:-3s}
.nota-c span{display:block;font-size:10.5px;line-height:1.3;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#55555c;margin-bottom:.3em;white-space:nowrap}
.nota-c b{display:block;font-size:15px;font-weight:700;line-height:1.14;letter-spacing:-.02em;text-wrap:balance}

/* =====================================================================
   ADAPTACIÓN A PANTALLAS ANCHAS (el celular es la composición principal)
   ===================================================================== */
@media (max-width:359px){
  .campos-dos{grid-template-columns:minmax(0,1fr)}
  .pastilla{font-size:12.5px;padding:7px 11px}
  .tira:not(.de-2):not(.de-4){grid-template-columns:minmax(0,1fr)}
}
@media (min-width:600px){
  :root{--pad:20px}
  .tarjetas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ficha{display:block}
  .ficha-ico{margin:0 0 10px}
  .botonera.en-fila{grid-template-columns:repeat(2,minmax(0,1fr));max-width:36rem}
  .calc-campos{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .calc-campos .campo.entera{grid-column:1 / -1}
  .escenarios{grid-template-columns:repeat(3,minmax(0,1fr))}
  .escenario{grid-template-columns:minmax(0,1fr);align-content:start;row-gap:2px;padding:14px}
  .escenario-monto{grid-column:1;grid-row:auto;order:2;font-size:24px;margin:6px 0 4px}
  .escenario-n{order:1}
  .escenario-p{order:3}
  .pie-extra{display:inline}
  .pie-sep{display:inline}
}
/* Desde 700 px: la composición de escritorio de la referencia. */
@media (min-width:700px){
  :root{--aire-seccion:60px}
  .cab-centro{padding:36px 32px 0}
  .cab-logo img{height:88px}
  .pastilla{padding:9px 16px;gap:10px;font-size:15px}
  .pastilla.chica{padding:4px 10px;font-size:12px}
  .titulo,.bajada{max-width:60rem}
  .titulo .linea,.bajada .linea{display:block;text-wrap:balance}
  .titulo{font-size:clamp(25px,3.5vw,34px);line-height:1.15;margin-top:22px}
  .titulo.interior{margin-bottom:24px}
  .bajada{font-size:clamp(17px,2vw,21.5px);line-height:1.25;margin-top:12px}
  .portada-acciones{margin-top:24px}
  .beneficios{margin-top:24px;gap:8px}
  .beneficios li{font-size:16px}
  .seccion-cab{margin-bottom:24px}
  .rotulo{font-size:12px}
  .titulo-seccion{font-size:clamp(22px,2.8vw,28px);line-height:1.15;max-width:44rem}
  .apoyo{font-size:16.5px;max-width:38rem;margin-top:10px}
  .tarjeta{padding:20px}
  .tarjeta-h{font-size:24px;margin-bottom:20px}
  .tarjeta-p{font-size:15.5px;margin:-10px 0 18px}
  .ficha{padding:16px}
  .opcion{font-size:17px;min-height:62px;padding:14px 20px}
  .filas.en-dos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pasos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .paso{padding:16px}
  .encaje{grid-template-columns:repeat(2,minmax(0,1fr))}
  .encaje-col,.garantia{padding:20px}
  .tira.de-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tira>*{padding:16px 10px}
  .tira-n{font-size:26px}
  .tira-t{font-size:13px}
  .prosa{font-size:17px}
  .prosa h2{font-size:22px}
  .marco{font-size:14px}
  .barra-fija{display:none}
  body[data-barra="si"] .pie{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media (min-width:860px){
  :root{--aire-seccion:72px}
  .pantalla{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
  .tarjetas.de-tres{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pasos{grid-template-columns:repeat(4,minmax(0,1fr))}
  .paso{grid-template-columns:minmax(0,1fr);row-gap:10px;align-content:start}
  .paso-n{grid-row:auto}
  .paso-t{min-height:0}
  .paso-p,.paso details.plegable{grid-column:1}
  details.pregunta>summary{padding:12px 16px;font-size:16px}
  .pregunta-r{padding:0 16px 16px;font-size:15px}
  .garantia-pasos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px;border-top:1px solid var(--linea)}
  .garantia-pasos li{border-top:0;padding:14px 0}
  .cierre{padding:34px 20px 24px}
  .cierre-t{font-size:22px}
  .garantia-t,.encaje-t{font-size:22px}
}

/* ---------- Movimiento reducido: se apaga todo ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
@media print{
  .barra-fija,.salto{display:none !important}
  [data-aparece]{opacity:1 !important;transform:none !important}
}

/* ===== legales y error ===== */
/* Privacidad y Términos terminan en un párrafo, no en un bloque de cierre: se les deja aire antes del pie.
   Va junto a .pantalla en el mismo elemento (solo toca el borde de abajo). */
.pagina-legal{padding-bottom:32px}
@media (min-width:700px){
  .pagina-legal{padding-bottom:48px}
}

/* ===== calculadora y preguntas ===== */
/* Calculadora (parciales/calculadora.html). El resultado reemplaza al formulario dentro de la misma tarjeta y va
   en una pantalla oscura del kit (.marco) rotulada «Estimación». Son los números de la persona: es contenido,
   no un dibujo. Colores de pantalla nueva: noche, blanco, gris y azul (solo la barra «Base»).
     .calc-resultado.en-pantalla   el resultado sin la raya de arriba (ocupa el lugar del formulario)
     .marco.calc-pantalla          la pantalla · .calc-barras / .calc-barra(.base) · .calc-barra-n · .calc-barra-monto
     .calc-leyendas                las líneas grises de abajo de las barras
     .calc-linea                   la línea del requisito, sobre blanco, encima del botón de la llamada */
.calc-resultado.en-pantalla{margin-top:0;padding-top:0;border-top:0}
.marco.calc-pantalla{--marco-acento:var(--marco-gris);padding:14px 16px 16px}
.calc-pantalla .marco-cab{margin-bottom:14px}
.calc-pantalla .marco-tag{font-size:11px}
.calc-barras{display:grid;gap:14px}
.calc-barra{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px}
.calc-barra-n{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.3;color:var(--marco-suave)}
.calc-barra-monto{min-height:1.3em;font-size:15px;font-weight:700;line-height:1.3;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-barra .marco-barra{grid-column:1 / -1;height:8px;margin-top:6px}
.calc-barra .marco-barra i{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.calc-barra.base{--marco-acento:var(--azul)}
.calc-barra.base .calc-barra-n{color:var(--marco-tinta)}
.calc-leyendas{margin-top:14px;font-size:12.5px;line-height:1.45;color:var(--marco-suave)}
.calc-leyendas p+p{margin-top:2px}
.calc-linea{margin-top:14px;font-size:14px;line-height:1.4;color:var(--suave);text-align:center;text-wrap:balance}
.calc-linea+.btn,.calc-linea+.btn-sec{margin-top:8px}
/* Preguntas frecuentes dentro de una tarjeta blanca (datos/preguntas.mjs): filas separadas por una raya fina
   en vez de recuadros sueltos.
     .tarjeta.de-preguntas         la tarjeta · .preguntas.en-tarjeta sus filas (details.pregunta sin recuadro) */
.tarjeta.de-preguntas{padding-top:4px;padding-bottom:4px}
.preguntas.en-tarjeta{gap:0}
.preguntas.en-tarjeta details.pregunta{border:0;border-top:1px solid var(--linea);border-radius:0;background:none;box-shadow:none}
.preguntas.en-tarjeta details.pregunta:first-child{border-top:0}
.preguntas.en-tarjeta details.pregunta>summary{min-height:52px;padding:10px 0;border-radius:8px}
.preguntas.en-tarjeta .pregunta-r{padding:0 0 14px}
.tarjeta.de-preguntas>details.plegable{margin-top:0}

/* ===== recursos ===== */
/* /recursos y /recursos/<slug>. Solo lo que el kit no trae, hecho con sus variables.
     .recurso-tx · .recurso-t                  contenido de una fila .opcion de recurso: tipo (.rotulo) arriba, título y pastilla
                                               (la pastilla va debajo del título en celular y a la derecha desde 600 px)
     .recurso-cab                              arranque del detalle: el tipo (.rotulo) va pegado encima del título
     .recurso-estado                           «Disponible pronto» y su línea, centrados dentro de la tarjeta
     .recurso-incluye                          plegable «Qué va a incluir»: aire entre el párrafo y la lista
     .recurso-cierre                           un .cierre sin línea de apoyo: aire entre el título y el botón
     .recurso-mas                              rótulo «Más de …» sobre sus filas
     .candado-cab · .candado-ico · .candado-t · .candado-p   cabecera del formulario (la pieza del candado de la referencia) */
.recurso-tx{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1 1 auto;min-width:0}
.recurso-tx .rotulo{margin:0;text-align:left;transition:color .15s ease}
.recurso-t{display:block}
.recurso-tx .pastilla{margin-top:4px}
/* La fila se pone negra al pasar o tocar: el tipo pasa a un gris que se lee sobre negro. */
@media (hover:hover){.opcion:hover .recurso-tx .rotulo{color:var(--linea-fuerte)}}
.opcion:active .recurso-tx .rotulo{color:var(--linea-fuerte)}
@media (min-width:600px){
  .recurso-tx{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center}
  .recurso-tx .rotulo,.recurso-t{grid-column:1}
  .recurso-tx .pastilla{grid-column:2;grid-row:1 / span 2;margin-top:0}
}
.recurso-cab .rotulo{margin:16px 0 6px}
.recurso-cab .titulo{margin-top:0}
.recurso-estado{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0 4px;text-align:center}
.recurso-estado .tarjeta-p{margin:0}
.recurso-incluye .lista-p{margin-top:10px}
.recurso-cierre .cierre-t{margin-bottom:10px}
.recurso-mas{margin-bottom:10px}
.candado-cab{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;margin-bottom:12px}
.candado-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--tinta);color:#fff}
.candado-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.candado-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:18px;line-height:1.2;color:var(--tinta)}
.candado-p{font-size:13.5px;line-height:1.4;color:var(--suave);margin-top:3px}
@media (min-width:700px){
  .recurso-cab .rotulo{margin-top:22px}
}

/* ===== portada ===== */
/* Armazón común y página de inicio. Solo lo que el kit no trae, hecho con sus variables.
   Armazón (todas las páginas)
     .pie-enlaces · .punto          los tres enlaces del pie, encima de la raya, separados por un punto medio
     .barra-fija                    desde 700 px vuelve a verse: el guion la pide igual en celular y en escritorio
     .agenda · .agenda-fondo · .agenda-caja · .agenda-cerrar · .agenda-respaldo · .agenda-marco
                                    ventana del calendario (la muestra sitio.js; viaja oculta en el pie)
     .reserva · .reserva-caja · .reserva-t · .reserva-p   aviso «Reserva hecha», pegado abajo
     .ancla                         destino vacío de un ancla vieja (no ocupa lugar)
   Piezas sueltas
     .pila                          tarjetas apiladas, con 12 px entre sí
     .tarjeta-t                     título h3 de una tarjeta (la pieza .diag-t de la referencia)
   Lo propio de la página de inicio está en el bloque «portada 2», más abajo. */

/* ---------- Armazón ---------- */
.ancla{display:block;height:0}
.pie-enlaces{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:28px}
.pie-enlaces .punto{padding:0 10px;font-weight:700;color:var(--suave)}

html.con-agenda{overflow:hidden}
.agenda{
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
}
body[data-reserva="si"] .agenda{padding-bottom:calc(var(--alto-reserva,150px) + 10px)}
.agenda-fondo{position:absolute;inset:0;background:rgba(24,24,27,.55)}
.agenda-caja{
  position:relative;display:flex;flex-direction:column;width:100%;max-width:62rem;height:100%;max-height:46rem;overflow:hidden;
  border-radius:var(--radio);background:var(--fondo);box-shadow:var(--sombra-flotante);animation:aparece .25s ease-out;
}
.agenda-caja:focus{outline:none}
.agenda-cerrar{
  flex:none;align-self:flex-end;display:grid;place-items:center;width:44px;height:44px;margin:6px 6px 0 0;padding:0;
  border:1px solid var(--linea);border-radius:50%;background:#fff;color:var(--tinta);box-shadow:var(--sombra-chica);
}
.agenda-cerrar .fl{width:18px;height:18px}
.agenda-marco{position:relative;flex:1 1 auto;min-height:0}
.agenda-marco iframe{display:block;width:100%;height:100%;border:0;background:var(--fondo)}
.agenda[data-cargando] .agenda-marco::after{
  content:"";position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;
  border:3px solid var(--linea-fuerte);border-top-color:var(--tinta);animation:agenda-gira .8s linear infinite;pointer-events:none;
}
.agenda-respaldo{position:absolute;left:0;right:0;top:calc(50% + 26px);z-index:2;text-align:center}
@keyframes agenda-gira{to{transform:rotate(360deg)}}

.reserva{
  position:fixed;left:0;right:0;bottom:0;z-index:210;
  padding:12px max(var(--pad),env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));
  background:rgba(245,241,232,.96);border-top:1px solid var(--linea);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:aparece .25s ease-out;
}
.reserva-caja{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:26rem;margin:0 auto;text-align:center}
.reserva-caja:focus{outline:none}
.reserva-t{font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;font-size:17px;line-height:1.2;color:var(--tinta)}
.reserva-p{font-size:14px;line-height:1.4;color:var(--suave);margin-bottom:8px}
.reserva .btn-sec{min-height:48px}
body[data-reserva="si"] .pie{padding-bottom:calc(var(--alto-reserva,150px) + 18px)}

/* ---------- Piezas sueltas ---------- */
.portada-acciones .letra-chica{text-wrap:balance}
.pila{display:grid;gap:12px}
.pila>*{min-width:0}

.tarjeta-t{
  font-family:var(--f-titulo);font-weight:800;letter-spacing:-.015em;color:var(--tinta);
  font-size:19px;line-height:1.2;text-wrap:balance;margin:0 0 12px;
}
.tarjeta .escena+.letra-chica{margin-top:12px}

/* Una tarjeta que termina en un plegable cerrado no necesita tanto aire abajo: el renglón del plegable ya mide 44 px. */
.tarjeta:has(>details.plegable:last-child),.garantia:has(>details.plegable:last-child){padding-bottom:6px}
.tarjeta:has(>details.plegable[open]:last-child),.garantia:has(>details.plegable[open]:last-child){padding-bottom:12px}
.plegable-c p+.lista-p{margin-top:8px}
.plegable-c .lista-p+p{margin-top:10px}

@media (min-width:700px){
  .barra-fija{display:block}
  body[data-barra="si"] .pie{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .pie-enlaces{margin-top:36px}
}
/* Celular apaisado (poco alto): la cabecera y el título llevan menos aire, como en la referencia. */
@media (min-width:700px) and (max-height:480px){
  .cab-centro{padding-top:14px}
  .titulo{margin-top:14px}
}
@media (min-width:860px){
  .tarjeta-t{font-size:22px}
}

/* ===== contacto ===== */
/* /contact y los formularios que envía /js/formularios.js. Solo lo que el kit no trae, hecho con sus variables.
     .contacto                 pila de la página: las dos filas, la tarjeta del formulario y el bloque final
     .via                      fila .opcion de dos renglones · .via-tx el texto · .via-t el rótulo · .via-p la línea gris
     .campo-error              aviso de error de un campo (el mismo dibujo que .err: aparece solo cuando tiene texto)
   Sin JavaScript un formulario con data-formulario no puede enviarse (la API solo recibe JSON): se esconde, y la
   página deja en su lugar, dentro de un <noscript>, los caminos que sí funcionan. */
.contacto{display:grid;gap:14px;padding-bottom:20px}
.contacto>*{min-width:0}
.via-tx{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}
.via-t{display:block}
.via-p{display:block;font-size:13px;font-weight:500;line-height:1.35;letter-spacing:normal;color:var(--suave);transition:color .15s ease}
/* La fila se pone negra al pasar o tocar: la línea pasa a un gris que se lee sobre negro. */
@media (hover:hover){.opcion:hover .via-p{color:var(--linea-fuerte)}}
.opcion:active .via-p{color:var(--linea-fuerte)}
.campo-error{display:flex;align-items:flex-start;gap:6px;margin-top:5px;font-size:13px;line-height:1.35;font-weight:700;color:var(--error)}
.campo-error:empty{display:none}
.campo-error::before{content:"!";flex:none;display:grid;place-items:center;width:15px;height:15px;margin-top:1px;border-radius:50%;background:var(--error);color:#fff;font-size:10.5px;font-weight:800}
.tarjeta .campo-error{margin-top:6px}
/* Enlaces dentro de una frase (mensaje de error y nota legal): zona de toque de 44 px sin mover el renglón. */
.contacto .aviso-error a,.contacto .datos a{display:inline-block;min-height:0;padding:14px 2px;margin:-14px -2px;border-radius:6px;font:inherit;text-decoration:underline;text-underline-offset:3px}
.contacto .aviso-error a{color:inherit}
.contacto .datos a{color:var(--azul-texto)}
.contacto .cierre .rotulo{margin-bottom:4px}
@media (scripting:none){
  form[data-formulario]{display:none}
}
@media (min-width:700px){
  .contacto{gap:18px;padding-bottom:28px}
  .via-p{font-size:14px}
}

/* ===== portada 2 ===== */
/* La página de inicio que vende la consultoría (diseno/BRIEF.md). Todo cuelga de body.p2 o de clases p2-…
   Usa además el motor de scroll (estilos/scrollcraft.css + js/scrollcraft.js, copias sin editar) y js/portada.js.

   CÓMO ESTÁ PENSADO EL MOVIMIENTO
   Lo que está escrito acá, sin más, es la COMPOSICIÓN FINAL: todo a la vista, resuelto y quieto. Así se ve sin
   JavaScript y con movimiento reducido (sin tramos de scroll vacíos, porque el motor no se monta).
   Cuando portada.js puede animar, pone html.p2-vivo y recién ahí valen los estados «de antes» (.viva, .pend,
   :not(.on), :not(.visto)). Solo se animan transform y opacity (clip-path en el gráfico, stroke-dashoffset en trazos).

     .p2-inicio / .p2-escena …   acto 1: la escena en planos (.p2-plano = lo mueve el scroll · .p2-prof = lo mueve el puntero)
     .p2-fugas / .p2-pend …      acto 2: tarjeta «Pendientes» con reloj · .p2-fila.viva = todavía sin vencer
     .p2-reloj / .p2-esfera      el reloj (dígitos + esfera). Lo mueve portada.js en [data-p2-hora] y [data-p2-aguja]
     .p2-respiro / .p2-frase     acto 3: la frase grande
     .p2-noche …                 acto 4 (fijado): .p2-ventana (tres luces/fotos fundidas) + .p2-turno (.p2-res.pend = sin resolver)
     .p2-equipo / .p2-riel …     acto 5: riel lateral · .p2-agente tarjeta · .p2-gesto y sus piezas g-… (gesto animado)
     .p2-fases / .p2-fase        acto 6: línea que se traza (--d) y nodos que se encienden (.on)
     .p2-futuros / .p2-grafico … acto 7: gráfico de dos futuros (--d) · .p2-hitos · .p2-etapas
     .p2-filtro                  acto 8: usa .encaje del kit; se tilda y se apaga al entrar (.visto)
     .p2-agenda / .p2-semana     acto 11: lámina de agenda con el horario marcado
     .p2-etiqueta                rótulo «Ejemplo» / «Ilustración del objetivo» */

/* El motor trae sus propias variables: acá se apuntan a las del kit, con las cuatro inversiones de lienzo claro
   (fondo crema, tinta negra, brillo de borde blanco y sombras a la mitad, teñidas hacia el papel). */
:root{
  --sc-canvas:var(--fondo);--sc-surface:var(--tarjeta);--sc-ink:var(--tinta);--sc-ink-soft:var(--suave);
  --sc-accent:var(--azul);--sc-accent-ink:#fff;
  --sc-font-display:var(--f-titulo);--sc-font-text:var(--f-texto);--sc-font-mono:var(--f-texto);
  --sc-track-normal:0em;--sc-r-lg:var(--radio);
  --sc-shadow-color:36 26% 20%;
  --sc-e1:0 1px 2px hsl(var(--sc-shadow-color) / .12),0 2px 6px -1px hsl(var(--sc-shadow-color) / .09);
  --sc-e2:0 2px 4px hsl(var(--sc-shadow-color) / .11),0 8px 18px -4px hsl(var(--sc-shadow-color) / .14);
  --sc-e3:0 4px 8px hsl(var(--sc-shadow-color) / .10),0 18px 40px -8px hsl(var(--sc-shadow-color) / .18),0 48px 90px -24px hsl(var(--sc-shadow-color) / .14);
  --sc-edge:inset 0 1px 0 rgba(255,255,255,.9);
}
/* Lo que la hoja del motor le cambia al cuerpo y el kit no vuelve a fijar. */
body.p2{letter-spacing:normal;font-synthesis-weight:auto;text-rendering:auto;--aire-seccion:78px}
.p2 .cab-logo img{display:block}
.p2 .seccion-cab{margin-bottom:22px}
/* Sin el motor andando (sin JavaScript, con movimiento reducido o si algo falla) nada queda escondido. */
html:not(.sc-ready) .p2 [data-sc-in],html:not(.sc-ready) .p2 [data-sc-stagger]>*,html:not(.sc-ready) .p2 [data-sc-cue]{opacity:1;transform:none}
.p2-pausa,.p2-pausa *,.p2-pausa *::before,.p2-pausa *::after{animation-play-state:paused !important}

/* Títulos: la misma letra pesada del kit, con más cuerpo. */
.p2 .titulo{font-size:clamp(26px,7.5vw,31px);line-height:1.07;letter-spacing:-.035em;max-width:13.2em;margin-top:14px}
.p2 .bajada{max-width:20rem;margin-top:12px}
.p2 .titulo-seccion{font-size:clamp(24px,6.9vw,29px);line-height:1.08;letter-spacing:-.035em;max-width:14em}
.p2-or{display:inline-block}
.p2 .apoyo{font-size:15.5px}
.p2-condicion{max-width:18.5rem;margin:8px auto 0}
.p2-etiqueta{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--tinta);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1;white-space:nowrap}
.p2-etiqueta.clara{border:1px solid var(--linea);background:#fff;color:var(--suave)}

/* ---------- Acto 1 · la escena en planos ---------- */
.p2-escena{margin-top:26px;pointer-events:none;-webkit-user-select:none;user-select:none}
.p2-escena-caja{position:relative;height:420px;max-width:1240px;margin:0 auto;overflow-x:clip;clip-path:inset(-260px 0 0 0)}
@supports not (overflow-x:clip){.p2-escena{overflow:hidden}}
.p2-plano{position:absolute;will-change:transform}
.p2-prof{transform:translate3d(calc(var(--mx,0) * var(--k,0) * 1px),calc(var(--my,0) * var(--k,0) * .6px),0) rotate(var(--giro,0deg))}
.p2-plano-foto{inset:-10px 0 0;z-index:0;opacity:.36;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 34%,#000 66%,transparent 96%),linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0,#000 34%,#000 66%,transparent 96%),linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%);mask-composite:intersect}
.p2-plano-foto picture,.p2-plano-foto img{display:block;width:100%;height:100%;max-width:none}
.p2-plano-foto img{object-fit:cover}
.p2-plano-hoja{z-index:1;right:4%;top:262px;width:214px}
.p2-plano-hoja .p2-prof{--giro:4deg}
.p2-plano-izq{z-index:2;left:-30px;top:14px;width:200px}
.p2-plano-der{z-index:2;right:-34px;top:0;width:200px}
.p2-plano-der .marco-cab,.p2-plano-der .p2-mini-fila{flex-direction:row-reverse}
.p2-plano-der .p2-mini .marco-rot{margin-left:0;margin-right:auto}
.p2-plano-foco{z-index:3;left:0;right:0;top:82px;width:min(290px,77%);margin:0 auto}
/* Los dos avisos van por delante del piso: son el primer plano y no se destiñen. */
.p2-plano-nota-a{z-index:6;left:3.5%;top:312px}
.p2-plano-nota-a .p2-prof{--giro:-2.5deg}
.p2-plano-nota-b{z-index:6;right:3%;top:350px}
.p2-plano-nota-b .p2-prof{--giro:2deg}
/* El piso funde el fondo de la escena con el papel. Pasa 2 px del borde de la caja para que el recorte no deje costura. */
.p2-escena-piso{position:absolute;left:0;right:0;bottom:-2px;height:98px;z-index:5;background:linear-gradient(to bottom,rgba(245,241,232,0),var(--fondo) 86%)}

.p2-hoja{background:#fff;border:1px solid var(--linea);border-radius:14px;box-shadow:var(--sombra-tarjeta);padding:12px}
.p2-hoja-cab{display:flex;justify-content:space-between;margin-bottom:10px}
.p2-hoja-cab i{display:block;height:7px;border-radius:7px;background:var(--linea)}
.p2-hoja-cab i:first-child{width:38%;background:var(--linea-fuerte)}
.p2-hoja-cab i:last-child{width:16%}
.p2-hoja-grilla{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.p2-hoja-grilla i{display:block;height:20px;border-radius:6px;background:#f4f0e7}
.p2-hoja-grilla i.tomado{background:var(--linea)}
.p2-hoja-grilla i.marca{background:var(--tinta)}

.p2-mini{font-size:11.5px;padding:10px 12px 8px;border-radius:16px}
.p2-mini .marco-cab{margin-bottom:.5em}
.p2-mini .marco-rot{margin-left:auto;font-weight:700;color:var(--marco-suave)}
.p2-mini-fila{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;border-top:1px solid var(--marco-linea)}
.p2-mini-fila.tenue{opacity:.55}
.p2-mini-raya{display:block;flex:0 0 46%;height:7px;border-radius:7px;background:#2c3442}
.p2-mini-raya.corta{flex-basis:30%}
.p2-mini-pastilla{display:block;width:42px;height:15px;border-radius:99px;border:1px solid #333b49}
.p2-cambia{display:grid;justify-items:end}
.p2-cambia b{grid-area:1 / 1;padding:3px 8px;border-radius:99px;font-size:10.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.p2-cambia .de{width:44px;height:19px;padding:0;border:1px solid #3a4352;opacity:0}
.p2-cambia .a{background:#fff;color:#0E1218}

.p2-chat{font-size:13px;padding:12px 12px 14px}
.p2-chat .marco-cab{justify-content:space-between;margin-bottom:10px}
.p2-en-linea{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--marco-tinta)}
.p2-en-linea i{width:7px;height:7px;border-radius:50%;background:var(--azul);animation:latido 1.4s ease-in-out infinite}
.p2-chat .marco-tag{border-color:rgba(255,255,255,.28);color:var(--marco-tinta);font-size:10.5px}
.p2-chat .burbujas{gap:7px;margin-top:0}
.p2-chat .burbuja{max-width:88%;padding:7px 11px 8px;line-height:1.3}
.p2-chat .burbuja.entra{color:var(--marco-tinta)}
.p2-turno-b2{display:grid;justify-items:end}
.p2-turno-b2>*{grid-area:1 / 1}
.p2-escribe{align-self:start;display:inline-flex;gap:4px;padding:10px 12px;border-radius:14px 4px 14px 14px;background:rgba(255,255,255,.14);opacity:0}
.p2-escribe i{width:5px;height:5px;border-radius:50%;background:#fff;animation:latido 1s ease-in-out infinite}
.p2-escribe i:nth-child(2){animation-delay:.15s}
.p2-escribe i:nth-child(3){animation-delay:.3s}

.p2-aviso{display:inline-flex;align-items:center;gap:8px;padding:8px 13px 8px 8px;border:1px solid var(--linea);border-radius:14px;background:#fff;box-shadow:var(--sombra-flotante),var(--sc-edge);font-size:13.5px;font-weight:700;line-height:1.2;color:var(--tinta);white-space:nowrap}
.p2-aviso-ok{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--tinta)}
.p2-aviso-ok svg,.g-tilde svg,.p2-res-ico svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.p2-aviso-ok path,.p2-res-ico path{stroke-dasharray:1;stroke-dashoffset:0}

/* El bucle de la escena (11 s): se escribe la conversación, se marca el turno, cambian los estados, se dibujan los tildes.
   Con movimiento reducido el kit apaga toda animación y queda lo de arriba: el estado final. */
.p2-b1{animation:p2-b1 11s var(--sc-ease-out) infinite}
.p2-escribe{animation:p2-escribe 11s linear infinite}
.p2-b2{animation:p2-b2 11s var(--sc-ease-out) infinite}
.p2-b3{animation:p2-b3 11s var(--sc-ease-out) infinite}
.p2-b4{animation:p2-b4 11s var(--sc-ease-out) infinite}
.p2-hoja-grilla i.marca{animation:p2-marca 11s var(--sc-ease-out) infinite}
.p2-cambia .de{animation:p2-de 11s linear infinite}
.p2-cambia .a{animation:p2-a 11s var(--sc-ease-out) infinite}
.p2-cambia.tarde .de{animation-name:p2-de-t}
.p2-cambia.tarde .a{animation-name:p2-a-t}
.p2-aviso-a path{animation:p2-tilde-a 11s var(--sc-ease-out) infinite}
.p2-aviso-b path{animation:p2-tilde-b 11s var(--sc-ease-out) infinite}
@keyframes p2-b1{0%,2%{opacity:0;transform:translate3d(0,8px,0)}6%,92%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
@keyframes p2-escribe{0%,11%{opacity:0}14%,23%{opacity:1}26%,100%{opacity:0}}
@keyframes p2-b2{0%,26%{opacity:0;transform:translate3d(0,8px,0)}30%,92%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
@keyframes p2-b3{0%,41%{opacity:0;transform:translate3d(0,8px,0)}45%,92%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
@keyframes p2-b4{0%,53%{opacity:0;transform:translate3d(0,8px,0)}57%,92%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
@keyframes p2-marca{0%,57%{opacity:0;transform:scale(.6)}62%,92%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
/* El tilde está dibujado casi siempre; se borra un instante y se vuelve a trazar cuando la conversación llega a ese hecho. */
@keyframes p2-tilde-a{0%,55%{stroke-dashoffset:0}57%,59%{stroke-dashoffset:1}66%,100%{stroke-dashoffset:0}}
@keyframes p2-tilde-b{0%,72%{stroke-dashoffset:0}74%,76%{stroke-dashoffset:1}83%,100%{stroke-dashoffset:0}}
@keyframes p2-de{0%,34%{opacity:1}37%,95%{opacity:0}98%,100%{opacity:1}}
@keyframes p2-a{0%,34%{opacity:0;transform:scale(.9)}38%,95%{opacity:1;transform:none}98%,100%{opacity:0;transform:none}}
@keyframes p2-de-t{0%,72%{opacity:1}75%,95%{opacity:0}98%,100%{opacity:1}}
@keyframes p2-a-t{0%,72%{opacity:0;transform:scale(.9)}76%,95%{opacity:1;transform:none}98%,100%{opacity:0;transform:none}}

/* ---------- El reloj ---------- */
.p2-reloj{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border:1px solid var(--linea);border-radius:999px;background:#fff;box-shadow:var(--sombra-chica);font-size:15px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--tinta)}
.p2-esfera{position:relative;flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--tinta)}
.p2-esfera i{position:absolute;left:50%;bottom:50%;width:1.5px;margin-left:-.75px;border-radius:2px;background:var(--tinta);transform-origin:50% 100%;transform:rotate(var(--g,0deg))}
.p2-esfera i[data-p2-aguja="h"]{height:5.5px;--g:210deg}
.p2-esfera i[data-p2-aguja="m"]{height:8px}
.p2-reloj.sobre-foto{font-size:19px;padding:7px 15px 7px 8px;border-color:transparent;box-shadow:0 6px 18px -8px rgba(0,0,0,.4)}
.p2-reloj.sobre-foto .p2-esfera{width:26px;height:26px}
.p2-reloj.sobre-foto .p2-esfera i[data-p2-aguja="h"]{height:6.5px;--g:270deg}
.p2-reloj.sobre-foto .p2-esfera i[data-p2-aguja="m"]{height:9.5px}

/* ---------- Acto 2 · fugas ---------- */
.p2-pend{padding:14px 16px 4px}
.p2-pend-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px}
.p2-pend-t{font-family:var(--f-titulo);font-weight:800;font-size:18px;letter-spacing:-.02em;line-height:1.2;color:var(--tinta)}
.p2-fila{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:52px;border-top:1px solid var(--linea)}
.p2-punto{position:relative;width:8px;height:8px;border-radius:50%;background:var(--linea-fuerte)}
.p2-punto::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--azul);opacity:0;transition:opacity .4s ease-out}
.p2-fila-t{font-size:15px;font-weight:700;line-height:1.25;color:var(--tinta);opacity:.56;transition:opacity .45s ease-out}
.p2-fila-e{padding:4px 9px;border-radius:999px;background:#f4f1ea;font-size:12px;font-weight:700;line-height:1.3;color:var(--suave);white-space:nowrap;transition:opacity .45s ease-out,transform .45s var(--sc-ease-out)}
html.p2-vivo .p2-fila.viva .p2-punto::after{opacity:1;animation:latido 1.4s ease-in-out infinite}
html.p2-vivo .p2-fila.viva .p2-fila-t{opacity:1}
html.p2-vivo .p2-fila.viva .p2-fila-e{opacity:0;transform:translate3d(8px,0,0)}
.p2-fugas-linea{margin-top:18px}

/* ---------- Acto 3 · respiro ---------- */
.p2-respiro{padding:clamp(96px,17vh,180px) 0 clamp(70px,12vh,140px)}
.p2-frase{width:fit-content;max-width:100%;margin:0 auto;padding:0 6px;font-family:var(--f-titulo);font-weight:800;font-size:clamp(35px,10.6vw,88px);line-height:1.02;letter-spacing:-.045em;color:var(--tinta);text-align:left}
.p2-frase-l{display:block}
.p2-frase-l+.p2-frase-l{margin-top:.08em}
.p2-frase .sc-split{padding:.14em 0 .18em;margin:-.14em 0 -.18em}

/* ---------- Acto 4 · la noche en la oficina (fijado) ---------- */
.p2-noche{margin-top:10px}
.p2-noche-escena{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:18px var(--pad) 96px;background:var(--fondo)}
.p2-noche-cuerpo{position:relative;width:100%;max-width:27rem;margin:0 auto}
.p2-ventana{position:relative;z-index:0;isolation:isolate;overflow:hidden;width:100%;aspect-ratio:1 / 1;max-height:44vh;max-height:min(44svh,calc(100svh - 400px));border-radius:22px;background:#e9e2d2;box-shadow:var(--sombra-tarjeta)}
.p2-luz,.p2-foto,.p2-foto img{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.p2-foto img{object-fit:cover;object-position:30% 50%}
/* La ventana dibujada: es lo que se ve si no hay fotos. Pared, vidrio y mesa, con la luz de cada hora. */
.p2-luz{background:linear-gradient(100deg,var(--pared-a),var(--pared-b))}
.p2-luz::before{content:"";position:absolute;left:8%;top:9%;width:27%;height:60%;border-radius:4px;background:linear-gradient(to bottom,var(--cielo-a),var(--cielo-b));box-shadow:0 0 0 5px var(--marco-v),0 0 46px 12px var(--halo)}
.p2-luz::after{content:"";position:absolute;left:22%;right:14%;bottom:0;height:20%;border-radius:6px 6px 0 0;background:var(--mesa)}
.p2-luz-tarde{--pared-a:#f4d9a6;--pared-b:#efe4cd;--cielo-a:#cfe0ea;--cielo-b:#f7d08a;--marco-v:#f1e7d2;--halo:rgba(247,208,138,.55);--mesa:#b98b52}
.p2-luz-noche{--pared-a:#141b27;--pared-b:#1c2533;--cielo-a:#0f2a4a;--cielo-b:#23466b;--marco-v:#0f141d;--halo:rgba(60,110,170,.28);--mesa:#2a2a2c;opacity:0}
.p2-luz-manana{--pared-a:#f1efe6;--pared-b:#f8f5ec;--cielo-a:#bcd7ea;--cielo-b:#e8f1f5;--marco-v:#fbf9f3;--halo:rgba(255,255,255,.7);--mesa:#c9a878}
.p2-foto[data-p2-capa="noche"]{opacity:0}
.p2-ventana-cab{position:absolute;left:12px;right:12px;top:12px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px}
.p2-turno{position:relative;z-index:2;width:calc(100% - 28px);margin:-76px auto 0;padding:12px 14px 8px;border-radius:18px;font-size:13.5px}
.p2-turno .marco-cab{margin-bottom:.4em}
.p2-turno .marco-rot{margin-left:auto;font-weight:700;color:var(--marco-tinta)}
.p2-res{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;column-gap:10px;min-height:40px;border-top:1px solid var(--marco-linea)}
.p2-res>span{grid-row:1}
.p2-res-ico{grid-column:1;position:relative;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #3a4352}
.p2-res-ico::before{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;transition:opacity .35s ease-out,transform .45s var(--sc-ease-out)}
.p2-res-ico svg{position:relative;stroke:#0E1218}
.p2-res-ico path{transition:stroke-dashoffset .5s var(--sc-ease-out) .12s}
.p2-res-antes,.p2-res-despues{grid-column:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .4s ease-out,transform .5s var(--sc-ease-out)}
.p2-res-antes{width:58%;height:8px;border-radius:8px;background:#2c3442;opacity:0}
.p2-res:nth-child(2n) .p2-res-antes{width:44%}
.p2-res-despues{font-weight:700;color:var(--marco-tinta)}
.p2-res-despues b{font-variant-numeric:tabular-nums;color:var(--marco-suave)}
html.p2-vivo .p2-res.pend .p2-res-ico::before{opacity:0;transform:scale(.5)}
html.p2-vivo .p2-res.pend .p2-res-ico path{stroke-dashoffset:1;transition-delay:0s}
html.p2-vivo .p2-res.pend .p2-res-antes{opacity:1}
html.p2-vivo .p2-res.pend .p2-res-despues{opacity:0;transform:translate3d(0,9px,0)}
.p2-noche-fin{font-family:var(--f-titulo);font-weight:800;font-size:19px;line-height:1.2;letter-spacing:-.025em;color:var(--tinta);text-align:center;text-wrap:balance;margin-top:4px;transition:opacity .5s ease-out,transform .6s var(--sc-ease-out)}
html.p2-vivo .p2-noche-fin.pend{opacity:0;transform:translate3d(0,10px,0)}

/* ---------- Acto 5 · el riel de agentes ---------- */
/* El escenario del riel no lleva fondo: se encima con el final del acto 4 y con el arranque del método, y no puede
   tapar ni la sombra de la tarjeta de arriba ni el título de abajo. Lo que sigue se pinta por delante. */
.p2-equipo-escena{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:var(--aire-seccion) 0 20px}
html.p2-vivo .p2-equipo-escena{padding:20px 0 96px}
html.p2-vivo .p2-equipo{margin-top:-96px}
html.p2-vivo .p2-equipo-mas{position:relative;z-index:2;margin-top:-150px}
html.p2-vivo .p2-equipo-mas+.seccion{position:relative;z-index:2}
.p2-equipo-cab{padding:0 var(--pad)}
.p2-riel{display:flex;gap:12px;padding:6px var(--riel-margen,var(--pad)) 22px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.p2-riel::-webkit-scrollbar{display:none}
html.p2-vivo .p2-riel{overflow:visible;width:max-content}
.p2-agente{flex:none;width:min(288px,76vw);padding:12px 12px 20px;border:1px solid var(--linea);border-radius:18px;background:#fff;box-shadow:var(--sombra-tarjeta);scroll-snap-align:center}
html.p2-vivo .p2-agente{opacity:clamp(.55,calc(var(--sc-p,1) * 11 - var(--n,0) + 3.1),1)}
.p2-agente-t{margin:16px 4px 5px;font-family:var(--f-titulo);font-weight:800;font-size:22px;line-height:1.15;letter-spacing:-.025em;color:var(--tinta)}
.p2-agente-p{margin:0 4px;font-size:15.5px;line-height:1.4;color:var(--suave);text-wrap:pretty}
.p2-equipo-mas{padding-top:6px}
.p2-plegada{padding-top:0;padding-bottom:0}
.p2 .p2-plegada>details.plegable{margin-top:0;border-top:0}
/* Los gestos: piezas chicas sobre una pantalla oscura, cada una en su propio pulso (6 s; --i escalona). */
.p2-gesto{display:flex;flex-direction:column;justify-content:center;gap:12px;height:clamp(128px,24vh,196px);padding:14px 18px;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#161c26,#0E1218)}
.p2-gesto i,.p2-gesto span{display:block}
.g-globo{align-self:flex-start;width:64%;height:22px;border-radius:11px 11px 11px 4px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.1)}
.g-globo.sale{align-self:flex-end;width:52%;border-color:#fff;border-radius:11px 11px 4px 11px;background:#fff}
.g-globo.corto{width:34%}
.g-ruta{display:flex !important;gap:8px;margin-top:4px}
.g-ruta i{flex:1;height:18px;border-radius:99px;border:1px solid #3a4352}
.g-ruta i.va{border-color:#fff;background:#fff}
.g-renglon{display:flex !important;align-items:center;justify-content:space-between;gap:12px;min-height:20px}
.g-raya{width:56%;height:7px;border-radius:7px;background:#2c3442}
.g-raya.corta{width:36%}
.g-raya-sola{width:44%;height:7px;border-radius:7px;background:#2c3442}
.g-pastilla{width:46px;height:16px;border-radius:99px;background:#fff}
.g-avance{height:7px;border-radius:99px;overflow:hidden;background:#232a36}
.g-avance.fino{height:4px}
.g-avance i{height:100%;border-radius:inherit;background:var(--azul);transform-origin:left center}
.g-tilde{flex:none;display:grid !important;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff}
.g-tilde svg{width:11px;height:11px;stroke:#0E1218}
.g-pasos{display:flex !important;justify-content:space-between;padding:0 6px}
.g-pasos i{width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.08)}
.g-escribe{width:88%;height:8px;border-radius:8px;background:#e8ebf0;transform-origin:left center}
.g-escribe.corta{width:52%}
.g-flujo{width:100%;height:auto;overflow:visible}
.g-flujo path{fill:none;stroke-width:2.5;stroke-linecap:round}
.g-flujo-via{stroke:#2c3442}
.g-flujo-va{stroke:#fff;stroke-dasharray:1;stroke-dashoffset:0}
.g-flujo circle{fill:#0E1218;stroke:#fff;stroke-width:2.5}
.g-globo,.g-ruta i.va,.g-pastilla,.g-tilde,.g-pasos i{animation:p2-pop 6s var(--sc-ease-out) infinite both;animation-delay:calc(var(--i,0) * .42s)}
.g-avance i,.g-escribe{animation:p2-crece 6s var(--sc-ease-out) infinite both;animation-delay:calc(var(--i,0) * .42s)}
.g-flujo-va{animation:p2-traza 6s var(--sc-ease-out) infinite both}
@keyframes p2-pop{0%{opacity:0;transform:translate3d(0,6px,0) scale(.94)}9%,84%{opacity:1;transform:none}93%,100%{opacity:0;transform:none}}
@keyframes p2-crece{0%{opacity:1;transform:scaleX(0)}34%,84%{opacity:1;transform:scaleX(1)}93%,100%{opacity:0;transform:scaleX(1)}}
@keyframes p2-traza{0%,6%{stroke-dashoffset:1;opacity:1}52%,84%{stroke-dashoffset:0;opacity:1}93%,100%{stroke-dashoffset:0;opacity:0}}

/* ---------- Acto 6 · el método: una línea que se traza ---------- */
.p2-fases{--d:1;position:relative;isolation:isolate;display:grid;gap:26px;max-width:31rem;margin:0 auto;padding:2px 4px 2px 38px}
.p2-fases::before,.p2-fases::after{content:"";position:absolute;z-index:-1;left:13px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--linea-fuerte)}
.p2-fases::after{background:var(--tinta);transform-origin:50% 0;transform:scaleY(var(--d))}
.p2-fase{position:relative}
.p2-fase::before,.p2-fase::after{content:"";position:absolute;z-index:1;left:-34px;top:2px;width:20px;height:20px;border-radius:50%}
.p2-fase::before{background:var(--fondo);box-shadow:inset 0 0 0 2px var(--linea-fuerte),0 0 0 5px var(--fondo)}
.p2-fase::after{background:var(--tinta);transition:opacity .3s ease-out,transform .45s var(--sc-ease-out)}
.p2-fase-t{font-family:var(--f-titulo);font-weight:800;font-size:22px;line-height:1.12;letter-spacing:-.03em;color:var(--tinta);transition:opacity .4s ease-out}
.p2-fase-p{margin-top:4px;font-size:15.5px;line-height:1.4;color:var(--suave);text-wrap:pretty;transition:opacity .4s ease-out}
/* La línea termina en el último nodo: un parche del color del papel tapa lo que sobra debajo
   (las dos líneas van por detrás de todo, z-index:-1, para que el parche las tape también mientras el texto se enciende). */
.p2-fase:last-child .p2-fase-p::after{content:"";position:absolute;z-index:1;left:-34px;top:24px;bottom:-4px;width:20px;background:var(--fondo)}
html.p2-vivo .p2-fase:not(.on)::after{opacity:0;transform:scale(.4)}
html.p2-vivo .p2-fase:not(.on) .p2-fase-t{opacity:.34}
html.p2-vivo .p2-fase:not(.on) .p2-fase-p{opacity:.5}

/* ---------- Acto 7 · garantía y modelo ---------- */
.p2-futuros{--d:1;padding:14px 14px 6px}
.p2-grafico{position:relative;overflow:hidden;height:196px;border:1px solid var(--linea);border-radius:12px;background:linear-gradient(to bottom,#faf8f3,#fff)}
.p2-grafico-lienzo{position:absolute;inset:0;clip-path:inset(0 calc((1 - var(--d)) * 100%) 0 0)}
.p2-grafico svg{width:100%;height:100%}
.p2-g-area{fill:rgba(0,0,0,.045)}
.p2-g-sube{fill:none;stroke:var(--tinta);stroke-width:3.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.p2-g-plana{fill:none;stroke:#a39c8b;stroke-width:2;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}
.p2-leyenda{position:absolute;font-size:12.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.p2-leyenda.con{right:12px;bottom:21%;color:var(--tinta);opacity:clamp(0,calc(var(--d) * 5 - 3.6),1)}
.p2-leyenda.sin{right:12px;bottom:21%;color:var(--tenue);opacity:clamp(0,calc(var(--d) * 5 - 2.6),1)}
.p2-leyenda.gratis{left:12px;bottom:20%;color:var(--suave);opacity:clamp(0,calc(var(--d) * 5 - .6),1)}
.p2-grafico .p2-etiqueta{position:absolute;left:10px;top:10px}
.p2-hitos li{position:relative;display:grid;gap:2px;padding:13px 0 13px 30px;border-top:1px solid var(--linea)}
.p2-hitos li:first-child{border-top:0}
.p2-hitos li::before,.p2-hitos li::after{content:"";position:absolute;left:2px;top:16px;width:16px;height:16px;border-radius:50%}
.p2-hitos li::before{box-shadow:inset 0 0 0 2px var(--linea-fuerte)}
.p2-hitos li::after{background:var(--tinta);transition:opacity .3s ease-out,transform .45s var(--sc-ease-out)}
.p2-hitos b{font-size:15px;font-weight:700;line-height:1.3;color:var(--tinta);transition:opacity .4s ease-out}
.p2-hitos span{font-size:14.5px;line-height:1.4;color:var(--suave);transition:opacity .4s ease-out}
html.p2-vivo .p2-hitos li:not(.on)::after{opacity:0;transform:scale(.4)}
html.p2-vivo .p2-hitos li:not(.on) b{opacity:.36}
html.p2-vivo .p2-hitos li:not(.on) span{opacity:.5}
.p2-etapas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:2px 0 14px}
.p2-etapas li{position:relative;display:grid;align-content:start;gap:3px;padding-top:16px}
.p2-etapas li::before,.p2-etapas li::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:4px;background:var(--linea)}
.p2-etapas li::after{background:var(--tinta);transform-origin:left center;transition:transform .7s var(--sc-ease-out)}
.p2-etapas b{font-size:12px;font-weight:700;line-height:1.3;color:var(--suave)}
.p2-etapas span{font-family:var(--f-titulo);font-weight:800;font-size:15.5px;line-height:1.15;letter-spacing:-.02em;color:var(--tinta);transition:opacity .5s ease-out}
.p2-etapas li:nth-child(2)::after,.p2-etapas li:nth-child(2) span{transition-delay:.4s}
.p2-etapas li:nth-child(3)::after,.p2-etapas li:nth-child(3) span{transition-delay:.8s}
html.p2-vivo .p2-etapas:not(.visto) li::after{transform:scaleX(0)}
html.p2-vivo .p2-etapas:not(.visto) span{opacity:.34}

/* ---------- Acto 8 · filtro: se tildan las de «sí», se apagan las de «no» ---------- */
.p2-filtro .letra-chica{margin-top:14px}
.p2-filtro .encaje-lista li::before{transition:opacity .35s ease-out,transform .5s var(--sc-ease-out)}
.p2-filtro .encaje-col.no .encaje-lista li{transition:opacity .5s ease-out}
.p2-filtro .encaje-lista li:nth-child(1),.p2-filtro .encaje-lista li:nth-child(1)::before{transition-delay:.15s}
.p2-filtro .encaje-lista li:nth-child(2),.p2-filtro .encaje-lista li:nth-child(2)::before{transition-delay:.4s}
.p2-filtro .encaje-lista li:nth-child(3),.p2-filtro .encaje-lista li:nth-child(3)::before{transition-delay:.65s}
.p2-filtro .encaje-col.no .encaje-lista li:nth-child(1),.p2-filtro .encaje-col.no .encaje-lista li:nth-child(1)::before{transition-delay:.95s}
.p2-filtro .encaje-col.no .encaje-lista li:nth-child(2),.p2-filtro .encaje-col.no .encaje-lista li:nth-child(2)::before{transition-delay:1.2s}
.p2-filtro .encaje-col.no .encaje-lista li:nth-child(3),.p2-filtro .encaje-col.no .encaje-lista li:nth-child(3)::before{transition-delay:1.45s}
.p2-filtro .encaje-col.no .encaje-lista li{opacity:.86}
html.p2-vivo .p2-filtro .encaje:not(.visto) .encaje-lista li::before{opacity:0;transform:scale(.4)}
html.p2-vivo .p2-filtro .encaje:not(.visto) .encaje-col.no .encaje-lista li{opacity:1}

/* ---------- Acto 11 · cierre: la lámina de agenda ---------- */
.p2-cierre{padding-bottom:8px}
.p2-agenda{padding-top:16px}
.p2-semana{padding:6px 0 6px}
.p2-semana-dias,.p2-semana-grilla{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.p2-semana-dias{margin-bottom:9px}
.p2-semana-dias i{display:block;justify-self:center;width:44%;height:6px;border-radius:6px;background:var(--linea-fuerte)}
.p2-semana-grilla i{position:relative;display:block;height:38px;border:1px solid var(--linea);border-radius:10px;background:#f8f5ee}
.p2-semana-grilla i.ocupado{border-color:transparent;background:repeating-linear-gradient(135deg,#ece6d9 0 5px,#f4f0e7 5px 10px)}
.p2-semana-grilla i.elegido{z-index:1;border-color:var(--tinta)}
.p2-semana-grilla i.elegido::before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:var(--tinta);transition:opacity .35s ease-out,transform .55s var(--sc-ease-out)}
.p2-semana-grilla i.elegido b{position:absolute;left:50%;bottom:calc(100% + 9px);margin-left:-58px;width:116px;padding:6px 0 7px;border-radius:9px;background:var(--tinta);color:#fff;font-size:12.5px;font-weight:700;font-style:normal;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 10px 22px -10px rgba(0,0,0,.5);transition:opacity .4s ease-out .3s,transform .55s var(--sc-ease-out) .3s}
.p2-semana-grilla i.elegido b::after{content:"";position:absolute;left:50%;top:100%;width:9px;height:9px;margin:-5px 0 0 -4.5px;border-radius:2px;background:var(--tinta);transform:rotate(45deg)}
html.p2-vivo .p2-agenda:not(.visto) .elegido::before{opacity:0;transform:scale(.5)}
html.p2-vivo .p2-agenda:not(.visto) .elegido b{opacity:0;transform:translate3d(0,8px,0)}
.p2-agenda .btn{margin-top:14px}
.p2-agenda .centro{margin-top:4px}

/* ---------- Desde 700 px ---------- */
@media (min-width:700px){
  body.p2{--aire-seccion:112px}
  .p2 .seccion-cab{margin-bottom:34px}
  .p2 .titulo{font-size:clamp(36px,5vw,58px);line-height:1.03;max-width:none;margin-top:24px}
  .p2 .bajada{font-size:clamp(18px,2vw,23px);max-width:none;margin-top:16px}
  .p2 .titulo-seccion{font-size:clamp(30px,3.6vw,44px);line-height:1.05;max-width:16em}
  .p2 .apoyo{font-size:18px;margin-top:12px}
  .p2-condicion{max-width:none;font-size:13.5px}
  .p2-escena{margin-top:34px}
  .p2-escena-caja{height:440px}
  .p2-plano-hoja{right:auto;left:calc(50% - 300px);top:0;width:280px}
  .p2-plano-hoja .p2-prof{--giro:-5deg}
  .p2-plano-izq{left:calc(50% - 350px);top:176px;width:230px}
  .p2-plano-der{right:calc(50% - 350px);top:100px;width:230px}
  .p2-plano-der .marco-cab,.p2-plano-der .p2-mini-fila{flex-direction:row}
  .p2-plano-der .p2-mini .marco-rot{margin-left:auto;margin-right:0}
  .p2-plano-foco{top:48px;width:330px}
  .p2-plano-nota-a{left:calc(50% - 250px);top:322px}
  .p2-plano-nota-b{right:calc(50% - 262px);top:230px}
  .p2-mini{font-size:12.5px}
  .p2-chat{font-size:14px;padding:14px 14px 16px}
  .p2-aviso{font-size:14.5px;padding:10px 15px 10px 10px}
  .p2-frase{font-size:clamp(44px,6.5vw,80px)}
  .p2-pend{padding:18px 22px 8px}
  .p2-fila{min-height:58px}
  .p2-fila-t{font-size:16.5px}
  .p2-fila-e{font-size:13px}
  .p2-noche-escena{gap:22px}
  .p2-noche-fin{font-size:24px}
  .p2-agente{width:304px;padding:14px 14px 22px}
  .p2-gesto{height:clamp(140px,22vh,190px)}
  .p2-agente-t{font-size:24px}
  .p2-agente-p{font-size:16px}
  .p2-fases{gap:34px}
  .p2-fase-t{font-size:27px}
  .p2-fase-p{font-size:17px}
  .p2-futuros{padding:20px 20px 10px}
  .p2-grafico{height:270px}
  .p2-leyenda{font-size:14px}
  .p2-etapas{gap:14px}
  .p2-etapas b{font-size:13px}
  .p2-etapas span{font-size:19px}
  .p2-semana-grilla i{height:44px}
}
/* ---------- Desde 860 px: la escena gana aire; la ventana y la tarjeta se ponen lado a lado ---------- */
@media (min-width:860px){
  body.p2{--aire-seccion:136px}
  .p2-escena-caja{height:520px}
  .p2-plano-hoja{left:calc(50% - 420px);top:6px;width:340px}
  .p2-plano-izq{left:calc(50% - 540px);top:196px;width:290px}
  .p2-plano-der{right:calc(50% - 540px);top:108px;width:290px}
  .p2-plano-foco{top:44px;width:392px}
  .p2-plano-nota-a{left:calc(50% - 330px);top:388px}
  .p2-plano-nota-b{right:calc(50% - 350px);top:272px}
  .p2-mini{font-size:13.5px;padding:12px 14px 10px}
  .p2-mini-fila{min-height:38px}
  .p2-chat{font-size:15.5px;padding:16px 16px 18px;border-radius:22px}
  .p2-hoja-grilla i{height:28px}
  .p2-noche-escena{padding:24px 24px 100px}
  .p2-noche-cuerpo{max-width:1000px;padding:0 0 34px}
  .p2-ventana{width:74%;aspect-ratio:16 / 9;max-height:58vh;max-height:58svh;border-radius:26px}
  .p2-foto img{object-position:50% 50%}
  .p2-ventana-cab{left:18px;right:18px;top:18px}
  .p2-turno{position:absolute;right:0;bottom:0;width:384px;margin:0;padding:16px 18px 10px;font-size:15px;border-radius:22px}
  .p2-res{min-height:48px}
  .p2-riel{--riel-margen:max(24px,calc((100vw - 1052px) / 2));gap:16px}
  .p2-hitos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px}
  .p2-hitos li{border-top:0;padding:16px 0 12px 30px}
  .p2-hitos li::before,.p2-hitos li::after{top:19px}
}

/* ===== portada 4 («desde 79 dólares al mes» y los servicios; diseno/BRIEF-79.md) =====
   Se suma a la portada 2 sin cambiar sus reglas de movimiento: lo escrito acá es la composición final y quieta;
   con html.p2-vivo valen los estados «de antes».
     .p2-pastilla-ia / .p2-robot   pastilla del inicio con el robot (antena que late, ojos que parpadean)
     --ab en .p2-escena-caja       la escena del inicio se abre al bajar (lo escribe portada.js, de 0 a 1)
     .p2-perdidas                  acto 2: contador rojo de ventas perdidas (.cero = todavía ninguna · .late = recién cambió)
     .p2-camara / .p2-ws           acto 4: la cámara que se acerca a la notebook y su pantalla (el espacio de trabajo)
     .p2-precio / .p2-usuarios     acto 7: el precio y los usuarios que se encienden (.on)
     .p2-con-que                   acto 7: con qué lo hacemos (Respond.io)
     .p2-servicios / .p2-serv      acto 8: los cuatro servicios, con su ícono animado */

/* ---------- Pastilla con el robot ---------- */
.p2 .p2-pastilla-ia{gap:10px;padding:5px 16px 5px 5px;font-size:14px;letter-spacing:-.005em;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 22px -12px rgba(36,26,10,.38)}
.p2-robot{position:relative;flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tinta)}
.p2-robot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1.5px solid var(--azul);opacity:0;animation:p2-onda 2.8s ease-out infinite}
.p2-robot svg{width:19px;height:19px;overflow:visible;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;animation:p2-flota 3.2s ease-in-out infinite}
.p2-robot .r-bola{fill:var(--azul);stroke:none;transform-box:fill-box;transform-origin:center;animation:latido 1.4s ease-in-out infinite}
.p2-robot .r-ojos circle{fill:#fff;stroke:none}
.p2-robot .r-ojos{transform-box:fill-box;transform-origin:center;animation:p2-parpadeo 4.6s ease-in-out infinite}
@keyframes p2-onda{0%{opacity:.7;transform:scale(.92)}70%,100%{opacity:0;transform:scale(1.35)}}
@keyframes p2-flota{0%,100%{transform:translate3d(0,.6px,0)}50%{transform:translate3d(0,-.8px,0)}}
@keyframes p2-parpadeo{0%,90%,100%{transform:scaleY(1)}94%{transform:scaleY(.12)}}

/* ---------- Acto 1 · la escena se abre al bajar. Se suma al transform del puntero. ---------- */
.p2-escena-caja{--ab:0;--abk:1}
.p2-plano-hoja .p2-prof{translate:0 calc(var(--ab) * var(--abk) * -38px);rotate:calc(var(--ab) * -3deg)}
.p2-plano-izq .p2-prof{translate:calc(var(--ab) * var(--abk) * -62px) calc(var(--ab) * var(--abk) * 24px);rotate:calc(var(--ab) * -8deg)}
.p2-plano-der .p2-prof{translate:calc(var(--ab) * var(--abk) * 62px) calc(var(--ab) * var(--abk) * 18px);rotate:calc(var(--ab) * 8deg)}
.p2-plano-foco .p2-prof{translate:0 calc(var(--ab) * var(--abk) * -8px);scale:calc(1 - var(--ab) * .06)}
.p2-plano-nota-a .p2-prof{translate:calc(var(--ab) * var(--abk) * -54px) calc(var(--ab) * var(--abk) * -34px);rotate:calc(var(--ab) * -7deg)}
.p2-plano-nota-b .p2-prof{translate:calc(var(--ab) * var(--abk) * 58px) calc(var(--ab) * var(--abk) * -58px);rotate:calc(var(--ab) * 7deg)}
.p2-escena-caja[data-abriendo] .p2-aviso path{animation-play-state:paused}

/* ---------- Acto 2 · las ventas perdidas ---------- */
.p2-perdidas{display:flex;justify-content:center;margin:0 -16px;padding:14px 16px 16px;border-top:1px solid var(--linea)}
.p2-perdidas-n{display:inline-flex;align-items:center;gap:9px;padding:9px 18px 9px 14px;border:1px solid #f4c7c1;border-radius:999px;background:var(--error-suave);color:var(--error);font-family:var(--f-titulo);font-weight:800;font-size:22px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.p2-perdidas-n::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--error)}
html.p2-vivo .p2-perdidas-n{transition:opacity .35s ease-out,transform .45s var(--sc-ease-out)}
html.p2-vivo .p2-perdidas-n.cero{opacity:0;transform:scale(.7)}
html.p2-vivo .p2-perdidas-n.late{animation:p2-menos .6s var(--sc-ease-out)}
@keyframes p2-menos{0%{transform:scale(1.3) rotate(-4deg)}55%{transform:scale(.96) rotate(1deg)}100%{transform:none}}

/* ---------- Acto 4 · la cámara y la pantalla de la notebook ---------- */
.p2-camara{position:absolute;inset:0;z-index:0;transform-origin:0 0}
.p2-ws{position:absolute;left:0;top:0;width:100%;height:100%;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:58px 10px 10px;border-radius:inherit;background:linear-gradient(180deg,#161c26,#0b0f15);color:var(--marco-tinta);font-size:12.5px;line-height:1.3;transform-origin:0 0;opacity:0;visibility:hidden;pointer-events:none}
.p2-ws-lista{display:none}
.p2-ws-charla{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--marco-linea);border-radius:14px;background:#0f141c}
.p2-ws-cab{display:flex;align-items:center;gap:9px;padding:8px 10px;border-bottom:1px solid var(--marco-linea);font-weight:700}
.p2-ws-av{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#2c3442;color:#fff;font-size:12px;font-style:normal;font-weight:800}
.p2-ws-ia{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.1);font-size:11px;font-weight:700;white-space:nowrap}
.p2-ws-ia i{width:6px;height:6px;border-radius:50%;background:var(--azul);animation:latido 1.4s ease-in-out infinite}
.p2-ws-burbujas{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:0;padding:10px}
.p2-wb{max-width:84%;padding:6px 10px 7px;border-radius:13px;transition:opacity .35s ease-out,transform .45s var(--sc-ease-out)}
.p2-wb.entra{align-self:flex-start;border-top-left-radius:4px;background:rgba(255,255,255,.1)}
.p2-wb.sale{align-self:flex-end;border-top-right-radius:4px;background:#fff;color:#0E1218}
.p2-wb-turno{display:grid;justify-items:end}
.p2-wb-turno>*{grid-area:1 / 1}
.p2-wb-escribe{display:inline-flex;align-items:center;gap:4px;padding:9px 12px;border-radius:13px 4px 13px 13px;background:rgba(255,255,255,.14);opacity:0;transition:opacity .25s ease-out}
.p2-wb-escribe.en{opacity:1}
.p2-wb-escribe i{width:5px;height:5px;border-radius:50%;background:#fff;animation:latido 1s ease-in-out infinite}
.p2-wb-escribe i:nth-child(2){animation-delay:.15s}
.p2-wb-escribe i:nth-child(3){animation-delay:.3s}
.p2-wb-venta{align-self:center;display:inline-flex;align-items:center;gap:8px;margin-top:2px;padding:5px 13px 5px 5px;border-radius:999px;background:#fff;color:#0E1218;font-weight:800;transition:opacity .35s ease-out,transform .5s var(--sc-ease-out)}
.p2-wb-venta .p2-res-ico{box-shadow:none;background:#0E1218}
.p2-wb-venta .p2-res-ico::before{display:none}
.p2-wb-venta .p2-res-ico svg{stroke:#fff}
html.p2-vivo .p2-wb.pend{opacity:0;transform:translate3d(0,10px,0)}
html.p2-vivo .p2-wb-venta.pend{opacity:0;transform:scale(.6)}
html.p2-vivo .p2-wb-venta.pend .p2-res-ico path{stroke-dashoffset:1}
.p2-turno{transition:opacity .4s ease-out,transform .5s var(--sc-ease-out)}

/* ---------- Acto 7 · cuánto sale ---------- */
.p2-precio{padding:22px 16px 6px;text-align:center}
.p2-precio-n{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 10px;font-family:var(--f-titulo);font-weight:800;color:var(--tinta);letter-spacing:-.03em}
.p2-precio-n span{font-size:19px;color:var(--suave)}
.p2-precio-n b{font-size:68px;line-height:.9;letter-spacing:-.055em}
.p2-usuarios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 14px}
.p2-usuarios li{display:grid;justify-items:center;gap:4px;padding:14px 4px 12px;border:1px solid var(--linea);border-radius:14px;background:#faf8f3;transition:opacity .45s ease-out,transform .55s var(--sc-ease-out)}
.p2-usuarios li:first-child{border-color:var(--tinta);background:#fff}
.p2-persona{position:relative;display:block;width:36px;height:36px;margin-bottom:4px;border-radius:50%;background:var(--tinta);overflow:hidden}
.p2-persona::before{content:"";position:absolute;left:50%;top:8px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff}
.p2-persona::after{content:"";position:absolute;left:50%;top:23px;width:24px;height:18px;margin-left:-12px;border-radius:12px 12px 0 0;background:#fff}
.p2-usuarios b{font-size:12.5px;font-weight:700;line-height:1.2;color:var(--suave)}
.p2-usuarios span{font-family:var(--f-titulo);font-weight:800;font-size:18px;line-height:1.1;letter-spacing:-.02em;color:var(--tinta)}
html.p2-vivo .p2-usuarios li:not(.on){opacity:.3;transform:translate3d(0,12px,0) scale(.95)}
.p2-con-que{display:flex;align-items:center;gap:16px;padding:18px}
.p2-con-que .tarjeta-t{margin:0}
.p2-con-que-p{margin:3px 0 6px;font-size:15px;line-height:1.4;color:var(--suave)}
.p2-con-que-ico{position:relative;flex:none;width:58px;height:58px;border-radius:16px;background:var(--tinta)}
.p2-con-que-ico i{position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;animation:p2-nodo 2.4s ease-in-out infinite}
.p2-con-que-ico i:nth-child(1){left:11px;top:12px}
.p2-con-que-ico i:nth-child(2){right:11px;top:23px;background:var(--azul);animation-delay:.4s}
.p2-con-que-ico i:nth-child(3){left:15px;bottom:11px;animation-delay:.8s}
.p2-con-que-ico::before{content:"";position:absolute;left:17px;top:18px;width:26px;height:24px;border:1.5px solid #3a4352;border-left:0;border-radius:0 12px 12px 0}
@keyframes p2-nodo{0%,100%{transform:scale(1)}50%{transform:scale(.72)}}
html.p2-vivo .p2-con-que:not(.visto) .p2-con-que-ico{opacity:0;transform:scale(.6) rotate(-12deg)}
.p2-con-que-ico{transition:opacity .4s ease-out,transform .6s var(--sc-ease-out)}

/* ---------- Acto 8 · servicios ---------- */
.p2-serv-grilla{display:grid;gap:12px;max-width:1052px;margin:0 auto}
.p2-serv{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:18px 18px 20px;border:1px solid var(--linea);border-radius:20px;background:#fff;box-shadow:var(--sombra-tarjeta);transition:opacity .5s ease-out,transform .7s var(--sc-ease-out);transition-delay:calc(var(--n,0) * .12s)}
html.p2-vivo .p2-serv-grilla:not(.visto) .p2-serv{opacity:0;transform:translate3d(0,26px,0)}
.p2-serv-t{font-family:var(--f-titulo);font-weight:800;font-size:22px;line-height:1.15;letter-spacing:-.025em;color:var(--tinta)}
.p2-serv-p{font-size:15.5px;line-height:1.4;color:var(--suave);text-wrap:pretty}
.p2-serv-pie{margin-top:auto;padding-top:8px;font-size:13px;font-weight:700;line-height:1.35;color:var(--tinta)}
.p2-serv .enlace{margin-top:auto;padding-top:8px}
.p2-serv-pie+.enlace{margin-top:0;padding-top:4px}
.p2-serv.destacado{border-color:var(--tinta);background:var(--tinta)}
.p2-serv.destacado .p2-serv-t,.p2-serv.destacado .p2-serv-pie{color:#fff}
.p2-serv.destacado .p2-serv-p{color:var(--marco-suave)}
.p2-serv-ico{position:relative;display:block;width:50px;height:50px;margin-bottom:8px;border-radius:15px;background:var(--tinta);overflow:hidden}
.p2-serv.destacado .p2-serv-ico{background:#fff}
/* Los cuatro íconos, cada uno con su pulso (6 s). */
.s-chat i{position:absolute;height:11px;border-radius:7px;animation:p2-pop 6s var(--sc-ease-out) infinite both}
.s-chat i:nth-child(1){left:9px;top:13px;width:22px;border-top-left-radius:3px;background:#d4d8df}
.s-chat i:nth-child(2){right:9px;top:27px;width:26px;border-top-right-radius:3px;background:var(--azul);animation-delay:.6s}
.s-sube svg{position:absolute;left:5px;top:11px;width:40px;height:28px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.s-sube path{stroke-dasharray:1;animation:p2-traza 6s var(--sc-ease-out) infinite both}
.s-sube path+path{stroke:var(--azul);animation-delay:.5s}
.s-video i{position:absolute;bottom:12px;width:7px;height:26px;border-radius:4px;background:#fff;transform-origin:50% 100%;animation:p2-ecualiza 1.6s ease-in-out infinite}
.s-video i:nth-child(1){left:12px;animation-delay:-.4s}
.s-video i:nth-child(2){left:22px;background:var(--azul);animation-delay:-.9s}
.s-video i:nth-child(3){left:32px;animation-delay:-.2s}
@keyframes p2-ecualiza{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.s-lupa i{position:absolute;left:12px;top:11px;width:20px;height:20px;border:3px solid #fff;border-radius:50%;animation:p2-busca 4s ease-in-out infinite}
.s-lupa i::after{content:"";position:absolute;left:15px;top:16px;width:10px;height:3px;border-radius:3px;background:var(--azul);transform:rotate(45deg);transform-origin:0 50%}
@keyframes p2-busca{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(5px,1px,0)}50%{transform:translate3d(3px,5px,0)}75%{transform:translate3d(-1px,3px,0)}}

@media (min-width:700px){
  .p2 .p2-pastilla-ia{padding:6px 18px 6px 6px;gap:12px;font-size:15.5px}
  .p2-robot{width:34px;height:34px}
  .p2-robot svg{width:21px;height:21px}
  .p2-escena-caja{--abk:1.6}
  .p2-perdidas{margin:0 -22px;padding:16px 22px 18px}
  .p2-perdidas-n{font-size:26px}
  .p2-ws{padding:66px 14px 14px;font-size:14px}
  .p2-precio{padding:28px 24px 10px}
  .p2-precio-n span{font-size:23px}
  .p2-precio-n b{font-size:96px}
  .p2-usuarios{gap:14px;max-width:34rem;margin:26px auto 18px}
  .p2-usuarios span{font-size:21px}
  .p2-con-que{padding:22px 24px;gap:20px}
  .p2-serv-grilla{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .p2-serv{padding:22px 22px 24px}
  .p2-serv-t{font-size:24px}
}
@media (min-width:860px){
  .p2-escena-caja{--abk:2.4}
  .p2-ws{grid-template-columns:170px minmax(0,1fr);gap:12px;padding:72px 16px 16px;font-size:14.5px}
  .p2-ws-lista{display:flex;flex-direction:column;gap:3px;padding:8px;border:1px solid var(--marco-linea);border-radius:14px;background:#0f141c}
  .p2-ws-rot{padding:4px 6px 8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--marco-suave)}
  .p2-ws-item{display:flex;align-items:center;gap:9px;padding:7px 6px;border-radius:10px;font-weight:700}
  .p2-ws-item.activo{background:rgba(255,255,255,.08)}
  .p2-ws-nuevo{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--azul);animation:latido 1.4s ease-in-out infinite}
  .p2-ws-burbujas{gap:8px;padding:14px}
}
@media (min-width:1060px){
  .p2-serv-grilla{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .p2-escena-caja{--ab:0 !important}
}
/* Dentro de la pantalla de la notebook la letra va clara (el kit le pone tinta oscura a p y b). */
.p2 .p2-ws p,.p2 .p2-ws b{color:var(--marco-tinta)}
.p2 .p2-ws .p2-wb.sale,.p2 .p2-ws .p2-wb-venta{color:#0E1218}
.p2 .p2-ws .p2-ws-rot{color:var(--marco-suave)}
/* Las variables de pantalla oscura viven en .marco: la pantalla de la notebook no es un .marco y las trae acá. */
.p2-ws{--marco-tinta:#F2F3F5;--marco-suave:#A3ABB9;--marco-linea:rgba(255,255,255,.09)}
.p2-serv.destacado{--marco-suave:#A3ABB9}
.p2-serv.destacado .s-sube svg{stroke:var(--tinta)}
.p2-serv.destacado .s-chat i:nth-child(1){background:#0E1218}
/* Los enlaces de las tarjetas alinean su letra con el texto (el área de toque de 44 px queda igual). */
.p2-serv .enlace,.p2-con-que .enlace{margin-left:-12px}
/* Las piezas con trazo del robot de la pastilla (antena, cabeza, orejas y boca): repiten las puntas redondeadas del ícono. */
.p2-robot .r-antena,.p2-robot .r-cabeza,.p2-robot .r-oreja,.p2-robot .r-boca{stroke-linecap:round;stroke-linejoin:round}

/* ===== portada 5 (dos puertas; diseno/BRIEF-dos-puertas.md) =====
     .p2-solo / .p2-solo-t   la otra puerta: «¿Lo querés hacer solo?», con el enlace a Respond.io */
.p2-solo-t{display:grid;justify-items:center;gap:8px;padding:26px 20px 22px;text-align:center}
.p2-solo-t .titulo-seccion{margin:6px auto 0}
.p2-solo-t .apoyo{margin-top:0}
.p2-solo-t .btn-sec{margin-top:8px}
html.p2-vivo .p2-solo-t:not(.visto) .p2-con-que-ico{opacity:0;transform:scale(.6) rotate(-12deg)}
/* /respond: los tres beneficios en una grilla de tres desde 860 px, y la puerta de vuelta a Okeybot. */
@media (min-width:860px){.p2-respond-grilla{grid-template-columns:repeat(3,minmax(0,1fr))}}
.p2-vuelta{margin-top:18px;font-size:15px;color:var(--suave)}

/* ===== portada 6 (el home es la landing de Respond.io; diseno/BRIEF-landing-respond.md) =====
     .p2-planes / .p2-plan   los dos planes de Respond.io, lado a lado; se encienden al entrar (.visto) */
.p2-planes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.p2-plan{position:relative;display:grid;align-content:start;gap:6px;padding:18px 14px 16px;text-align:left;transition:opacity .5s ease-out,transform .65s var(--sc-ease-out)}
.p2-plan+.p2-plan{transition-delay:.18s}
.p2-plan.destacado{border-color:var(--tinta);background:var(--tinta);--marco-suave:#A3ABB9}
.p2-plan-t{font-family:var(--f-titulo);font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--tinta)}
.p2-plan-n{font-size:14px;font-weight:700;color:var(--suave)}
.p2-plan-n b{display:block;font-family:var(--f-titulo);font-weight:800;font-size:44px;line-height:1;letter-spacing:-.05em;color:var(--tinta)}
.p2-plan-p{font-size:14px;line-height:1.35;color:var(--suave)}
.p2-plan.destacado .p2-plan-t,.p2-plan.destacado .p2-plan-n b{color:#fff}
.p2-plan.destacado .p2-plan-n,.p2-plan.destacado .p2-plan-p{color:var(--marco-suave)}
.p2-plan-marca{justify-self:start;padding:3px 9px;border-radius:999px;background:var(--azul);color:#fff;font-size:11px;font-weight:700;line-height:1.3}
html.p2-vivo .p2-planes:not(.visto) .p2-plan{opacity:0;transform:translate3d(0,22px,0)}
.p2-planes-nota{margin-top:12px;text-align:center}
/* v7: el botón va dentro de Growth (blanco sobre la tarjeta negra), con la letra chica debajo. */
.p2-plan .btn-sec{justify-self:stretch;margin-top:10px;min-height:44px;padding-left:10px;padding-right:10px}
.p2-plan.destacado .btn-sec{border-color:#fff}
.p2-plan-chica{margin-top:2px;text-align:center}
.p2-plan.destacado .p2-plan-chica{color:var(--marco-suave)}
/* v7: la prueba social, una sola línea con cinco estrellas (inicio y precio). */
.p2-prueba{margin-top:6px;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--suave);text-align:center}
.p2-estrellas{color:#E9A23B;letter-spacing:.08em;margin-right:3px}
.p2-planes-nota+.p2-prueba{margin-top:6px}
/* v7: el botón de Respond.io al final de «Así arranca». */
.p2-pasos-accion{display:flex;justify-content:center;width:100%;max-width:22rem;margin:22px auto 0}
.p2-pasos-accion .btn{width:100%}
@media (min-width:700px){
  .p2-planes{gap:16px;max-width:40rem;margin:0 auto}
  .p2-plan{padding:24px 22px 22px}
  .p2-plan-t{font-size:22px}
  .p2-plan-n b{font-size:60px}
  .p2-plan-p{font-size:15.5px}
}

/* ===== consultoría (/consultoria) =====
   La página de la consultoría usa body.p2 (los estilos y el movimiento de la portada) más body.p2-consultoria, solo
   para lo poco que cambia. No lleva el acto fijado de la noche: el riel de agentes va justo después del inicio.
     .p2-consultoria .p2-inicio    el inicio sin escena: el aire de abajo lo pone la página
     .p2-consultoria .p2-equipo    el riel no se encima con el acto anterior (en la portada sube 96 px sobre la noche)
     .p2-leyenda.con               en el gráfico de dos futuros, «Con Okeybot» arriba a la derecha, sobre la curva que sube
     .p2-modelo                    la tarjeta de las tres etapas de «Ganamos cuando ganás» */
.p2-consultoria .p2-inicio{padding-bottom:12px}
.p2-consultoria .p2-inicio .p2-condicion{margin-top:12px}
html.p2-vivo .p2-consultoria .p2-equipo{margin-top:0}
html.p2-vivo .p2-consultoria .p2-equipo-escena{padding:48px 0 40px;justify-content:flex-start}
@media (min-width:700px){html.p2-vivo .p2-consultoria .p2-equipo-escena{justify-content:center;padding:20px 0 40px}}
.p2-consultoria .p2-leyenda.con{top:12px;bottom:auto}
.p2-consultoria .p2-hitos{margin-top:8px}
.p2-modelo .p2-etapas{margin-top:4px}
.p2-modelo .letra-chica{margin-top:0}

/* ---------- Casos · seis clientes de Respond.io (datos/casos.json) ----------
   Un dato grande por tarjeta, el logo arriba y el país abajo. Entran de a una al llegar (data-p2-visto).
   El caso entero va en el plegable de abajo. */
.p2-casos-grilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:1052px;margin:0 auto}
.p2-caso{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px 14px 14px;border:1px solid var(--linea);border-radius:20px;background:#fff;box-shadow:var(--sombra-tarjeta);transition:opacity .5s ease-out,transform .7s var(--sc-ease-out);transition-delay:calc(var(--n,0) * .09s)}
html.p2-vivo .p2-casos-grilla:not(.visto) .p2-caso{opacity:0;transform:translate3d(0,24px,0)}
.p2-caso-logo{display:block;width:auto;height:24px;max-width:100%;margin-bottom:14px;object-fit:contain;object-position:left center}
.p2-caso-logo.alto{height:38px;margin-top:-7px;margin-bottom:7px}  /* los logos casi cuadrados (Sharwa) necesitan más alto para pesar lo mismo */
.p2-caso-n{font-family:var(--f-titulo);font-weight:800;font-size:34px;line-height:1;letter-spacing:-.035em;color:var(--tinta);white-space:nowrap}
.p2-caso-p{font-size:14px;font-weight:600;line-height:1.3;color:var(--texto);text-wrap:pretty}
.p2-caso-pais{margin-top:auto;padding-top:10px;font-size:12.5px;font-weight:600;color:var(--tenue)}
.p2-casos .columna{margin-top:14px}
.p2-caso-completo+.p2-caso-completo{margin-top:16px;padding-top:14px;border-top:1px dashed var(--linea-fuerte)}
.p2-caso-completo h3{font-family:var(--f-titulo);font-weight:800;font-size:16px;letter-spacing:-.01em;color:var(--tinta)}
.p2-caso-completo p{margin-top:4px}
.p2-caso-completo b{color:var(--tinta)}
@media (min-width:700px){
  .p2-casos-grilla{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .p2-caso{padding:22px 22px 18px}
  .p2-caso-logo{height:30px;margin-bottom:18px}
  .p2-caso-logo.alto{height:46px;margin-top:-8px;margin-bottom:10px}
  .p2-caso-n{font-size:46px}
  .p2-caso-p{font-size:15.5px}
  .p2-casos .columna{margin-top:20px}
}
