/* ===========================================================================
   AJUSTES DE COMPATIBILIDAD BOOTSTRAP 4 -> 5

   1) ANCHO DEL CONTENEDOR.
   Bootstrap 5 añadió un punto de corte nuevo, xxl (1400px), que lleva el
   .container a 1320px. Bootstrap 4 no lo tenía y se quedaba en 1140px. En una
   pantalla ancha eso estira todo el sitio 180px de más y descoloca la
   maquetación del tema, que está calculada sobre 1140. Se restaura el límite
   anterior.

   2) SUBRAYADO DE ENLACES.
   Bootstrap 5 subraya todos los enlaces por defecto; Bootstrap 4 no lo hacía.
   El tema 10news se diseñó contando con el comportamiento anterior, así que
   al actualizar aparecieron subrayados en el menú, el pie, la paginación y
   las tarjetas. Se restaura SOLO en navegación y componentes; los enlaces
   dentro del texto de una noticia conservan el subrayado, que ahí sí ayuda.
   =========================================================================== */

@media (min-width: 1400px) {
    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl {
        max-width: 1140px;
    }
}

.navbar a,
.navbar-nav .nav-link,
.menu-area a,
.top-news a,
.ticker a,
#webTicker a,
.breadcrumb-box a,
.pagination a,
.page-link,
.card a,
.list-unstyled a,
.list-inline a,
.relate-news a,
.rel-layer a,
.slider-layer a,
.footer-area a,
.tag-box a,
.btn {
    text-decoration: none;
}

.navbar a:hover,
.menu-area a:hover,
.card a:hover,
.list-unstyled a:hover,
.relate-news a:hover,
.slider-layer a:hover {
    text-decoration: underline;
}

/* ===========================================================================
   CUADRÍCULA DE PORTADA
   CSS Grid puro: sin Owl Carousel, sin JavaScript, sin dependencias.

   Estructura en escritorio (2 filas x 3 columnas):
     +-------------------+----------+----------+
     |                   |  cat 1   |  cat 2   |
     |    DESTACADA      +----------+----------+
     |                   |  cat 3   |  cat 4   |
     +-------------------+----------+----------+
   En tablet pasa a 2 columnas y la destacada ocupa el ancho completo.
   En móvil, una sola columna.

   Nota sobre el LCP: la imagen destacada va sin lazy y con fetchpriority alta
   porque es lo primero que ve el lector; las demás van con loading="lazy"
   nativo. Todas llevan aspect-ratio fijo para que la página no dé saltos
   mientras cargan (eso es lo que mide Google como CLS).
   =========================================================================== */

.cuadricula-portada {
    display: grid;
    gap: 12px;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    margin-bottom: 20px;
}

/* La celda destacada ocupa 2 filas de la primera columna */
.cuadricula-portada .celda-destacada {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.cuadricula-portada .celda {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background: #1a1a1a;
    min-height: 0;
}

/* El enlace del titular cubre toda la celda mediante .stretched-link de
   Bootstrap 5, en vez de envolver la imagen. Así el enlace de la categoría
   puede vivir dentro de la misma tarjeta sin quedar anidado dentro de otro
   enlace (HTML no permite anidar <a>, y el navegador rompe la estructura). */
.cuadricula-portada .celda a {
    text-decoration: none;
}

/* CLAVE: el texto del titular vive dentro de un <a>, y style.css trae
   h2,h2 a{font-size:32px} y h3 a{font-size:28px}. Esas reglas apuntan al
   ENLACE, así que fijar el tamaño solo en el <h2> no sirve de nada: el <a>
   nunca hereda porque tiene su propia regla. Hay que forzarlo a heredar.
   Lo mismo con la altura de línea y el peso. */
.cuadricula-portada .celda .titular a {
    color: #fff;
    text-decoration: none;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.cuadricula-portada .celda .titular a:hover {
    color: #fff;
    text-decoration: underline;
}

.cuadricula-portada .celda img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}

.cuadricula-portada .celda:hover img {
    transform: scale(1.04);
}

/* La capa queda por encima de la imagen y contiene el texto */
.cuadricula-portada .celda .capa {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    padding: 14px;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,0) 100%);
}

/* El titular es texto real dentro de un <a>, no parte de la imagen:
   si fuera texto pintado en la foto, Google no leería nada. */
.cuadricula-portada .celda .titular {
    margin: 0 0 6px;
    color: #fff;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Tamaños de titular. Referencia: las plantillas de portal de noticias usan
   textos discretos sobre la foto, no titulares de portada de periódico.
   clamp() escala entre móvil y escritorio sin media queries.
   El peso baja de 600 a 500: en blanco sobre foto oscura, la seminegrita ya
   se lee de sobra y la negrita satura. */
.cuadricula-portada .celda .titular {
    font-weight: 500;
}
.cuadricula-portada .celda-destacada .titular {
    font-size: clamp(.9rem, 1.05vw, 1rem);
    -webkit-line-clamp: 3;
}
.cuadricula-portada .celda-secundaria .titular {
    font-size: clamp(.72rem, .7vw, .78rem);
}

.cuadricula-portada .celda .meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: .75rem;
    color: rgba(255,255,255,.85);
}

/* La categoría es un enlace aparte hacia /deportes, /economia, etc.
   z-index 2 lo pone por ENCIMA de .stretched-link del titular, que ocupa
   toda la tarjeta, para que se pueda pulsar por separado. */
.cuadricula-portada .celda .categoria {
    position: relative;
    z-index: 2;
    display: inline-block;
    padding: 3px 9px;
    border-radius: 3px;
    background: #d9232d;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .3px;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.4;
    height: auto;
    width: auto;
}

.cuadricula-portada .celda .categoria:hover { background: #b51c25; color: #fff; }

/* Altura por proporción y no fija: así la cuadrícula se adapta al ancho
   disponible sin deformar las fotos.

   SOLO las secundarias llevan aspect-ratio. La destacada NO: ocupa dos filas
   y debe medir exactamente lo que miden esas dos filas más el hueco entre
   ellas. Al darle su propia proporción (4/3) quedaba más alta que la columna
   de la derecha y la cuadrícula se veía descuadrada abajo. */
.cuadricula-portada .celda-secundaria { aspect-ratio: 16 / 10; }

/* --- Tablet --------------------------------------------------------- */
@media (max-width: 991.98px) {
    .cuadricula-portada {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }
    .cuadricula-portada .celda-destacada {
        grid-column: 1 / span 2;
        grid-row: auto;
        aspect-ratio: 16 / 9;
    }
    .cuadricula-portada .celda-destacada .titular { font-size: .95rem; }
}

/* --- Móvil ---------------------------------------------------------- */
@media (max-width: 575.98px) {
    .cuadricula-portada {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .cuadricula-portada .celda-destacada {
        grid-column: 1;
        aspect-ratio: 4 / 3;
    }
    .cuadricula-portada .celda-destacada .titular { font-size: .92rem; }
    .cuadricula-portada .celda-secundaria { aspect-ratio: 16 / 9; }
    .cuadricula-portada .celda-secundaria .titular { font-size: .85rem; }
}

/* ===========================================================================
   LISTADO DE NOTICIAS
   Cuando Owl Carousel envolvía cada bloque, era él quien limitaba el alto de
   la foto. Al retirarlo, las imágenes pasaron a salir a tamaño natural y una
   sola nota ocupaba la pantalla entera.
   Se les pone un alto máximo con object-fit: cover, que recorta en vez de
   deformar y deja todos los bloques del mismo tamaño.
   =========================================================================== */
.slider-area2 .owl-slider .slider-content img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
}

@media (max-width: 991.98px) {
    .slider-area2 .owl-slider .slider-content img { height: 300px; }
}

@media (max-width: 575.98px) {
    .slider-area2 .owl-slider .slider-content img { height: 220px; }
}

/* Respeta a quien pidió menos animación en su sistema operativo */
@media (prefers-reduced-motion: reduce) {
    .cuadricula-portada .celda img { transition: none; }
    .cuadricula-portada .celda:hover img { transform: none; }
}
