.gm-announcements {
  --gm-announcement-blue: #06309f;
  --gm-announcement-cyan: #15a9e8;
  --gm-announcement-ink: #17233b;
  --gm-announcement-muted: #58657a;
  --gm-announcement-border: rgba(6, 48, 159, 0.14);
  color: var(--gm-announcement-ink);
}

.gm-announcements[hidden] { display: none !important; }
.gm-announcements-home { padding: 58px 0 64px; background: linear-gradient(180deg, #f5fbff 0%, #fff 100%); }
.gm-announcements__heading { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.gm-announcements__heading h1,
.gm-announcements__heading h2 { margin: 4px 0 10px; color: var(--gm-announcement-blue); font-size: clamp(24px, 3vw, 36px); line-height: 1.15; }
.gm-announcements__heading > p:last-child { color: var(--gm-announcement-muted); }
.gm-announcements__eyebrow,
.gm-announcement-card__type { margin: 0; color: var(--gm-announcement-cyan); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gm-announcements__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
.gm-announcements__grid > .gm-announcement-card { flex: 0 1 calc((100% - 44px) / 3); }
.gm-announcement-card { min-width: 0; overflow: hidden; border: 1px solid var(--gm-announcement-border); border-radius: 20px; background: #fff; box-shadow: 0 14px 34px rgba(6, 48, 159, .08); }
.gm-announcement-card__image { display: grid; min-height: 230px; place-items: center; padding: 14px; background: #eef5fb; }
.gm-announcement-card__image img,
.gm-announcement-poster,
.gm-announcement-modal__poster img { display: block; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.gm-announcement-card__image img { max-height: 310px; }
.gm-announcement-card__body { padding: 20px; overflow-wrap: anywhere; }
.gm-announcement-card__body h2 { margin: 7px 0 10px; color: var(--gm-announcement-blue); font-size: 20px; line-height: 1.25; }
.gm-announcement-card__body h2 a,
.gm-announcement-card__detail,
.gm-announcement-back { text-decoration: none; }
.gm-announcement-card__body > p:not(.gm-announcement-card__type) { color: var(--gm-announcement-muted); }
.gm-announcement-card time,
.gm-announcement-detail time { display: block; margin: 10px 0; color: var(--gm-announcement-muted); font-size: 13px; }
.gm-announcement-card__detail,
.gm-announcements__all,
.gm-announcement-back { color: var(--gm-announcement-blue); font-weight: 700; }
.gm-announcements__all-row { margin: 28px 0 0; text-align: center; }
.gm-announcement-list-page,
.gm-announcement-detail-page,
.gm-announcement-status { min-height: 65vh; padding: 130px 0 70px; }
.gm-announcement-detail-page { padding-top: 64px; }
.gm-announcements__empty,
.gm-announcement-status { text-align: center; }
.gm-announcements__pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.gm-announcements__pagination a { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--gm-announcement-border); border-radius: 50%; color: var(--gm-announcement-blue); text-decoration: none; }
.gm-announcements__pagination a[aria-current="page"] { color: #fff; background: var(--gm-announcement-blue); }
.gm-announcement-detail { max-width: 900px; margin: 22px auto 0; }
.gm-announcement-detail > header { margin-bottom: 24px; text-align: center; }
.gm-announcement-detail h1 { margin: 8px 0; color: var(--gm-announcement-blue); font-size: clamp(26px, 4vw, 42px); line-height: 1.18; }
.gm-announcement-detail__summary { color: var(--gm-announcement-muted); font-size: 18px; }
.gm-announcement-poster-scroll { max-width: 100%; overflow: auto; padding: 14px; border-radius: 20px; background: #eef5fb; }
.gm-announcement-poster { margin: 0 auto; }
.gm-announcement-detail__content,
.gm-announcement-modal__content { margin: 24px 0; white-space: pre-line; overflow-wrap: anywhere; line-height: 1.7; }
.gm-announcement-modal { width: min(90vw, 1040px); max-width: 90vw; max-height: 90dvh; padding: 0; overflow: hidden; border: 0; border-radius: 20px; color: var(--gm-announcement-ink); background: #fff; box-shadow: 0 30px 90px rgba(0, 20, 70, .35); }
.gm-announcement-modal::backdrop { background: rgba(4, 15, 43, .72); }
.gm-announcement-modal__close { position: absolute; z-index: 2; top: 10px; right: 10px; width: 44px; height: 44px; border: 0; border-radius: 50%; color: #fff; font-size: 28px; line-height: 1; background: var(--gm-announcement-blue); cursor: pointer; }
.gm-announcement-modal__scroll { max-height: 90dvh; overflow: auto; overscroll-behavior: contain; padding: 28px; }
.gm-announcement-modal__layout { display: grid; grid-template-columns: minmax(260px, 44%) minmax(0, 1fr); gap: 26px; align-items: start; }
.gm-announcement-modal__poster { display: grid; max-width: 100%; min-height: 260px; place-items: center; overflow: auto; border-radius: 14px; background: #eef5fb; }
.gm-announcement-modal__poster img { margin: 0 auto; }
.gm-announcement-modal__body { min-width: 0; padding: 20px 10px 20px 0; }
.gm-announcement-modal__body h2 { margin: 8px 0 12px; color: var(--gm-announcement-blue); font-size: clamp(24px, 3vw, 34px); line-height: 1.2; }
.gm-announcement-modal__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gm-announcement-modal :focus-visible,
.gm-announcements :focus-visible { outline: 3px solid #ffbf00; outline-offset: 3px; }
.gm-announcement-page .site-header nav { display: flex; align-items: center; gap: 18px; }

@media (min-width: 601px) {
  .gm-announcements__grid > .gm-announcement-card:only-child { flex-basis: min(800px, 100%); max-width: 800px; }
  .gm-announcements__grid > .gm-announcement-card:only-child .gm-announcement-card__image img { max-height: 560px; }
}

@media (min-width: 901px) {
  .gm-announcements__grid > .gm-announcement-card:first-child:nth-last-child(2),
  .gm-announcements__grid > .gm-announcement-card:first-child:nth-last-child(2) ~ .gm-announcement-card { flex-basis: min(520px, calc((100% - 22px) / 2)); max-width: 520px; }
}

@media (min-width: 1024px) {
  .gm-announcements-home .gm-announcements__grid > .gm-announcement-card:only-child { display: grid; flex-basis: min(1160px, 100%); max-width: 1160px; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); column-gap: 32px; align-items: stretch; }
  .gm-announcements-home .gm-announcements__grid > .gm-announcement-card:only-child .gm-announcement-card__image { min-width: 0; min-height: 0; }
  .gm-announcements-home .gm-announcements__grid > .gm-announcement-card:only-child .gm-announcement-card__body { display: flex; min-width: 0; flex-direction: column; justify-content: center; align-self: stretch; padding: 28px; }
  .gm-announcement-detail-page { padding-top: 28px; }
  .gm-announcement-detail-page > .container > p { margin: 0; }
  .gm-announcement-detail { display: grid; max-width: 1120px; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); column-gap: 32px; row-gap: 0; align-items: start; margin-top: 10px; }
  .gm-announcement-detail > header { min-width: 0; grid-column: 1; grid-row: 1; margin: 0; overflow-wrap: anywhere; text-align: left; }
  .gm-announcement-detail h1 { font-size: clamp(28px, 2.4vw, 36px); overflow-wrap: anywhere; }
  .gm-announcement-detail__summary { margin-bottom: 0; overflow-wrap: anywhere; line-height: 1.6; }
  .gm-announcement-poster-scroll { display: grid; min-width: 0; grid-column: 2; grid-row: 1 / span 3; align-self: start; place-items: start center; margin-top: -30px; }
  .gm-announcement-detail__content { min-width: 0; grid-column: 1; grid-row: 2; margin: 18px 0 0; }
  .gm-announcement-detail > p { min-width: 0; grid-column: 1; grid-row: 3; margin: 20px 0 0; }
  .gm-announcement-detail > p .button { max-width: 100%; overflow-wrap: anywhere; white-space: normal; text-align: center; }
}

@media (max-width: 900px) {
  .gm-announcements__grid > .gm-announcement-card { flex-basis: calc((100% - 22px) / 2); }
  .gm-announcement-modal__layout { grid-template-columns: 1fr; }
  .gm-announcement-modal__poster { max-height: 62dvh; }
  .gm-announcement-page .site-header nav { position: static; display: flex; width: auto; padding: 0; background: transparent; box-shadow: none; transform: none; }
}

@media (max-width: 600px) {
  .gm-announcements-home { padding: 42px 0 48px; }
  .gm-announcements__grid > .gm-announcement-card { flex-basis: 100%; }
  .gm-announcement-card__image { min-height: 210px; }
  .gm-announcement-list-page,
  .gm-announcement-detail-page,
  .gm-announcement-status { padding: 105px 0 50px; }
  .gm-announcement-modal { width: calc(100vw - 12px); max-width: calc(100vw - 12px); max-height: calc(100dvh - 12px); border-radius: 14px; }
  .gm-announcement-modal__scroll { max-height: calc(100dvh - 12px); padding: 58px 14px 18px; }
  .gm-announcement-modal__poster { min-height: 180px; max-height: 68dvh; }
  .gm-announcement-modal__body { padding: 0; }
  .gm-announcement-page .brand-copy { display: none; }
  .gm-announcement-page .site-header nav { gap: 10px; }
  .gm-announcement-page .site-header nav a { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .gm-announcement-modal,
  .gm-announcement-modal::backdrop { animation: none !important; }
}
