/* Shared public-site invitation; omitted on waitlist and confirmation pages. */
.has-waitlist-banner { padding-top: 0; }
.has-waitlist-banner .sp-nav { position: sticky; transform: translateY(0); }
.has-waitlist-banner .sp-nav.sp-nav-hidden { transform: translateY(-100%); }
.has-waitlist-banner .sp-nav-menu.sp-nav-open { max-height: calc(100dvh - 134px); }
.wl-banner { background: var(--sp-teal); color: #fff; border-bottom: 1px solid rgba(255,255,255,.2); }
.wl-banner-inner { display: flex; justify-content: center; align-items: center; gap: 10px clamp(20px, 3vw, 40px); padding-block: 12px; width: min(1200px, calc(100% - 2 * clamp(20px, 4vw, 48px))); margin-inline: auto; }
.wl-banner p { margin: 0; font-size: clamp(15px, 1.3vw, 17px); }
.wl-banner a { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 44px; padding: 10px 18px; border-radius: 5px; background: var(--sp-gold); color: var(--sp-text); font-size: 14px; line-height: 1.4; font-weight: 700; text-decoration: none; }
.wl-banner a:hover { background: var(--sp-gold-hover); }
.wl-banner a:focus-visible { outline: 3px solid white; outline-offset: 4px; }
@media (max-width: 599px) {
  .wl-banner-inner { flex-direction: column; gap: 8px; }
  .has-waitlist-banner .sp-nav-menu.sp-nav-open { max-height: calc(100dvh - 170px); }
}
