:root{
  --text:#0b1220;
  --muted:#5f6368;
  --ink:#2b2b2b;
  --paper:#ffffff;
  --line:#ececec;
  --soft:#f6f7f8;
  --danger-soft:#ffebee;
  --danger:#c62828;
  --shadow-1: 0 6px 18px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);
  --radius-lg:.9rem;
  --radius-md:.75rem;
}
*{box-sizing:border-box}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
.mb-0{margin-bottom:0!important}
.mb-3{margin-bottom:1rem!important}
.mt-3{margin-top:1rem!important}

.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg)}
.border-0{border:none!important}
.shadow-sm{box-shadow:var(--shadow-1)}
.card .card-body{padding:1.25rem}
@media (min-width:768px){ .card .card-body{padding:1.5rem} }

.titulo-lista{color:var(--text);font-weight:700;margin:0}

.muted{color:#6b7280}

/* breadcrumb nativo */
.breadcrumb{display:flex;gap:.25rem;list-style:none;padding:0;margin:0;color:#6b7280;font-size:.95rem}
.breadcrumb li{display:flex;align-items:center}
.breadcrumb li+li::before{content:'/';color:#9aa0a6;margin:0 .5rem}
.breadcrumb a{color:#4b5563}
.breadcrumb a:hover{text-decoration:underline}

/* grid de noticias */
.news-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media (min-width:576px){ .news-grid{grid-template-columns:repeat(2,1fr)} }
@media (min-width:992px){ .news-grid{grid-template-columns:repeat(3,1fr)} }

.news-card{
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
  transition:transform .12s ease, box-shadow .12s ease;
}
.news-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.07), 0 3px 8px rgba(0,0,0,.05);
}

.thumb.ratio{
  width:100%;
  aspect-ratio:4/3;
  position:relative;
  background:#f2f2f2;
}
.thumb.ratio > img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}

.news-card-body{
  padding:.9rem .95rem 1rem;
}
.news-title{
  font-size:1.02rem;
  line-height:1.35;
  margin:0 0 .35rem 0;
  color:var(--text);
  font-weight:700;
}
.news-title a:hover{ text-decoration:underline; }

.news-meta{ display:flex; gap:.5rem; align-items:center; }

/* badges nativas */
.badge{
  display:inline-block;
  border-radius:9999px;
  padding:.35rem .6rem;
  font-weight:600;
  letter-spacing:.2px;
  line-height:1;
  font-size:.82rem;
}
.bg-light.text-dark{ background:var(--soft); color:var(--ink); border:1px solid var(--line); }

/* paginación */
.pager{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.pager-info{ color:#6b7280; font-size:.95rem; }

.btn{
  display:inline-block;
  cursor:pointer;
  user-select:none;
  border-radius:.6rem;
  padding:.5rem .9rem;
  font-size:1rem;
  line-height:1.2;
  transition:background .2s ease, color .2s ease, border-color .2s ease, opacity .2s;
  border:1px solid #d4d7dc;
  color:#4a4f55;
  background:transparent;
}
.btn:hover{ background:#eef1f4; color:#2b2f33; border-color:#c7ccd2; }
.btn.disabled,
.btn[aria-disabled="true"]{ opacity:.45; pointer-events:none; }
.btn-outline-secondary{ /* ya definido por .btn base */ }
