body { background: #f6f6f6; }
.card-pub img, .card-evt img { object-fit: cover; height: 200px; width: 100%; display: block; border-top-left-radius: inherit; border-top-right-radius: inherit; }
.card-pub > a { display: block; line-height: 0; border-top-left-radius: inherit; border-top-right-radius: inherit; }
.badge-cat { background:#6c757d; color:#fff; }
.pub-body img, .evt-body img { max-width:100%; height:auto; }
.date-box { background:#c9302c; color:#fff; border-radius:.375rem; padding:.35rem .6rem; text-align:center; font-weight:600; line-height:1.1; display:inline-block; width:70px; flex:0 0 70px; box-sizing:border-box; }
.date-box .d { font-size:1.25rem; display:block; }
.date-box .m { font-size:.7rem; text-transform:uppercase; }
.side-filter { background:#fff; padding:1rem; border-radius:.5rem; }
.hero-carousel { max-height:410px; overflow:hidden; }
.hero-carousel .hero-link { display:block; color:inherit; text-decoration:none; }
.hero-slide { position:relative; height:370px; background-size:cover; background-position:center; }
.hero-slide__overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 100%); }
.hero-slide__content { position:absolute; left:0; right:0; bottom:2.5rem; color:#fff; text-shadow:0 2px 6px rgba(0,0,0,.45); }
.hero-slide__title { font-size:clamp(1.5rem, 3vw, 2.6rem); font-weight:700; margin:0 0 .35rem; }
.hero-slide__subtitle { font-size:clamp(.95rem,1.4vw,1.15rem); max-width:720px; margin:0; opacity:.95; }
@media (max-width: 576px) { .hero-slide { height:260px; } .hero-slide__content { bottom:1.25rem; } }
.shortcuts-bar { background:linear-gradient(180deg,#fff 0%,#f6f6f6 100%); border-bottom:1px solid #e5e7eb; }
.shortcuts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
@media (min-width: 576px) { .shortcuts-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (min-width: 768px) { .shortcuts-grid { grid-template-columns:repeat(8,minmax(0,1fr)); gap:.6rem; } }
/* Móvil: como hay 2 por fila, agrandamos los chips para que se lean mejor */
@media (max-width: 575.98px) {
  .shortcut-chip { padding:.7rem .8rem; min-height:64px; gap:.7rem; }
  .shortcut-chip__icon { flex:0 0 42px; width:42px; height:42px; font-size:1.25rem; }
  .shortcut-chip__label { font-size:.92rem; }
}
.shortcut-chip {
  position:relative;
  display:flex; align-items:center; gap:.55rem;
  padding:.5rem .7rem;
  background:#fff;
  border:1px solid #ececec;
  border-radius:.65rem;
  color:#212529;
  text-decoration:none;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
  overflow:hidden;
  min-height:52px;
}
.shortcut-chip__icon {
  flex:0 0 32px; width:32px; height:32px;
  display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#c9302c,#8b1a17);
  color:#fff; border-radius:.5rem;
  font-size:1rem;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
}
.shortcut-chip__label {
  font-size:.78rem; font-weight:600; line-height:1.1;
  letter-spacing:.01em;
  overflow:hidden; text-overflow:ellipsis;
}
.shortcut-chip__ext {
  position:absolute; top:.35rem; right:.4rem;
  font-size:.65rem; color:#adb5bd;
}
.shortcut-chip:hover {
  transform:translateY(-2px);
  border-color:#c9302c;
  box-shadow:0 6px 14px rgba(201,48,44,.18);
  color:#8b1a17;
}
.shortcut-chip:hover .shortcut-chip__icon { background:linear-gradient(135deg,#e04744,#a62220); }
.month-widget { background:#fff; border:1px solid #ececec; color:#212529; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .2s ease; }
.month-widget:hover { transform:translateY(-2px); border-color:#c9302c; box-shadow:0 8px 18px rgba(201,48,44,.18); color:#212529; }
.month-widget__icon { width:52px; height:52px; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#c9302c,#8b1a17); color:#fff; border-radius:.65rem; font-size:1.5rem; box-shadow:inset 0 -2px 0 rgba(0,0,0,.12); }
.month-widget__label { font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:#6c757d; font-weight:600; }
.month-widget__month { font-size:1.1rem; font-weight:700; color:#212529; }
.month-widget__count { font-size:2rem; font-weight:800; line-height:1; color:#c9302c; }
.month-widget__unit { font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:#6c757d; }
.month-widget--active { background:linear-gradient(135deg,#c9302c,#8b1a17); color:#fff; border-color:transparent; }
.month-widget--active .month-widget__label,
.month-widget--active .month-widget__month,
.month-widget--active .month-widget__unit { color:rgba(255,255,255,.85); }
.month-widget--active .month-widget__count { color:#fff; }
.month-widget--active .month-widget__icon { background:rgba(255,255,255,.18); box-shadow:none; }
