/* News — index lists, category bar, article typography */

.catbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 26px;
  align-items: baseline;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--t-mid);
}

.catbar a { transition: color .18s ease; border-bottom: 1px solid transparent; }
.catbar a:hover { color: var(--t-ink); border-color: var(--graphite); }
.catbar a.on { color: var(--t-ink); border-color: var(--t-ink); }
.catbar span { color: var(--t-mute); font-size: 11px; letter-spacing: .06em; }

.nlist { margin-top: 8px; border-top: 1px solid var(--line); }

.nrow {
  display: grid;
  grid-template-columns: 120px 1fr 200px;
  gap: 26px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  transition: background-color .18s ease;
}

.nrow:hover { background: #fbfcfd; }

.nrow time {
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--t-mute);
  font-variant-numeric: tabular-nums;
}

.nrow h3 { font-size: 17px; font-weight: 600; letter-spacing: -.012em; transition: color .18s ease; }

.nrow p {
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.62;
  color: var(--t-mid);
}

.nrow .ncat {
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--graphite);
  text-align: right;
  font-weight: 600;
}

.nrow:hover h3 { color: var(--graphite); }

/* article */
.art-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--t-mute);
  padding-top: 34px;
}

.art-meta a {
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--graphite);
  font-weight: 600;
  border-bottom: 1px solid transparent;
  transition: border-color .18s ease;
}

.art-meta a:hover { border-color: var(--graphite); }

.article-head h1 { margin-top: 18px; max-width: 900px; }
.article-head .lede { max-width: 820px; padding-bottom: 34px; }

.article-body {
  border-top: 1px solid var(--t-ink);
  padding: 28px 0 6px;
  max-width: 780px;
  font-size: 14px;
  line-height: 1.85;
  color: #3f4952;
}

.article-body p + p { margin-top: 14px; }

.article-body h2 {
  margin: 34px 0 10px;
  font-size: 20px;
  line-height: 1.3;
  letter-spacing: -.015em;
  font-weight: 600;
  color: var(--t-ink);
}

.article-body h3 {
  margin: 24px 0 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--t-ink);
}

.article-body ul,
.article-body ol { margin: 12px 0 0; padding-left: 20px; }

.article-body li { list-style: disc; margin-top: 6px; }
.article-body ol li { list-style: decimal; }

.article-body a { border-bottom: 1px solid #c6cdd4; color: var(--t-ink); transition: border-color .18s ease; }
.article-body a:hover { border-color: var(--graphite); }

.article-body strong, .article-body b { color: var(--t-ink); font-weight: 600; }

.article-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0 4px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--t-mid);
}

.article-body th {
  text-align: left;
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--t-mute);
  font-weight: 600;
  background: var(--panel);
  padding: 9px 14px 9px 0;
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--t-ink);
}

.article-body td {
  padding: 9px 14px 9px 0;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.article-body td:first-child { color: var(--t-ink); font-weight: 600; }

.artfoot {
  margin-top: 34px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--t-mute);
}

.artfoot a { color: var(--graphite); border-bottom: 1px solid transparent; transition: border-color .18s ease, color .18s ease; }
.artfoot a:hover { color: var(--t-ink); border-color: var(--graphite); }

@media (max-width: 980px) {
  .nrow { grid-template-columns: 96px 1fr; gap: 16px; }
  .nrow .ncat { grid-column: 2; text-align: left; margin-top: 6px; }
}

@media (max-width: 720px) {
  .nrow { grid-template-columns: 1fr; gap: 6px; }
  .nrow .ncat { grid-column: 1; }
  .article-body { font-size: 13.5px; }
  .article-body table { display: block; overflow-x: auto; }
}
