/* FAC public pages: the announcement card and its header pill (site-js/announce.js). FAC black and one gold.
   A corner card on a computer, a short strip at the bottom of a phone: it never covers the page's content. */
.fac-announce { position: fixed; z-index: 40; right: 20px; bottom: 20px; width: min(420px, calc(100vw - 24px)); display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px;
  padding: 14px 44px 14px 14px; border-radius: 20px; border: 1px solid rgba(255, 214, 64, .4); color: #f9f4e9;
  background: radial-gradient(120% 70% at 0 0, rgba(255, 214, 64, .14), transparent 60%), #0c0e0f; box-shadow: 0 24px 60px -18px #000, 0 0 30px -14px rgba(255, 214, 64, .5);
  font: 15px/1.45 Inter, Montserrat, Arial, sans-serif; transform-origin: right bottom; animation: facAnnounceIn .42s cubic-bezier(.32, .72, 0, 1) both; }
.fac-announce[hidden] { display: none; }
.fac-announce.from-pill { transform-origin: var(--ox, 100%) var(--oy, 0); animation: facAnnounceGrow .34s cubic-bezier(.32, .72, 0, 1) both; }
@keyframes facAnnounceIn { from { opacity: 0; transform: translateY(24px); } }
@keyframes facAnnounceGrow { from { opacity: 0; transform: scale(.4); } }
.fac-announce-img { width: 120px; height: auto; max-height: 160px; object-fit: cover; border-radius: 12px; align-self: start; }
.fac-announce-copy { min-width: 0; display: grid; gap: 4px; align-content: start; }
.fac-announce-eyebrow { margin: 0; color: #ffd640; font: 800 11px/1.2 Inter, Montserrat, Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.fac-announce-title { margin: 0; font-size: 20px; font-weight: 900; line-height: 1.15; }
.fac-announce-dates { margin: 0; color: #ffd640; font-weight: 800; }
.fac-announce-body { margin: 0; color: #b8b2a6; font-size: 14px; }
.fac-announce-acts { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 8px; }
.fac-announce-cta { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: 12px; font: 900 .78rem/1.15 Inter, Montserrat, Arial, sans-serif; text-transform: uppercase; text-decoration: none; color: #3b2a12;
  border: 1px solid rgba(117, 74, 8, .62); background: linear-gradient(180deg, rgba(255, 255, 255, .78), transparent 42%), linear-gradient(145deg, #fff9cf 0%, #facc15 27%, #d99a06 58%, #7b430c 100%);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -2px 0 rgba(92, 49, 8, .64); }
.fac-announce-later { min-height: 44px; padding: 0 12px; border: 0; background: none; color: #f9f4e9; font: 700 14px Inter, Montserrat, Arial, sans-serif; cursor: pointer; }
.fac-announce-close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255, 214, 64, .34); background: transparent; color: #f9f4e9; cursor: pointer; }
.fac-announce a:focus-visible, .fac-announce button:focus-visible, .fac-announce-pill:focus-visible { outline: 3px solid #ffd640; outline-offset: 2px; }
.fac-announce-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 214, 64, .45); background: rgba(255, 214, 64, .1);
  color: #ffd640; font: 800 13px Inter, Montserrat, Arial, sans-serif; cursor: pointer; white-space: nowrap; }
.fac-announce-dot { width: 8px; height: 8px; border-radius: 50%; background: #ffd640; box-shadow: 0 0 10px #ffd640; }
@media (max-width: 640px) {
  .fac-announce { left: 12px; right: 12px; bottom: 12px; width: auto; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; padding: 12px 40px 12px 12px; max-height: 40vh; overflow: auto; }
  .fac-announce-img { width: 72px; max-height: 96px; }
  .fac-announce-title { font-size: 17px; }
  .fac-announce-body { display: none; }
  .fac-announce-acts { margin-top: 4px; }
  .fac-announce-pill { padding: 0 10px; }
}
@media (prefers-reduced-motion: reduce) { .fac-announce, .fac-announce.from-pill { animation: none; } }
@media (forced-colors: active) { .fac-announce { border: 2px solid CanvasText; } .fac-announce-cta { border: 2px solid ButtonText; } }
