/* Keep article cards stable when editorial titles and summaries vary in length. */
.reading-grid {
  align-items: stretch;
}

.reading-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.reading-card .article-cover > span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reading-card .article-cover > strong {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.reading-card h3 {
  overflow-wrap: anywhere;
}

.reading-summary {
  display: -webkit-box;
  min-height: calc(1.7em * 3);
  margin: 0 0 14px;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.article-meta {
  width: 100%;
  margin-top: auto;
}

.article-meta > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.article-page > .article-cover > span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.article-page > .article-cover > strong {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.article-body h1,
.article-body > .muted,
.article-source,
.article-source a {
  overflow-wrap: anywhere;
}

@media (max-width: 480px) {
  .reading-card .article-cover > strong {
    line-height: 1.2;
  }

  .reading-summary {
    min-height: calc(1.7em * 3);
    margin-bottom: 11px;
    font-size: 11px;
  }

  .article-page > .article-cover > strong {
    font-size: clamp(22px, 8vw, 29px);
  }
}
