.news-hero-image {
  margin: 0 0 32px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--surface-2, #f4f8f7);
}
.news-hero-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; }
.news-hero-image figcaption { padding: 8px 12px; color: var(--ink-2); font-size: .78rem; text-align: center; }
.news-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; margin: 32px 0; }
.news-gallery-item { min-width: 0; margin: 0; }
.news-gallery-open { display: block; width: 100%; padding: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--surface-2, #f4f8f7); cursor: zoom-in; }
.news-gallery-open:focus-visible, .news-lightbox button:focus-visible { outline: 3px solid var(--teal-700); outline-offset: 3px; }
.news-gallery-open img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.news-gallery-item figcaption { padding: 8px 4px; color: var(--ink-2); font-size: .8rem; line-height: 1.6; }
.news-lightbox[hidden] { display: none; }
.news-lightbox { position: fixed; z-index: 10000; inset: 0; display: grid; grid-template-columns: minmax(44px, 72px) minmax(0, 1fr) minmax(44px, 72px); align-items: center; gap: 8px; padding: 64px 12px 16px; background: rgba(0, 20, 18, .95); color: #fff; }
.news-lightbox figure { min-width: 0; max-width: 1200px; width: 100%; max-height: calc(100dvh - 96px); margin: 0 auto; display: grid; justify-items: center; }
.news-lightbox figure img { max-width: 100%; max-height: calc(100dvh - 140px); width: auto; height: auto; object-fit: contain; }
.news-lightbox figcaption { max-width: 90vw; margin-top: 10px; text-align: center; line-height: 1.6; }
.news-lightbox button { min-width: 44px; min-height: 44px; border: 0; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; font: inherit; font-size: 1.8rem; cursor: pointer; }
.news-lightbox-close { position: absolute; top: 12px; inset-inline-end: 12px; }
@media (max-width: 600px) {
  .news-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .news-lightbox { grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 0; padding-inline: 4px; }
}
