/* Only Hub-managed banners; existing standard marketing blocks keep their styles. */
.ost-managed-ad[data-ost-managed-ad] { box-sizing: border-box; position: relative; display: block; min-width: 0; max-width: 100%; width: 100%; overflow: hidden; isolation: isolate; }
.ost-managed-ad[data-ost-managed-ad][hidden] { display: none !important; }
.ost-managed-ad.ost-managed-ad--large { aspect-ratio: 7 / 3; max-width: 700px; height: auto; margin-inline: auto; border-radius: 20px; }
.ost-managed-ad.ost-managed-ad--small { aspect-ratio: 1; max-width: 300px; }
.ost-managed-ad[data-ost-managed-ad] > .ost-managed-ad__slide { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; margin: 0; }
.ost-managed-ad[data-ost-managed-ad] > .ost-managed-ad__slide[hidden] { display: none !important; }
.ost-managed-ad[data-ost-managed-ad] > .ost-managed-ad__slide > .ost-managed-ad__link { box-sizing: border-box; position: relative; display: block; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; overflow: hidden; }
.ost-managed-ad .ost-managed-ad__link picture { display: block; width: 100%; height: 100%; }
.ost-managed-ad .ost-managed-ad__link img { display: block; position: static; width: 100%; height: 100%; max-width: 100%; min-height: 0; margin: 0; object-fit: contain; opacity: 1; }
.ost-managed-ad .ost-managed-ad__link:focus-visible { outline: 3px solid #176b3a; outline-offset: -4px; }
.ost-managed-ad .ost-ad-label { position: absolute; z-index: 2; top: 8px; right: 10px; left: auto; width: max-content; max-width: calc(100% - 20px); padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,.9); color: #33413a; font-size: 7px; font-weight: 700; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.ost-managed-ad--small .ost-managed-ad__link img, .ost-managed-ad--large .ost-managed-ad__link img { object-fit: cover; }
.ost-managed-ad .ost-managed-ad__pause { box-sizing: border-box; position: absolute; z-index: 4; right: 4px; bottom: 4px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 10px; border: 0; border-radius: 5px; background: transparent; color: #fff; cursor: pointer; box-shadow: none; }
.ost-managed-ad .ost-managed-ad__pause svg { display: block; width: 24px; height: 24px; fill: currentColor; filter: drop-shadow(0 1px 2px rgba(0,0,0,.65)); pointer-events: none; }
.ost-managed-ad .ost-managed-ad__pause .ost-managed-ad__play, .ost-managed-ad .ost-managed-ad__pause[aria-pressed="true"] .ost-managed-ad__pause-mark { display: none; }
.ost-managed-ad .ost-managed-ad__pause[aria-pressed="true"] .ost-managed-ad__play { display: block; }
.ost-managed-ad .ost-managed-ad__pause:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
.ost-managed-ad .ost-managed-ad__pause[hidden] { display: none !important; }
.ost-managed-ad--small .ost-top-event__overlay { box-sizing: border-box; position: absolute; inset: auto 0 0; display: flex; align-items: end; gap: 10px; padding: 42px 18px 20px; color: #fff; background: linear-gradient(transparent,rgba(0,0,0,.7)); }
.ost-managed-ad--small .ost-top-event__overlay strong { display: block; min-width: 0; flex: 1; color: inherit; font-size: 23px; line-height: 1.15; }
.ost-managed-ad--small .ost-top-event__cta, .ost-managed-ad .ost-ad-title--mobile { display: none; }
@media (max-width:700px) {
  /* Viewport-relative mobile banners: four percent clear space at each side. */
  body.ostsachsen-portal .ost-marketing-grid:has(.ost-managed-ad--large) { position: relative; box-sizing: border-box; width: 92vw !important; max-width: 92vw !important; margin-inline: calc((100% - 92vw) / 2) !important; background: transparent; }
  .ost-managed-ad .ost-ad-title--standard { display: none; }
  .ost-managed-ad .ost-ad-title--mobile { display: inline; }
  .ost-managed-ad.ost-managed-ad--small.ost-top-event { max-width: 100%; height: var(--ost-ad-mobile-height,72px) !important; min-height: 0 !important; aspect-ratio: auto; }
  .ost-managed-ad--small .ost-top-event__overlay { position: relative; inset: auto; align-items: center; height: 100%; min-height: 0; padding: 24px 12px 8px; background: linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.18)); }
  .ost-managed-ad--small .ost-top-event__overlay strong { font-size: 18px; }
  .ost-managed-ad--small .ost-managed-ad__link img { position: absolute; inset: 0; object-fit: cover; }
  .ost-managed-ad--small .ost-ad-label { top: 7px; left: 10px; right: auto; padding: 2px 6px; font-size: 9px; }
  .ost-managed-ad--small .ost-managed-ad__pause { top: 0; right: 0; bottom: auto; }
  body.ostsachsen-portal .ost-mobile-reading .ost-managed-ad.ost-managed-ad--small.ost-top-event { height: clamp(180px,52vw,240px) !important; min-height: 180px !important; }
  body.ostsachsen-portal .ost-mobile-reading .ost-managed-ad--small > .ost-managed-ad__slide { position: absolute; inset: 0; height: 100%; min-height: 180px; }
  body.ostsachsen-portal .ost-mobile-reading .ost-managed-ad--small .ost-ad-label { top: 10px; left: auto; right: 10px; padding: 2px 6px; font-size: 9px; }
}
