.site-announcements { position: relative; z-index: 1001; }
.site-announcement { display: flex; align-items: center; gap: 12px; padding: 11px max(18px, calc((100vw - 1140px) / 2)); color: #fff; background: linear-gradient(100deg, #ef2f91, #754de8); box-shadow: 0 5px 18px rgba(49, 27, 94, .16); }
.site-announcement-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.2); }
.site-announcement-copy { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; min-width: 0; flex: 1; font-size: .94rem; }
.site-announcement-copy strong { font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; }
.site-announcement-close { border: 0; padding: 0 4px; background: transparent; color: #fff; font-size: 1.7rem; line-height: 1; opacity: .85; }
.site-announcement-close:hover, .site-announcement-close:focus-visible { opacity: 1; }
@media (max-width: 575px) { .site-announcement { align-items: flex-start; gap: 9px; padding: 10px 14px; } .site-announcement-copy { display: block; font-size: .85rem; } .site-announcement-copy strong { display: block; margin-bottom: 2px; } }
.announcement-modal-open { overflow: hidden; }
.announcement-modal-backdrop { position: fixed; z-index: 1200; inset: 0; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(20, 15, 42, .68); opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; }
.announcement-modal-backdrop.is-visible { opacity: 1; visibility: visible; }
.announcement-modal { position: relative; width: min(100%, 520px); max-height: min(90vh, 720px); overflow-y: auto; padding: 40px 36px 30px; border: 1px solid rgba(119, 74, 226, .16); border-radius: 22px; background: #fff; box-shadow: 0 25px 80px rgba(17, 12, 39, .3); text-align: center; transform: translateY(12px) scale(.98); transition: transform .22s ease; outline: none; }
.announcement-modal-backdrop.is-visible .announcement-modal { transform: translateY(0) scale(1); }
.announcement-modal-close { position: absolute; top: 13px; right: 16px; display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f4f0fb; color: #39246f; font-size: 1.5rem; line-height: 1; }
.announcement-modal-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 20px; background: linear-gradient(140deg, #f3339c, #754de8); color: #fff; font-size: 1.55rem; box-shadow: 0 10px 24px rgba(121, 66, 205, .25); }
.announcement-modal-eyebrow { margin: 0 0 5px; color: #8b59d7; font-size: .78rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.announcement-modal h2 { margin: 0 0 14px; color: #211647; font-size: clamp(1.6rem, 5vw, 2rem); font-weight: 700; }
.announcement-modal-message { margin: 0 auto 26px; color: #68627a; font-size: 1rem; line-height: 1.75; white-space: pre-line; }
.announcement-modal-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; }
.announcement-modal-cta { display: inline-flex; align-items: center; gap: 9px; padding: 12px 20px; border-radius: 999px; background: linear-gradient(100deg, #ed3295, #754de8); color: #fff; font-weight: 600; text-decoration: none; box-shadow: 0 8px 20px rgba(119, 74, 226, .2); }
.announcement-modal-cta:hover, .announcement-modal-cta:focus-visible { color: #fff; filter: brightness(1.05); }
.announcement-modal-later { padding: 10px 14px; border: 0; background: transparent; color: #777187; font-weight: 500; }
@media (max-width: 575px) { .announcement-modal { padding: 38px 22px 24px; border-radius: 18px; } .announcement-modal-message { font-size: .94rem; } .announcement-modal-actions { gap: 8px; } }
