/* News list, news cards (also used on the home page) and single posts. */
.news-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.news-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-1); }
.news-card__media { display: block; }
.news-card__img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--cream-100); }
.news-card__img--none { display: grid; place-items: center; color: var(--green-800); }
.news-card__body { padding: var(--s-5); display: flex; flex-direction: column; gap: var(--s-2); flex: 1; }
.news-card__body p { margin: 0; }
.news-card__date { font-size: var(--fs-300); color: var(--ink-soft); }
.news-card__title { margin: 0; font-size: var(--fs-600); line-height: 1.3; }
.news-card__title a { color: var(--green-900); text-decoration: none; }
.news-card__title a:hover { text-decoration: underline; }
.news-card__excerpt { color: var(--ink); }
.news-card__more { font-weight: 600; }
.news-pager { display: flex; align-items: center; justify-content: center; gap: var(--s-4); margin-top: var(--s-6); flex-wrap: wrap; }
.news-more { text-align: center; margin-top: var(--s-6); }
.post__date { color: var(--ink-soft); margin: 0 0 var(--s-4); }
.post__cover { margin: 0 0 var(--s-5); }
.post__cover img { display: block; width: 100%; height: auto; border-radius: var(--r-lg); }
.post__body { font-size: var(--fs-500); line-height: 1.75; overflow-wrap: anywhere; }
.post__body h2 { margin: var(--s-6) 0 var(--s-3); font-size: var(--fs-700); }
.post__body ul { padding-left: 1.25rem; }
.post__gallery-title { margin: var(--s-7) 0 var(--s-3); font-size: var(--fs-700); }
.post__gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); }
.post__gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); }
.post__back { margin-top: var(--s-7); }
