/* UBH sponsor banner — injected server-side (lib/ubh-sponsor-banner.js) on every public HTML page.
   In normal document flow above the site header: no fixed-position overlap, no layout shift.
   The sticky .site-header still pins to top:0 once the banner scrolls away. */
:root { --ubh-banner-h: 48px; --ubh-red: #ba2a32; --ubh-gold: #c9a84c; }
.ubh-sponsor-banner {
  position: relative; z-index: 1001; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: var(--ubh-banner-h); margin: 0; padding: 0 1rem; overflow: hidden;
  background: linear-gradient(90deg, #0a0f1a 0%, #05070c 100%);
  border-bottom: 1px solid var(--ubh-gold);
  color: #fff; text-decoration: none !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; line-height: 1.25;
}
.ubh-sponsor-banner:hover { background: linear-gradient(90deg, #0c1526 0%, #070b14 100%); }
.ubh-sponsor-banner:focus-visible { outline: 2px solid var(--ubh-gold); outline-offset: -3px; }
.ubh-sponsor-banner .ubh-inner { display: flex; align-items: center; gap: .85rem; width: 100%; max-width: 1120px; }
.ubh-sponsor-banner .ubh-logo { height: 34px; width: 34px; flex: 0 0 auto; display: block; margin: 0; border: 0; }
.ubh-sponsor-banner .ubh-copy { display: flex; align-items: baseline; flex-wrap: wrap; flex: 1 1 auto; min-width: 0; }
.ubh-sponsor-banner .ubh-sponsored { font-size: .85rem; color: #e8edf5; white-space: nowrap; letter-spacing: .01em; }
.ubh-sponsor-banner .ubh-sponsored strong { color: #fff; font-weight: 700; }
.ubh-sponsor-banner .ubh-sep { color: var(--ubh-gold); opacity: .75; margin: 0 .45rem; }
.ubh-sponsor-banner .ubh-tag { font-size: .82rem; color: #c9d4e2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ubh-sponsor-banner .ubh-cta {
  flex: 0 0 auto; margin-left: auto; font-size: .78rem; font-weight: 700; color: #fff;
  background: var(--ubh-red); padding: .35rem .85rem; border-radius: 4px; white-space: nowrap;
}
.ubh-sponsor-banner:hover .ubh-cta { background: #d23a3a; }
.ubh-sponsor-banner .ubh-cta-compact { display: none; }
@media (max-width: 768px) {
  :root { --ubh-banner-h: 72px; }
  .ubh-sponsor-banner .ubh-inner { gap: .5rem; }
  .ubh-sponsor-banner .ubh-logo { height: 30px; width: 30px; }
  .ubh-sponsor-banner .ubh-copy { flex-direction: column; align-items: flex-start; flex-wrap: nowrap; gap: 2px; }
  .ubh-sponsor-banner .ubh-sep { display: none; }
  .ubh-sponsor-banner .ubh-sponsored { font-size: .75rem; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .ubh-sponsor-banner .ubh-tag { font-size: .72rem; color: #b8c5d6; max-width: 100%; }
  .ubh-sponsor-banner .ubh-cta-full { display: none; }
  .ubh-sponsor-banner .ubh-cta-compact { display: inline-block; font-size: .72rem; padding: .3rem .55rem; }
}
/* Close button: sibling of the link (not nested), absolutely positioned at the right end. */
.ubh-sponsor-wrap { position: relative; z-index: 1001; }
.ubh-sponsor-banner { padding-right: 3rem; }
.ubh-sponsor-close {
  position: absolute; top: 50%; right: .5rem; transform: translateY(-50%); z-index: 1002;
  width: 32px; height: 32px; min-width: 32px; min-height: 32px; padding: 0; margin: 0;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: 0; border-radius: 4px; cursor: pointer;
  color: #c9d4e2; font: 400 22px/1 Arial, sans-serif;
}
.ubh-sponsor-close:hover { color: #fff; background: rgba(255,255,255,.1); }
.ubh-sponsor-close:focus-visible { outline: 2px solid var(--ubh-gold); outline-offset: 1px; color: #fff; }
/* Dismissed (class set pre-paint by /js/ubh-sponsor-banner-head.js): no banner, no reserved space. */
html.ubh-banner-closed { --ubh-banner-h: 0px; }
html.ubh-banner-closed .ubh-sponsor-wrap { display: none !important; }
@media (max-width: 768px) { .ubh-sponsor-banner { padding-right: 2.75rem; } .ubh-sponsor-close { right: .25rem; } }
@media print { .ubh-sponsor-banner, .ubh-sponsor-wrap { display: none; } }
