/* Site-wide announcement banner (2026 templates). Navy matches the Jump co-brand. */
.snv-ann { --ann-bg:#002859; --ann-accent:#02DDC1; --ann-dot:#01E1FD; position:relative; background:var(--ann-bg); color:var(--color-white); font-family:var(--font-primary); }
.snv-ann[hidden] { display:none; }
.snv-ann-inner { display:flex; align-items:center; gap:20px; min-height:64px; padding-block:10px; }
.snv-ann-logos { display:flex; align-items:center; gap:16px; flex-shrink:0; }
.snv-ann-logos svg { height:28px; width:auto; display:block; }
.snv-ann-logos svg path:not(:first-child) { fill:var(--color-white); }
.snv-ann-divider { width:1px; height:28px; background:rgba(255,255,255,.35); }
.snv-ann-partner--jump { display:block; height:26px; aspect-ratio:2.3814; background:var(--ann-accent); -webkit-mask:url('../images/webinar/jump-desk/jump-logo-mask.png') center/contain no-repeat; mask:url('../images/webinar/jump-desk/jump-logo-mask.png') center/contain no-repeat; }
.snv-ann-chip { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; padding:5px 12px; border:1px solid rgba(255,255,255,.45); border-radius:999px; font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.snv-ann-chip i { width:7px; height:7px; border-radius:50%; background:var(--ann-dot); }
.snv-ann-text { flex:1; min-width:0; margin:0; font-size:18px; line-height:1.35; }
.snv-ann-text em { font-style:normal; font-weight:500; color:var(--ann-accent); }
.snv-ann-detail { color:rgba(255,255,255,.78); }
.snv-ann-detail::before { content:' · '; }
.snv-ann-detail-short { display:none; }
.snv-ann-detail-long, .snv-ann-detail-short { white-space:nowrap; }
@media (max-width:1600px) { .snv-ann-text { font-size:17px; } .snv-ann-detail-long { display:none; } .snv-ann-detail-short { display:inline; } }
/* The whole bar is the link target; the dismiss button sits above it. */
.snv-ann-link { flex-shrink:0; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 22px; border-radius:999px; background:var(--color-white); color:#00152E; font-size:16px; font-weight:500; text-decoration:none; }
.snv-ann-link::after { content:''; position:absolute; inset:0; }
.snv-ann:hover .snv-ann-link { background:var(--ann-accent); }
.snv-ann-link:focus-visible { outline:3px solid var(--ann-accent); outline-offset:3px; }
.snv-ann-dismiss { position:relative; z-index:1; flex-shrink:0; display:grid; place-items:center; width:36px; height:36px; margin-right:-8px; border:0; border-radius:50%; background:transparent; color:rgba(255,255,255,.75); font-size:24px; line-height:1; cursor:pointer; }
.snv-ann-dismiss:hover { color:var(--color-white); background:rgba(255,255,255,.1); }
.snv-ann-dismiss:focus-visible { outline:2px solid var(--ann-accent); outline-offset:2px; }

@media (max-width:1100px) {
  .snv-ann-logos .snv-ann-divider, .snv-ann-partner--jump { display:none; }
}
/* Below 1200px the logos and chip go, so a kicker line says what and who. */
.snv-ann-kicker { display:none; align-items:center; gap:7px; margin-bottom:3px; font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.82); }
.snv-ann-kicker i { width:6px; height:6px; border-radius:50%; background:var(--ann-dot); }
@media (max-width:1200px) {
  .snv-ann-chip { display:none; }
  .snv-ann-kicker { display:flex; }
  .snv-ann-inner { padding-block:12px; }
}
/* Phones: kicker, title and date stacked, then a full button. */
@media (max-width:860px) {
  .snv-ann-inner { display:grid; grid-template-columns:1fr auto; align-items:start; gap:12px 12px; padding-block:16px; }
  .snv-ann-logos { display:none; }
  .snv-ann-text { grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:3px; font-size:17px; line-height:1.3; }
  .snv-ann-kicker { margin-bottom:4px; }
  .snv-ann-detail::before { content:none; }
  .snv-ann-detail-long { display:none; }
  .snv-ann-detail-short { display:inline; font-size:14px; }
  .snv-ann-link { grid-column:1 / -1; grid-row:2; justify-self:start; min-height:42px; padding:0 20px; font-size:15px; }
  .snv-ann-dismiss { grid-column:2; grid-row:1; width:32px; height:32px; margin:-4px -6px 0 0; font-size:22px; }
}
/* Live dot: a soft pulse, like a recording light. */
.snv-ann-chip i, .snv-ann-kicker i { position:relative; }
.snv-ann-chip i::after, .snv-ann-kicker i::after { content:''; position:absolute; inset:0; border-radius:50%; background:var(--ann-dot); animation:snv-ann-pulse 2s ease-out infinite; }
@keyframes snv-ann-pulse { 0% { transform:scale(1); opacity:.7; } 80%, 100% { transform:scale(2.8); opacity:0; } }
@media (prefers-reduced-motion:reduce) { .snv-ann * { transition:none; } .snv-ann-chip i::after, .snv-ann-kicker i::after { animation:none; display:none; } }

/* Sign-in page promo: a slim card under the Sonovate sign-in card, for
   customers only, driven by the same Announcement as the site banner. */
.signin-col { display:flex; flex-direction:column; gap:12px; min-width:0; }
.signin-col > .signin-card { flex:1; }
.signin-col + .signin-card { align-self:start; }
.signin-promo { --ann-bg:#002859; --ann-accent:#02DDC1; --ann-dot:#01E1FD; display:grid; gap:4px; padding:18px 22px; border-radius:16px; background:var(--ann-bg); color:var(--color-white); text-align:left; text-decoration:none; transition:transform 160ms ease, box-shadow 160ms ease; }
.signin-promo:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,40,89,.22); }
.signin-promo:focus-visible { outline:3px solid var(--ann-accent); outline-offset:3px; }
.signin-promo-kicker { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.82); }
.signin-promo-kicker i { position:relative; width:6px; height:6px; border-radius:50%; background:var(--ann-dot); }
.signin-promo-kicker i::after { content:''; position:absolute; inset:0; border-radius:50%; background:var(--ann-dot); animation:snv-ann-pulse 2s ease-out infinite; }
.signin-promo-title { font-size:17px; font-weight:500; line-height:1.3; }
.signin-promo-title em { font-style:normal; color:var(--ann-accent); }
.signin-promo-meta { font-size:14px; color:rgba(255,255,255,.78); }
.signin-promo-cta { margin-top:6px; display:inline-flex; align-items:center; gap:6px; font-size:15px; font-weight:500; color:var(--ann-accent); }
.signin-promo:hover .signin-promo-cta { text-decoration:underline; text-underline-offset:4px; }
@media (prefers-reduced-motion:reduce) { .signin-promo { transition:none; } .signin-promo:hover { transform:none; } .signin-promo-kicker i::after { animation:none; display:none; } }
