/* Radio Rheinland – Startseiten-Banner direkt unter dem Header (Daten: radioapi.de) */
.rr-banners { margin: 28px 0 0; }
.rr-banners[hidden] { display: none !important; }
.rr-banners__track { display: grid; position: relative; isolation: isolate; }
.rr-banner { grid-area: 1 / 1; display: block; width: 100%; justify-self: center; overflow: hidden; border-radius: 12px; background: #15212c; border: 1px solid #354b5d; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .65s ease, visibility .65s ease; }
.rr-banner.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 1; }
.rr-banner img { display: block; width: 100%; height: auto; }
a.rr-banner:focus-visible { outline: 3px solid #8dbf24; outline-offset: 4px; }
.rr-banners__dots { display: flex; justify-content: center; align-items: center; gap: 4px; margin-top: 8px; }
.rr-banners__dot { position: relative; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.rr-banners__dot::before { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: #70818d; opacity: .65; transition: background .2s ease, transform .2s ease, opacity .2s ease; }
.rr-banners__dot.is-active::before { background: #8dbf24; opacity: 1; transform: scale(1.25); }
.rr-banners__dot:focus-visible { outline: 2px solid #8dbf24; outline-offset: 0; border-radius: 50%; }
@media (max-width: 760px) { .rr-banners { margin-top: 18px; } .rr-banner { border-radius: 9px; } }
@media (prefers-reduced-motion: reduce) { .rr-banner, .rr-banners__dot::before { transition: none; } }
