.announcements-page__container { width: min(100%, 1180px); margin: 0 auto; padding: 0 15px; }
.announcements-page__content { padding: 100px 0 64px; }
.announcements-page__filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.announcements-page__filter { display: inline-block; padding: 11px 18px; border: 1px solid #e5e7eb; border-radius: 999px; background: #fff; color: #344054; text-decoration: none; font-size: 15px; font-weight: 700; line-height: 1.2; }
.announcements-page__filter:hover, .announcements-page__filter.is-active { color: #fff; background: #002f5f; border-color: #002f5f; }
.announcements-page__filter:focus-visible, .announcement-card:focus-visible { outline: 3px solid #f87500; outline-offset: 4px; }
.announcements-page__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.announcement-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #fff; border: 1px solid #e5e7eb; border-radius: 18px; color: #002f5f; text-decoration: none; box-shadow: 0 8px 24px rgba(0,47,95,.08); transition: box-shadow .2s; }
.announcement-card:hover { color: #002f5f; box-shadow: 0 12px 30px rgba(0,47,95,.15); }
.announcement-card__image { aspect-ratio: 16 / 10; background: #002f5f; overflow: hidden; }
.announcement-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.announcement-card__body { padding: 20px 22px; }
.announcement-card__category { margin: 0 0 10px; color: #f26a21; font-size: 14px; font-weight: 700; line-height: 1.35; }
.announcement-card__heading { display: flex; gap: 16px; align-items: flex-start; }
.announcement-card__heading h2 { margin: 0; color: #002f5f; font-size: 19px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.announcement-card__heading svg { width: 28px; height: 28px; flex: 0 0 28px; margin-top: 2px; color: #f26a21; }
.announcement-card time { display: block; margin-top: 12px; color: #667085; font-size: 15px; line-height: 1.5; }
.announcements-page__empty { padding: 40px 0; color: #667085; }
.announcements-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 991px) { .announcements-page__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .announcements-page__content { padding-top: 56px; } }
@media (max-width: 599px) { .announcements-page__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; } .announcements-page__content { padding-top: 32px; } .announcements-page__filter { font-size: 14px; padding: 10px 14px; } }
