.csnh-news {
  --csnh-navy: var(--aff-brand-900, #0a2647);
  --csnh-blue: var(--aff-brand, #2f80ed);
  --csnh-gold: var(--aff-accent, #f9b233);
  --csnh-ink: var(--aff-ink, #172033);
  --csnh-muted: var(--aff-muted, #64748b);
  --csnh-line: var(--aff-line, #e2e8f0);
  color: var(--csnh-ink);
}

.csnh-news__intro {
  margin: 0 0 1.5rem;
  padding: 1.25rem 1.4rem;
  border-left: 4px solid var(--csnh-gold);
  border-radius: 0 12px 12px 0;
  background: #f8fafc;
}

.csnh-news__intro p { margin: 0; }
.csnh-news__notice { margin-top: .35rem !important; color: var(--csnh-muted); font-size: .95rem; }
.csnh-news__archive { display: grid; gap: 1.25rem; }
.csnh-month { overflow: hidden; border: 1px solid var(--csnh-line); border-radius: 16px; background: #fff; box-shadow: 0 7px 20px rgba(10, 38, 71, .06); }
.csnh-month > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; background: var(--csnh-navy); color: #fff; cursor: pointer; list-style: none; }
.csnh-month > summary::-webkit-details-marker { display: none; }
.csnh-month > summary::after { content: "+"; display: grid; flex: 0 0 2rem; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; font-size: 1.25rem; line-height: 1; }
.csnh-month[open] > summary::after { content: "−"; }
.csnh-month > summary:focus-visible { outline: 3px solid var(--csnh-gold); outline-offset: -4px; }
.csnh-month__label { font-size: clamp(1.05rem, 2vw, 1.3rem); font-weight: 800; }
.csnh-month__count { margin-left: auto; color: #dbeafe; font-size: .9rem; }
.csnh-month__content { display: grid; gap: 1.5rem; padding: 1.25rem; }
.csnh-day { overflow: hidden; border: 1px solid var(--csnh-line); border-radius: 12px; background: #f8fafc; }
.csnh-day > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; color: var(--csnh-blue); cursor: pointer; list-style: none; }
.csnh-day > summary::-webkit-details-marker { display: none; }
.csnh-day > summary::after { content: "+"; flex: 0 0 auto; color: var(--csnh-navy); font-size: 1.2rem; font-weight: 800; }
.csnh-day[open] > summary::after { content: "−"; }
.csnh-day > summary:focus-visible { outline: 3px solid var(--csnh-gold); outline-offset: -3px; }
.csnh-day__title { font-size: 1rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.csnh-day__count { margin-left: auto; color: var(--csnh-muted); font-size: .85rem; }
.csnh-day > .csnh-news__list { padding: 0 1rem 1rem; }
.csnh-news__list { display: grid; gap: 1rem; }

.csnh-card {
  padding: 1.35rem 1.4rem;
  border: 1px solid var(--csnh-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(10, 38, 71, .06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.csnh-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--csnh-blue) 40%, var(--csnh-line));
  box-shadow: 0 12px 28px rgba(10, 38, 71, .11);
}

.csnh-card--selected { border: 2px solid var(--csnh-gold); }
.csnh-card__meta { display: flex; flex-wrap: wrap; gap: .45rem .8rem; color: var(--csnh-muted); font-size: .86rem; }
.csnh-card__publisher { color: var(--csnh-navy); font-weight: 750; letter-spacing: .025em; }
.csnh-card__title { margin: .55rem 0 .8rem; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.3; }
.csnh-card__title a { color: var(--csnh-navy); text-decoration-thickness: 2px; text-underline-offset: .17em; }
.csnh-card__title a:hover { color: var(--csnh-blue); }

.csnh-card__action {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .62rem .9rem;
  border-radius: 9px;
  background: var(--csnh-navy);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
}

.csnh-card__action:hover { background: var(--csnh-blue); }
.csnh-news-link:focus-visible { outline: 3px solid var(--csnh-gold); outline-offset: 3px; }
.csnh-pagination { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.5rem; }
.csnh-pagination .page-numbers { padding: .55rem .75rem; border: 1px solid var(--csnh-line); border-radius: 8px; text-decoration: none; }
.csnh-pagination .current { background: var(--csnh-navy); color: #fff; }
.csnh-news__empty { padding: 1.5rem; border: 1px dashed var(--csnh-line); border-radius: 12px; color: var(--csnh-muted); }

@media (max-width: 640px) {
  .csnh-month > summary { align-items: flex-start; padding: .9rem 1rem; }
  .csnh-month__count { display: none; }
  .csnh-month__content { padding: 1rem; }
  .csnh-day__count { display: none; }
  .csnh-card { padding: 1.1rem; }
  .csnh-card__action { width: 100%; justify-content: center; }
}
