/* =========================================================
   BASE / UTILIDADES
   ========================================================= */

.article-wrap{
  max-width: 1000px;
  margin: 0 auto;
}

.legal-page {
  max-width: 900px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.7;
}
.legal-page h2 {
  margin-top: 2rem;
  margin-bottom: .75rem;
  font-size: 1.25rem;
}
.legal-page ul {
  padding-left: 1.2rem;
}


/* =========================================================
   PORTADA / SECCIÓN: HERO (hero-article + overlay)
   ========================================================= */

.hero-article{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background-color: #eaeaea;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 440px;
}

.hero-article a{
  display: block;
  height: 100%;
  color: #fff;
  text-decoration: none;
}

/* degradado para lectura */
.hero-article::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.85) 0%,
    rgba(0,0,0,.55) 35%,
    rgba(0,0,0,.15) 60%,
    rgba(0,0,0,.05) 100%
  );
}

.hero-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:24px;
  color:#fff;
}

.hero-category{
  display:inline-block;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:.5rem;
  opacity:.9;
}

.hero-overlay h1{
  font-size:2.2rem;
  line-height:1.15;
  font-weight:800;
  margin:0 0 .75rem;
}

.hero-overlay p{
  font-size:1rem;
  line-height:1.5;
  max-width:90%;
  opacity:.95;
  margin:0;
}

@media (max-width: 992px){
  .hero-article{ min-height: 300px; }
  .hero-overlay h1{ font-size: 1.75rem; }
}

@media (max-width: 576px){
  .hero-article{ min-height: 240px; }
  .hero-overlay{ padding: 16px; }
  .hero-overlay h1{ font-size: 1.35rem; }
  .hero-overlay p{ display:none; }
}


/* =========================================================
   PORTADA: LATERALES DEL HERO (usa list-card)
   ========================================================= */

.side-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
}


/* =========================================================
   LISTADOS HORIZONTALES (portada secundarios + seccion.php)
   ========================================================= */

.list-card{
  border:1px solid #eee;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  transition: transform .15s ease, box-shadow .15s ease;
}

.list-card:hover{
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  transform:translateY(-2px);
}

.list-card__link{
  display:flex;
  gap:16px;
  align-items:center;
  padding:12px;
  text-decoration:none;
  color:inherit;
}

.list-card__media{
  width:150px;
  min-width:150px;
  aspect-ratio: 4 / 3;      /* TODAS iguales */
  border-radius:10px;

  background-size:cover;     /* clave para que “encaje” */
  background-position:center;
  background-repeat:no-repeat;
  background-color:#eee;
}

.list-card__media.is-empty{
  background:#f0f0f0;
}

@media (max-width:576px){
  .list-card__media{
    width:110px;
    min-width:110px;
  }
}

.list-card__body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.list-card__meta{
  font-size:.85rem;
  margin-bottom:2px;
}

.list-card__cat{
  display:inline-block;
  width:fit-content;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:4px 10px;
  border-radius:999px;
  background:#f2f2f2;
  color:#111;
}

.list-card__title{
  margin:0;
  font-size:1.15rem;
  font-weight:800;
  line-height:1.15;

  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.list-card__excerpt{
  margin:0;
  color:#333;
  font-size:.95rem;

  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}


/* =========================================================
   PORTADA: BLOQUES POR CATEGORÍA (grid)
   ========================================================= */

.category-block > .d-flex{
  position:relative;
  padding-bottom:.6rem;
  margin-bottom:1.5rem;
}

.category-block > .d-flex::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:#111;
  opacity:.2;
}

.category-title{
  font-size:1.4rem;
  font-weight:800;
  margin:0;
}

.category-more{
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  color:#111;
  opacity:.7;
  transition: opacity .15s ease;
}

.category-more:hover{
  opacity:1;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.category-article{
  display:flex;
  flex-direction:column;
}

.category-article a{
  text-decoration:none;
  color:#111;
}

.category-img{
  position:relative;
  width:100%;
  aspect-ratio: 16 / 9;      /* TODAS iguales */
  overflow:hidden;
  border-radius:6px;
  background:#eee;
  margin-bottom:10px;
}

.category-img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.category-img.no-image,
.category-img.no-image::before{
  background:#f0f0f0;
}

.category-article h4{
  font-size:1rem;
  font-weight:700;
  line-height:1.25;
  margin:0;
  color:#111;
  transition: color .15s ease;
}

.category-article a:hover h4{
  color:#000;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}


/* =========================================================
   SIDEBAR (seccion.php / portada)
   ========================================================= */

.sidebar-headline{
  text-decoration:none;
  color:#111;
  font-weight:700;
  line-height:1.25;
}
.sidebar-headline:hover{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.most-viewed{
  list-style: decimal;
  padding-left: 1.2rem;
  margin: 0;
}
.most-viewed li{
  margin-bottom: .6rem;
}
.most-viewed a{
  color:#111;
  text-decoration:none;
  font-weight:500;
}
.most-viewed a:hover{
  text-decoration:underline;
}


/* =========================================================
   ARTÍCULO (articulo.php)
   ========================================================= */

.article-content{
  text-align: justify;
  text-justify: inter-word;
  line-height: 1.75;
  font-size: 1.05rem;
  color:#111;
}

@media (max-width: 576px){
  .article-content{ text-align:left; }
}

.article-content p{ margin:0 0 1rem; }
.article-content h2,.article-content h3,.article-content h4{
  margin:1.6rem 0 .8rem;
  line-height:1.2;
}
.article-content ul,.article-content ol{ margin:0 0 1rem 1.2rem; }
.article-content blockquote{
  border-left:4px solid #e5e5e5;
  padding-left:12px;
  color:#444;
  margin:1rem 0;
}
.article-content img{
  max-width:100%;
  height:auto;
  border-radius:10px;
}
.article-content table{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0;
}
.article-content th,.article-content td{
  border:1px solid #e5e5e5;
  padding:8px;
}


/* =========================================================
   TICKER (ÚLTIMA HORA / LIVE)
   ========================================================= */

.news-ticker{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 14px;
  border-bottom:1px solid #eee;
  margin-bottom:18px;
  overflow:hidden;
  background:#fafafa;
}

.news-ticker__label{
  flex:0 0 auto;
  font-weight:800;
  font-size:.75rem;
  padding:6px 12px;
  border-radius:999px;
  color:#fff;
  letter-spacing:.6px;
  text-transform:uppercase;
  white-space:nowrap;
}

.news-ticker__track{
  position:relative;
  flex:1 1 auto;
  overflow:hidden;
}

.news-ticker__marquee{
  display:inline-flex;
  align-items:center;
  gap:18px;
  white-space:nowrap;
  animation: tickerMove 22s linear infinite;
}

.news-ticker:hover .news-ticker__marquee{
  animation-play-state: paused;
}

.news-ticker__link{
  color:#111;
  text-decoration:none;
  font-weight:600;
}
.news-ticker__link:hover{ text-decoration:underline; }

.news-ticker__sep{ opacity:.35; }

@keyframes tickerMove{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(-50%); }
}

.ticker-breaking .news-ticker__label{ background:#c4161c; }
.ticker-live .news-ticker__label{ background:#111; }


/* =========================================================
   DIRECTO (timeline)
   ========================================================= */

.live-timeline{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.live-item{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap:16px;
  padding:14px;
  border:1px solid #eee;
  border-radius:14px;
  background:#fff;
}

.live-item__time{
  text-align:right;
  color:#6c757d;
  padding-top:2px;
}

.live-item__hour{
  font-weight:800;
  font-size:1.1rem;
  color:#111;
}

.live-item__date{ font-size:.85rem; }

.live-item__content{ min-width:0; }

.live-item__img{
  width:100%;
  max-height:360px;
  object-fit:cover;
  border-radius:12px;
  margin-bottom:10px;
}

.live-item__body{
  line-height:1.75;
  font-size:1.02rem;
  color:#111;
}

@media (max-width: 768px){
  .live-item{ grid-template-columns: 1fr; }
  .live-item__time{
    text-align:left;
    display:flex;
    gap:10px;
    align-items:baseline;
  }
}

.directo-empty{
  min-height:55vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 12px;
}

.directo-empty__box{
  max-width:720px;
  width:100%;
  text-align:center;
  border:1px solid #eee;
  background:#fff;
  border-radius:18px;
  padding:34px 22px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.directo-empty__badge{
  display:inline-block;
  padding:6px 12px;
  border-radius:999px;
  font-weight:800;
  font-size:.75rem;
  letter-spacing:.6px;
  background:#111;
  color:#fff;
  margin-bottom:14px;
}

.directo-empty__title{
  font-size:2rem;
  line-height:1.15;
  margin:0 0 10px;
}

.directo-empty__text{
  color:#6c757d;
  margin:0 auto;
  max-width:520px;
  font-size:1.02rem;
}

.recent-headlines{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:10px;
}

.recent-headlines__item{
  border:1px solid #eee;
  border-radius:14px;
  padding:14px;
  background:#fff;
}

.recent-headlines__meta{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}

.recent-headlines__cat{
  display:inline-block;
  font-size:.7rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:4px 10px;
  border-radius:999px;
  background:#f0f0f0;
  color:#111;
  text-decoration:none;
}

.recent-headlines__cat:hover{ text-decoration:underline; }

.recent-headlines__date{
  font-size:.85rem;
  color:#6c757d;
}

.recent-headlines__title{
  display:block;
  color:#111;
  text-decoration:none;
  font-weight:700;
  line-height:1.25;
}
.recent-headlines__title:hover{ text-decoration:underline; }


/* =========================================================
   FOOTER (oscuro tipo LNE)
   ========================================================= */

footer{
  background-color:#111;
  color:#d0d0d0;
  font-size:14px;
}

footer .fw-bold{
  color:#fff;
  font-size:15px;
  letter-spacing:.3px;
}

footer a{
  color:#bdbdbd;
  transition: color .2s ease;
}

footer a:hover{
  color:#fff;
  text-decoration:none;
}

footer p{
  color:#b5b5b5;
  line-height:1.6;
}

footer ul{ padding-left:0; }
footer ul li{ margin-bottom:6px; }

footer hr{
  border-color:#2a2a2a;
  opacity:1;
}

footer .small{ color:#9c9c9c; }

@media (max-width: 768px){
  footer{ text-align:left; }
}


/* =========================================================
   COOKIE BANNER
   ========================================================= */

.cookie-banner{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background: rgba(15,15,15,.95);
  color:#e0e0e0;
  font-size:14px;
  z-index:9999;
  border-top:1px solid #2a2a2a;
}

.cookie-banner-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
}

.cookie-banner a{
  color:#fff;
  text-decoration:underline;
}

.cookie-banner .btn{
  white-space:nowrap;
}

@media (max-width: 768px){
  .cookie-banner-inner{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* =========================================================
   ARTÍCULO (articulo.php) — estilos que faltaban
   ========================================================= */

.article-wrap{
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 16px;
}

.article-kicker{
  font-size: .9rem;
  color: #6c757d;
  margin-bottom: 8px;
}

.article-category{
  text-decoration: none;
  font-weight: 600;
  color: #6c757d !important; /* para ganar a Bootstrap */
}
.article-category:hover{ text-decoration: underline; }

.article-title{
  margin: .5rem 0 0;
  line-height: 1.15;
  font-weight: 800;
}

.article-excerpt{
  font-size: 1.15rem;
  color: #444;
  margin-top: .75rem;
  margin-bottom: 1rem;
}

.article-hero{
  margin-top: 1rem;
  margin-bottom: 1rem;
  border-radius: 12px;
  overflow: hidden;
}
.article-hero-img{
  width: 100%;
  height: 420px;   /* ajusta si quieres */
  object-fit: cover;
  display: block;
}

/* Firma */
.article-byline{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
  margin-bottom: 14px;
}
.article-byline-label{
  color: #6c757d;
  margin-right: 6px;
}
.article-byline-author{
  font-weight: 800;
}
.article-byline-right{
  color: #6c757d;
  font-size: .9rem;
}

/* Tags */
.article-tags{ margin-bottom: 18px; }
.article-tag{
  display: inline-block;
  padding: 4px 10px;
  margin: 0 6px 6px 0;
  border: 1px solid #e5e5e5;
  border-radius: 999px;
  font-size: .85rem;
  text-decoration: none;
  color: #222;
  background: #fafafa;
}
.article-tag:hover{ background: #f1f1f1; }

/* Cuerpo (IMPORTANTE: tu PHP usa .article-body) */
.article-body,
.article-content{
  text-align: justify;
  text-justify: inter-word;
  line-height: 1.75;
  font-size: 1.05rem;
  color:#111;
}

@media (max-width: 576px){
  .article-body,
  .article-content{ text-align:left; }
}

.article-body p,
.article-content p{ margin:0 0 1rem; }

.article-body h2,.article-body h3,.article-body h4,
.article-content h2,.article-content h3,.article-content h4{
  margin:1.6rem 0 .8rem;
  line-height:1.2;
}

.article-body ul,.article-body ol,
.article-content ul,.article-content ol{ margin:0 0 1rem 1.2rem; }

.article-body blockquote,
.article-content blockquote{
  border-left:4px solid #e5e5e5;
  padding-left:12px;
  color:#444;
  margin:1rem 0;
}

.article-body img,
.article-content img{
  max-width:100%;
  height:auto;
  border-radius:10px;
}

.article-body table,
.article-content table{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0;
}

.article-body th,.article-body td,
.article-content th,.article-content td{
  border:1px solid #e5e5e5;
  padding:8px;
}

/* =========================================================
   ÚLTIMA HORA (compat: breaking-bar / breaking-label)
   ========================================================= */

.breaking-bar{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 14px;
  border-bottom:1px solid #eee;
  margin-bottom:18px;
  overflow:hidden;
  background:#fafafa;
}

.breaking-label{
  flex:0 0 auto;
  font-weight:800;
  font-size:.75rem;
  padding:6px 12px;
  border-radius:999px;
  color:#fff;
  letter-spacing:.6px;
  text-transform:uppercase;
  white-space:nowrap;
  background:blue; /* breaking */
}

.breaking-bar a{
  color:#111;
  text-decoration:none;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.breaking-bar a:hover{
  text-decoration:underline;
}

.breaking-bar.live-breaking .breaking-label.live-label{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}

.breaking-bar.live-breaking .live-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:red;
  box-shadow:0 0 0 0 rgba(255,42,42,.7);
  animation:pulse 1.2s infinite;
}

@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(255,42,42,.7); }
  70%{ box-shadow:0 0 0 10px rgba(255,42,42,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,42,42,0); }
}

.ad-slot{
  margin: 1.25rem 0;
  padding: .75rem;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: #fff;
}

.ad-slot img{
  max-width: 100%;
  height: auto;
  display: block;
}