/* Scoped announcement styles; reuses the theme's existing Bootstrap modal. */
.calm-announcement { --bs-modal-width: 860px; --bs-modal-margin: 1rem; }
.calm-announcement .modal-content { color: #fbf8f1; background: #142b35; border: 1px solid #5c7277; border-radius: 1.1rem; overflow: hidden; box-shadow: 0 24px 80px #0006; }
.calm-announcement .modal-body { display: grid; grid-template-columns: .9fr 1.1fr; padding: 0; }
.calm-announcement-photo { min-height: 510px; position: relative; background: #0d222b; }
.calm-announcement-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% center; }
.calm-announcement-copy { padding: 3rem 2.25rem 1.75rem; align-self: center; }
.calm-announcement-copy:only-child { grid-column: 1 / -1; max-width: 640px; margin: auto; }
.calm-announcement-logo { display: block; max-width: 260px; width: 100%; max-height: 92px; object-fit: contain; object-position: left center; margin: 0 0 1.5rem; }
.calm-announcement-eyebrow { color: #efd29a; text-transform: uppercase; letter-spacing: .1em; font-size: .68rem; font-weight: 700; line-height: 1.6; margin: 0 0 .6rem; }
.calm-announcement h2 { color: #fbf8f1; font-family: Charter, Cambria, Georgia, serif; font-size: clamp(1.9rem, 4vw, 2.6rem); font-weight: 400; line-height: 1.08; letter-spacing: -.02em; margin: 0 0 1rem; overflow-wrap: anywhere; }
.calm-announcement #calmAnnouncementMessage { color: #e1e7e5; font-size: 1rem; line-height: 1.65; margin: 0 0 1.5rem; overflow-wrap: anywhere; }
.calm-announcement-ticket { display: flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; min-height: 50px; padding: .85rem 1rem; border-radius: .4rem; background: #efd29a; color: #142b35; font-size: .95rem; font-weight: 750; line-height: 1.4; text-decoration: none; text-align: center; }
.calm-announcement-ticket:hover { color: #0d222b; background: #ffe3ad; text-decoration: none; }
.calm-announcement-ticket svg { flex: 0 0 20px; }
.calm-announcement-later { display: block; margin: .6rem auto .8rem; padding: .65rem; min-height: 44px; background: transparent; border: 0; color: #fbf8f1; font-size: .9rem; text-decoration: underline; text-underline-offset: .25em; }
.calm-announcement-close { position: absolute; z-index: 2; top: .65rem; right: .65rem; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #b7c5c5; border-radius: 50%; background: #0d222bef; color: #fff; }
.calm-announcement-close:hover { background: #355c48; }
.calm-announcement-optout { display: flex; align-items: center; gap: .6rem; min-height: 44px; margin: 0; color: #d1dcd8; font-size: .75rem; line-height: 1.5; cursor: pointer; }
.calm-announcement-optout input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; padding: 0; border-radius: .2rem; accent-color: #efd29a; }
.calm-announcement :is(a,button,input):focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 5px #142b35; }
@media (max-width: 639.98px) {
  .calm-announcement { --bs-modal-margin: .65rem; }
  .calm-announcement .modal-body { display: block; }
  .calm-announcement-photo { min-height: 0; height: 170px; }
  .calm-announcement-photo img { object-position: 50% 42%; }
  .calm-announcement-copy { padding: 1.5rem; }
  .calm-announcement-logo { max-width: 220px; max-height: 60px; margin-bottom: 1.1rem; }
  .calm-announcement h2 { font-size: 2rem; }
  .calm-announcement-copy:only-child { padding-top: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .calm-announcement.fade .modal-dialog { transition: none; transform: none; }
}
