/*
 * GB Packers · Roster Sync — Cabecera de partido
 * Archivo: assets/game-header.css
 *
 * La cabecera que abre el box score y las crónicas: fondo verde de marca,
 * rótulo de temporada y jornada, escudos a los lados con el de la NFL en
 * medio, ciudad + apodo debajo (Packers en dorado), marcador final, estado
 * y parcial por cuartos.
 *
 * Es la misma composición que [gbrs_preview_header] para que las tres piezas
 * de un partido —previa, box score y crónica— abran igual.
 *
 * Vive en su propia hoja desde 1.9.3: [gbrs_game_header] la usa sola en las
 * crónicas, sin arrastrar los estilos de las tablas de estadísticas, y
 * boxscore.css la declara como dependencia.
 *
 * Paleta: verde #10301f · dorado #f9b45b · blanco #ffffff
 */

/* ─────────────────────────────────────────────────────────────────────────────
   2. CABECERA HERO (1.8.7)
   Misma composición que la cabecera de la previa ([gbrs_preview_header]):
   fondo verde de marca, rótulo de temporada en dorado, escudos a los lados
   con el de la NFL en medio y ciudad + apodo debajo, con los Packers siempre
   en dorado. Lo que cambia respecto a la previa son los elementos de abajo:
   donde allí va la cuenta atrás, aquí van el marcador final y el parcial.

   El ancho de la columna central (--gbrs-hero-gap) es el que mantiene
   alineadas las tres filas — escudos, nombres y marcador — en la misma
   rejilla de 1fr auto 1fr.
───────────────────────────────────────────────────────────────────────────── */

.gbrs-bs-hero {
    --gbrs-hero-gap: 96px;

    margin-bottom: 28px;
    background: #10301f;
    color: #ffffff;
    text-align: center;
    font-family: "Poppins", sans-serif;
}

/* Ancho completo (por defecto) — el verde sale de la caja del contenido y
   ocupa toda la ventana, igual que la sección de Elementor que enmarca la
   cabecera de la previa. El contenido sigue centrado y limitado por __inner.

   Los márgenes negativos en vw son el modo estándar de romper el contenedor
   sin tocar el marcado del tema. En spanishpackers.com no provocan scroll
   horizontal porque .page_wrap y <html> ya llevan overflow-x:hidden; si el
   bloque se llevara a una plantilla sin ese recorte y apareciera una barra
   horizontal de unos píxeles (el ancho de la barra vertical en Windows), la
   salida es header="contained". */
.gbrs-bs-hero--full {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-radius: 0;
}

/* En caja: como estaba, dentro del ancho del contenido y con esquinas. */
.gbrs-bs-hero--contained {
    border-radius: 10px;
}

/* El contenido, centrado y a la anchura del resto del box score, para que los
   escudos queden alineados con las tablas de abajo. */
.gbrs-bs-hero__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 28px 26px;
    box-sizing: border-box;
}

/* Rótulo "Temporada 2026 / Semana 1" */
.gbrs-bs-hero__week {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 1rem;
    color: #f9b45b;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    line-height: 1;
    margin: 0 0 1.5rem;
}

.gbrs-bs-hero__logos,
.gbrs-bs-hero__names,
.gbrs-bs-hero__scores {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.5rem;
}

.gbrs-bs-hero__logos {
    margin-bottom: 1.1rem;
}

.gbrs-bs-hero__team-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
}

.gbrs-bs-hero__team-logo img {
    max-height: 100%;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Sin logo: la abreviatura hace de escudo */
.gbrs-bs-hero__logo-text {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    min-width: 90px;
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 2rem;
    color: #f9b45b;
}

/* Columna central: escudo NFL, hueco de los nombres y rótulo FINAL.
   Los tres comparten ancho para que las filas queden alineadas. */
.gbrs-bs-hero__center,
.gbrs-bs-hero__gap,
.gbrs-bs-hero__status {
    width: var(--gbrs-hero-gap);
}

.gbrs-bs-hero__center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.gbrs-bs-hero__badge {
    height: 52px;
    width: auto;
    display: block;
}

.gbrs-bs-hero__names {
    margin-bottom: 0.5rem;
}

.gbrs-bs-hero__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
}

.gbrs-bs-hero__team-city {
    font-family: "Poppins", sans-serif;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.75);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.2;
}

.gbrs-bs-hero__team-name {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 2.4rem;
    color: #ffffff;
    text-transform: uppercase;
    line-height: 1.05;
}

/* Packers en dorado, jueguen en casa o fuera */
.gbrs-bs-hero__team-name--gb {
    color: #f9b45b;
}

/* Marcador final — ocupa el lugar de la cuenta atrás de la previa */
.gbrs-bs-hero__scores {
    margin-bottom: 1.5rem;
}

.gbrs-bs-hero__score {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 4.5rem;
    line-height: 1;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
}

/* El marcador de los Packers va siempre destacado, ganen o pierdan */
.gbrs-bs-hero__score--gb {
    color: #f9b45b;
}

.gbrs-bs-hero__status {
    font-family: "Poppins", sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.3;
    color: #f9b45b;
    border: 1px solid rgba(249, 180, 91, 0.45);
    border-radius: 20px;
    padding: 0.35rem 0.5rem;
    box-sizing: border-box;
}


/* ─────────────────────────────────────────────────────────────────────────────
   3. LINESCORE (MARCADOR POR CUARTOS)
   Versión oscura, dentro de la cabecera hero.
───────────────────────────────────────────────────────────────────────────── */

.gbrs-bs-hero__linescore {
    overflow-x: auto;
    text-align: center;    /* centra la tabla bajo el marcador */
    margin-bottom: 1.4rem;
}

.gbrs-bs-hero__ls-table {
    display: inline-table; /* necesario para que el centrado funcione */
    border-collapse: collapse;
    font-size: 1.05rem;
    min-width: 280px;
    text-align: center;
}

.gbrs-bs-hero__ls-table th,
.gbrs-bs-hero__ls-table td {
    padding: 6px 16px;
    text-align: center;
    border: 1px solid rgba(249, 180, 91, 0.22);
    font-variant-numeric: tabular-nums;
    color: #ffffff;
}

.gbrs-bs-hero__ls-table thead th {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    color: #f9b45b;
    background: rgba(255, 255, 255, 0.05);
}

/* Celda con la abreviatura del equipo */
.gbrs-bs-hero__ls-team {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    text-align: left;
    min-width: 52px;
    background: rgba(255, 255, 255, 0.04);
}

.gbrs-bs-hero__ls-team--gb {
    color: #f9b45b;
}

/* Total final (columna T) */
.gbrs-bs-hero__ls-total {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    background: rgba(255, 255, 255, 0.07);
}

/* Cuartos no jugados */
.gbrs-bs-hero__ls-empty {
    color: rgba(255, 255, 255, 0.35);
}

/* Fecha y estadio */
.gbrs-bs-hero__meta {
    margin: 0;
}

.gbrs-bs-hero__datetime {
    font-family: "UltimatumBold", "Poppins", sans-serif;
    font-weight: normal;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #ffffff;
    margin: 0;
    line-height: 1.3;
}

.gbrs-bs-hero__venue {
    font-family: "Poppins", sans-serif;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
    color: #f9b45b;
    margin: 0.25rem 0 0;
    line-height: 1.3;
}

/* Línea de contexto de respaldo: solo se pinta si el partido no tiene los
   dos equipos enlazados y no se puede construir la meta de la previa.
   Sobre el verde necesita otro color que el gris original. */
.gbrs-bs-hero .gbrs-bs-meta {
    margin: 0;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


/* ── Cabecera hero: mismos cortes que la cabecera de la previa ─────────── */

/* En pantallas anchas se iguala a [gbrs_preview_header] en modo live (escudos
   de 150px, nombre 2.9rem): a ancho completo la composición pedía más cuerpo. */
@media (min-width: 1200px) {
    .gbrs-bs-hero__team-logo,
    .gbrs-bs-hero__logo-text { height: 150px; }
    .gbrs-bs-hero__badge     { height: 60px; }
    .gbrs-bs-hero__team-name { font-size: 2.9rem; }
    .gbrs-bs-hero__team-city { font-size: 1rem; }
    .gbrs-bs-hero__score     { font-size: 5rem; }
    .gbrs-bs-hero__inner     { padding: 40px 28px 32px; }
}

@media (max-width: 900px) {
    .gbrs-bs-hero {
        --gbrs-hero-gap: 64px;
    }

    .gbrs-bs-hero__inner {
        padding: 26px 20px 22px;
    }

    .gbrs-bs-hero__team-logo,
    .gbrs-bs-hero__logo-text { height: 92px; }
    .gbrs-bs-hero__badge     { height: 42px; }
    .gbrs-bs-hero__team-name { font-size: 1.7rem; }
    .gbrs-bs-hero__team-city { font-size: 0.85rem; }
    .gbrs-bs-hero__score     { font-size: 3.2rem; }
    .gbrs-bs-hero__week      { font-size: 0.9rem; letter-spacing: 0.14em; }
}

@media (max-width: 600px) {
    .gbrs-bs-hero {
        --gbrs-hero-gap: 52px;
    }

    .gbrs-bs-hero__inner {
        padding: 22px 14px 18px;
    }

    .gbrs-bs-hero__logos,
    .gbrs-bs-hero__names,
    .gbrs-bs-hero__scores    { gap: 0.75rem; }

    .gbrs-bs-hero__team-logo,
    .gbrs-bs-hero__logo-text { height: 74px; }
    .gbrs-bs-hero__badge     { height: 34px; }
    .gbrs-bs-hero__team-name { font-size: 1.3rem; }
    .gbrs-bs-hero__team-city { font-size: 0.75rem; }
    .gbrs-bs-hero__score     { font-size: 2.4rem; }
    .gbrs-bs-hero__status    { font-size: 0.6rem; letter-spacing: 0.06em; padding: 0.25rem 0.3rem; }
    .gbrs-bs-hero__datetime  { font-size: 0.95rem; }

    .gbrs-bs-hero__ls-table  { font-size: 0.9rem; min-width: 0; }

    .gbrs-bs-hero__ls-table th,
    .gbrs-bs-hero__ls-table td { padding: 5px 9px; }
}


/* ── Overrides del tema Gridiron ─────────────────────────────────────────
   Gridiron pinta TODOS los th y td de la página con !important; el linescore
   va sobre verde, así que hay que reafirmar el texto claro, los fondos tenues
   y el dorado de los Packers. El ancestro es .gbrs-bs-hero y no .gbrs-boxscore
   porque la cabecera también se pinta suelta en las crónicas. */

/* Linescore del hero: va sobre verde, así que hay que reafirmar contra el
   tema el texto claro, los fondos tenues y el dorado de los Packers. */
.gbrs-bs-hero .gbrs-bs-hero__ls-table thead th {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #f9b45b !important;
}

.gbrs-bs-hero .gbrs-bs-hero__ls-table tbody td {
    color: #ffffff !important;
    background: transparent !important;
}

.gbrs-bs-hero .gbrs-bs-hero__ls-table tbody .gbrs-bs-hero__ls-team {
    background: rgba(255, 255, 255, 0.04) !important;
}

.gbrs-bs-hero .gbrs-bs-hero__ls-table tbody .gbrs-bs-hero__ls-team--gb {
    color: #f9b45b !important;
}

.gbrs-bs-hero .gbrs-bs-hero__ls-table tbody .gbrs-bs-hero__ls-total {
    background: rgba(255, 255, 255, 0.07) !important;
}

.gbrs-bs-hero .gbrs-bs-hero__ls-table tbody .gbrs-bs-hero__ls-empty {
    color: rgba(255, 255, 255, 0.35) !important;
}

/* El linescore sí lleva rejilla completa: la reafirmamos con !important */
.gbrs-bs-hero .gbrs-bs-hero__ls-table th,
.gbrs-bs-hero .gbrs-bs-hero__ls-table td {
    border: 1px solid rgba(249, 180, 91, 0.22) !important;
}

/* Gridiron también pinta el borde izquierdo de td + td en el linescore */
.gbrs-bs-hero .gbrs-bs-hero__ls-table td + td,
.gbrs-bs-hero .gbrs-bs-hero__ls-table th + th {
    border-left: 1px solid rgba(249, 180, 91, 0.22) !important;
}



/* ── La cabecera, pegada al menú (1.8.9 · generalizado en 1.9.6) ──────────
   Entre el menú y el verde se acumulaba el aire de la plantilla: 80px de
   margin-top de la sección de Elementor y 10px de padding del contenedor
   interior — más, en la ficha del partido, los 24px de margen del box score.
   Eran 114px allí y 90px en una crónica.

   Se corrige desde el plugin y no quitando el padding en Elementor porque esas
   plantillas las comparten TODAS las fichas de evento y TODAS las entradas,
   incluidas las que no abren con cabecera y sí necesitan su espaciado. De ahí
   las dos condiciones: la clase que GBRS_Boxscore::body_class pone solo en las
   páginas que abren con cabecera, y :has() para alcanzar únicamente a los
   contenedores que la envuelven.

   Con header="contained", o en cualquier plantilla donde la cabecera no vaya a
   ancho completo, no se aplica nada.

   Si el navegador no soporta :has(), la regla no se aplica y queda el espacio
   de antes: no rompe nada. */
body.gbrs-has-game-header .elementor-section:has(.gbrs-bs-hero--full),
body.gbrs-has-game-header .elementor-container:has(.gbrs-bs-hero--full),
body.gbrs-has-game-header .elementor-widget-wrap:has(.gbrs-bs-hero--full),
body.gbrs-has-game-header .e-con:has(.gbrs-bs-hero--full),
body.gbrs-has-game-header .e-con-inner:has(.gbrs-bs-hero--full) {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* En la ficha del partido, además, el margen propio del box score. */
body.gbrs-has-boxscore .gbrs-boxscore:has(.gbrs-bs-hero--full) {
    margin-top: 0 !important;
}

/* El widget de contenido de Elementor y el <p> de wpautop meten su propio aire
   cuando la cabecera va dentro del contenido de una crónica. */
body.gbrs-has-game-header .elementor-widget-theme-post-content:has(.gbrs-bs-hero--full) > .elementor-widget-container,
body.gbrs-has-game-header .elementor-widget-text-editor:has(.gbrs-bs-hero--full) > .elementor-widget-container {
    padding-top: 0 !important;
}

.gbrs-bs-hero--full:first-child {
    margin-top: 0;
}
