/* No Promo Bar - Global removal without layout shifts */

/* Remove all promo bar variations */
.PromoBar,
.promo,
.promo-bar,
.notification-bar,
[data-promo],
.promo-sticky,
#promo,
#top-promo,
#notification-bar,
.top-banner,
.announcement-bar {
  display: none !important;
  position: static !important;
  inset: auto !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(-100%) !important;
}

/* Remove any padding added for promo bars */
body.has-promo,
html.has-promo,
body.with-promo,
body.promo-active,
body.notification-active {
  padding-top: 0 !important;
}

/* Adjust header if it was positioned for promo */
#header.with-promo,
#header.promo-offset,
header.with-promo,
header.promo-offset,
.header-fixed.with-promo {
  top: 0 !important;
  margin-top: 0 !important;
}

/* Fix hero sections that might have promo spacing */
.hero.with-promo,
.hero.promo-offset,
#hero.with-promo,
main.with-promo {
  margin-top: 0 !important;
  padding-top: var(--header-h, 56px) !important;
}

/* Ensure no JavaScript-added promo styles persist */
[style*="top: 48px"],
[style*="top: 44px"],
[style*="margin-top: 48px"],
[style*="margin-top: 44px"] {
  top: 0 !important;
  margin-top: 0 !important;
}

/* Override any animation states */
@keyframes hidePromo {
  to {
    display: none !important;
    height: 0 !important;
  }
}

.promo-dismissing,
.promo-hiding,
.notification-hiding {
  animation: hidePromo 0s forwards !important;
}

/* Clean up spacers added for promo */
.promo-spacer,
.notification-spacer,
[data-promo-spacer] {
  display: none !important;
  height: 0 !important;
}

/* Prevent future promos from showing */
body::before {
  content: '';
  position: fixed;
  top: -100px;
  left: 0;
  right: 0;
  height: 100px;
  z-index: 10000;
  pointer-events: none;
  background: transparent;
}