.grecaptcha-badge { visibility: hidden; }

/* Cabecera: cambia a menú hamburguesa por debajo de 1400px en vez de los
   960px por defecto ("Medium" global) — para no tocar ese breakpoint global,
   que afecta a más cosas de la web, se fuerza aquí solo en estos dos
   elementos concretos de la cabecera (escritorio/móvil son dos plantillas
   completas separadas, tm-header / tm-header-mobile). Por encima de 1400px
   no hace falta nada — ahí ya se comporta con las reglas de siempre. */
@media (max-width: 1399px) {
    header.tm-header { display: none !important; }
    header.tm-header-mobile { display: block !important; }
}

/* =====================
   SP EVENT: ESTILOS GENERALES
   ===================== */

/* Cabecera de sección (h4 usado en detalles, árbitros, estadio, equipos...) */
.sp-table-caption {
    background-color: #1B365D !important;
    color: #FAB600 !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
    display: block;
}

/* El shortcode [event_officials] pinta un thead con el nombre de cada rol
   (Árbitro/Asistente 1/Asistente 2/Cuarto árbitro/VAR/AVAR) — necesario
   para distinguirlos ahora que puede haber hasta 6 a la vez. Antes se
   ocultaba porque solo existía un rol ("Árbitro") y duplicaba el título
   de sección ("ÁRBITROS") de arriba — esa redundancia puntual se acepta
   a cambio de que los partidos con varios roles se entiendan bien. */

/* Ajuste nativo de SportsPress (Ajustes → SportsPress → CSS personalizado,
   opción sportspress_custom_css) trae "th.data-name { visibility:hidden }"
   global, pensado para otra tabla — esto dejaba invisibles (no ausentes)
   las cabeceras de la tabla de Árbitros, que también usa esa clase. Se
   restaura solo aquí, sin tocar la regla original por si protege otra cosa. */
.sp-event-officials th.data-name { visibility: visible !important; }

/* Tablas SP generales */
.sp-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.sp-data-table thead th {
    background-color: rgba(250, 182, 0, 0.14);
    color: #1B365D;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 8px 10px;
    border-bottom: 2px solid #FAB600;
    text-align: left;
    white-space: nowrap;
}
.sp-data-table tbody td {
    padding: 8px 10px;
    color: #1B365D;
    border-bottom: 1px solid #eef0f2;
}
.sp-data-table tbody tr.odd,
.sp-data-table tbody tr:nth-child(odd) {
    background-color: #ffffff;
}
.sp-data-table tbody tr.even,
.sp-data-table tbody tr:nth-child(even) {
    background-color: #f5f7fa;
}
.sp-data-table tbody a {
    color: #1B365D;
    text-decoration: none;
    font-weight: 600;
}
.sp-data-table tbody a:hover {
    opacity: 0.7;
}

/* Logos del partido */
.sp-template-event-logos-inline .sp-event-logos {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 16px 0 !important;
    flex-wrap: nowrap !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #1B365D !important;
}
.sp-template-event-logos-inline .sp-event-logos .sp-team-logo {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-shrink: 0 !important;
}
.sp-template-event-logos-inline .sp-event-logos .sp-team-logo a {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
}
.sp-template-event-logos-inline .sp-event-logos .sp-team-name {
    display: none !important;
}
.sp-template-event-logos-inline .sp-event-logos .sp-team-result {
    font-size: 56px !important;
    font-weight: 800 !important;
    color: #1B365D !important;
    line-height: 1 !important;
    min-width: 60px !important;
    text-align: center !important;
    display: inline-block !important;
}
.sp-template-event-logos-inline .sp-event-logos img {
    width: 110px !important;
    height: 110px !important;
    object-fit: contain !important;
}
@media (max-width: 767px) {
    .sp-template-event-logos-inline .sp-event-logos img {
        width: 70px !important;
        height: 70px !important;
    }
}

/* Sustitutos en tabla de rendimiento */
.sp-event-performance tbody tr.sub td {
    background-color: #dce8f5 !important;
}
.sp-event-performance tbody tr.sub td.data-name a {
    font-style: italic !important;
    color: #3a6fa8 !important;
}
.sp-event-performance .sub-in,
.sp-event-performance .sub-out {
    font-size: 11px !important;
    color: #6b7fa3 !important;
    margin-left: 3px !important;
    font-weight: 400 !important;
    font-style: normal !important;
}

/* Quitar margen excesivo en wrappers de SP */
.sp-template {
    margin-bottom: 0 !important;
}
.sp-table-wrapper {
    margin-top: 0 !important;
}

/* =====================
   LISTA JUGADORES EQUIPO
   ===================== */
.sp-team-players {
    width: 100%;
}
.sp-team-players__group {
    margin-bottom: 4px;
}
.sp-team-players__position {
    background-color: #1B365D !important;
    color: #FAB600 !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
    display: block;
}
.sp-team-players__list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.sp-team-players__item {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid #eef0f2 !important;
    background-color: #ffffff;
}
.sp-team-players__item:nth-child(even) {
    background-color: #f5f7fa !important;
}
.sp-team-players__number {
    min-width: 28px !important;
    text-align: center !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #1B365D !important;
    background-color: #FAB600 !important;
    border-radius: 3px !important;
    padding: 2px 0 !important;
    flex-shrink: 0 !important;
}
.sp-team-players__name {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #1B365D !important;
    text-decoration: none !important;
}
.sp-team-players__name:hover {
    opacity: 0.7;
}

/* =====================
   TABLA RENDIMIENTO EVENTO: ocultar columnas que ya se muestran en sp_event_resumen
   ===================== */
/* Ocultar fila total del footer */
.sp-event-performance tfoot {
    display: none !important;
}

/* Dos tablas en columnas en desktop */
@media (min-width: 768px) {
    .sp-event-performance-teams {
        display: flex !important;
        gap: 20px;
        align-items: flex-start;
    }
    .sp-event-performance-teams .sp-template-event-performance {
        flex: 1;
        min-width: 0;
    }
}

.sp-event-performance th.data-yellowcards,
.sp-event-performance td.data-yellowcards,
.sp-event-performance th.data-redcards,
.sp-event-performance td.data-redcards,
.sp-event-performance th.data-cambio,
.sp-event-performance td.data-cambio,
.sp-event-performance th.data-goals,
.sp-event-performance td.data-goals,
.sp-event-performance th.data-assists,
.sp-event-performance td.data-assists {
    display: none !important;
}

/* =====================
   RESUMEN PARTIDO
   ===================== */
.sp-resumen {
    width: 100%;
    font-size: 14px;
}
.sp-res__teams {
    display: flex;
    margin-bottom: 6px;
    border: 1px solid #eef0f2;
    border-radius: 4px;
    overflow: hidden;
}
.sp-res__team {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background-color: #f5f7fa;
    font-weight: 700;
    color: #1B365D;
    font-size: 13px;
}
.sp-res__team--away {
    justify-content: flex-end;
    border-left: 1px solid #eef0f2;
}
.sp-res__team-logo img {
    width: 28px !important;
    height: 28px !important;
    object-fit: contain !important;
}
.sp-res__team-name {
    font-weight: 700;
    color: #1B365D;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sp-res__section {
    margin-bottom: 4px;
}
.sp-res__section-title {
    background-color: #1B365D;
    color: #FAB600;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-align: center;
}
.sp-res__row {
    display: flex;
}
.sp-res__col {
    flex: 1;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.sp-res__col--away {
    border-left: 1px solid #eef0f2;
}
.sp-res__item {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 7px 10px !important;
    border-bottom: 1px solid #eef0f2 !important;
    background-color: #ffffff;
}
.sp-res__item:nth-child(even) {
    background-color: #f5f7fa !important;
}
.sp-res__item--away {
    flex-direction: row-reverse !important;
}
.sp-res__photo img {
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
}
.sp-res__names {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sp-res__name {
    font-weight: 600;
    color: #1B365D;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sp-res__name--in {
    color: #2e7d32;
    font-weight: 600;
}
.sp-res__name--out {
    color: #9aa5b8;
    font-weight: 400;
    font-size: 12px;
}
.sp-res__gol-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 2px 6px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
}
.sp-res__gol-badge--penalti {
    background-color: #fef3c7;
    color: #b45309;
}
.sp-res__gol-badge--propia {
    background-color: #fde8e8;
    color: #b91c1c;
}

/* Cronología: línea de tiempo vertical, eventos alternando local/visitante
   a cada lado de una línea central, con un nodo por evento sobre la propia
   línea (icono según tipo: gol/tarjeta/sustitución). */
.sp-tl {
    position: relative;
    padding: 10px 0;
}
.sp-tl::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #e2e6ec;
    transform: translateX(-50%);
}
/* Rejilla de 3 columnas fijas (izq / nodo / der) — el nodo cae SIEMPRE en
   la columna central, del mismo ancho pase lo que pase a los lados, así
   que queda perfectamente centrado en la línea sea cual sea el contenido
   de cada evento (con position:absolute + el ancho de la tarjeta variable,
   el nodo podía quedar descuadrado de una fila a otra). */
.sp-tl__event {
    display: grid;
    grid-template-columns: 1fr 30px 1fr;
    grid-auto-flow: dense;
    align-items: center;
    column-gap: 10px;
    margin-bottom: 10px;
}
.sp-tl__event--home .sp-tl__card { grid-column: 1; justify-self: end; }
.sp-tl__event--away .sp-tl__card { grid-column: 3; justify-self: start; }
.sp-tl__node { grid-column: 2; justify-self: center; }
.sp-tl__node {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: #ffffff;
    border: 2px solid #1B365D;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1;
    z-index: 1;
}
.sp-tl__node--yellow { background-color: #f5c518; border-color: #f5c518; }
.sp-tl__node--red    { background-color: #e53935; border-color: #e53935; }
.sp-tl__node--sub    { background-color: #4caf50; border-color: #4caf50; color: #ffffff; }

.sp-tl__card {
    background-color: #f5f7fa;
    border-radius: 6px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    min-width: 0;
    font-size: 13px;
}
.sp-tl__event--home .sp-tl__card { flex-direction: row-reverse; text-align: right; }
.sp-tl__min {
    font-weight: 700;
    color: #1B365D;
    flex-shrink: 0;
}
.sp-tl__equipo {
    display: none;
    flex-shrink: 0;
    line-height: 0;
}
.sp-tl__equipo img {
    display: block;
    width: 18px !important;
    height: 18px !important;
    object-fit: contain;
}
.sp-tl__accion {
    font-weight: 600;
    color: #1B365D;
    min-width: 0;
}
.sp-tl__accion-in  { display: block; color: #2e7d32; font-weight: 600; }
.sp-tl__accion-out { display: block; color: #9aa5b8; font-weight: 400; font-size: 11px; }
.sp-tl__marcador {
    font-weight: 800;
    color: #1B365D;
    background-color: #eef0f2;
    padding: 2px 8px;
    border-radius: 3px;
    flex-shrink: 0;
}
.sp-res__min {
    font-size: 12px;
    font-weight: 600;
    color: #9aa5b8;
    flex-shrink: 0;
    white-space: nowrap;
}
.sp-res__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.sp-res__icon--goal {
    font-size: 16px;
}
.sp-res__icon--yellow {
    width: 12px;
    height: 16px;
    background-color: #f5c518;
    border-radius: 2px;
    display: inline-block;
}
.sp-res__icon--red {
    width: 12px;
    height: 16px;
    background-color: #e53935;
    border-radius: 2px;
    display: inline-block;
}
.sp-res__icon--sub {
    font-size: 16px;
    color: #4caf50;
}

@media (max-width: 767px) {
    /* Goles/Tarjetas/Sustituciones: local y visitante van a la mitad cada
       uno — con el nombre real completo se cortaba con "..." sin dejar ver
       el apellido. Ahora se usa el nombre futbolístico (más corto de por
       sí) y, como red de seguridad, se deja partir en dos líneas en vez de
       cortarlo, para que no se pierda nada aunque no quepa en una línea. */
    .sp-res__name {
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
        line-height: 1.25;
    }

    /* Gol de penalti/en propia: la etiqueta baja debajo del nombre en vez
       de apretarse a su lado (que hacía que el nombre se partiera raro). */
    .sp-res__item { flex-wrap: wrap; }
    .sp-res__item .sp-res__name { flex: 1 1 100%; order: -1; }
    .sp-res__item--away .sp-res__name { text-align: right; }
    .sp-res__item .sp-res__gol-badge { margin-top: 2px; }

    /* Cronología: en móvil no hay sitio para dos columnas — la línea se
       mueve al borde izquierdo, el nodo pasa a una primera columna fija
       junto a ella, y la tarjeta ocupa el resto del ancho (ya no alterna
       local/visitante a cada lado, así que se añade el nombre del equipo
       dentro de la propia tarjeta para no perder esa información). */
    .sp-tl::before { left: 13px; }
    /* Grid solo servía para escritorio (2 columnas fijas a cada lado) — en
       móvil es una sola fila de icono+tarjeta, más simple y fiable como
       flexbox (mismo patrón que ya usan Goles/Tarjetas/Sustituciones más
       arriba en esta misma ficha). */
    .sp-tl__event,
    .sp-tl__event--home,
    .sp-tl__event--away {
        display: flex !important;
        align-items: center !important;
        gap: 8px;
    }
    .sp-tl__event--home .sp-tl__node,
    .sp-tl__event--away .sp-tl__node {
        order: -1;
        flex-shrink: 0;
    }
    .sp-tl__event--home .sp-tl__card,
    .sp-tl__event--away .sp-tl__card {
        flex: 1 1 auto;
        min-width: 0;
        flex-direction: row;
        flex-wrap: nowrap;
        text-align: left;
        gap: 6px;
        padding: 6px 10px;
    }
    .sp-tl__equipo { display: block; }
    .sp-tl__accion {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .sp-tl__marcador { font-size: 12px; padding: 1px 6px; }
    .sp-res__gol-badge { font-size: 9px; padding: 1px 4px; }
}

/* =====================
   CAMPOS CUSTOM DEL PARTIDO (fa_*)
   ===================== */
.fa-text-block {
    padding: 8px 10px;
    font-size: 14px;
    color: #1B365D;
    line-height: 1.6;
    background-color: #ffffff;
    border-bottom: 1px solid #eef0f2;
}

/* =====================
   SELECTOR DE GRUPOS (2ª/3ª AF con varios grupos reales en la misma página)
   ===================== */

.fa-liga-grupos__nav {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none !important;
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
}
.fa-liga-grupos__btn {
    flex: 1;
    min-width: 120px;
    padding: 10px 14px !important;
    background-color: #ffffff !important;
    color: #1B365D !important;
    border: 2px solid #1B365D !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    cursor: pointer;
    transition: all 0.15s !important;
}
.fa-liga-grupos__btn:hover {
    background-color: rgba(27, 54, 93, 0.06) !important;
}
.fa-liga-grupos__btn.is-active {
    background-color: #1B365D !important;
    color: #ffffff !important;
}
@media (max-width: 767px) {
    .fa-liga-grupos__btn {
        flex: 0 0 calc(50% - 4px);
        min-width: 0;
        font-size: 12px !important;
        padding: 8px 6px !important;
        line-height: 1.25 !important;
    }
}

/* =====================
   PÁGINA DE CLUB: SUBMENÚ Y SECCIONES
   ===================== */

.fa-team-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: #1B365D;
    margin-bottom: 10px;
}
.fa-team-nav__list {
    display: flex !important;
    flex-wrap: wrap;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.fa-team-nav__item {
    flex: 1;
    min-width: 0;
}
.fa-team-nav .fa-team-nav__link,
.fa-team-nav .fa-team-nav__link:link,
.fa-team-nav .fa-team-nav__link:visited {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 8px !important;
    min-height: 48px;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    border-bottom: 3px solid transparent !important;
    border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
    transition: all 0.15s !important;
    line-height: 1.3 !important;
}
.fa-team-nav__item:last-child .fa-team-nav__link {
    border-right: none !important;
}
.fa-team-nav .fa-team-nav__link:hover {
    color: #FAB600 !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-bottom-color: rgba(250, 182, 0, 0.5) !important;
}
.fa-team-nav .fa-team-nav__link.is-active {
    color: #FAB600 !important;
    background-color: rgba(250, 182, 0, 0.08) !important;
    border-bottom-color: #FAB600 !important;
    font-weight: 700 !important;
}
@media (max-width: 767px) {
    .fa-team-nav__list {
        flex-wrap: wrap !important;
    }
    .fa-team-nav__item {
        flex: 1 0 33%;
    }
    .fa-team-nav .fa-team-nav__link,
    .fa-team-nav .fa-team-nav__link:link,
    .fa-team-nav .fa-team-nav__link:visited {
        font-size: 11px !important;
        padding: 7px 4px !important;
        min-height: 34px !important;
    }
}

.fa-club__panels {
    margin: 0;
    padding: 16px 0 0 0;
    overflow: hidden;
}
.fa-club .fa-club-section {
    display: none;
    margin: 0;
    padding-top: 14px;
    border-top: 3px solid #FAB600;
}
.fa-club .fa-club-section:first-of-type {
    display: block;
}

/* Oculta los <br> y <p> vacíos que wpautop inyecta entre secciones */
.fa-team-nav ~ br,
.fa-club-section ~ br,
.fa-liga-section ~ br {
    display: none !important;
}
.fa-team-nav ~ p:empty,
.fa-club-section ~ p:empty,
.fa-liga-section ~ p:empty {
    display: none !important;
    margin: 0 !important;
}

/* =====================
   CLASIFICACIÓN SP: RESPONSIVE
   ===================== */

/* Scroll horizontal en el wrapper real */
.sp-template-league-table .sp-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}


/* Número de posición siempre en blanco (el fondo lo pone SP en azul/verde/rojo) */
.sp-template-league-table .sp-data-table .data-rank {
    color: #ffffff !important;
    font-weight: 700 !important;
    text-align: center !important;
}

@media (max-width: 767px) {
    .sp-template-league-table .sp-data-table thead th,
    .sp-template-league-table .sp-data-table tbody td {
        padding: 5px 4px !important;
        font-size: 12px !important;
    }
    .sp-template-league-table .sp-data-table .data-rank {
        padding-left: 3px !important;
        padding-right: 3px !important;
        min-width: 0 !important;
    }
    .sp-template-league-table .sp-data-table .data-name a {
        font-size: 12px !important;
        white-space: normal !important;
    }
}

/* =====================
   PÁGINA DE LIGA: SUBMENÚ Y SECCIONES
   ===================== */
.fa-liga__panels {
    margin: 0;
    padding: 16px 0 0 0;
    overflow: hidden;
}
.fa-liga .fa-liga-section {
    display: none;
    margin: 0;
    padding-top: 14px;
    border-top: 3px solid #FAB600;
}
.fa-liga .fa-liga-section:first-of-type {
    display: block;
}

/* Jornadas */
.fa-jornada {
    margin-bottom: 16px;
}
.fa-jornada__header {
    background-color: #1B365D;
    padding: 10px 12px;
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}
.fa-jornada__titulo {
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}
.fa-jornada__subtitulo {
    color: #FAB600;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.3px;
}
.fa-jornada__partido {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid #eef0f2;
    font-size: 14px;
}
.fa-jornada__partido:nth-child(odd) {
    background-color: #ffffff;
}
.fa-jornada__partido:nth-child(even) {
    background-color: #f5f7fa;
}
.fa-jornada__fecha {
    font-size: 13px;
    color: #1B365D;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 80px;
}
.fa-jornada__equipo {
    flex: 1;
    color: #1B365D !important;
    text-decoration: none !important;
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.fa-jornada__local {
    text-align: right;
}
.fa-jornada__visitante {
    text-align: left;
}
.fa-jornada__marcador {
    flex-shrink: 0;
    min-width: 52px;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
    color: #1B365D !important;
    text-decoration: none !important;
    background-color: #FAB600;
    padding: 2px 6px;
    border-radius: 3px;
}
.fa-jornada__vs {
    flex-shrink: 0;
    min-width: 52px;
    text-align: center;
    color: #1B365D !important;
    text-decoration: none !important;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid #c7ceda;
    padding: 2px 6px;
    border-radius: 3px;
}
.fa-jornada__vs:hover {
    background-color: #eef0f2;
}
.fa-jornada__en-directo {
    flex-shrink: 0;
    margin-left: 2px;
    color: #dc2626;
    font-size: 13px;
    line-height: 1;
    animation: fa-en-directo-parpadeo 1.4s ease-in-out infinite;
}
@media (max-width: 767px) {
    .fa-jornada__fecha {
        font-size: 11px;
        min-width: 60px;
    }
    .fa-jornada--ultima .fa-jornada__fecha {
        display: none;
    }
    .fa-jornada__partido {
        padding: 7px 8px;
        gap: 6px;
    }
    .fa-jornada__vs,
    .fa-jornada__marcador {
        min-width: 32px !important;
    }
}

/* Árbitros - 2 columnas en desktop */
.fa-liga-arbitros {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    columns: 2;
    column-gap: 0;
}
.fa-liga-arbitros__item {
    padding: 0 !important;
    border-bottom: 1px solid #eef0f2 !important;
    font-size: 14px;
    color: #1B365D;
    break-inside: avoid;
    background-color: #ffffff;
}
.fa-liga-arbitros__item:nth-child(even) { background-color: #f5f7fa; }
.fa-liga-arbitros__item a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    color: #1B365D;
    text-decoration: none;
}
.fa-liga-arbitros__foto {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
@media (max-width: 767px) {
    .fa-liga-arbitros { columns: 1; }
}

/* Ocultar leyenda de colores de SportsPress dentro de fa-liga */
.fa-liga .sp_highlight_places { display: none !important; }

/* Goleadores */
.fa-goleadores-table { margin-bottom: 12px; }
.fa-goleadores-table th.fa-gol-num,
.fa-goleadores-table td.fa-gol-num { text-align: center; font-weight: 700; width: 60px; }

/* Submenú genérico dentro de una sección de fa-liga (Goleadores/Porteros,
   Jornadas recientes/Todas las jornadas...) */
.fa-subnav { margin-bottom: 12px; }
.fa-subnav__list {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.fa-subnav__link,
.fa-subnav__link:link,
.fa-subnav__link:visited {
    display: inline-block !important;
    padding: 6px 16px !important;
    border-radius: 20px !important;
    background: #f1f3f6 !important;
    color: #1B365D !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.4px !important;
    text-decoration: none !important;
    border: 1px solid #e2e5ea !important;
    transition: all 0.15s !important;
}
.fa-subnav__link:hover { background: #e2e5ea !important; }
.fa-subnav__link.is-active {
    background: #FAB600 !important;
    color: #1B365D !important;
    border-color: #FAB600 !important;
}

/* Tabla de porteros — más columnas numéricas que la de goleadores; scroll
   horizontal propio como red de seguridad, pero se estrecha para que en
   móvil entre entera sin necesidad de él */
.fa-porteros-table-wrap { overflow-x: auto; }
.fa-porteros-table th.fa-gol-num,
.fa-porteros-table td.fa-gol-num { width: 46px; }
@media (max-width: 480px) {
    .fa-porteros-table { font-size: 12px; }
    .fa-porteros-table thead th,
    .fa-porteros-table tbody td { padding: 6px 4px; }
    .fa-porteros-table th.fa-gol-num,
    .fa-porteros-table td.fa-gol-num { width: 30px; }
}

/* Hemeroteca */
.fa-hemeroteca { padding: 0; }
.fa-hemer-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 0 16px;
}
.fa-hemer-filter__btn {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-block !important;
    padding: 6px 16px !important;
    border-radius: 20px !important;
    background: #f1f3f6 !important;
    color: #1B365D !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.4px !important;
    border: 1px solid #e2e5ea !important;
    cursor: pointer;
    transition: all 0.15s !important;
    line-height: 1.4 !important;
}
.fa-hemer-filter__btn:hover {
    background: #e2e5ea !important;
}
.fa-hemer-filter__btn.is-active {
    background: #FAB600 !important;
    color: #1B365D !important;
    border-color: #FAB600 !important;
}
@media (max-width: 767px) {
    .fa-hemer-filter {
        gap: 10px;
        padding: 14px 0 20px;
    }
    .fa-hemer-filter__btn {
        padding: 8px 18px !important;
        font-size: 13px !important;
    }
    .fa-hemer-filter__btn.is-active {
        background: #FAB600 !important;
        color: #1B365D !important;
        border-color: #FAB600 !important;
    }
}
.fa-hemeroteca__year { margin-bottom: 16px; }
.fa-hemeroteca__year-label {
    background-color: #1B365D;
    color: #FAB600;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.fa-hemeroteca__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 0 0 4px;
}
@media (max-width: 1024px) {
    .fa-hemeroteca__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fa-hemeroteca__grid { grid-template-columns: 1fr; }
}
.fa-hemer-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    border: 1px solid #eef0f2;
    border-radius: 4px;
    overflow: hidden;
    background: #ffffff;
    transition: box-shadow 0.15s;
}
.fa-hemer-card:hover {
    box-shadow: 0 2px 10px rgba(0,0,0,0.10);
}
.fa-hemer-card__img {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #1B365D;
    flex-shrink: 0;
}
.fa-hemer-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fa-hemer-card__body {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}
.fa-hemer-card__date {
    font-size: 11px;
    color: #b8860a;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.fa-hemer-card__title {
    font-size: 14px;
    font-weight: 600;
    color: #1B365D;
    line-height: 1.4;
}

/* Calendario */
.fa-liga-calendario {
    padding: 24px 12px;
    text-align: center;
}
.fa-liga-calendario__btn {
    display: inline-block;
    padding: 12px 24px;
    background-color: #1B365D;
    color: #ffffff !important;
    text-decoration: none !important;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
}
.fa-liga-calendario__btn:hover {
    opacity: 0.85;
}

/* Placeholder */
.fa-liga-empty {
    padding: 24px 12px;
    color: #9aa5b8;
    font-size: 14px;
    text-align: center;
}
.fa-club-section__title {
    background-color: #1B365D !important;
    color: #FAB600 !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
    display: block;
}

.fa-club-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.fa-club-table tr:nth-child(odd) {
    background-color: #ffffff;
}
.fa-club-table tr:nth-child(even) {
    background-color: #f5f7fa;
}
.fa-club-table__label {
    padding: 8px 12px;
    font-weight: 600;
    color: #1B365D;
    white-space: nowrap;
    width: 35%;
    border-bottom: 1px solid #eef0f2;
    vertical-align: top;
}
.fa-club-table__value {
    padding: 8px 12px;
    color: #333333;
    border-bottom: 1px solid #eef0f2;
}

.fa-junta-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.fa-junta-list__item {
    display: flex !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    border-bottom: 1px solid #eef0f2 !important;
    font-size: 14px;
}
.fa-junta-list__item:nth-child(odd) {
    background-color: #ffffff;
}
.fa-junta-list__item:nth-child(even) {
    background-color: #f5f7fa;
}
.fa-junta-list__cargo {
    min-width: 160px;
    color: #1B365D;
    font-weight: 600;
    flex-shrink: 0;
}
.fa-junta-list__nombre {
    color: #333333;
}

.fa-historia-content {
    padding: 16px 12px;
    font-size: 14px;
    line-height: 1.7;
    color: #333333;
    background-color: #ffffff;
}
.fa-historia-content p {
    margin-bottom: 12px;
}

/* =====================
   FICHA DE JUGADOR
   ===================== */

.fa-jugador { width: 100%; }

.fa-jugador__header {
    display: flex;
    align-items: stretch;
    gap: 20px;
    padding: 16px 12px;
    background-color: #1B365D;
    margin-bottom: 4px;
}
.fa-jugador__bio {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fa-jugador__bio-top {
    display: flex;
    align-items: center;
    gap: 16px;
}
.fa-jugador__nombre-completo {
    font-size: 12px !important;
    color: rgba(255,255,255,0.55) !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}
.fa-jugador__datos {
    list-style: none !important;
    margin: 0 !important;
    padding: 10px 0 0 !important;
    border-top: 1px solid rgba(255,255,255,0.15);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 20px;
}
.fa-jugador__datos li {
    font-size: 13px;
    color: rgba(255,255,255,0.75);
}
.fa-jugador__datos strong {
    color: #ffffff;
    font-weight: 600;
}
.fa-jugador__foto-grande-wrap {
    flex: 0 0 33%;
    max-width: 33%;
}
.fa-jugador__foto-grande {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
@media (max-width: 767px) {
    .fa-jugador__header { flex-direction: column; }
    .fa-jugador__datos { grid-template-columns: 1fr; }
    .fa-jugador__foto-grande-wrap { flex-basis: auto; max-width: 100%; width: 100%; }
    .fa-jugador__foto-grande { width: 100%; height: auto; }
}
.fa-jugador__dorsal {
    font-size: 42px;
    font-weight: 800;
    color: rgba(255,255,255,0.25);
    line-height: 1;
    flex-shrink: 0;
    min-width: 48px;
    text-align: center;
}
.fa-jugador__nombre {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}
.fa-jugador__meta {
    font-size: 13px;
    color: rgba(255,255,255,0.65);
}
.fa-jugador__meta a {
    color: #FAB600 !important;
    text-decoration: none !important;
    font-weight: 600;
}

/* Historial deportivo (resumen por temporada) */
.fa-jugador__historial-wrap {
    margin: 20px 0 4px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.fa-jugador__historial-titulo {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #1B365D !important;
    margin: 0 0 10px !important;
    padding: 0 12px !important;
}
.fa-jugador__historial-tabla {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
    font-size: 13px;
}
.fa-jugador__historial-tabla thead th {
    background-color: #1B365D;
    color: #ffffff;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
    padding: 8px 10px;
    text-align: left;
}
.fa-jugador__historial-tabla td {
    padding: 8px 10px;
    border-bottom: 1px solid #eef0f2;
}
.fa-jugador__historial-tabla tbody tr:nth-child(even) {
    background-color: #f5f7fa;
}
.fa-jugador__historial-tabla a {
    color: #1B365D;
    font-weight: 600;
    text-decoration: none;
}

/* Selector de temporada */
.fa-jugador__temporadas {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 4px;
    border-bottom: 2px solid #eef0f2;
}
.fa-jugador__temp-btn {
    -webkit-appearance: none;
    appearance: none;
    padding: 9px 16px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-size: 13px;
    font-weight: 600;
    color: #6b7fa3;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}
.fa-jugador__temp-btn:hover { color: #1B365D; }
.fa-jugador__temp-btn.is-active {
    color: #1B365D;
    border-bottom-color: #FAB600;
}

/* Cajas de totales */
.fa-jugador__totales {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 4px;
}
.fa-jugador__stat-box {
    flex: 1;
    min-width: 70px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 8px;
    background-color: #f5f7fa;
    border-bottom: 3px solid #eef0f2;
}
.fa-jugador__stat-box--blue   { border-bottom-color: #1d4ed8; }
.fa-jugador__stat-box--slate  { border-bottom-color: #64748b; }
.fa-jugador__stat-box--green  { border-bottom-color: #15803d; }
.fa-jugador__stat-box--amber  { border-bottom-color: #f5c518; }
.fa-jugador__stat-box--red    { border-bottom-color: #e53935; }
.fa-jugador__stat-num {
    font-size: 26px;
    font-weight: 800;
    color: #1B365D;
    line-height: 1;
}
.fa-jugador__stat-lbl {
    font-size: 11px;
    font-weight: 600;
    color: #9aa5b8;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-top: 4px;
    text-align: center;
}

/* Logo del equipo en la cabecera */
.fa-jugador__logo-wrap {
    margin-left: auto;
    flex-shrink: 0;
    align-self: center;
}
.fa-jugador__equipo-logo-link {
    display: block;
    width: 64px;
    height: 64px;
}
.fa-jugador__equipo-logo {
    width: 64px;
    height: 64px;
    object-fit: contain;
}

/* Tabla de partidos */
.fa-jugador__tabla-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.fa-jugador__tabla { min-width: 480px; }
.fa-jug-c     { text-align: center !important; }
.fa-jug-nowrap { white-space: nowrap; }
.fa-jug-lv {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    color: #9aa5b8;
    border: 1px solid #eef0f2;
    border-radius: 2px;
    padding: 0 3px;
    margin-right: 4px;
    vertical-align: middle;
}
.fa-jug-marcador {
    font-weight: 700;
    color: #1B365D !important;
    text-decoration: none !important;
    background-color: #eef0f2;
    padding: 2px 6px;
    border-radius: 3px;
    white-space: nowrap;
}
.fa-jug-vs { color: #9aa5b8; font-size: 12px; }
.fa-jug-rol {
    display: inline-block;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
}
.fa-jug-rol--t { background-color: #dcfce7; color: #15803d; }
.fa-jug-rol--s { background-color: #fef3c7; color: #b45309; }
.fa-jug-stat   { font-weight: 600; color: #1B365D; }

.fa-jugador-empty {
    padding: 24px 12px;
    color: #9aa5b8;
    font-size: 14px;
    text-align: center;
}

@media (max-width: 767px) {
    .fa-jugador__dorsal { font-size: 30px; min-width: 36px; }
    .fa-jugador__nombre { font-size: 17px !important; }

    /* Cajas de totales: grid fijo de 3 columnas — con flex-wrap, la última
       caja sola en su fila se estiraba a todo el ancho (5 arriba + 1 gigante
       abajo). En grid todas quedan del mismo tamaño, 2 filas de 3. */
    .fa-jugador__totales { display: grid; grid-template-columns: repeat(3, 1fr); }
    .fa-jugador__stat-box { min-width: 0; padding: 10px 4px; }
    .fa-jugador__stat-num { font-size: 20px; }
    .fa-jugador__stat-lbl { font-size: 10px; }

    /* Historial deportivo: Temporada/Equipo/Liga + Ganados/Empatados/Perdidos
       (estos 3 no están en ningún otro sitio). El resto de números (PJ,
       Titular, Suplente, Goles, TA, TR...) de esa misma temporada ya se ven
       justo debajo en "Totales", repetirlos aquí como tarjetas quedaba
       redundante y confuso. */
    .fa-jugador__historial-wrap { overflow-x: visible; }
    .fa-jugador__historial-tabla { display: block; min-width: 0 !important; width: 100%; }
    .fa-jugador__historial-tabla thead { display: none; }
    .fa-jugador__historial-tabla tbody { display: block; }

    .fa-jugador__historial-tabla tbody tr {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        padding: 10px 12px;
        border-bottom: 1px solid #eef0f2;
    }

    .fa-jugador__historial-tabla td { display: block; border: none; padding: 0; font-size: 12px; text-align: left !important; }
    .fa-jugador__historial-tabla td:nth-child(1) { flex: 1 1 100%; font-weight: 700; color: #1B365D; font-size: 14px; }
    .fa-jugador__historial-tabla td:nth-child(2) { flex: 1 1 100%; font-size: 13px; }
    .fa-jugador__historial-tabla td:nth-child(3) {
        flex: 1 1 100%; color: #9aa5b8; font-size: 11px;
        padding-bottom: 6px; margin-bottom: 2px; border-bottom: 1px solid #e2e6ec;
    }
    .fa-jugador__historial-tabla td:nth-child(4),
    .fa-jugador__historial-tabla td:nth-child(5),
    .fa-jugador__historial-tabla td:nth-child(6),
    .fa-jugador__historial-tabla td:nth-child(10),
    .fa-jugador__historial-tabla td:nth-child(11),
    .fa-jugador__historial-tabla td:nth-child(12) { display: none; }
    /* Estilo propio (fondo de color, sin el borde inferior de Totales) para
       que se note que es un bloque de datos distinto, no una continuación. */
    .fa-jugador__historial-tabla td:nth-child(7),
    .fa-jugador__historial-tabla td:nth-child(8),
    .fa-jugador__historial-tabla td:nth-child(9) {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        flex: 1 1 0;
        min-width: 0;
        padding: 10px 4px;
        border-radius: 8px;
        text-align: center !important;
        font-size: 20px;
        font-weight: 800;
        line-height: 1;
    }
    .fa-jugador__historial-tabla td:nth-child(7) { background-color: #eafaf0; color: #15803d; }
    .fa-jugador__historial-tabla td:nth-child(8) { background-color: #f1f3f6; color: #475569; }
    .fa-jugador__historial-tabla td:nth-child(9) { background-color: #fdeceb; color: #b91c1c; }
    .fa-jugador__historial-tabla td:nth-child(7)::after,
    .fa-jugador__historial-tabla td:nth-child(8)::after,
    .fa-jugador__historial-tabla td:nth-child(9)::after {
        display: block;
        font-size: 10px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.4px;
        margin-top: 4px;
        opacity: 0.8;
    }
    .fa-jugador__historial-tabla td:nth-child(7)::after { content: "Ganados"; }
    .fa-jugador__historial-tabla td:nth-child(8)::after { content: "Empatados"; }
    .fa-jugador__historial-tabla td:nth-child(9)::after { content: "Perdidos"; }

    /* Tabla de partidos: layout de tarjeta 2 filas, sin scroll horizontal */
    .fa-jugador__tabla-wrap { overflow-x: visible; }
    .fa-jugador__tabla      { display: block; min-width: 0 !important; width: 100%; }
    .fa-jugador__tabla thead { display: none; }
    .fa-jugador__tabla tbody { display: block; }

    .fa-jugador__tabla tbody tr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        padding: 8px 10px;
        gap: 0 5px;
        border-bottom: 1px solid #eef0f2;
    }

    /* Pseudo-elemento con order:3 → fuerza salto de línea entre fila 1 y fila 2 */
    .fa-jugador__tabla tbody tr::after {
        content: '';
        width: 100%;
        height: 0;
        order: 3;
        flex-shrink: 0;
    }

    .fa-jugador__tabla tbody td {
        display: block;
        border: none;
        padding: 0;
    }

    /* Fila 1: Rival (izquierda, crece) + Resultado (derecha) */
    .fa-jugador__tabla td:nth-child(3) { order: 1; flex: 1 1 auto; font-size: 14px; font-weight: 600; min-width: 0; padding-right: 4px; }
    .fa-jugador__tabla td:nth-child(4) { order: 2; flex: 0 0 auto; text-align: right !important; }

    /* Fila 2: Jornada + Fecha (izquierda, crece) + Rol + stats (derecha) */
    .fa-jugador__tabla td:nth-child(1) { order: 4; flex: 0 0 auto; font-size: 11px; color: #9aa5b8; padding-top: 4px; }
    .fa-jugador__tabla td:nth-child(1)::after { content: " ·"; }
    .fa-jugador__tabla td:nth-child(2) { order: 5; flex: 1 1 auto; font-size: 11px; color: #9aa5b8; padding-top: 4px; white-space: nowrap; }
    .fa-jugador__tabla td:nth-child(5) { order: 6; flex: 0 0 auto; padding-top: 4px; text-align: right !important; }
    .fa-jugador__tabla td:nth-child(6) { order: 7; flex: 0 0 auto; font-size: 12px; font-weight: 600; padding-top: 4px; }
    .fa-jugador__tabla td:nth-child(7) { order: 8; flex: 0 0 auto; font-size: 12px; font-weight: 600; padding-top: 4px; }
    .fa-jugador__tabla td:nth-child(8) { order: 9; flex: 0 0 auto; font-size: 12px; font-weight: 600; padding-top: 4px; }
    .fa-jugador__tabla td:nth-child(9) { order: 10; flex: 0 0 auto; font-size: 12px; font-weight: 600; padding-top: 4px; }

    .fa-jugador__tabla td:nth-child(6)::before { content: "G "; font-size: 10px; font-weight: 400; color: #9aa5b8; }
    .fa-jugador__tabla td:nth-child(7)::before { content: "TA "; font-size: 10px; font-weight: 400; color: #9aa5b8; }
    .fa-jugador__tabla td:nth-child(8)::before { content: "TR "; font-size: 10px; font-weight: 400; color: #9aa5b8; }
    .fa-jugador__tabla td:nth-child(9)::before { content: "Punt. "; font-size: 10px; font-weight: 400; color: #9aa5b8; }
}

/* =====================
   FICHA DE ÁRBITRO / TÉCNICO
   ===================== */

.fa-persona { width: 100%; }

.fa-persona__header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 12px;
    background-color: #1B365D;
    margin-bottom: 4px;
}
.fa-persona__nombre {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}

/* Ficha de árbitro y técnico: foto grande + datos en lista, igual que jugadores. */
.fa-arbitro .fa-persona__header,
.fa-tecnico .fa-persona__header { align-items: stretch; }
.fa-arbitro .fa-persona__bio,
.fa-tecnico .fa-persona__bio { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.fa-arbitro .fa-persona__datos,
.fa-tecnico .fa-persona__datos {
    list-style: none !important;
    margin: 0 !important;
    padding: 10px 0 0 !important;
    border-top: 1px solid rgba(255,255,255,0.15);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 20px;
}
.fa-arbitro .fa-persona__datos li,
.fa-tecnico .fa-persona__datos li { font-size: 13px; color: rgba(255,255,255,0.75); }
.fa-arbitro .fa-persona__datos strong,
.fa-tecnico .fa-persona__datos strong { color: #ffffff; font-weight: 600; }
.fa-arbitro .fa-persona__foto-grande-wrap,
.fa-tecnico .fa-persona__foto-grande-wrap { flex: 0 0 33%; max-width: 33%; }
.fa-arbitro .fa-persona__foto-grande,
.fa-tecnico .fa-persona__foto-grande {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
@media (max-width: 767px) {
    .fa-arbitro .fa-persona__header,
    .fa-tecnico .fa-persona__header { flex-direction: column; }
    .fa-arbitro .fa-persona__datos,
    .fa-tecnico .fa-persona__datos { grid-template-columns: 1fr; }
    .fa-arbitro .fa-persona__foto-grande-wrap,
    .fa-tecnico .fa-persona__foto-grande-wrap { flex-basis: auto; max-width: 100%; width: 100%; }
    .fa-arbitro .fa-persona__foto-grande,
    .fa-tecnico .fa-persona__foto-grande { width: 100%; height: auto; }
}

/* Cajas de totales — mismo lenguaje visual que fa-jugador */
.fa-persona__totales {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 4px;
}
.fa-persona__stat-box {
    flex: 1;
    min-width: 70px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 8px;
    background-color: #f5f7fa;
    border-bottom: 3px solid #eef0f2;
}
.fa-persona__stat-box--green  { border-bottom-color: #15803d; }
.fa-persona__stat-box--slate  { border-bottom-color: #64748b; }
.fa-persona__stat-box--amber  { border-bottom-color: #f5c518; }
.fa-persona__stat-box--red    { border-bottom-color: #e53935; }
.fa-persona__stat-num {
    font-size: 26px;
    font-weight: 800;
    color: #1B365D;
    line-height: 1;
}
.fa-persona__stat-lbl {
    font-size: 11px;
    font-weight: 600;
    color: #9aa5b8;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-top: 4px;
    text-align: center;
}

/* Desglose (por liga/temporada en árbitros, etapas en técnicos) */
.fa-persona__desglose { padding: 10px 4px; }
.fa-persona__subtitulo {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #1B365D !important;
    margin: 0 0 8px !important;
}
.fa-persona__desglose-list { list-style: none; margin: 0; padding: 0; }
.fa-persona__desglose-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    border-bottom: 1px solid #eef0f2;
    font-size: 13px;
    color: #334155;
}
.fa-persona__desglose-list li:last-child { border-bottom: none; }
.fa-persona__badge {
    background: #FAB600;
    color: #1B365D;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    padding: 2px 8px;
    border-radius: 10px;
}

/* Tabla de partidos — mismas clases utilitarias que fa-jugador (fa-jug-*) */
.fa-persona__tabla-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.fa-persona__tabla { min-width: 420px; width: 100%; }

.fa-persona-empty {
    padding: 16px 4px;
    color: #9aa5b8;
    font-size: 13px;
    font-style: italic;
}

/* ── Marcador en directo (partido en juego, resultado aún provisional) ────── */
.sp-team-result--directo,
.fa-jornada__marcador--directo,
.fa-marcador-directo {
    color: #dc2626 !important;
}
.fa-en-directo-badge {
    display: inline-block;
    margin-top: 8px;
    margin-bottom: 18px;
    padding: 4px 12px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #fff;
    background: #dc2626;
    border-radius: 4px;
    animation: fa-en-directo-parpadeo 1.4s ease-in-out infinite;
}
@keyframes fa-en-directo-parpadeo {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.45; }
}

@media (max-width: 767px) {
    .fa-persona__nombre { font-size: 17px !important; }
    .fa-persona__stat-box { min-width: 55px; padding: 10px 4px; }
    .fa-persona__stat-num { font-size: 20px; }
    .fa-persona__stat-lbl { font-size: 10px; }
}

/* =====================
   PUBLICIDAD
   ===================== */

/* Crónica de partido: publicidad de local y visitante lado a lado en
   escritorio, apiladas en móvil — cada una es su propia .fa-publicidad
   completa (misma zona con su propio ancho/alto/columnas). */
.fa-publicidad-partido {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    margin: 16px 0;
}
.fa-publicidad-partido .fa-publicidad { margin: 0; }

/* Noticia con varios equipos etiquetados: cada equipo con anuncio propio
   pinta su propia .fa-publicidad, apiladas verticalmente — sin este wrapper
   quedaban pegadas entre sí (0px de separación). */
.fa-publicidad-noticia {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 16px 0;
}
.fa-publicidad-noticia .fa-publicidad { margin: 0; }

/* =====================
   GALERÍA DE FOTOS DEL PARTIDO (Cloudinary)
   ===================== */
.fa-galeria-partido {
    margin: 24px 0;
}
.fa-galeria-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}
/* !important en todo este bloque: son <button>, y el tema trae sus propios
   estilos de botón (display/align-items/color) que si no ganan por encima de
   los nuestros — dejaban la foto sin recortar (letterboxed) y el texto del
   botón casi invisible por el color heredado. */
.fa-galeria-preview__item {
    display: block !important;
    width: 110px !important;
    height: 110px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    background: #eee;
}
.fa-galeria-preview__item img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    display: block !important;
}
.fa-galeria-abrir {
    display: inline-block !important;
    background: #1B365D !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px;
    padding: 10px 18px !important;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.fa-galeria-abrir:hover { background: #142a49 !important; }

.fa-galeria-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .92);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fa-galeria-modal__centro {
    max-width: 92vw;
    max-height: 88vh;
    text-align: center;
}
.fa-galeria-modal__img {
    max-width: 92vw;
    max-height: 80vh;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}
.fa-galeria-modal__contador {
    color: #fff;
    font-size: 13px;
    margin-top: 10px;
}
.fa-galeria-modal__cerrar,
.fa-galeria-modal__prev,
.fa-galeria-modal__next {
    position: absolute;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .12) !important;
    color: #fff !important;
    border: none !important;
    cursor: pointer;
    font-size: 32px !important;
    line-height: 1;
    border-radius: 50%;
    width: 56px !important;
    height: 56px !important;
}
.fa-galeria-modal__cerrar { top: 20px; right: 20px; }
.fa-galeria-modal__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.fa-galeria-modal__next { right: 20px; top: 50%; transform: translateY(-50%); }
.fa-galeria-modal__cerrar:hover,
.fa-galeria-modal__prev:hover,
.fa-galeria-modal__next:hover { background: rgba(255, 255, 255, .24); }

@media (max-width: 640px) {
    .fa-galeria-preview__item { width: 84px !important; height: 84px !important; }
}
/* Se renderizan 10 miniaturas siempre; en escritorio solo se ven 7 (las 3 de
   más se ocultan aquí, no se llegan a descargar por el loading="lazy") — en
   móvil (regla de arriba) se ven las 10. */
@media (min-width: 641px) {
    .fa-galeria-preview__item:nth-child(n+8) { display: none !important; }
}

/* Fotos de instalaciones (ficha de club/equipo, pestaña Instalaciones) — la
   primera foto se ve grande (destacada), el resto en tira de miniaturas
   debajo (reutiliza el grid+modal de la galería de fotos de partido). */
.fa-instalaciones-fotos { margin: 16px 0; }
.fa-instalaciones-fotos__principal {
    display: block !important;
    width: 100%;
    max-width: 640px;
    aspect-ratio: 16 / 9;
    border: none !important;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    padding: 0 !important;
    background: #eee;
    margin-bottom: 10px;
}
.fa-instalaciones-fotos__principal img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    display: block !important;
}
.fa-instalaciones-maps { margin: 12px 0 0; }
.fa-instalaciones-mapa {
    margin: 16px 0 0;
    max-width: 640px;
}
.fa-instalaciones-mapa iframe {
    width: 100%;
    height: 350px;
    border: 0;
    border-radius: 8px;
    display: block;
}

.fa-publicidad {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}
.fa-goleadores-banner { margin: 16px 0; }
.fa-publicidad__item {
    width: min(100%, var(--fa-pub-ancho, 300px));
    aspect-ratio: var(--fa-pub-ratio, 6/5);
    overflow: hidden;
    border-radius: 4px;
}
.fa-publicidad__item a { display: block; width: 100%; height: 100%; }
.fa-publicidad__item--codigo {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}
.fa-publicidad__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Móvil / tablet: reparte en N columnas (definidas por zona) manteniendo la
   proporción de cada anuncio, en vez del tamaño nativo en px que solo aplica
   en escritorio — así una zona de 180x100 y otra de 400x300 se comportan
   bien cada una a su escala sin CSS a medida por zona. */
@media (max-width: 767px) {
    .fa-publicidad {
        display: grid;
        grid-template-columns: repeat(var(--fa-pub-cols-movil, 2), 1fr);
        justify-items: center;
    }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .fa-publicidad {
        display: grid;
        grid-template-columns: repeat(var(--fa-pub-cols-tablet, 3), 1fr);
        justify-items: center;
    }
}

/* Escritorio: solo las zonas con "Columnas en escritorio" > 0 (clase
   fa-publicidad--grid-desktop) pasan a rejilla a todo el ancho disponible.
   El resto de zonas sigue mostrándose a su tamaño nativo en px (sin cambios). */
@media (min-width: 1025px) {
    .fa-publicidad--grid-desktop {
        display: grid;
        grid-template-columns: repeat(var(--fa-pub-cols-desktop, 1), 1fr);
        justify-items: stretch;
    }
    .fa-publicidad--grid-desktop .fa-publicidad__item {
        width: 100%;
    }
}

/* =====================
   TABLAS IMPORTADAS (noticias antiguas)
   ===================== */

/* Las tablas de alineación/resultados pegadas desde Excel en la web antigua
   pueden tener muchas columnas — desplazable en horizontal en vez de
   aplastarse en móvil. El estilo de la tabla en sí ya lo da .sp-data-table. */
.spm-tabla-importada-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 16px 0;
}
.spm-tabla-importada-wrap .sp-data-table {
    min-width: 480px;
}
/* Una sola línea por celda (nombres de jugador largos incluidos) — así las
   filas quedan a la misma altura en vez de descuadrarse por el ajuste de
   texto; para ver el resto de columnas está el scroll horizontal de arriba. */
.spm-tabla-importada-wrap td {
    white-space: nowrap;
}
/* Filas que ocupan varias columnas (marcador, nombre de equipo) — se
   destacan en vez de mezclarse visualmente con las filas de jugadores. */
.spm-tabla-importada-wrap .spm-tabla-destacada td {
    background-color: #1B365D !important;
    color: #ffffff !important;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
    white-space: normal;
}
/* Fila de cabecera de columna (Nº/Jugadores/A/R/C/G/P) — no es un <thead> real
   (así se respeta el orden real de la tabla, que trae el marcador y los
   nombres de equipo antes que esta fila), solo se distingue con este estilo. */

/* Banners de patrocinador pegados dentro del texto de la noticia (web
   antigua) — sin este límite salen al ancho completo del artículo y quedan
   desproporcionados, ya que son imágenes pequeñas tipo publicidad, no fotos. */
.spm-noticia-banner {
    max-height: 100px;
    width: auto;
    height: auto;
    display: block;
    margin: 8px auto;
}

/* =====================
   CONVOCATORIA DE PARTIDO ([fa_convocatoria], sustituye a [event_performance])
   ===================== */
.fa-convocatoria {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 16px 0;
}
.fa-conv__team {
    flex: 1 1 320px;
    min-width: 260px;
}
.fa-conv__team-title {
    background: #1B365D;
    color: #FAB600;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 8px 14px;
    border-radius: 4px 4px 0 0;
}
.fa-conv__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.fa-conv__table thead th {
    background: rgba(250, 182, 0, 0.14);
    color: #1B365D;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    text-align: left;
    padding: 6px 10px;
    border-bottom: 2px solid #FAB600;
}
.fa-conv__row td {
    padding: 7px 10px;
    border-bottom: 1px solid #eef0f2;
}
.fa-conv__row:nth-child(even) td { background-color: #fafbfc; }
.fa-conv__dorsal {
    width: 32px;
    text-align: center;
    font-weight: 700;
    color: #1B365D;
}
.fa-conv__nombre a { color: #1E2430; text-decoration: none; }
.fa-conv__nombre a:hover { text-decoration: underline; }
.fa-conv__pos { color: #6b7fa3; font-size: 13px; }
.fa-conv__punt { width: 40px; text-align: center; font-weight: 700; color: #1B365D; }
.fa-conv-sub {
    display: inline-block;
    margin-left: 8px;
    font-size: 12px;
    font-style: italic;
    font-weight: 600;
}
.fa-conv-sub--in  { color: #1f7a4d; }
.fa-conv-sub--out { color: #b5502f; }

/* Suplentes que entraron: destacados en azul claro + nombre en cursiva,
   para diferenciarlos a simple vista de los titulares. */
.fa-conv__row--entra td { background-color: #eaf0fb !important; }
.fa-conv__row--entra .fa-conv__nombre a {
    font-style: italic;
    font-weight: 600;
    color: #1B365D;
}
/* Convocados que no llegaron a jugar: atenuados, al final del listado. */
.fa-conv__row--convocado td { opacity: .7; }
.fa-conv__row--convocado .fa-conv__nombre a { color: #6b7fa3; }
.fa-conv__row--convocado .fa-conv__dorsal,
.fa-conv__row--convocado .fa-conv__punt { color: #9aa5b8; }
@media (max-width: 767px) {
    .fa-convocatoria { flex-direction: column; gap: 24px; }
}

.spm-tabla-importada-wrap .spm-tabla-cabecera td {
    background-color: #f5f7fa;
    color: #6b7fa3;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

/* =====================
   [fa_copa]: grupos + cuadro eliminatorio
   ===================== */
.fa-copa__grupos {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 28px;
}
@media (max-width: 600px) {
    .fa-copa__grupos { grid-template-columns: 1fr; }
}
.fa-copa__grupo-titulo {
    background-color: #1B365D;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 !important;
    padding: 8px 12px !important;
}
.fa-copa__tabla {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.fa-copa__tabla th {
    background-color: #f5f7fa;
    color: #6b7fa3;
    font-size: 11px;
    text-transform: uppercase;
    padding: 6px 8px;
    text-align: center;
}
.fa-copa__tabla th:nth-child(2) { text-align: left; }
.fa-copa__tabla td {
    padding: 7px 8px;
    text-align: center;
    border-bottom: 1px solid #eef0f2;
}
.fa-copa__tabla td:nth-child(2) { text-align: left; }
.fa-copa__tabla td a {
    color: #1B365D;
    font-weight: 600;
    text-decoration: none;
}
.fa-copa__lider {
    background-color: #f0fdf4;
    font-weight: 700;
}
.fa-copa__tabla--partidos {
    margin-bottom: 10px;
}
.fa-copa__tabla--partidos th:nth-child(1),
.fa-copa__tabla--partidos td:nth-child(1) {
    text-align: left;
}
.fa-copa__tabla--partidos th:nth-child(2),
.fa-copa__tabla--partidos td:nth-child(2) {
    text-align: center;
}
.fa-copa__tabla--partidos td:nth-child(1) {
    font-weight: 600;
    color: #1B365D;
}
.fa-copa__tabla--partidos td:nth-child(3) {
    font-weight: 700;
    color: #1B365D;
}
.fa-copa__vs {
    color: #9aa5b8;
    font-style: italic;
}
.fa-copa__vacio {
    padding: 10px 12px;
    color: #9aa5b8;
    font-size: 13px;
}
.fa-copa__bracket {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
/* Cuadro nativo de SportsPress ([tournament_bracket]) con el estilo del sitio */
.fa-copa__bracket .sp-tournament-bracket {
    width: 100%;
    border-collapse: separate;
    border-spacing: 6px;
    min-width: 480px;
}
.fa-copa__bracket .sp-tournament-bracket thead th {
    background-color: #1B365D;
    color: #ffffff;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    padding: 8px 10px;
    text-align: left;
}
.fa-copa__bracket .sp-tournament-bracket td.sp-team,
.fa-copa__bracket .sp-tournament-bracket td.sp-event {
    background-color: #f5f7fa;
    border-radius: 6px;
    padding: 10px 12px;
    vertical-align: middle;
}
.fa-copa__bracket .sp-team-name {
    font-size: 13px;
    font-weight: 700;
    color: #1B365D;
}
.fa-copa__bracket .sp-team-name a {
    color: #1B365D;
    text-decoration: none;
}
.fa-copa__bracket .sp-event-title {
    display: block;
    text-decoration: none;
    color: #1B365D;
}
.fa-copa__bracket .sp-event-date {
    font-size: 11px;
    color: #9aa5b8;
    margin-bottom: 2px;
}
.fa-copa__bracket .sp-result {
    font-size: 15px;
    font-weight: 700;
    color: #1B365D;
}
/* Huecos todavía sin decidir — en vez de una celda vacía, un aviso legible */
.fa-copa__bracket .sp-team-name.sp-highlight:not([data-team])::before,
.fa-copa__bracket .sp-event-title[title="Event"]::before {
    content: "Pendiente";
    color: #9aa5b8;
    font-weight: 600;
    font-size: 12px;
    font-style: italic;
}