
:root {
    --altura-header: 72px;
    --color-primario: #007bff;
    --color-primario-oscuro: #0056b3;
    --color-primario-claro: #4da3ff;
    --color-secundario: rgb(0, 196, 180);
    --color-acento: #28a745;

    --color-texto: #333333;
    --color-texto-claro: #666666;

    --color-fondo: #ffffff;
    --color-fondo-claro: #f8f9fa;
    --color-borde: #e0e0e0;

    --sombra-suave: 0 4px 12px rgba(0, 0, 0, .08);
    --sombra-media: 0 8px 24px rgba(0, 0, 0, .12);
    --sombra-fuerte: 0 16px 32px rgba(0, 0, 0, .16);

    --trans-rapida: all .2s cubic-bezier(.4, 0, .2, 1);
    --trans-media: all .3s cubic-bezier(.4, 0, .2, 1);
    --trans-lenta: all .5s cubic-bezier(.4, 0, .2, 1);

    --radio-borde: 8px;
    --radio-borde-grande: 12px;

    --espaciado-xs: 4px;
    --espaciado-sm: 8px;
    --espaciado-md: 16px;
    --espaciado-lg: 24px;
    --espaciado-xl: 32px;
    --espaciado-xxl: 48px;
}


.noticias_smooth-scroll {
    scroll-behavior: smooth;
}

/* links generales */
.noticias_enlace {
    text-decoration: none;
    color: var(--color-primario);
    transition: var(--trans-media);
    position: relative;
    font-weight: 500;
}

.noticias_enlace:after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-primario), var(--color-secundario));
    transition: var(--trans-media);
}

.noticias_enlace:hover {
    color: var(--color-primario-oscuro);
}

.noticias_enlace:hover:after {
    width: 100%;
}

/* separador */
.noticias_separador {
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--color-primario), var(--color-secundario), var(--color-primario), transparent);
    margin: 15px auto;
    width: 90%;
    border-radius: 2px;
}

.noticias_separador_mejorado {
    height: 2px;
    margin-bottom: 10px;
    background: linear-gradient(90deg, transparent, var(--color-primario), var(--color-secundario), var(--color-primario), transparent);
    width: 90%;
    border-radius: 2px;
}

/* animaciones base */
@keyframes noticias_deslizarArriba {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes noticias_fade-in {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.noticias_fade-in {
    animation: noticias_fade-in .4s ease-out forwards;
}

.noticias_texto-centrado {
    text-align: center;
}

.noticias_oculto {
    display: none !important;
}


/* ENCABEZADO */
.noticias_encabezado {
    border-top: 3px solid var(--color-primario);
    border-bottom: 3px solid var(--color-primario);
    background: linear-gradient(120deg, var(--color-primario), var(--color-secundario));
    color: #fff;
    text-align: center;
    padding: 3.5rem 1rem;
    box-shadow: var(--sombra-fuerte);
    position: relative;
    overflow: hidden;
}

.noticias_encabezado::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, .15) 0%, transparent 70%);
}

.noticias_encabezado-titulo {
    font-size: 3.5rem;
    margin-bottom: .75rem;
    font-weight: 800;
    letter-spacing: -1px;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, .3);
    animation: noticias_deslizarArriba .8s ease-out;
    position: relative;
    z-index: 2;
}

.noticias_encabezado-subtitulo {
    font-style: italic;
    font-size: 1.3rem;
    margin: 0;
    opacity: .95;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, .2);
    animation: noticias_deslizarArriba .8s ease-out .2s both;
    position: relative;
    z-index: 2;
}

/* BARRA CATEGORIAS */
.noticias_barra-categorias {
    background: rgba(255, 255, 255, .98);
    padding: 15px 20px;
    border-bottom: 1px solid var(--color-borde);
    position: relative;
    z-index: 999;
    width: 100%;
    box-sizing: border-box;
    backdrop-filter: blur(10px);
    box-shadow: var(--sombra-suave);
}

.noticias_barra-fija {
    position: fixed;
    top: var(--altura-header);
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--sombra-media);
    border-bottom: 3px solid var(--color-primario);
    z-index: 1000;
}

.noticias_barra-placeholder {
    display: none;
    width: 100%;
}

.noticias_barra-placeholder-activo {
    display: block;
}

.noticias_contenedor-categorias {
    max-width: 1300px;
    margin: 0 auto;
}


.noticias_categoria-general {
    background: linear-gradient(135deg, #f0f4ff, #e6ecf8);
    color: var(--color-primario);
    padding: 8px 20px;
    border-radius: 40px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: var(--trans-media);
    border: 1px solid rgba(0, 123, 255, .2);
    box-shadow: 0 4px 8px rgba(0, 0, 0, .05);
    position: relative;
    overflow: hidden;
    display: inline-block;
    letter-spacing: .5px;
}

.noticias_categoria-general::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .4);
    transform: translate(-50%, -50%);
    transition: width .6s, height .6s;
}

.noticias_categoria-general:hover {
    background: linear-gradient(135deg, var(--color-primario), var(--color-secundario));
    color: #fff;
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--sombra-media);
    border-color: transparent;
}

.noticias_categoria-general:hover::before {
    width: 300px;
    height: 300px;
}

.noticias_categorias-secciones {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.noticias_categoria-seccion {
    background: var(--color-fondo);
    border: 1px solid var(--color-borde);
    color: var(--color-primario);
    padding: 6px 16px;
    border-radius: 25px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: var(--trans-media);
    display: inline-block;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .02);
    letter-spacing: .3px;
}

.noticias_categoria-seccion:hover {
    background: linear-gradient(135deg, var(--color-primario), var(--color-secundario));
    color: #fff;
    transform: translateY(-3px);
    box-shadow: var(--sombra-media);
    border-color: transparent;
}

/* LAYOUT 3 COLUMNAS */
.noticias_layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr) 300px;
    gap: 25px;
    width: 100%;
    max-width: 100%; /* 🔥 así no se “sale” en pantallas grandes */
    margin: 2.5rem auto;
    padding: 1rem;
    box-sizing: border-box;
    align-items: start;
}

.noticias_columna-centro,
.noticias_columna-izquierda,
.noticias_columna-derecha {
    min-width: 0;
}

.noticias_columna-izquierda,
.noticias_columna-derecha {
    padding: 50px 20px 20px;
    position: sticky;
    top: 100px;
    height: fit-content;
}

/* widgets */
.noticias_widget-titulo {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--color-primario);
    margin-bottom: 1.2rem;
    padding-bottom: .6rem;
    border-bottom: 3px solid;
    border-image: linear-gradient(90deg, var(--color-primario), var(--color-secundario)) 1;
    display: flex;
    align-items: center;
    gap: 8px;
}

.noticias_widget-titulo i {
    color: var(--color-secundario);
    font-size: 1.1rem;
}

.noticias_ultimas-lista {
    list-style: none;
    padding: 0;
    margin: 0;
}

.noticias_ultimas-item {
    margin-bottom: 12px;
    padding: 8px 10px;
    border-radius: var(--radio-borde);
    transition: var(--trans-media);
    background: var(--color-fondo-claro);
    border-left: 3px solid transparent;
}

.noticias_ultimas-item:hover {
    background: linear-gradient(90deg, #f0f4ff, #ffffff);
    border-left: 3px solid var(--color-primario);
    transform: translateX(5px);
    box-shadow: var(--sombra-suave);
}

.noticias_ultimas-enlace {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-texto);
    text-decoration: none;
    font-weight: 500;
    font-size: .9rem;
}

.noticias_ultimas-numero {
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--color-primario-claro);
    min-width: 25px;
    text-align: center;
    background: rgba(0, 123, 255, .1);
    padding: 4px 0;
    border-radius: 20px;
}

.noticias_ultimas-enlace:hover .noticias_ultimas-numero {
    background: var(--color-primario);
    color: #fff;
}

/* publicidad */
.noticias_publicidad-contenedor {
    margin-bottom: 25px;
    border-radius: var(--radio-borde);
    overflow: hidden;
    box-shadow: var(--sombra-suave);
    transition: var(--trans-media);
    position: relative;
    border: 1px solid rgba(0, 0, 0, .05);
}

.noticias_publicidad-imagen {
    max-width: 100%;
    height: auto;
    max-height: 250px;
    object-fit: contain;
    display: block;
    width: 100%;
}

/* BOTÓN VOLVER ARRIBA */
.noticias_volver-arriba {
    position: fixed;
    bottom: 100px;
    right: 25px;
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #007bff, #00c4b4);
    color: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    box-shadow: 0 4px 12px rgba(0, 123, 255, .3);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    border: 2px solid #fff;
    text-decoration: none;
    cursor: pointer;
}

.noticias_volver-arriba.visible {
    opacity: 1;
    visibility: visible;
}

/* RESPONSIVE */
@media (max-width: 992px) {
    .noticias_layout {
        grid-template-columns:1fr;
    }

    .noticias_columna-izquierda, .noticias_columna-derecha {
        display: none;
    }
}

@media (max-width: 768px) {
    .noticias_encabezado {
        padding: 2.5rem 1rem;
    }

    .noticias_encabezado-titulo {
        font-size: 2.2rem;
    }

    .noticias_encabezado-subtitulo {
        font-size: 1rem;
    }
}

#noticias-barra-categorias {
    position: relative;
}

#noticias-categorias-secciones.noticias_secciones-fija {
    position: fixed;
    top: var(--altura-header);
    left: 0;
    right: 0;
    width: 100%;
    box-sizing: border-box;

    padding: 12px 20px;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--color-borde);
    box-shadow: var(--sombra-suave);

    z-index: 1000; /* debajo de tu header (1001+) */
}

:root {
    --top-bajo-menu: 0px; /* se actualiza por JS */
}

/* SOLO este div se fija */
#noticias-categorias-secciones.noticias_secciones-fija {
    position: fixed;
    top: var(--top-bajo-menu);
    left: 0;
    right: 0;
    width: 100%;
    box-sizing: border-box;

    padding: 12px 20px;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--color-borde);
    box-shadow: var(--sombra-suave);

    z-index: 2000; /* debajo del header (tu header está más arriba) */

    /* asegura que no “se rompa” el layout al moverlo al body */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}


/* ✅ Botón que se ajusta al contenido */
.periodico_boton-principal {
    width: fit-content; /* se ajusta al texto */
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 10px 22px; /* controla el “tamaño” */
    border-radius: 999px;

    white-space: nowrap; /* evita salto de línea */
}

/* ✅ Centrado (cuando está dentro de un bloque) */
.periodico_descripcion .periodico_boton-principal {
    margin: 12px auto 0;
}

/* ✅ En móvil: asegura que NUNCA se vuelva 100% */
@media (max-width: 480px) {
    .periodico_boton-principal {
        width: fit-content !important;
        max-width: 90%;
    }
}


/* === CARRUSEL DE CATEGORÍAS (SCROLL HORIZONTAL) =================== */
.noticias_categorias-generales.noticias_categorias-marquee {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 6px 40px 8px; /* espacio interior para las pastillas */
    box-sizing: border-box;

    overflow-x: auto; /* aquí se hace el scroll horizontal */
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Firefox: oculta barra visible */
    background: #ffffff;
}

/* Ocultar scrollbar visual en WebKit */
.noticias_categorias-generales.noticias_categorias-marquee::-webkit-scrollbar {
    display: none;
}

/* Pista interna con las pastillas */
.noticias_categorias-marquee-track {
    display: inline-flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 12px;
}

/* Cada pastilla NO se encoge ni rompe línea */
.noticias_categorias-marquee-track .noticias_categoria-general {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* === FADE FIJO PEGADO A LA BARRA BLANCA ============================ */
/* OJO: ahora el fade va en la barra completa, no en el contenedor que scrollea */
.noticias_barra-categorias {
    position: relative; /* para anclar los ::before/::after */
}

/* Sombras blancas a izquierda y derecha */
.noticias_barra-categorias::before,
.noticias_barra-categorias::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 32px; /* ancho del fade */
    pointer-events: none; /* no tapa los clics */
    z-index: 10;
}

/* Izquierda */
.noticias_barra-categorias::before {
    left: 0;
    background: linear-gradient(
            to right,
            #ffffff 0%,
            rgba(255, 255, 255, 0.7) 40%,
            rgba(255, 255, 255, 0) 100%
    );
}

/* Derecha */
.noticias_barra-categorias::after {
    right: 0;
    background: linear-gradient(
            to left,
            #ffffff 0%,
            rgba(255, 255, 255, 0.7) 40%,
            rgba(255, 255, 255, 0) 100%
    );
}

/* Ajustes en pantallas pequeñas */
@media (max-width: 768px) {
    .noticias_categorias-generales.noticias_categorias-marquee {
        padding-inline: 24px;
    }

    .noticias_categorias-marquee-track .noticias_categoria-general {
        font-size: 12px;
        padding: 6px 14px;
    }

    .noticias_barra-categorias::before,
    .noticias_barra-categorias::after {
        width: 24px; /* fade un poco más estrecho en móvil */
    }
}

/* 🚀 VIEWPORT del carrusel (barra blanca) */
.noticias_categorias-generales.noticias_categorias-marquee {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 6px 40px 8px; /* espacio lateral para el fade */
    box-sizing: border-box;

    overflow: hidden; /* IMPORTANTE: oculta las pastillas por los lados */
    background: #ffffff;
}

/* 🛤️ TRACK interno que se mueve con JS */
.noticias_categorias-marquee-track {
    display: inline-flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 12px;
}

/* Cada pastilla no se encoge ni rompe línea */
.noticias_categorias-marquee-track .noticias_categoria-general {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* 🌫️ Fade blanco en los lados (fijo, no se mueve) */
.noticias_categorias-generales.noticias_categorias-marquee::before,
.noticias_categorias-generales.noticias_categorias-marquee::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    pointer-events: none; /* para que no bloquee los clics */
    z-index: 5;
}

/* Lado izquierdo: de blanco sólido a transparente hacia dentro */
.noticias_categorias-generales.noticias_categorias-marquee::before {
    left: 0;
    background: linear-gradient(
            to right,
            #ffffff 0%,
            rgba(255, 255, 255, 0) 100%
    );
}

/* Lado derecho: de blanco sólido a transparente hacia dentro */
.noticias_categorias-generales.noticias_categorias-marquee::after {
    right: 0;
    background: linear-gradient(
            to left,
            #ffffff 0%,
            rgba(255, 255, 255, 0) 100%
    );
}

/* 📱 Ajustes suaves para pantallas pequeñas */
@media (max-width: 768px) {
    .noticias_categorias-generales.noticias_categorias-marquee {
        padding-inline: 24px;
    }

    .noticias_categorias-generales.noticias_categorias-marquee::before,
    .noticias_categorias-generales.noticias_categorias-marquee::after {
        width: 24px;
    }
}