.news-archive { width: 100%; max-width: 1222px; padding: 40px 15px; margin: 0 auto; color: #767676; font: 400 14px/1.6 Montserrat, sans-serif; }
.news-listing { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 20px; }
.news-card { min-width: 0; background: white; box-shadow: 0 0 4px #0000001f; }
.news-photo { position: relative; overflow: hidden; }
.news-photo > a { display: block; }
.news-photo img { display: block; width: calc(100% + 4px); max-width: none; height: auto; margin: -2px; transition: transform 350ms ease; }
.news-card:hover .news-photo img { transform: scale(1.05); }
.news-date { position: absolute; left: 10px; top: 10px; width: 53px; background: white; color: #333; text-align: center; }
.news-date span { display: block; }
.news-date span:first-child { padding: 6px 0 4px; font-size: 24px; line-height: 24px; }
.news-date span:last-child { padding: 2px 0 8px; font-size: 12px; line-height: 12px; font-weight: 600; text-transform: uppercase; }
.news-body { position: relative; padding: 25px; text-align: center; }
.news-archive .news-body a.news-category, .news-archive .news-body a.news-category:hover { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); padding: 0 10px; background: #5f6e1e; color: white; font-size: 12px; line-height: 25px; font-weight: 600; text-transform: uppercase; text-decoration: none; }
.news-archive .news-body h3 { margin: 0 0 10px; color: #333; font: 600 24px/1.4 Lora, serif; text-wrap: wrap; }
.news-body h3 a { color: inherit; text-decoration: none; }
.news-archive .news-body h3 a:hover { color: #5f6e1e; }
.news-author { display: flex; align-items: center; justify-content: center; gap: 7px; height: 20px; margin-bottom: 10px; color: #767676; }
.news-archive .news-body .news-author svg { width: 18px; height: 18px; color: #bbb; }
.news-excerpt { margin: 0; line-height: 1.6; }
.news-more { margin: 15px 0 0; line-height: 14px; }
.news-archive .news-body .news-more a, .news-archive .news-body .news-more a:hover { color: #5f6e1e; font-size: 13px; font-weight: 800; text-transform: uppercase; text-decoration: none; }
.news-more a:hover { text-decoration: underline; }
.news-listing.is-masonry { display: block; }
.news-listing.is-masonry .news-card { position: absolute; top: 0; left: 0; }
@media (max-width: 767px) {
  .news-archive { padding: 40px 15px; }
  .news-listing { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .news-archive .news-body h3 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .news-photo img { transition: none; } }
