/* Unrote - /articles/ and the five articles: the list with the topic filter, the article layout (meta column,
   contents, text, author and the dark call to action), tables, and the chart of bench-season-1, which keeps its own
   wider rhythm. After base.css and components.css. A change here: bump ?v= of this file in the six pages. */
.ink {
  color: #181715;
}

/* the list */
.articles-hero {
  padding: 56px 0 24px;
}
.articles-lead {
  margin-top: 32px;
  max-width: 42ch;
}
.topic-filter {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.post-list {
  padding-bottom: 96px;
}
.post {
  display: grid;
  grid-template-columns: minmax(0,22%) minmax(0,1fr);
  gap: 16px 48px;
  padding: 40px 0;
  text-decoration: none;
  border-top: 1px solid #c8c8c2;
}
.post-meta {
  font-size: 15px;
  color: #55544f;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.post-title {
  margin: 0;
  font-family: 'Inter Tight',sans-serif;
  font-weight: 600;
  font-size: clamp(26px,2.6vw,38px);
  line-height: 1.15;
  max-width: 34ch;
}
.post-excerpt {
  margin: 12px 0 0;
  max-width: 66ch;
}
@media (hover:hover) and (pointer:fine) {
  .post:hover h2 {
    text-decoration: underline;
  }
}
@media (max-width:760px) {
  .post {
    grid-template-columns: 1fr;
  }
}

/* the closing band of the list */
.cta-link {
  align-self: flex-start;
}

/* an article: the head (meta column and title), then contents and text in the same two columns */
.article {
  padding: 48px 0 72px;
}
.article-head {
  display: grid;
  grid-template-columns: minmax(0,22%) minmax(0,1fr);
  gap: 24px 48px;
}
.article-meta {
  font-size: 15px;
  color: #55544f;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.article-title {
  font-size: clamp(30px,3vw,42px);
  line-height: 1.1;
  max-width: 26ch;
}
.article-lead {
  margin-top: 20px;
  max-width: 60ch;
}
.article-note {
  margin: 16px 0 0;
  font-size: 15px;
  color: #55544f;
  max-width: 60ch;
}
.article-main {
  margin-top: 48px;
  display: grid;
  grid-template-columns: minmax(0,22%) minmax(0,1fr);
  gap: 48px;
}
.toc {
  font-size: 15px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-self: start;
}
.toc b {
  font-weight: 600;
}
.prose, .bench-text {
  min-width: 0;
  max-width: 760px;
}
.prose p {
  margin: 0 0 20px;
  max-width: 66ch;
}
.prose h2 {
  margin: 56px 0 16px;
}
.prose ul, .prose ol {
  margin: 0 0 20px;
  padding-left: 22px;
  max-width: 62ch;
}
.prose li {
  margin: 0 0 8px;
}
.prose .sources {
  margin: 0 0 20px;
  padding-left: 22px;
  max-width: 66ch;
  font-size: 15px;
}
.prose .callout {
  margin: 0 0 16px;
  padding: 16px 20px;
  background: #ffffff;
  max-width: 66ch;
}
.table-scroll {
  overflow-x: auto;
  margin: 28px 0;
}
.data-table {
  min-width: 640px;
  font-size: 16px;
}
.fail-cell {
  color: #8a2a1a;
  font-weight: 600;
}
.fail-tag {
  font-size: 13px;
  font-weight: 600;
  color: #8a2a1a;
  margin-left: 4px;
}

/* the end of an article: the author and the dark call to action */
.article-end {
  margin-top: 72px;
  display: grid;
  grid-template-columns: minmax(0,22%) minmax(0,1fr);
  gap: 48px;
}
.author {
  font-size: 16px;
}
.author b {
  font-weight: 600;
}
.author-link {
  margin: 8px 0 0;
}
.author-cite {
  margin: 20px 0 0;
  color: #55544f;
}
.article-cta {
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.article-cta-text {
  margin: 0;
  max-width: 52ch;
}
.article-cta-note {
  margin: 0;
  font-size: 15px;
  color: #b8bcc6;
}
.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* bench-season-1: a longer article with a summary box, wide tables and the pass/fail chart */
.bench-article {
  padding: 48px 0 96px;
}
.bench-title {
  margin: 0;
  font-family: 'Inter Tight',sans-serif;
  font-weight: 600;
  font-size: clamp(30px,3vw,42px);
  line-height: 1.1;
  max-width: 26ch;
}
.bench-lead {
  margin: 28px 0 0;
  font-size: clamp(19px,1.5vw,22px);
  line-height: 1.45;
  max-width: 60ch;
}
.bench-note {
  margin: 20px 0 0;
  font-size: 15px;
  color: #55544f;
  max-width: 60ch;
}
.bench-main {
  margin-top: 64px;
  display: grid;
  grid-template-columns: minmax(0,22%) minmax(0,1fr);
  gap: 48px;
}
.bench-text p {
  margin: 0 0 22px;
  max-width: 66ch;
}
.bench-text h2 {
  margin: 72px 0 20px;
  font-family: 'Inter Tight',sans-serif;
  font-weight: 600;
  font-size: clamp(28px,2.6vw,36px);
  line-height: 1.15;
}
.bench-text ul {
  margin: 0 0 22px;
  padding-left: 22px;
  max-width: 62ch;
}
.bench-text li {
  margin: 0 0 8px;
}
.bench-summary {
  background: #2456d6;
  color: #ffffff;
  padding: 32px 36px;
  margin: 0 0 48px;
  font-size: 18px;
}
.bench-scroll {
  overflow-x: auto;
  margin: 32px 0;
}
.bench-text table {
  border-collapse: collapse;
  width: 100%;
  min-width: 720px;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}
.bench-text th {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 2px solid #181715;
  font-weight: 600;
}
.bench-text td {
  padding: 10px 12px;
  border-bottom: 1px solid #dcdcd6;
  vertical-align: top;
}
/* the cells of the lanes not scored keep the padding of a plain table cell, as they always had */
.bench-text td[data-result="na"] {
  padding: 12px;
}
.total-row {
  font-weight: 600;
  background: #dcdcd6;
}
/* the price bars (.bar has no style of its own: the spans draw nothing) */
.bar-c1 {
  width: 100%;
}
.bar-c16 {
  width: 14.75%;
}
.bar-c64 {
  width: 7.7%;
}

/* the chart: a chip per lane, nine cells (blue - passed, grey - failed), the score and a note */
.bench-chart {
  background: #ffffff;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 40px 0;
}
.bench-lanes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bench-lane {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.bench-cells {
  display: flex;
  gap: 6px;
  align-items: stretch;
}
.bench-cells > div {
  flex: 1 1 0;
  height: 56px;
  background: #dcdcd6;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 6px;
  font-size: 13px;
  color: #63625c;
}
.bench-cells > .pass {
  background: #2456d6;
  color: #ffffff;
}
/* the shown lane fills its cells left to right (shared/pages/articles-bench-season-1.js adds .fill) */
.bench-lane.fill .bench-cells > div {
  animation: cell 260ms cubic-bezier(.23,1,.32,1) both;
}
.bench-lane.fill .bench-cells > div:nth-child(2) { animation-delay: 50ms; }
.bench-lane.fill .bench-cells > div:nth-child(3) { animation-delay: 100ms; }
.bench-lane.fill .bench-cells > div:nth-child(4) { animation-delay: 150ms; }
.bench-lane.fill .bench-cells > div:nth-child(5) { animation-delay: 200ms; }
.bench-lane.fill .bench-cells > div:nth-child(6) { animation-delay: 250ms; }
.bench-lane.fill .bench-cells > div:nth-child(7) { animation-delay: 300ms; }
.bench-lane.fill .bench-cells > div:nth-child(8) { animation-delay: 350ms; }
.bench-lane.fill .bench-cells > div:nth-child(9) { animation-delay: 400ms; }
@keyframes cell {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
}
@media (prefers-reduced-motion:reduce) {
  .bench-lane.fill .bench-cells > div {
    animation: none;
  }
}
.bench-caption {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 16px;
}
.bench-score {
  font-weight: 600;
}
.bench-lane-note {
  color: #55544f;
}
