/* ==========================================================================
   Vincula Talento · sitio publico
   Paleta MEDIDA del logotipo original (_AGENT/mediciones/2026-10-30/colores_logo.json):
     marino #01276B ("Vincula") · corporativo #006CD8 ("Talento", mitad baja)
     brillante #0188F2 ("Talento", mitad alta) · gris institucional #586579 (manual §6)
   Contrastes sobre blanco: marino 13.9:1 · tinta 9.6:1 · corporativo 5.1:1 · gris 5.9:1
   · brillante 3.6:1 -> el brillante NUNCA va en texto normal: solo acentos y titulos grandes
   (manual §6, accesibilidad).
   Tipografia: Montserrat (manual §7), escala 1.25, cuerpo 16px, renglon 1.6, medida 70ch.
   ========================================================================== */

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fuentes/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fuentes/montserrat-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --marino: #01276B;
  --marino-hondo: #00174A;
  --corporativo: #006CD8;
  --brillante: #0188F2;
  --gris: #586579;
  --tinta: #2E3A4D;
  --linea: #D9E1EE;
  --suave: #F3F6FB;
  --suave-azul: #E8F1FD;
  --blanco: #FFFFFF;
  --exito: #0F7A4A;
  --alerta: #8A5A00;
  --error: #B42318;

  --t-0: 0.875rem;  --t-1: 1rem;  --t-2: 1.25rem;  --t-3: 1.563rem;
  --t-4: clamp(1.6rem, 1.2rem + 1.6vw, 1.953rem);
  --t-5: clamp(1.9rem, 1.3rem + 2.6vw, 2.441rem);
  --t-6: clamp(2.1rem, 1.3rem + 3.6vw, 3.052rem);

  --e-1: 0.25rem; --e-2: 0.5rem; --e-3: 0.75rem; --e-4: 1rem; --e-5: 1.5rem;
  --e-6: 2rem; --e-7: 3rem; --e-8: 4rem; --e-9: 6rem;

  --radio: 12px;
  --radio-chico: 8px;
  --sombra: 0 1px 2px rgba(1, 39, 107, .06), 0 8px 24px rgba(1, 39, 107, .08);
  --ancho: 72rem;
  --foco: 0 0 0 3px var(--blanco), 0 0 0 6px var(--brillante);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
  margin: 0; font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: var(--t-1); line-height: 1.6; color: var(--tinta); background: var(--blanco);
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--corporativo); text-underline-offset: 3px; }
a:hover { color: var(--marino); }
:focus-visible { outline: none; box-shadow: var(--foco); border-radius: 4px; }
h1, h2, h3, h4 { color: var(--marino); line-height: 1.2; margin: 0 0 var(--e-4); font-weight: 800; letter-spacing: -0.01em; }
h1 { font-size: var(--t-6); }
h2 { font-size: var(--t-5); }
h3 { font-size: var(--t-3); font-weight: 700; }
h4 { font-size: var(--t-2); font-weight: 700; }
p { margin: 0 0 var(--e-4); max-width: 70ch; }
ul, ol { padding-left: 1.25rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.saltar { position: absolute; left: var(--e-4); top: -4rem; z-index: 100; background: var(--marino); color: var(--blanco); padding: var(--e-2) var(--e-4); border-radius: var(--radio-chico); }
.saltar:focus { top: var(--e-4); color: var(--blanco); }

.contenedor { width: 100%; max-width: var(--ancho); margin: 0 auto; padding: 0 var(--e-4); }
@media (min-width: 48rem) { .contenedor { padding: 0 var(--e-6); } }

/* ---------- botones ---------- */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  min-height: 48px; padding: 0 var(--e-5); border-radius: var(--radio-chico);
  background: var(--corporativo); color: var(--blanco); font-weight: 700; font-size: var(--t-1);
  text-decoration: none; border: 2px solid var(--corporativo); cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s, color .15s;
}
.boton:hover { background: var(--marino); border-color: var(--marino); color: var(--blanco); }
.boton-secundario { background: transparent; color: var(--marino); border-color: var(--marino); }
.boton-secundario:hover { background: var(--marino); color: var(--blanco); }
.boton-claro { background: var(--blanco); color: var(--marino); border-color: var(--blanco); }
.boton-claro:hover { background: var(--suave-azul); border-color: var(--suave-azul); color: var(--marino); }
.boton-borde-claro { background: transparent; color: var(--blanco); border-color: rgba(255,255,255,.7); }
.boton-borde-claro:hover { background: rgba(255,255,255,.12); color: var(--blanco); border-color: var(--blanco); }
.boton-whatsapp { background: #0B7A4B; border-color: #0B7A4B; }
.boton-whatsapp:hover { background: #075C38; border-color: #075C38; }
.boton svg { width: 20px; height: 20px; flex: none; }
.acciones { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-5); }

/* ---------- motivo de marca: las lineas que enmarcan el eslogan del logo ---------- */
.antetitulo {
  display: inline-flex; align-items: center; gap: var(--e-3); margin: 0 0 var(--e-3);
  font-size: var(--t-0); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--corporativo);
}
.antetitulo::before { content: ''; width: 2.25rem; height: 2px; background: var(--brillante); }
.centrado .antetitulo::after { content: ''; width: 2.25rem; height: 2px; background: var(--brillante); }
.fondo-marino .antetitulo, .heroe .antetitulo { color: #CFE4FF; }

/* ---------- encabezado ---------- */
.encabezado { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--linea); }
.encabezado .contenedor { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: var(--e-4); }
.marca { display: inline-flex; align-items: center; }
.marca img { height: 44px; width: auto; }
.menu-boton {
  display: inline-flex; align-items: center; gap: var(--e-2); min-height: 44px; padding: 0 var(--e-3);
  border: 2px solid var(--linea); border-radius: var(--radio-chico); background: var(--blanco); color: var(--marino);
  font: 700 var(--t-0) 'Montserrat', sans-serif; cursor: pointer;
}
.menu-boton svg { width: 22px; height: 22px; }
.navegacion { display: none; }
.navegacion.abierta { display: block; position: absolute; left: 0; right: 0; top: 72px; background: var(--blanco); border-bottom: 1px solid var(--linea); box-shadow: var(--sombra); }
.navegacion ul { list-style: none; margin: 0; padding: var(--e-3) var(--e-4) var(--e-5); }
.navegacion a { display: block; padding: var(--e-3) var(--e-2); color: var(--marino); font-weight: 600; text-decoration: none; border-radius: var(--radio-chico); }
.navegacion a:hover, .navegacion a[aria-current="page"] { background: var(--suave-azul); }
.navegacion .boton { margin-top: var(--e-3); width: 100%; color: var(--blanco); }
@media (min-width: 64rem) {
  .menu-boton { display: none; }
  .navegacion, .navegacion.abierta { display: block; position: static; box-shadow: none; border: 0; background: none; }
  .navegacion ul { display: flex; align-items: center; gap: var(--e-1); padding: 0; }
  .navegacion a { padding: var(--e-2) var(--e-3); font-size: var(--t-0); }
  .navegacion .boton { margin: 0 0 0 var(--e-3); width: auto; min-height: 42px; padding: 0 var(--e-4); }
  .marca img { height: 48px; }
}

/* ---------- secciones ---------- */
.seccion { padding: var(--e-8) 0; }
.seccion + .seccion { padding-top: 0; }
.seccion.fondo-suave + .seccion, .seccion + .seccion.fondo-suave, .seccion.fondo-marino + .seccion, .seccion + .seccion.fondo-marino { padding-top: var(--e-8); }
@media (min-width: 48rem) { .seccion { padding: var(--e-9) 0; } .seccion.fondo-suave + .seccion, .seccion + .seccion.fondo-suave { padding-top: var(--e-9); } }
.fondo-suave { background: var(--suave); }
.fondo-marino { background: var(--marino); color: #E6EEFB; }
.fondo-marino h2, .fondo-marino h3 { color: var(--blanco); }
.encabezado-seccion { max-width: 46rem; margin-bottom: var(--e-6); }
.encabezado-seccion.centrado { margin-left: auto; margin-right: auto; text-align: center; }
.encabezado-seccion p { font-size: var(--t-2); color: var(--gris); }
.centrado p { margin-left: auto; margin-right: auto; }
.texto-largo { max-width: 46rem; }
.texto-largo h2 { font-size: var(--t-4); margin-top: var(--e-6); }
.texto-largo h3 { margin-top: var(--e-5); }
.texto-largo blockquote { margin: var(--e-5) 0; padding: var(--e-3) var(--e-5); border-left: 4px solid var(--brillante); background: var(--suave-azul); border-radius: 0 var(--radio-chico) var(--radio-chico) 0; }
.pendiente { background: #FFF4D6; color: var(--alerta); padding: 0 .3em; border-radius: 4px; font-weight: 600; }

/* ---------- portada ---------- */
.heroe {
  position: relative; overflow: hidden; color: #E6EEFB;
  background: radial-gradient(120% 140% at 85% 20%, #0A4FB0 0%, var(--marino) 45%, var(--marino-hondo) 100%);
  padding: var(--e-8) 0 var(--e-8);
}
.heroe::after {
  content: ''; position: absolute; right: -6rem; top: 50%; transform: translateY(-50%);
  width: 28rem; height: 28rem; background: url('../img/isotipo-blanco.png') center/contain no-repeat; opacity: .07; pointer-events: none;
}
@media (min-width: 64rem) { .heroe { padding: var(--e-9) 0; } .heroe::after { right: 2rem; width: 34rem; height: 34rem; } }
.heroe .contenedor { position: relative; z-index: 1; }
.heroe h1 { color: var(--blanco); max-width: 20ch; }
.heroe p.subtitulo { font-size: var(--t-2); max-width: 44rem; color: #D7E5FA; }
.heroe-corto { padding: var(--e-7) 0; }
.heroe-corto h1 { font-size: var(--t-5); max-width: 28ch; }

/* ---------- rejillas y tarjetas ---------- */
.rejilla { display: grid; gap: var(--e-5); grid-template-columns: 1fr; }
@media (min-width: 40rem) { .rejilla-2, .rejilla-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .rejilla-3 { grid-template-columns: repeat(3, 1fr); } }
.tarjeta {
  position: relative; display: flex; flex-direction: column; background: var(--blanco); border: 1px solid var(--linea);
  border-radius: var(--radio); padding: var(--e-5); box-shadow: var(--sombra);
}
.tarjeta h3 { font-size: var(--t-2); margin-bottom: var(--e-2); }
.tarjeta p { color: var(--tinta); margin-bottom: var(--e-3); }
.tarjeta .mas { margin-top: auto; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; }
.tarjeta .mas::after { content: '→'; transition: transform .15s; }
.tarjeta:hover .mas::after { transform: translateX(3px); }
.tarjeta-enlace { text-decoration: none; color: inherit; }
.tarjeta-enlace:hover { border-color: var(--corporativo); }
.icono-caja {
  width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; margin-bottom: var(--e-4);
  background: var(--suave-azul); color: var(--corporativo);
}
.icono-caja svg { width: 28px; height: 28px; }
.fondo-marino .tarjeta { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.16); box-shadow: none; }
.fondo-marino .tarjeta p { color: #D7E5FA; }
.etiquetas { display: flex; flex-wrap: wrap; gap: var(--e-2); margin: 0 0 var(--e-3); padding: 0; list-style: none; }
.etiqueta { display: inline-block; font-size: .8125rem; font-weight: 700; color: var(--marino); background: var(--suave-azul); border-radius: 999px; padding: .2rem .7rem; }
.etiqueta-verde { background: #E3F4EC; color: var(--exito); }

/* ---------- pasos ---------- */
.pasos { counter-reset: paso; display: grid; gap: var(--e-5); grid-template-columns: 1fr; list-style: none; padding: 0; margin: 0; }
@media (min-width: 48rem) { .pasos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .pasos-4 { grid-template-columns: repeat(4, 1fr); } }
.pasos li { counter-increment: paso; position: relative; padding-top: var(--e-6); border-top: 2px solid var(--linea); }
.pasos li::before {
  content: counter(paso, decimal-leading-zero); position: absolute; top: -1px; left: 0; transform: translateY(-50%);
  background: var(--blanco); padding-right: var(--e-3); font-weight: 800; font-size: var(--t-3); color: var(--brillante);
}
.fondo-suave .pasos li::before { background: var(--suave); }
.pasos h3 { font-size: var(--t-2); margin-bottom: var(--e-2); }

/* ---------- lista con viñetas de marca ---------- */
.lista-marca { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--e-4); }
@media (min-width: 48rem) { .lista-marca.dos-columnas { grid-template-columns: repeat(2, 1fr); column-gap: var(--e-6); } }
.lista-marca li { position: relative; padding-left: 2rem; }
.lista-marca li::before {
  content: ''; position: absolute; left: 0; top: .45em; width: 1.1rem; height: 1.1rem; border-radius: 50%;
  border: 3px solid var(--brillante); background: var(--blanco);
}
.lista-marca strong { color: var(--marino); display: block; }

/* ---------- llamada ---------- */
.llamada {
  border-radius: var(--radio); padding: var(--e-7) var(--e-5); text-align: center; color: #E6EEFB;
  background: radial-gradient(120% 160% at 10% 0%, #0A4FB0 0%, var(--marino) 55%, var(--marino-hondo) 100%);
}
.llamada h2 { color: var(--blanco); max-width: 24ch; margin-left: auto; margin-right: auto; }
.llamada p { margin-left: auto; margin-right: auto; font-size: var(--t-2); color: #D7E5FA; }
.llamada .acciones { justify-content: center; }

/* ---------- preguntas ---------- */
.preguntas { max-width: 50rem; }
.preguntas details { border-bottom: 1px solid var(--linea); }
.preguntas summary {
  cursor: pointer; list-style: none; padding: var(--e-4) 2.5rem var(--e-4) 0; position: relative;
  font-weight: 700; color: var(--marino); font-size: var(--t-1);
}
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas summary::after { content: '+'; position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--corporativo); font-weight: 600; }
.preguntas details[open] summary::after { content: '–'; }
.preguntas .respuesta { padding: 0 0 var(--e-4); }

/* ---------- detalle (servicio, curso, vacante, articulo, zona) ---------- */
.detalle { display: grid; gap: var(--e-7); grid-template-columns: 1fr; }
@media (min-width: 64rem) { .detalle { grid-template-columns: minmax(0, 1fr) 20rem; align-items: start; } }
.detalle h2 { font-size: var(--t-4); margin-top: var(--e-6); }
.detalle h2:first-child { margin-top: 0; }
.lateral { position: sticky; top: 96px; display: grid; gap: var(--e-4); }
.lateral .tarjeta { box-shadow: none; background: var(--suave); }
.ficha { display: grid; grid-template-columns: auto 1fr; gap: var(--e-2) var(--e-4); margin: 0 0 var(--e-4); }
.ficha dt { font-weight: 700; color: var(--marino); }
.ficha dd { margin: 0; }
.migas { font-size: var(--t-0); margin-bottom: var(--e-4); }
.migas a { color: #CFE4FF; }
.migas span { color: #A9C4EC; }
.articulo-cuerpo { font-size: 1.0625rem; }
.articulo-cuerpo p, .articulo-cuerpo li { max-width: 68ch; }

/* ---------- contacto ---------- */
.contacto-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--e-4); }
.contacto-lista li { display: flex; gap: var(--e-3); align-items: flex-start; }
.contacto-lista svg { width: 24px; height: 24px; flex: none; color: var(--corporativo); margin-top: .15rem; }
.contacto-lista strong { display: block; color: var(--marino); }

/* ---------- formularios ---------- */
.formulario { display: grid; gap: var(--e-4); max-width: 44rem; }
.campo label { display: block; font-weight: 700; color: var(--marino); margin-bottom: var(--e-1); }
.campo .ayuda { display: block; font-size: var(--t-0); color: var(--gris); margin-top: var(--e-1); }
.campo input[type=text], .campo input[type=email], .campo input[type=tel], .campo input[type=url], .campo select, .campo textarea, .campo input[type=file] {
  width: 100%; min-height: 48px; padding: .65rem .85rem; border: 1px solid #8C97A8; border-radius: var(--radio-chico);
  font: inherit; color: var(--tinta); background: var(--blanco);
}
.campo textarea { min-height: 7rem; resize: vertical; }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible { border-color: var(--corporativo); }
.campo-error input, .campo-error select, .campo-error textarea { border-color: var(--error); }
.mensaje-error { color: var(--error); font-size: var(--t-0); font-weight: 600; margin-top: var(--e-1); }
.casilla { display: flex; gap: var(--e-3); align-items: flex-start; }
.casilla input { width: 22px; height: 22px; margin-top: .15rem; flex: none; accent-color: var(--corporativo); }
.dos-campos { display: grid; gap: var(--e-4); }
@media (min-width: 40rem) { .dos-campos { grid-template-columns: 1fr 1fr; } }
.aviso { border-radius: var(--radio-chico); padding: var(--e-4) var(--e-5); margin-bottom: var(--e-5); border: 1px solid; }
.aviso-exito { background: #E9F7F0; border-color: #A7DCC2; color: #0B5A37; }
.aviso-error { background: #FDECEA; border-color: #F4B4AE; color: #8F1D14; }
.aviso-info { background: var(--suave-azul); border-color: #B9D5F7; color: var(--marino); }
.trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vacio { padding: var(--e-6); border: 2px dashed var(--linea); border-radius: var(--radio); text-align: center; color: var(--gris); }

/* ---------- pie ---------- */
.pie { background: var(--marino-hondo); color: #C9D8F1; padding: var(--e-8) 0 var(--e-5); margin-top: var(--e-9); font-size: var(--t-0); }
.pie a { color: #E6EEFB; text-decoration: none; }
.pie a:hover { text-decoration: underline; color: var(--blanco); }
.pie-rejilla { display: grid; gap: var(--e-6); grid-template-columns: 1fr; }
@media (min-width: 48rem) { .pie-rejilla { grid-template-columns: 1.4fr 1fr 1fr; } }
.pie h2 { color: var(--blanco); font-size: var(--t-1); letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--e-3); }
.pie ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--e-2); }
.pie .marca img { height: 44px; margin-bottom: var(--e-4); }
.pie-eslogan { display: flex; align-items: center; gap: var(--e-3); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #CFE4FF; font-size: .75rem; }
.pie-eslogan::before, .pie-eslogan::after { content: ''; height: 2px; width: 1.5rem; background: var(--brillante); }
.pie-legal { border-top: 1px solid rgba(255,255,255,.14); margin-top: var(--e-7); padding-top: var(--e-4); display: flex; flex-wrap: wrap; gap: var(--e-3) var(--e-5); justify-content: space-between; }
.redes { display: flex; gap: var(--e-3); margin-top: var(--e-4); }
.redes a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radio-chico); border: 1px solid rgba(255,255,255,.2); }
.redes svg { width: 22px; height: 22px; }
.lateral .boton { width: 100%; margin-top: var(--e-2); }

/* ---------- boton flotante del asistente (la fase 4 lo conecta) ---------- */
.flotante {
  position: fixed; right: var(--e-4); bottom: var(--e-4); z-index: 60; display: inline-flex; align-items: center; gap: var(--e-2);
  min-height: 56px; padding: 0 var(--e-5) 0 var(--e-4); border-radius: 999px; border: 0; cursor: pointer;
  background: var(--corporativo); color: var(--blanco); font: 700 var(--t-1) 'Montserrat', sans-serif;
  box-shadow: 0 10px 30px rgba(1,39,107,.35);
}
.flotante:hover { background: var(--marino); }
.flotante svg { width: 26px; height: 26px; }

/* ---------- asistente (ventana del bot) ---------- */
.asistente {
  position: fixed; right: var(--e-4); bottom: calc(var(--e-4) + 64px); z-index: 70; width: min(25rem, calc(100vw - 2rem));
  height: min(38rem, calc(100vh - 7rem)); display: flex; flex-direction: column; background: var(--blanco);
  border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: 0 18px 48px rgba(1,39,107,.28); overflow: hidden;
}
.asistente[hidden] { display: none; }
.asistente-cabeza { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); padding: var(--e-3) var(--e-4); background: var(--marino); color: var(--blanco); }
.asistente-titulo strong { display: block; font-size: var(--t-1); }
.asistente-titulo span { font-size: .8125rem; color: #CFE4FF; }
.asistente-cerrar { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: var(--radio-chico); background: transparent; color: var(--blanco); cursor: pointer; }
.asistente-cerrar:hover { background: rgba(255,255,255,.12); }
.asistente-cerrar svg { width: 22px; height: 22px; }
.asistente-mensajes { flex: 1; overflow-y: auto; padding: var(--e-4); display: flex; flex-direction: column; gap: var(--e-3); background: var(--suave); }
.asistente-burbuja { max-width: 88%; padding: .7rem .95rem; border-radius: 16px; line-height: 1.45; font-size: .9375rem; white-space: pre-line; overflow-wrap: anywhere; }
.de-asistente { align-self: flex-start; background: var(--blanco); color: var(--tinta); border: 1px solid var(--linea); border-bottom-left-radius: 4px; }
.de-visitante { align-self: flex-end; background: var(--corporativo); color: var(--blanco); border-bottom-right-radius: 4px; }
.asistente-escribiendo { color: var(--gris); font-style: italic; }
.asistente-error { border-color: #F4B4AE; background: #FDECEA; color: #8F1D14; }
.asistente-opciones { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.asistente-opcion {
  min-height: 44px; padding: .5rem .9rem; border-radius: 999px; border: 2px solid var(--corporativo); background: var(--blanco);
  color: var(--corporativo); font: 600 .875rem 'Montserrat', sans-serif; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center;
}
.asistente-opcion:hover:not(:disabled) { background: var(--corporativo); color: var(--blanco); }
.asistente-opcion:disabled { border-color: var(--linea); color: var(--gris); cursor: default; background: var(--blanco); }
.asistente-liga { border-color: var(--marino); color: var(--marino); }
.asistente-forma { display: flex; gap: var(--e-2); padding: var(--e-3); border-top: 1px solid var(--linea); background: var(--blanco); }
.asistente-campo { flex: 1; min-height: 48px; padding: 0 .85rem; border: 1px solid #8C97A8; border-radius: var(--radio-chico); font: inherit; }
.asistente-enviar { width: 48px; min-height: 48px; border: 0; border-radius: var(--radio-chico); background: var(--corporativo); color: var(--blanco); cursor: pointer; display: grid; place-items: center; }
.asistente-enviar svg { width: 22px; height: 22px; }
.asistente-pie { margin: 0; padding: 0 var(--e-4) var(--e-3); font-size: .75rem; color: var(--gris); background: var(--blanco); }
@media (max-width: 40rem) {
  .asistente { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; }
  .asistente-abierto .asistente-lanzador { display: none; }
}

/* ---------- pagina de error ---------- */
.pagina-error { min-height: 100vh; display: grid; place-items: center; background: var(--suave); }
.error-caja { max-width: 36rem; text-align: center; padding: var(--e-8) var(--e-4); }
.error-codigo { font-size: var(--t-6); font-weight: 800; color: var(--brillante); margin: 0 auto var(--e-2); }
.error-detalle { text-align: left; white-space: pre-wrap; background: var(--blanco); border: 1px solid var(--linea); padding: var(--e-4); border-radius: var(--radio-chico); font-size: .8rem; }

@media print {
  .encabezado, .pie, .flotante, .acciones, .llamada { display: none !important; }
  .heroe { background: none; color: #000; padding: 1rem 0; }
  .heroe h1, .heroe p.subtitulo { color: #000; }
  .heroe::after { display: none; }
}
