/* ==========================================================================
   CSS ADICIONAL — Última Llamada
   Última revisión: agosto de 2026

   CAMBIOS DE ESTA REVISIÓN
   1. Variables movidas a :root (antes solo existían dentro de .ul-avios,
      lo que dejaba las tablas con texto blanco sobre fondo transparente).
   2. Los enlaces dentro de .ul-avios ya no llevan color declarado: usan
      el del tema. Los del índice tienen color propio (granate).
   3. Protegidos los colores de píldoras y botones, que perdían frente a
      .ul-avios a por tener la misma especificidad.
   4. .ul-cta acotado a div.ul-cta para que no choque con a.ul-cta (botón).
   5. Añadidas las clases que faltaban: .ul-answer, .ul-warning, .ul-success,
      .ul-note, .ul-update, .ul-cta-wrap, .ul-program-finder.
   6. Eliminado el duplicado comentado de .tabla-ajustada-contenedor.
   ========================================================================== */


/* ==========================================================================
   0. VARIABLES GLOBALES
   Deben estar en :root para que funcionen también fuera de .ul-avios.
   ========================================================================== */

:root {
  --ul-navy: #12263f;
  --ul-blue: #1769aa;
  --ul-blue-dark: #0d4f85;
  --ul-border: #dce4ec;
  --ul-soft: #f5f8fb;
  --ul-tip: #eef8f2;
  --ul-tip-border: #228b5a;
  --ul-warn: #fff7e8;
  --ul-warn-border: #d78916;
  --ul-key: #eef5ff;
  --ul-key-border: #1769aa;
  --ul-text: #263442;
  --ul-muted: #647282;
  --ul-red: #7a003c;
  --ul-pill: #1e73be;
}


/* ==========================================================================
   1. AJUSTES GENERALES DEL TEMA
   ========================================================================== */

.wp-caption-text {
  margin-bottom: 16px;
  margin-top: 8px;
}

.instagram-media {
  margin: 0 auto !important;
}

figure .aligncenter,
.elementor .elementor-widget:not(.elementor-widget-text-editor) figure {
  margin: 0 auto !important;
}

.elementor hr {
  margin: 40px 0px !important;
}

.jeg_postblock_36 .jeg_thumb .jeg_post_category {
  max-height: 22px !important;
}

.jeg_meta_date i {
  font-family: 'Fontawesome' !important;
}

.jeg_heroblock_2 .jeg_meta_date {
  display: none !important;
}

.comment-respond label {
  color: #222 !important;
}

.comment-respond h2 a {
  float: right !important;
  font-size: 16px;
}

.single .wp-caption-text {
  font-size: 15px;
}

html {
  scroll-behavior: smooth;
}

/* Fix: margen lateral para que el texto no toque los bordes en Sobre mí */
.ul-about {
  padding: 0 24px;
  box-sizing: border-box;
}

.entry-content a:has(> img.aligncenter),
.entry-content img.aligncenter {
  display: block;
  margin: 2.5rem auto;
}

/* Fix: separación entre leyendas de imagen y el texto siguiente */
.elementor .elementor-widget:not(.elementor-widget-text-editor) figure.ul-figure {
  margin-bottom: 1.5rem !important;
}


/* ==========================================================================
   2. GUÍA TIPOGRÁFICA EDITORIAL — v2
   ========================================================================== */

.jeg_post_title {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.2;
  color: #1F2937;
}

.entry-content {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  max-width: 780px;
}

.entry-content p {
  font-size: 18px;
  line-height: 1.75;
  font-weight: 400;
  margin-bottom: 24px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.entry-content h2 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 64px;
  margin-bottom: 32px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1F2937;
}

.entry-content h3 {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.35;
  margin-top: 40px;
  margin-bottom: 20px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1F2937;
}

.entry-content h4 {
  font-size: 20px;
  font-weight: 600;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1F2937;
}

.entry-content li {
  margin-bottom: 11px;
}

@media (max-width: 1024px) {
  .jeg_post_title { font-size: 38px; }
}

@media (max-width: 768px) {
  .jeg_post_title { font-size: 28px; }
  .entry-content h2 { font-size: 24px; }
  .entry-content h3 { font-size: 19px; }
  .entry-content h4 { font-size: 16px; }
  .entry-content p  { font-size: 17px; }
}


/* ==========================================================================
   3. CAJA CUPÓN ASSIST 365
   ========================================================================== */

.box-cupon-assist {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 20px 0;
  padding: 22px;
  border: 2px dashed #c72032;
  border-radius: 10px;
  background-color: #fff7f8;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  overflow: hidden;
}

.box-cupon-assist * {
  box-sizing: border-box;
  max-width: 100%;
}

.box-cupon-assist .badge-cupon {
  display: inline-block;
  padding: 6px 12px;
  margin: 0 0 14px;
  border-radius: 20px;
  background-color: #c72032;
  color: #ffffff;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .5px;
  text-transform: uppercase;
}

.box-cupon-assist .titulo-cupon {
  margin: 0 0 12px;
  color: #18324a;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.35;
}

.box-cupon-assist .desc-cupon {
  margin: 0 0 18px;
  color: #475569;
  font-size: .95rem;
  line-height: 1.5;
}

.box-cupon-assist .codigo-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
  padding: 10px 20px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background-color: #ffffff;
}

.box-cupon-assist .codigo-box .label {
  color: #475569;
  font-size: .85rem;
  font-weight: 600;
}

.box-cupon-assist .codigo-box .codigo-destacado {
  color: #18324a;
  font-family: monospace;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  overflow-wrap: anywhere;
}

.box-cupon-assist .cta-cupon {
  display: inline-block;
  padding: 12px 28px;
  border-radius: 7px;
  background-color: #ff6b00;
  color: #ffffff !important;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}

.box-cupon-assist .cta-cupon:hover {
  background-color: #e65f00;
}

.box-cupon-assist .nota-cupon {
  margin: 12px 0 0;
  color: #7c8796;
  font-size: .8rem;
  line-height: 1.45;
}

/* Fix color de texto claro en widget 4f430349 (post Assist 365) */
.elementor-element-4f430349.elementor-widget-text-editor,
.elementor-element-4f430349 .elementor-text-editor,
.elementor-element-4f430349 .elementor-text-editor p,
.elementor-element-4f430349 .elementor-text-editor li {
  color: #333333 !important;
}


/* ==========================================================================
   4. TABLAS AJUSTADAS (guías comparativas)
   ========================================================================== */

.tabla-ajustada-contenedor {
  width: 100%;
  margin: 25px 0;
  overflow-x: visible;
}

.tabla-ajustada {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  text-align: left;
  font-size: 14px;
}

.tabla-ajustada th,
.tabla-ajustada td {
  padding: 8px !important;
  vertical-align: top;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

/* Cabecera y alternancia de filas.
   Se controlan aquí y NO con estilos inline: así la alternancia no
   se descuadra al insertar, mover o eliminar filas. */
.tabla-ajustada thead tr {
  background-color: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
}

.tabla-ajustada tbody tr {
  border-bottom: 1px solid #e2e8f0;
}

.tabla-ajustada tbody tr:last-child {
  border-bottom: 0;
}

.tabla-ajustada tbody tr:nth-child(even) {
  background-color: #f8fafc;
}

/* ---------- Anchos por tabla (escritorio) ---------- */

.tabla-resumen th:nth-child(1),
.tabla-resumen td:nth-child(1) { width: 16%; }
.tabla-resumen th:nth-child(2),
.tabla-resumen td:nth-child(2) { width: 18%; }
.tabla-resumen th:nth-child(3),
.tabla-resumen td:nth-child(3) { width: 14%; }
.tabla-resumen th:nth-child(4),
.tabla-resumen td:nth-child(4) { width: 24%; }
.tabla-resumen th:nth-child(5),
.tabla-resumen td:nth-child(5) { width: 28%; }

.tabla-gasto th:nth-child(1),
.tabla-gasto td:nth-child(1) { width: 16%; }
.tabla-gasto th:nth-child(2),
.tabla-gasto td:nth-child(2) { width: 17%; }
.tabla-gasto th:nth-child(3),
.tabla-gasto td:nth-child(3) { width: 16%; }
.tabla-gasto th:nth-child(4),
.tabla-gasto td:nth-child(4) { width: 14%; }
.tabla-gasto th:nth-child(5),
.tabla-gasto td:nth-child(5) { width: 37%; }

.tabla-iberia th:nth-child(1),
.tabla-iberia td:nth-child(1) { width: 24%; }
.tabla-iberia th:nth-child(n+2),
.tabla-iberia td:nth-child(n+2) { width: 19%; }

.tabla-vueling th:nth-child(1),
.tabla-vueling td:nth-child(1) { width: 34%; }
.tabla-vueling th:nth-child(2),
.tabla-vueling td:nth-child(2),
.tabla-vueling th:nth-child(3),
.tabla-vueling td:nth-child(3) { width: 33%; }

.tabla-flexibles th:nth-child(1),
.tabla-flexibles td:nth-child(1) { width: 18%; }
.tabla-flexibles th:nth-child(2),
.tabla-flexibles td:nth-child(2) { width: 25%; }
.tabla-flexibles th:nth-child(3),
.tabla-flexibles td:nth-child(3) { width: 25%; }
.tabla-flexibles th:nth-child(4),
.tabla-flexibles td:nth-child(4) { width: 32%; }

/* Tabla "Mejores formas de conseguir Avios" */
.tabla-metodos-avios th:nth-child(1),
.tabla-metodos-avios td:nth-child(1) { width: 18%; }
.tabla-metodos-avios th:nth-child(2),
.tabla-metodos-avios td:nth-child(2) { width: 16%; }
.tabla-metodos-avios th:nth-child(3),
.tabla-metodos-avios td:nth-child(3) { width: 13%; }
.tabla-metodos-avios th:nth-child(4),
.tabla-metodos-avios td:nth-child(4) { width: 23%; }
.tabla-metodos-avios th:nth-child(5),
.tabla-metodos-avios td:nth-child(5) { width: 30%; }

/* Tabla "Avios por nivel Iberia Club" */
.tabla-avios-nivel th:nth-child(1),
.tabla-avios-nivel td:nth-child(1) { width: 28%; }
.tabla-avios-nivel th:nth-child(2),
.tabla-avios-nivel td:nth-child(2) { width: 32%; }
.tabla-avios-nivel th:nth-child(3),
.tabla-avios-nivel td:nth-child(3) { width: 40%; }

/* Tabla comparativa Boeing 787-8 y 787-9 de Air Europa */
.tabla-787-air-europa th:nth-child(1),
.tabla-787-air-europa td:nth-child(1) { width: 28%; }
.tabla-787-air-europa th:nth-child(2),
.tabla-787-air-europa td:nth-child(2) { width: 32%; }
.tabla-787-air-europa th:nth-child(3),
.tabla-787-air-europa td:nth-child(3) { width: 40%; }

/* Tabla de rutas y vuelos operados con el Boeing 787 */
.tabla-vuelos-787 th:nth-child(1),
.tabla-vuelos-787 td:nth-child(1) { width: 18%; }
.tabla-vuelos-787 th:nth-child(2),
.tabla-vuelos-787 td:nth-child(2) { width: 37%; }
.tabla-vuelos-787 th:nth-child(3),
.tabla-vuelos-787 td:nth-child(3) { width: 45%; }

/* ---------- Móvil: cada fila se convierte en tarjeta ---------- */

@media (max-width: 767px) {
  .tabla-ajustada {
    table-layout: auto;
    font-size: 13px;
    line-height: 1.4;
  }

  .tabla-ajustada thead {
    display: none;
  }

  .tabla-ajustada tbody,
  .tabla-ajustada tr,
  .tabla-ajustada td {
    display: block;
    width: 100% !important;
  }

  .tabla-ajustada tbody tr {
    margin: 0 0 16px;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px;
    overflow: hidden;
    background: #fff !important;
  }

  .tabla-ajustada td {
    display: grid;
    grid-template-columns: minmax(115px, 38%) 1fr;
    gap: 10px;
    padding: 9px 10px !important;
    border-bottom: 1px solid #e2e8f0;
  }

  .tabla-ajustada td:last-child {
    border-bottom: 0;
  }

  .tabla-ajustada td::before {
    font-weight: 700;
    color: #243447;
  }

  .tabla-ajustada td:first-child {
    background: #f8fafc;
  }

  .tabla-resumen td:nth-child(1)::before { content: "Tarjeta"; }
  .tabla-resumen td:nth-child(2)::before { content: "Recompensa"; }
  .tabla-resumen td:nth-child(3)::before { content: "Cuota"; }
  .tabla-resumen td:nth-child(4)::before { content: "Lo mejor"; }
  .tabla-resumen td:nth-child(5)::before { content: "Atención"; }

  .tabla-gasto td:nth-child(1)::before { content: "Tarjeta"; }
  .tabla-gasto td:nth-child(2)::before { content: "Ratio"; }
  .tabla-gasto td:nth-child(3)::before { content: "Puntos anuales"; }
  .tabla-gasto td:nth-child(4)::before { content: "Cuota anual"; }
  .tabla-gasto td:nth-child(5)::before { content: "Lectura rápida"; }

  .tabla-iberia td:nth-child(1)::before { content: "Tipo de gasto"; }
  .tabla-iberia td:nth-child(2)::before { content: "Iberia Aire"; }
  .tabla-iberia td:nth-child(3)::before { content: "Iberia Icon"; }
  .tabla-iberia td:nth-child(4)::before { content: "Icon + Icon+"; }
  .tabla-iberia td:nth-child(5)::before { content: "Iberia Zenit"; }

  .tabla-vueling td:nth-child(1)::before { content: "Característica"; }
  .tabla-vueling td:nth-child(2)::before { content: "Vueling Visa"; }
  .tabla-vueling td:nth-child(3)::before { content: "Vueling UP! Visa"; }

  .tabla-flexibles td:nth-child(1)::before { content: "Opción"; }
  .tabla-flexibles td:nth-child(2)::before { content: "Ventaja"; }
  .tabla-flexibles td:nth-child(3)::before { content: "Riesgo"; }
  .tabla-flexibles td:nth-child(4)::before { content: "Mejor para"; }

  .tabla-metodos-avios td:nth-child(1)::before { content: "Método"; }
  .tabla-metodos-avios td:nth-child(2)::before { content: "Coste"; }
  .tabla-metodos-avios td:nth-child(3)::before { content: "Velocidad"; }
  .tabla-metodos-avios td:nth-child(4)::before { content: "Mejor para"; }
  .tabla-metodos-avios td:nth-child(5)::before { content: "Atención"; }

  .tabla-avios-nivel td:nth-child(1)::before { content: "Nivel"; }
  .tabla-avios-nivel td:nth-child(2)::before { content: "Ratio"; }
  .tabla-avios-nivel td:nth-child(3)::before { content: "Bonificación"; }

  .tabla-787-air-europa td:nth-child(1)::before { content: "Característica"; }
  .tabla-787-air-europa td:nth-child(2)::before { content: "Boeing 787-8"; }
  .tabla-787-air-europa td:nth-child(3)::before { content: "Boeing 787-9"; }

  .tabla-vuelos-787 td:nth-child(1)::before { content: "Vuelo"; }
  .tabla-vuelos-787 td:nth-child(2)::before { content: "Ruta"; }
  .tabla-vuelos-787 td:nth-child(3)::before { content: "Observación"; }
}

/* ---------- Móvil: tablas 787 — refuerzo tarjetas ---------- */

@media (max-width: 767px) {
  .tabla-787-air-europa,
  .tabla-vuelos-787 {
    table-layout: auto;
    font-size: 13px;
    line-height: 1.4;
  }

  .tabla-787-air-europa thead,
  .tabla-vuelos-787 thead {
    display: none;
  }

  .tabla-787-air-europa tbody,
  .tabla-787-air-europa tr,
  .tabla-787-air-europa td,
  .tabla-vuelos-787 tbody,
  .tabla-vuelos-787 tr,
  .tabla-vuelos-787 td {
    display: block;
    width: 100% !important;
  }

  .tabla-787-air-europa tbody tr,
  .tabla-vuelos-787 tbody tr {
    margin: 0 0 16px;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px;
    overflow: hidden;
    background: #fff !important;
  }

  .tabla-787-air-europa td,
  .tabla-vuelos-787 td {
    display: grid;
    grid-template-columns: minmax(115px, 38%) 1fr;
    gap: 10px;
    padding: 9px 10px !important;
    border-bottom: 1px solid #e2e8f0;
  }

  .tabla-787-air-europa td:last-child,
  .tabla-vuelos-787 td:last-child {
    border-bottom: 0;
  }

  .tabla-787-air-europa td::before,
  .tabla-vuelos-787 td::before {
    font-weight: 700;
    color: #243447;
  }
}


/* ==========================================================================
   5. ÍNDICE DESPLEGABLE Y ACCESO RÁPIDO
   ========================================================================== */

.ul-toc {
  background: #f7f8fa;
  border: 1px solid #e2e5e9;
  border-left: 5px solid var(--ul-red);
  border-radius: 10px;
  margin: 32px 0 40px;
  padding: 20px 24px;
}

.ul-toc summary {
  color: var(--ul-red);
  cursor: pointer;
  font-size: 21px;
  line-height: 1.3;
  list-style-position: outside;
}

.ul-toc nav {
  margin-top: 14px;
}

.ul-toc ul {
  line-height: 1.7;
  margin: 0;
  padding-left: 22px;
}

/* Enlaces del índice: color propio garantizado, combina con el borde
   y el título del bloque. */
.ul-toc a,
.ul-avios .ul-toc a {
  color: var(--ul-red);
}

.ul-toc a:hover,
.ul-toc a:focus,
.ul-avios .ul-toc a:hover,
.ul-avios .ul-toc a:focus {
  color: var(--ul-blue-dark);
}

.ul-glosario-programas {
  margin: 32px 0 44px;
  padding: 24px;
  border: 1px solid #dbe3ec;
  border-radius: 12px;
  background: #f8fafc;
}

.ul-glosario-enlaces {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.ul-glosario-enlaces a {
  display: inline-block;
  padding: 9px 14px;
  border: 1px solid var(--ul-pill);
  border-radius: 999px;
  background: #fff;
  color: var(--ul-pill);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.ul-glosario-enlaces a:hover,
.ul-glosario-enlaces a:focus {
  background: var(--ul-pill);
  color: #fff;
}

@media (max-width: 767px) {
  .ul-toc {
    margin: 24px 0 30px;
    padding: 16px 18px;
  }

  .ul-toc summary {
    font-size: 19px;
  }

  .ul-toc:not([open]) {
    padding-bottom: 16px;
  }

  .ul-glosario-programas {
    padding: 18px;
  }

  .ul-glosario-enlaces {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ul-glosario-enlaces a {
    text-align: center;
  }
}


/* ==========================================================================
   6. CONTENEDOR EDITORIAL .ul-avios
   Todos los artículos con este sistema de estilos deben ir envueltos en
   <div class="ul-avios"> ... </div>
   ========================================================================== */

.ul-avios {
  color: var(--ul-text);
  font-size: 18px;
  line-height: 1.72;
}

.ul-avios *,
.ul-avios *::before,
.ul-avios *::after,
.schema-faq *,
.schema-faq *::before,
.schema-faq *::after {
  box-sizing: border-box;
}

.ul-avios h2 {
  margin: 2.25em 0 0.7em;
  color: var(--ul-navy);
  font-size: clamp(1.7rem, 3vw, 2rem);
  line-height: 1.22;
}

.ul-avios h3 {
  margin: 1.8em 0 0.55em;
  color: var(--ul-navy);
  font-size: clamp(1.3rem, 2.3vw, 1.5rem);
  line-height: 1.3;
}

.ul-avios h4 {
  margin: 1.45em 0 0.45em;
  color: var(--ul-navy);
  font-size: 1.1rem;
  line-height: 1.35;
}

.ul-avios p,
.ul-avios ul,
.ul-avios ol {
  margin-top: 0;
  margin-bottom: 1.15em;
}

.ul-avios li + li {
  margin-top: 0.38em;
}

/* CORREGIDO: no se declara ningún color, para que los enlaces usen el
   del tema, igual que en el resto del blog. Ni "inherit" ni un valor fijo:
   "inherit" tomaba el color del contenedor y los hacía desaparecer dentro
   de cajas e índices. */
.ul-avios a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}


/* ==========================================================================
   7. BLOQUES DE CONTENIDO
   ========================================================================== */

/* ---------- Índice en columnas ---------- */

.ul-index {
  margin: 2rem 0 2.5rem;
  padding: 1.3rem 1.45rem;
  border: 1px solid var(--ul-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(18, 38, 63, 0.07);
}

.ul-index-title {
  margin-bottom: 0.75rem !important;
  color: var(--ul-navy);
  font-size: 1.1rem;
}

.ul-index ol {
  margin: 0;
  padding-left: 1.45rem;
  columns: 2;
  column-gap: 2.25rem;
}

.ul-index li {
  break-inside: avoid;
  margin: 0 0 0.55rem;
}

/* ---------- Recuadros destacados ---------- */

.ul-box,
.ul-answer,
.ul-warning,
.ul-success {
  margin: 1.65rem 0;
  padding: 1.05rem 1.2rem;
  border: 1px solid var(--ul-border);
  border-left-width: 5px;
  border-radius: 10px;
}

.ul-tip,
.ul-success {
  border-left-color: var(--ul-tip-border);
  background: var(--ul-tip);
}

.ul-warn,
.ul-warning {
  border-left-color: var(--ul-warn-border);
  background: var(--ul-warn);
}

.ul-key,
.ul-answer {
  border-left-color: var(--ul-key-border);
  background: var(--ul-key);
}

.ul-box p:last-child,
.ul-box ul:last-child,
.ul-box ol:last-child,
.ul-answer p:last-child,
.ul-answer ul:last-child,
.ul-warning p:last-child,
.ul-warning ul:last-child,
.ul-success p:last-child,
.ul-success ul:last-child {
  margin-bottom: 0;
}

/* ---------- Notas, fechas y fuentes ---------- */

.ul-note {
  margin: 1rem 0 1.6rem;
  color: var(--ul-muted);
  font-size: 0.9rem;
  line-height: 1.55;
}

.ul-update {
  margin-bottom: 1.5rem;
  color: var(--ul-muted);
  font-size: 0.92rem;
}

.ul-source {
  margin: 1.4rem 0;
  padding-top: 0.85rem;
  border-top: 1px solid var(--ul-border);
  color: var(--ul-muted);
  font-size: 0.9rem;
}

/* ---------- Buscador de programas ---------- */

.ul-program-finder {
  margin: 2rem 0 2.5rem;
  padding: 1.3rem 1.45rem;
  border: 1px solid var(--ul-border);
  border-radius: 12px;
  background: #fff;
}

/* ---------- Conclusión y bloques finales ---------- */

.ul-conclusion,
.ul-reader-deals,
.ul-related,
.ul-sources {
  margin-top: 2.75rem;
}

.ul-conclusion {
  padding: 1.4rem;
  border: 1px solid var(--ul-border);
  border-radius: 12px;
  background: var(--ul-soft);
}

.ul-conclusion h2 {
  margin-top: 0;
}

.ul-related-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.ul-related-card {
  padding: 1.05rem 1.15rem;
  border: 1px solid var(--ul-border);
  border-radius: 10px;
  background: #fff;
}

.ul-related-card h3 {
  margin: 0 0 0.45rem;
  font-size: 1.08rem;
}

.ul-related-card p:last-child {
  margin-bottom: 0;
  font-size: 0.94rem;
}

/* ---------- Figuras ---------- */

.ul-figure {
  margin: 1.5rem 0;
}

.ul-figure img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--ul-border);
  border-radius: 10px;
}

.ul-figure figcaption {
  margin-top: 0.55rem;
  color: var(--ul-muted);
  font-size: 0.86rem;
  line-height: 1.5;
}

/* ---------- Desplegable de calendario ---------- */

.ul-calendar-details {
  margin: 1.25rem 0;
  overflow: hidden;
  border: 1px solid var(--ul-border);
  border-radius: 10px;
  background: #fff;
}

.ul-calendar-details summary {
  position: relative;
  padding: 1rem 3rem 1rem 1rem;
  color: var(--ul-navy);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.ul-calendar-details summary::-webkit-details-marker {
  display: none;
}

.ul-calendar-details summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  color: var(--ul-red);
  font-size: 1.5rem;
  line-height: 1;
}

.ul-calendar-details[open] summary::after {
  content: "−";
}

.ul-calendar-details-content {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--ul-border);
}


/* ==========================================================================
   8. TABLAS .ul-table
   ========================================================================== */

.ul-table-wrap {
  width: 100%;
  margin: 1.5rem 0 1.85rem;
  overflow-x: auto;
  border: 1px solid var(--ul-border);
  border-radius: 10px;
  background: #fff;
  -webkit-overflow-scrolling: touch;
}

.ul-table {
  width: 100%;
  min-width: 660px;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  font-size: 0.94rem;
  line-height: 1.48;
}

.ul-table th,
.ul-table td {
  padding: 0.85rem 0.9rem;
  border: 0;
  border-right: 1px solid var(--ul-border);
  border-bottom: 1px solid var(--ul-border);
  text-align: left;
  vertical-align: top;
}

.ul-table th:last-child,
.ul-table td:last-child {
  border-right: 0;
}

.ul-table tbody tr:last-child td {
  border-bottom: 0;
}

/* Encabezados: blanco sobre azul marino.
   Se cubren th y thead th por si el editor elimina el <thead> al guardar. */
.ul-table th,
.ul-table thead th {
  color: #fff;
  background: var(--ul-navy);
  font-weight: 700;
}

.ul-table tbody td {
  color: var(--ul-text);
  background: transparent;
}

.ul-table tbody tr:nth-child(even) {
  background: var(--ul-soft);
}

.ul-table tbody tr:hover {
  background: #edf4fa;
}

.ul-band-table {
  min-width: 0;
}

/* Variante clara para tablas de familia */
.ul-family .ul-table th,
.ul-family .ul-table thead th {
  background: #eef2f5 !important;
  color: #20242a !important;
}


/* ==========================================================================
   9. BOTONES Y LLAMADAS A LA ACCIÓN
   ========================================================================== */

/* Contenedores centrados.
   div.ul-cta está acotado a div para no chocar con a.ul-cta (botón). */
div.ul-cta,
.ul-cta-wrap {
  margin: 1.75rem 0;
  text-align: center;
}

.ul-btn,
a.ul-cta,
.ul-avios a.ul-btn,
.ul-avios a.ul-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.78rem 1.25rem;
  border: 2px solid var(--ul-blue);
  border-radius: 8px;
  color: #fff !important;
  background: var(--ul-blue);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.ul-btn:hover,
.ul-btn:focus-visible,
a.ul-cta:hover,
a.ul-cta:focus-visible,
.ul-avios a.ul-btn:hover,
.ul-avios a.ul-btn:focus-visible,
.ul-avios a.ul-cta:hover,
.ul-avios a.ul-cta:focus-visible {
  border-color: var(--ul-blue-dark);
  color: #fff !important;
  background: var(--ul-blue-dark);
  transform: translateY(-1px);
}

.ul-btn:focus-visible,
a.ul-cta:focus-visible,
.ul-avios a.ul-btn:focus-visible,
.ul-avios a.ul-cta:focus-visible {
  outline: 3px solid rgba(23, 105, 170, 0.3);
  outline-offset: 3px;
}


/* ==========================================================================
   10. FAQ NATIVAS DE YOAST
   El JS externo añade .is-open y aria-expanded.
   ========================================================================== */

.schema-faq.wp-block-yoast-faq-block {
  margin: 1.5rem 0 2.25rem;
}

.schema-faq-section {
  overflow: hidden;
  margin-bottom: 0.75rem;
  border: 1px solid var(--ul-border);
  border-radius: 10px;
  background: #fff;
}

.schema-faq-question {
  position: relative;
  display: block;
  width: 100%;
  padding: 1rem 3.25rem 1rem 1.1rem;
  color: var(--ul-navy);
  font-size: 1rem;
  line-height: 1.4;
  cursor: pointer;
}

.schema-faq-question::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 1.15rem;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--ul-blue);
  font-size: 1.55rem;
  font-weight: 400;
  line-height: 1.35rem;
  text-align: center;
  transform: translateY(-50%);
}

.schema-faq-answer {
  display: none;
  margin: 0;
  padding: 0 1.1rem 1.05rem;
  color: var(--ul-text);
  line-height: 1.65;
}

.schema-faq-section.is-open .schema-faq-answer,
.schema-faq-question[aria-expanded="true"] + .schema-faq-answer {
  display: block;
}

.schema-faq-section.is-open .schema-faq-question::after,
.schema-faq-question[aria-expanded="true"]::after {
  content: "−";
}


/* ==========================================================================
   11. PROTECCIONES DE COLOR
   Van al final para ganar a .ul-avios a, que tiene la misma especificidad.
   ========================================================================== */

.ul-avios .ul-glosario-enlaces a {
  color: var(--ul-pill);
}

.ul-avios .ul-glosario-enlaces a:hover,
.ul-avios .ul-glosario-enlaces a:focus {
  color: #fff;
}

.ul-avios .ul-toc summary {
  color: var(--ul-red);
}


/* ==========================================================================
   12. RESPONSIVE DEL CONTENEDOR EDITORIAL
   ========================================================================== */

@media (max-width: 782px) {
  .ul-avios {
    font-size: 17px;
    line-height: 1.68;
  }

  .ul-index ol {
    columns: 1;
  }

  .ul-related-grid {
    grid-template-columns: 1fr;
  }

  .ul-table {
    min-width: 600px;
    font-size: 0.88rem;
  }

  .ul-table th,
  .ul-table td {
    padding: 0.72rem 0.75rem;
  }
}

@media (max-width: 480px) {
  .ul-box,
  .ul-answer,
  .ul-warning,
  .ul-success,
  .ul-index,
  .ul-conclusion {
    padding: 1rem;
  }

  .ul-btn,
  a.ul-cta,
  .ul-avios a.ul-btn,
  .ul-avios a.ul-cta {
    width: 100%;
  }

  /* La tabla extensa de destinos se convierte en tarjetas por banda. */
  .ul-band-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .ul-band-table,
  .ul-band-table tbody,
  .ul-band-table tr,
  .ul-band-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .ul-band-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .ul-band-table tbody tr {
    margin-bottom: 0.85rem;
    overflow: hidden;
    border: 1px solid var(--ul-border);
    border-radius: 10px;
    background: #fff;
  }

  .ul-band-table tbody tr:nth-child(even),
  .ul-band-table tbody tr:hover {
    background: #fff;
  }

  .ul-band-table td {
    border: 0;
  }

  .ul-band-table td:first-child {
    padding: 0.65rem 0.85rem;
    color: #fff;
    background: var(--ul-navy);
  }

  .ul-band-table td:first-child::before {
    content: "Banda desde Madrid ";
    font-weight: 400;
  }

  .ul-band-table td:last-child {
    padding: 0.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ul-btn,
  a.ul-cta,
  .ul-avios a.ul-btn,
  .ul-avios a.ul-cta {
    transition: none;
  }
}


/* ==========================================================================
   NOTAS OPCIONALES — descomenta solo si las necesitas
   --------------------------------------------------------------------------

   A. Recuperar el margen de las figuras dentro del artículo.
      Úsalo si las imágenes salen pegadas al texto por culpa de la regla
      "figure .aligncenter { margin: 0 auto !important; }" del apartado 1.

.entry-content figure {
  margin-top: 25px !important;
  margin-bottom: 25px !important;
}

   B. Si algún día quieres fijar el color de los enlaces en lugar de dejar
      que lo ponga el tema, añade la línea "color:" al bloque .ul-avios a
      del apartado 6 con el valor que corresponda.

.ul-avios a {
  color: #c72032;
}

   ========================================================================== */
/* ==========================================================================
   ÍNDICE AUTOMÁTICO [lwptoc] con el aspecto de .ul-toc
   ========================================================================== */

.lwptoc {
  background: #f7f8fa;
  border: 1px solid #e2e5e9;
  border-left: 5px solid var(--ul-red);
  border-radius: 10px;
  margin: 32px 0 40px !important;
  padding: 20px 24px;
}

.lwptoc .lwptoc_i {
  background: transparent !important;
  padding: 0 !important;
}

.lwptoc .lwptoc_header {
  margin-bottom: 14px;
  color: var(--ul-red);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.3;
}

.lwptoc .lwptoc_title {
  color: var(--ul-red);
  font-weight: 700;
}

.lwptoc .lwptoc_toggle,
.lwptoc .lwptoc_toggle a {
  color: var(--ul-red);
  font-size: 15px;
  font-weight: 600;
}

.lwptoc .lwptoc_items {
  line-height: 1.7;
  font-size: 17px;
}

.lwptoc .lwptoc_item {
  margin-bottom: 4px;
}

.lwptoc .lwptoc_item a {
  color: var(--ul-red);
  text-decoration: none;
}

.lwptoc .lwptoc_item a:hover,
.lwptoc .lwptoc_item a:focus {
  color: var(--ul-blue-dark);
  text-decoration: underline;
}

@media (max-width: 767px) {
  .lwptoc {
    margin: 24px 0 30px !important;
    padding: 16px 18px;
  }

  .lwptoc .lwptoc_header {
    font-size: 19px;
  }
}

.ul-no-op { opacity: .65; font-style: italic; }


/* ==========================================================================
   AÑADIDOS AGOSTO 2026  ·  versión 2
   --------------------------------------------------------------------------
   SUSTITUYE al bloque «AÑADIDOS AGOSTO 2026» que ya está pegado: borra desde
   esa marca hasta el final del CSS adicional y pega esto en su lugar.
   Sigue yendo al final, sin tocar nada de lo anterior.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. .ul-box a secas se quedaba sin fondo
   --------------------------------------------------------------------------
   .ul-box solo definia borde y radio: el fondo lo aportaban las variantes
   .ul-tip, .ul-warn y .ul-key. Las cajas neutras quedaban transparentes.
   -------------------------------------------------------------------------- */

.ul-box {
  background: var(--ul-soft);
}

/* Las variantes con color mandan sobre la neutra. */
.ul-box.ul-tip  { background: var(--ul-tip); }
.ul-box.ul-warn { background: var(--ul-warn); }
.ul-box.ul-key  { background: var(--ul-key); }


/* --------------------------------------------------------------------------
   2. Los tres indices, con el mismo fondo
   --------------------------------------------------------------------------
   .ul-toc iba en #f7f8fa y .ul-index en blanco. Son la misma pieza con dos
   maquetaciones (desplegable y en columnas), asi que comparten fondo.
   -------------------------------------------------------------------------- */

.ul-toc,
.ul-index,
.ul-indice {
  background: var(--ul-soft);
}

/* Con fondo gris, la sombra de .ul-index es redundante.
   Descomenta si al verlo prefieres el bloque plano. */
/*
.ul-index { box-shadow: none; }
*/


/* --------------------------------------------------------------------------
   3. Un solo gris en todo el sitio
   --------------------------------------------------------------------------
   Convivian tres casi identicos: #f7f8fa, #f8fafc y --ul-soft (#f5f8fb).
   No se notan en un bloque aislado, si al poner dos seguidos.
   -------------------------------------------------------------------------- */

.ul-glosario-programas {
  background: var(--ul-soft);
}

.tabla-ajustada thead tr {
  background-color: var(--ul-soft);
}

.tabla-ajustada tbody tr:nth-child(even) {
  background-color: var(--ul-soft);
}

/* La primera celda en la vista de tarjetas del movil.
   Va dentro de la misma consulta de medios que la regla original. */
@media (max-width: 767px) {
  .tabla-ajustada td:first-child {
    background: var(--ul-soft);
  }
}


/* --------------------------------------------------------------------------
   4. Etiquetas moviles para .tabla-bonos-avios
   --------------------------------------------------------------------------
   Existe en la guia de ganar Avios y no tenia reglas. En movil heredaba el
   tratamiento de tarjetas de .tabla-ajustada pero sin rotulos.
   Comprobar que el orden de columnas coincide con los content: de abajo.
   -------------------------------------------------------------------------- */

.tabla-bonos-avios th:nth-child(1),
.tabla-bonos-avios td:nth-child(1) { width: 20%; }
.tabla-bonos-avios th:nth-child(2),
.tabla-bonos-avios td:nth-child(2) { width: 22%; }
.tabla-bonos-avios th:nth-child(3),
.tabla-bonos-avios td:nth-child(3) { width: 38%; }
.tabla-bonos-avios th:nth-child(4),
.tabla-bonos-avios td:nth-child(4) { width: 20%; }

@media (max-width: 767px) {
  .tabla-bonos-avios td:nth-child(1)::before { content: "Tarjeta"; }
  .tabla-bonos-avios td:nth-child(2)::before { content: "Bono máximo"; }
  .tabla-bonos-avios td:nth-child(3)::before { content: "Cómo se acredita"; }
  .tabla-bonos-avios td:nth-child(4)::before { content: "Cuota"; }
}


/* --------------------------------------------------------------------------
   5. OPCIONAL - Figuras sin marco
   --------------------------------------------------------------------------
   .ul-figure img lleva borde y radio, que van bien en capturas de pantalla
   pero sobran en los esquemas con fondo blanco. Descomenta si molesta.
   -------------------------------------------------------------------------- */
/*
.ul-avios .ul-figure img[src*="/2026/08/"] {
  border: 0;
}
*/

/* ---- Anadido 15 agosto 2026: fecha de cabecera en entradas con revision ----
   El body lleva .ul-tiene-revision solo cuando la entrada tiene el campo
   ul_fecha_revision (snippet 25). Se acota a .meta_right porque en una
   entrada hay 4 .jeg_meta_date: la de la cabecera y 3 de tarjetas de
   entradas relacionadas. Sin acotar se ocultarian tambien esas tres. */
.ul-tiene-revision .meta_right .jeg_meta_date { display: none; }


/* Tablas anchas dentro de articulos: scroll horizontal en pantallas pequenas */
.table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ul-telegram {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  margin: 32px 0;
  padding: 22px 24px;
  border: 1px solid #d9e8f2;
  border-radius: 12px;
  background: #f5faff;
}

.ul-telegram-icon {
  font-size: 28px;
  line-height: 1;
}

.ul-telegram-content > strong {
  display: block;
  margin-bottom: 8px;
  font-size: 1.08em;
}

.ul-telegram-content p {
  margin: 0 0 12px;
}

.ul-telegram-content .ul-telegram-cta {
  margin: 0;
}

.ul-telegram-cta a {
  display: inline-block;
  font-weight: 700;
  text-decoration: none;
}

@media (max-width: 600px) {
  .ul-telegram {
    padding: 18px;
    gap: 12px;
  }
}

/* ==========================================================================
   FIX: ocultar la cabecera del tema Hello Elementor
   Renderizaba el logo en blanco sobre fondo blanco y dejaba ~145px de hueco
   debajo del header propio (.ull-header). Agosto 2026.
   ========================================================================== */
#site-header.site-header { display: none !important; }
.entry-content .ul-evidencia {
  margin-bottom: 2rem;
}

.entry-content figure.ul-evidencia + * {
  margin-top: 2rem !important;
}

.entry-content figure.ul-evidencia figcaption {
  line-height: 1.45;
}

@media (max-width: 768px) {
  .entry-content figure.ul-evidencia + * {
    margin-top: 1.5rem !important;
  }
}
.entry-content .ul-table-wrap table {
  margin-bottom: 0 !important;
}