/*
 * Ajustes transversales de lectura para RegaloPro.
 * La escala de cada página conserva sus propios títulos y composición; esta
 * capa solo corrige texto de apoyo, metadatos y cabeceras que resultaban
 * demasiado pequeños o se desbordaban.
 */

:root {
  --rp-linea-noche: rgba(255, 255, 255, 0.16);
  --rp-texto-cuerpo: 1rem;       /* 16 px: lectura editorial */
  --rp-texto-tarjeta: .9375rem;  /* 15 px: resúmenes y apoyo legible */
  --rp-texto-interfaz: .875rem;  /* 14 px: navegación y controles */
  --rp-texto-meta: .8125rem;     /* 13 px: fecha, estado, etiqueta breve */
}

/* Navegación: conservar una escala compacta, independiente del área táctil. */
body.portal :is(.nav-lista a, .nav-explorar-resumen, .indice a,
  .pie-nav a, .pie-lista a, .stands-anclas a, .recinto-anclas a,
  .ferias-anclas a, .guia-anclas a, .saltar) {
  font-size: var(--rp-texto-interfaz);
  line-height: 1.4;
}

body.portal :is(.nav-explorar-pregunta, .nav-subcategorias > summary,
  .nav-explorar-pie a, .nav-explorar-tecnica p) {
  font-size: var(--rp-texto-meta);
  line-height: 1.45;
}

body.portal main :is(.boton, .stands-boton, .recintos-boton, .texto-link,
  .agenda-enlace, .ferias-atajo, .feria-link-oficial,
  .recinto-accion-secundaria, .recinto-mapa-enlace,
  .recinto-tarjeta-enlace, .calendario-fuente, .calendario-fuente--ficha,
  .hotel-recomendado a, .ruta-editorial-entrada,
  .decision-link, .pagina-flecha, .idea-card-link, .hub-tema-link,
  .guia-entrada > a, .guia-fuentes li a, .feria-plan-panel > a,
  .feria-fuentes > a, .feria-recinto-guia > a, .ferias-fuentes > a,
  .recintos-intro > a, .recinto-ferias-cabecera > a,
  .recinto-activacion > a, .recinto-stands > a, .recinto-historico-item a,
  .recinto-fuentes li a, .recintos-criterio > a,
  .rutas-tecnicas nav a, .recinto-volver a) {
  font-size: var(--rp-texto-interfaz);
  line-height: 1.45;
}

body.portal main :is(.ferias-filtros button, .ideas-filtros button,
  .seguimiento-filtros button, .presupuesto-acciones button,
  .lanzamiento-progreso button, .calendario-filtros a,
  .guia-faq summary, .recinto-faq summary, .recinto-nota-cifras summary,
  .stands-selector-opciones button) {
  font-size: var(--rp-texto-interfaz);
}

body.portal main :is(.ferias-filtros button, .ideas-filtros button,
  .seguimiento-filtros button, .presupuesto-acciones button,
  .lanzamiento-progreso button, .calendario-filtros a) {
  min-height: 2.5rem;
}

/* Metadatos cortos: deliberadamente menores que el texto que explican. */
body.portal main :is(.tarjeta-seccion, .tarjeta-tipo, .tarjeta-sello,
  .filtro label, .portal-metricas span, .agenda-tags span, .agenda-fecha small,
  .hero-sticker, .portal-tags span, .seccion-indice-numero, .seccion-cuenta,
  .indice-tarjeta, .coleccion-estado, .ruta-editorial-temas a,
  .industria-portada-copy .lectura-etiqueta,
  .guia-hero-meta, .guia-migas, .guia-pieza-etiqueta,
  .feria-card-fecha > span, .feria-ticket-mes, .feria-ticket-lugar,
  .feria-ticket-aviso, .feria-card-pie, .feria-card-registro,
  .feria-ficha-meta, .feria-meta-estado, .feria-realizada-estado,
  .ferias-ruta, .ferias-resultado, .ideas-resultado,
  .recinto-tarjeta-tipo, .recinto-tarjeta-ciudad, .recinto-tarjeta-dato,
  .recinto-revision, .recinto-evento-estado, .recinto-evento-fecha,
  .recinto-historico-anio, .recintos-pendientes-estado, .recintos-migas,
  .recinto-hero-context, .recinto-sin-ferias, .recinto-volver,
  .recintos-pendientes-lista article > div > span,
  .agenda-pie, .agenda-proxima-fecha > span, .agenda-proxima-texto > span,
  .hero-nota, .hub-resumen, .registro-meta dt, .registro-meta time,
  .pie-legal, .pie-grupo, .relacion-nota, .relacion-seccion,
  .vecina-dir, .temas-fila-etiqueta, .ficha-tags a,
  .indice-mosaico-sello,
  .guia-anclas a span, .guia-faq summary > span,
  .idea-card > p, .idea-card-pie, .hotel-recomendado > span,
  .hoteles-brujula-punto small, .lanzamiento-hito-copy small,
  .lanzamiento-hito-numero, .stands-operacion-momento,
  .stands-operacion-linea b, .stands-av-dato, .stands-brief-estado,
  .stands-selector-resultado > div > span,
  .stands-selector-opciones button > span, .stands-led-claves article > span,
  .stands-led-muestra small, .stands-brief-item b,
  .calendario-tipo, .calendario-filtros-label, .calendario-hito-fecha,
  .calendario-semana li, .calendario-numero, .calendario-meses a,
  .calendario-control-anio a, .calendario-agenda-titulo > span,
  .feria-card-lugar, .feria-pendiente-estado,
  .ferias-siguiente-fecha small,
  .ferias-relacionadas-lista > a > span,
  .ferias-relacionadas-lista > a small, .feria-respuesta-grid article > span,
  .feria-editorial-imagen figcaption > span, .ficha-portada-nota,
  figure figcaption, .ficha-cuerpo small, .ficha-cuerpo figcaption,
  .guia-hero-imagen figcaption, .recinto-foto figcaption) {
  font-size: var(--rp-texto-meta);
  line-height: 1.45;
}

body.portal main :is(.tarjeta-seccion, .guia-hero-meta, .guia-pieza-etiqueta,
  .feria-card-fecha > span, .feria-ticket-mes, .feria-ficha-meta,
  .feria-meta-estado, .recinto-evento-fecha, .recinto-evento-estado,
  .calendario-tipo, .calendario-filtros-label, .calendario-hito-fecha,
  .hoteles-brujula-punto small) {
  font-family: var(--fuente-mono);
}

body.portal main :is(.calendario-aviso, .stands-operacion-nota,
  .stands-decision-nota, .stands-selector-nota, .recinto-hero-direccion,
  .recinto-preguntas-cabecera > p, .recintos-portada-nota p,
  .recintos-criterio p, .recinto-nota-cifras > p,
  .recinto-acceso-cabecera > p) {
  font-size: var(--rp-texto-interfaz);
  line-height: 1.55;
}

/* Texto que sí aporta una decisión: no se fuerza al tamaño de los metadatos. */
body.portal main :is(.tarjeta-resumen, .ruta-editorial-descripcion,
  .feria-respuesta-grid p,
  .recinto-tarjeta-cuerpo > p:not(.recinto-tarjeta-tipo),
  .recintos-pendientes-lista article > p, .seccion-proposito, .idea-card-ejemplos,
  .hotel-recomendado p, .guia-pieza div > p:last-child,
  .guia-nota > div > p:last-child, .hoteles-recomendados-cabecera > p,
  .guia-capitulo-cabecera > p:last-child, .guia-preguntas-cabecera > p,
  .guia-fuentes-titulo > p, .recinto-stands-copy > p:last-child,
  .feria-audiencia > div:last-child > p:last-child,
  .presupuesto-herramienta-cabecera > div > p,
  .seguimiento-lab-cabecera > div > p,
  .lanzamiento-pulso-cabecera > div > p,
  .recinto-hero-bajada, .recinto-activacion > p,
  .recinto-evento-copy > p, .recinto-faq details > p,
  .recinto-discrepancia p, .feria-pendiente p, .feria-realizada > div > p,
  .feria-recinto-guia > div > p:last-child,
  .calendario-hito-cuerpo > p:not(.calendario-tipo),
  .recintos-intro > div > p, .recinto-historico-item p,
  .recinto-acceso-lista p,
  .recinto-medida p,
  .recinto-fuentes > div > p:last-child, .feria-alerta p,
  .feria-plan-panel > p, .feria-activacion-intro > p:last-child,
  .feria-respuestas-cabecera > p, .stands-diseno-imagen > p,
  .stands-cubos-imagen figcaption, .stands-av-imagen figcaption,
  .stands-led-fuente, .stands-brief-item small,
  .guia-entrada > div > p:last-child, .ideas-selector-cabecera > p,
  .equipo-brief-copy > p, .equipo-brief li, .guia-faq > p,
  .hoteles-recomendados-cabecera > p:last-child,
  .guia-fuentes-titulo > p:last-child, .registro-meta dd) {
  font-size: var(--rp-texto-tarjeta);
  line-height: 1.55;
}

/* Títulos de tarjetas: cada plantilla conserva su jerarquía local. */
body.portal main :is(.idea-card h3, .guia-pieza h3, .guia-faq summary strong,
  .feria-fuentes h3, .recinto-evento-copy h3, .recinto-medida h3,
  .recinto-acceso-lista h3, .recintos-pendientes-lista h3,
  .feria-respuesta-grid h3, .feria-realizada h3,
  .ferias-relacionadas-lista > a strong, .feria-fuentes strong) {
  font-size: 1rem;
  line-height: 1.3;
}

body.portal main :is(.ideas-selector h2, .guia-capitulo h2,
  .hoteles-recomendados-cabecera h2, .guia-preguntas h2,
  .guia-fuentes h2, .guia-nota h2) {
  text-wrap: balance;
}

/* Etiquetas de hotel/recinto y componentes con texto de acciones. */
body.portal main .hotel-recomendado h3 { font-size: 1rem; line-height: 1.3; }
body.portal main .hotel-recomendado a { min-height: 2.5rem; display: inline-flex; align-items: center; }
body.portal main .hoteles-brujula-punto > span { font-size: var(--rp-texto-meta); }
body.portal main .recinto-tarjeta-dato strong,
body.portal main .recintos-criterio strong,
body.portal main .recinto-evento-fecha strong,
body.portal main .feria-alerta strong { font-size: var(--rp-texto-interfaz); line-height: 1.4; }

/* Mantener cifras y fechas alineadas sin imponer tamaño a toda la tabla. */
body.portal main .tabla-datos :is(th, td) {
  font-size: var(--rp-texto-interfaz);
  line-height: 1.5;
}

body.portal main .ficha-cuerpo :is(p, li, dd, dt) {
  font-size: 1.0625rem;
  line-height: 1.68;
}

body.portal main :is(.ferias-relacionadas-lista > a,
  .feria-respuesta-grid article, .feria-recinto-guia, .feria-fuentes,
  .recinto-tarjeta, .hotel-recomendado, .guia-pieza, .idea-card) {
  min-width: 0;
}

body.portal main .seguimiento-plantilla pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* En una franja intermedia la cabecera compacta mantiene todos los enlaces
   en una sola línea y reserva el buscador en una columna estrecha pero usable. */
@media (min-width: 58.01rem) and (max-width: 74rem) {
  body.portal .cabecera-inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .5rem;
    padding: .6rem .85rem;
  }

  body.portal .marca-bloque--compacto { width: 8.25rem; }
  body.portal .nav { min-width: 0; }
  body.portal .nav-lista {
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 0;
  }

  body.portal .nav-lista > li { flex: 0 0 auto; }
  body.portal .nav-lista a,
  body.portal .nav-explorar-resumen {
    padding: .48rem .3rem;
    font-size: var(--rp-texto-meta);
    letter-spacing: -.015em;
  }

  body.portal .buscador { min-width: 0; }
  body.portal .cabecera-inner .buscador input[type="search"] {
    width: clamp(8rem, 12vw, 10rem);
  }
}

/* El menú colapsa antes de que los enlaces empiecen a amontonarse. */
@media (min-width: 52.01rem) and (max-width: 58rem) {
  body.portal .cabecera-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem .75rem;
    padding: .65rem 1rem;
  }

  html.con-js body.portal .menu-btn {
    display: block;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  body.portal .buscador {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: .2rem;
  }

  body.portal .buscador input[type="search"] { width: 100%; flex: 1; }
  body.portal .nav {
    grid-column: 1 / -1;
    grid-row: 3;
    padding: .65rem 0;
    border-top: 1px solid var(--rp-linea-noche);
  }

  html.con-js body.portal .nav { display: none; }
  html.con-js body.portal .nav.abierto { display: block; }
  body.portal .nav-lista { flex-direction: column; gap: 0; }
  body.portal .nav-lista > li { border-bottom: 1px solid var(--rp-linea-noche); }
  body.portal .nav-lista a { display: block; padding: .75rem .25rem; }
  body.portal .nav-explorar-panel {
    position: static;
    width: auto;
    max-height: none;
    margin: .4rem 0 .8rem;
    padding: .9rem;
    translate: none;
  }
  body.portal .nav-explorar-cabecera { display: block; }
  body.portal .nav-explorar-grupos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 40rem) {
  body.portal main :is(.ficha-cuerpo p, .ficha-cuerpo li,
    .ficha-cuerpo dd, .ficha-cuerpo dt) {
    line-height: 1.68;
  }

  body.portal main .calendario-app .calendario-dia-hitos a {
    font-size: var(--rp-texto-meta);
  }
}
