/* Editorial list primitives shared by the news list and article detail. */

.news-layout,.article-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 300px;
  align-items: start;
  gap: 24px;
  width: min(1200px,calc(100% - 48px));
  margin: 28px auto;
}

.news-layout>.content-sidebar,.article-layout>.content-sidebar {
  grid-column: 2;
  grid-row: 1;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.news-layout>.news-section,.article-layout>.article-panel {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
}

.sidebar-section h4 {
  font-size: 18px;
  margin-bottom: 16px;
}

.news-rank {
  counter-reset: news-rank;
}

.news-rank>a {
  display: flex;
  gap: 10px;
  padding: 13px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
}

.news-rank .rank-number::before {
  counter-increment: news-rank;
  content: counter(news-rank);
  color: var(--brand);
  font-weight: 600;
}

.news-rank .news-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.7;
}

.news-entry.news-card {
  display: flex;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.news-cover-link {
  flex: 0 0 160px;
}

.news-cover {
  width: 160px;
  aspect-ratio: 1.6;
  border-radius: 8px;
}

.news-content {
  flex: 1;
  min-width: 0;
}

.news-body {
  display: block;
}

.news-content .news-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 18px;
  line-height: 1.55;
  font-weight: 600;
}

.news-meta {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
}

.news-summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}
