main:has([data-type="ryze/media-banner"]) {
    margin-top: var(--main-position);
}

main section[data-type="ryze/media-banner"] .rd-slide-img picture,
main section[data-type="ryze/media-banner"] .rd-slide-img video {
    display: block;
    width: 100%;
    height: 100%;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container {
    overflow: inherit;
}

main section[data-type="ryze/media-banner"].rd-section {
    padding-top: 0;
    padding-bottom: 0;
}

main section[data-type="ryze/media-banner"] {
    z-index: 1;
    width: calc(100% - var(--container-gap) - var(--container-gap));
    max-width: calc(100% + var(--container-gap) + var(--container-gap));
    height: var(--hero-image-height);
    margin: 0 auto;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] {
        max-height: 360px;
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider {
    width: 100%;
    height: var(--hero-image-height);
    border-radius: var(--radius-small);
    overflow: hidden;
}

main section[data-type="ryze/media-banner"] .rd-slider-container {
    position: relative;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-container {
    position: relative;
    height: 100%;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-slide-img {
    position: absolute;
    left: calc(-1 * var(--container-gap));
    top: 0;
    width: calc(100% + var(--container-gap) + var(--container-gap));
    height: 100%;
    z-index: 0;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-slide-img .rd-block {
    position: relative;
    width: 100%;
    height: 100%;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-slide-content {
    position: relative;
    height: 100%;
    z-index: 1;
}

main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
}

main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-slide .rd-slide-img {
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider {
        max-height: 360px;
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container {
    width: 100%;
    height: 100%;
    margin-bottom: 0;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container {
        max-height: 360px;
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
    max-width: 500px;
    margin: 0 auto;
}

@media (max-width: 1300px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
        padding: 0 var(--container-mobile-gap);
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic {
    width: 100%;
    max-width: 100% !important;
    height: 100%;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic {
        max-height: var(--hero-image-responsive-height);
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic img {
    object-fit: cover;
    object-position: top;
    width: 100%;
    border-radius: 0;
    box-shadow: none;
    max-width: 100% !important;
    height: 100%;
}

main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-container .img-pic,
main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-container .img-pic img {
    width: 100vw;
    max-width: 100vw !important;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic img {
        max-height: var(--hero-image-responsive-height);
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
    max-width: var(--max-container-width);
    margin: 0 auto;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
    position: absolute;
    bottom: -100px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background-color: var(--rd-bgcolor-2);
    max-width: 510px;
    width: calc(100% - var(--container-gap) - var(--container-gap));
    min-height: 120px;
    padding: 2rem;
    border-radius: var(--radius-small);
    box-shadow: var(--box-shadow-01);
}

@media (max-width: 568px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
        width: auto;
        max-width: calc(100vw - var(--container-mobile-gap) - var(--container-mobile-gap));
    }
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
        width: calc(100% - var(--container-gap) - var(--container-gap));
        max-width: initial;
    }
}

@media (min-width: 1024px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
        top: 50%;
        left: inherit;
        transform: translateY(-50%) translateX(0);
        bottom: inherit;
    }

    [data-type="ryze/media-banner"] .rd-text-block {
        width: 100%;
    }
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block .h1 {
    font-size: var(--font-size-h4);
    font-style: normal;
    font-weight: 700;
    line-height: var(--font-line-height-h4);
    letter-spacing: 0.085px;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block p {
    margin-top: 1rem;
    margin-bottom: 0;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block p {
        margin-top: 0.25rem;
    }
}

main section[data-type="ryze/media-banner"] .swiper-container .rd-slide-block .rd-button-box {
    margin-top: 2rem;
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .swiper-container .rd-slide-block .rd-button-box {
        margin-top: 1.5rem;
    }
}

main section[data-type="ryze/media-banner"] .swiper-container .rd-slide-block .rd-button-box .rd-button {
    margin: 0;
    width: 100%;
    justify-content: center;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-pagination {
    z-index: 1;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls {
    top: inherit;
    bottom: 3rem;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-pagination-bullet {
    background-color: var(--slider-pagination);
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: var(--slider-pagination);
    border-color: var(--slider-pagination);
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .swiper-controls .rd-button {
    display: none;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide.is-video .swiper-controls {
    left: 9.5rem;
}


main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide.is-video .swiper-controls .rd-button {
    display: block;
}

.hero-banner {
    position: absolute;
    top: 0;
    width: 100vw;
    height: var(--hero-image-height);
    /* RK-158: klar unterhalb des Header-Stacking-Contexts (10-header.css) verankern */
    z-index: 0;
}

@media (max-width: 768px) {
    .hero-banner {
        max-height: 100vh;
    }
}

.hero-banner img:not(a img) {
    object-fit: cover;
    object-position: top;
    width: 100%;
    height: 100%;
}

.hero-banner .hero-container {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
}

.hero-banner .hero-container .hero-content {
    background-color: var(--rd-bgcolor-3);
    display: flex;
    padding: 2rem;
    flex-direction: column;
    align-items: flex-start;
    max-width: 510px;
    min-height: 200px;
    border-radius: var(--radius-small);
    box-shadow: var(--box-shadow-01);
}

@media (max-width: 768px) {
    .hero-banner .hero-container .hero-content {
        padding: 1rem;
    }
}

.hero-banner .hero-container h1 {
    margin: 0;
    padding: 0;
}

.hero-banner .hero-container p {
    margin-top: 1rem;
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .hero-banner .hero-container p {
        margin-top: 0.25rem;
    }
}

.hero-banner .hero-container a,
.hero-banner .hero-container button {
    margin-top: 2rem;
}

@media (max-width: 768px) {
    .hero-banner .hero-container a,
    .hero-banner .hero-container button {
        margin-top: 1.5rem;
    }
}

/* =========================================================================
   media-banner: constant slider height when mixing images and videos,
   and per-video controls positioned at the bottom, right of prev/next.
   ========================================================================= */

/* Keep every slide the same height so the slider does not jump while rotating */
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide {
    position: relative;
    height: var(--hero-image-height);
}

@media (max-width: 768px) {
    main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide {
        height: var(--hero-image-responsive-height, 360px);
    }
}

/* Let the media fill the fixed-height slide (image already handled above) */
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .rd-container,
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .rd-slide-img,
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .rd-image-block {
    height: 100%;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .media-element {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Per-video controls sit at the bottom, just to the right of prev/next */
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls.video-controls {
    bottom: 4rem;
    left: calc(2rem + 5.5rem);
    width: auto;
    z-index: 6;
}

/* Toggle play/pause glyph via the .stopped class (same convention as the
   generic slider in slider.css). icon-play = \e7c3. The same .icon-pause
   element swaps to the play glyph while playback is stopped. */
main section[data-type="ryze/media-banner"] .rd-module-media-banner .rd-button-slider-stop-start.stopped .icon-pause:before,
main section[data-type="ryze/media-banner"] .rd-module-media-banner .rd-button-video-stop-start.stopped .icon-pause:before {
    content: "\e7c3";
}

/* =========================================================================
   Per-video controls: match the media-banner controls.
   Light icon / transparent backdrop normally,
   light icon / dark backdrop on hover.
   All selectors are scoped to section[data-type="ryze/media-banner"] so
   generic sliders are not affected.
   ========================================================================= */
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls button {
    border-color: var(--slider-pagination);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls button .iconfont {
    font-size: 1rem;
    color: var(--slider-pagination);
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls button::after {
    display: none;
}

/* Hover: light icon / dark backdrop for all controls */
main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls button:hover:not(.swiper-button-disabled) {
    transform: scale(1.08);
    background-color: var(--color-bg-link-hover);
    border-color: var(--slider-pagination);
    color: var(--slider-pagination);
}

main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls button:hover:not(.swiper-button-disabled) .iconfont {
    color: var(--slider-pagination);
}

/* Mute button: transparent backdrop + light SVG icon */
main section[data-type="ryze/media-banner"] .rd-module-media-banner .rd-button-mute {
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid var(--slider-pagination);
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 60%;
    transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, background-image 0.2s ease;
}

main section[data-type="ryze/media-banner"] .rd-module-media-banner .rd-button-mute.muted {
    opacity: 1;
}

main section[data-type="ryze/media-banner"] .rd-module-media-banner .rd-button-mute.sound-on {
    opacity: 1;
}

/* Hover/Active/Focus on media-banner controls: no background change, turn SVG icons green */
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:hover:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:active:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:focus:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:focus-visible:not(.swiper-button-disabled) {
    transform: none;
    background-color: transparent !important;
    border-color: transparent;
    color: inherit;
}

main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:hover:not(.swiper-button-disabled) img,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:active:not(.swiper-button-disabled) img,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:focus:not(.swiper-button-disabled) img,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls button.rd-button:focus-visible:not(.swiper-button-disabled) img {
    filter: brightness(0) saturate(100%) invert(48%) sepia(79%) saturate(2476%) hue-rotate(122deg) brightness(1.1) contrast(1.1);
}


/* Keep play/pause buttons default semi-transparent background on interaction */
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-video-stop-start:hover:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-slider-stop-start:hover:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-video-stop-start:active:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-slider-stop-start:active:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-video-stop-start:focus:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-slider-stop-start:focus:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-video-stop-start:focus-visible:not(.swiper-button-disabled),
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .rd-button-slider-stop-start:focus-visible:not(.swiper-button-disabled) {
    background-color: rgba(255, 255, 255, 0.25) !important;
}



/* Prev/Next buttons: remove slider.css background color (default + hover + focus) */
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-prev,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-next,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-prev:hover,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-next:hover,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-prev:focus,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-next:focus,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-prev:focus-visible,
main section[data-type="ryze/media-banner"] .rd-module-slider .media-banner-controls .button-next:focus-visible {
    background-color: transparent !important;
}


/* Hidden state for controls that should not show on image slides */
main section[data-type="ryze/media-banner"] .media-banner-controls .is-hidden {
    display: none !important;
}

/* =========================================================================
   New media-banner control bar (template v2)
   Rounded pill at the bottom center: mute | prev play/pause next | dots
   ========================================================================= */
main section[data-type="ryze/media-banner"] .media-banner-controls {
    position: absolute;
    left: 50%;
    bottom: 2rem;
    transform: translateX(-50%);
    z-index: 10;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.75rem 1rem;
    width: auto;
    height: auto;
    background-color: rgba(30, 32, 38, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 9999px;
    backdrop-filter: blur(4px);
}

main section[data-type="ryze/media-banner"] .media-banner-controls-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.25rem;
}

/* Use the nav group borders as the dividers between visible control groups */
main section[data-type="ryze/media-banner"] .media-banner-controls-group-nav {
    border-left: none;
    border-right: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

main section[data-type="ryze/media-banner"] .media-banner-controls.has-mute .media-banner-controls-group-nav {
    border-left: 1px solid rgba(255, 255, 255, 0.25);
    margin-left: 0.25rem;
    padding-left: 0.5rem;
}

main section[data-type="ryze/media-banner"] .media-banner-controls.has-pagination .media-banner-controls-group-nav {
    border-right: 1px solid rgba(255, 255, 255, 0.25);
    margin-right: 0.25rem;
    padding-right: 0.5rem;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button img {
    width: 1.25rem;
    height: 1.25rem;
    object-fit: contain;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start {
    width: 2.75rem;
    height: 2.75rem;
    background-color: rgba(255, 255, 255, 0.25);
    border-radius: 50%;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start img,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start img {
    width: 1.375rem;
    height: 1.375rem;
}

/* Toggle SVG icons via the existing muted / sound-on classes */
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-mute .icon-unmute,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-mute.sound-on .icon-mute {
    display: none;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-mute .icon-mute,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-mute.sound-on .icon-unmute {
    display: block;
}

/* Toggle play / pause SVG via the existing stopped class */
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start .icon-play,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start .icon-play {
    display: none;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start.stopped .icon-play,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start.stopped .icon-play {
    display: block;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start.stopped .icon-pause,
main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start.stopped .icon-pause {
    display: none;
}

/* Swiper pagination inside the control bar */
main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination {
    position: static;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: auto;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination-bullet {
    width: 0.75rem;
    height: 0.75rem;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    background-color: #D6D8DE;
    background-image: none;
    border-top: none;
    opacity: 1;
}

main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination-bullet.swiper-pagination-bullet-active,
main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination-bullet:hover {
    background-color: #71FF74;
    border-top: none;
}


/* RK-150: Mobile-/Tablet-Hero (<=1023px, passend zur 1024er Desktop-Grenze) —
   eingerueckt, eckig, Bild im natuerlichen Seitenverhaeltnis (nichts links/rechts abgeschnitten).
   Die CTA-Box sitzt im Fluss unter dem Bild und ueberlappt es nur minimal (~6% der Bildhoehe). */
@media only screen and (max-width: 1023px) {
  /* Header-Banner nicht hinter die Navigation ziehen, sondern darunter setzen */
  main:has([data-type="ryze/media-banner"]) {
    margin-top: 0;
  }
  /* Leere HTML-Section (Video-Platzhalter) direkt vor dem Banner nicht als Abstand wirken lassen */
  main section[data-type="html"]:has(+ section[data-type="ryze/media-banner"]) {
    padding-top: 0;
    padding-bottom: 0;
  }
  main section[data-type="ryze/media-banner"] {
    width: calc(100% - var(--container-gap) - var(--container-gap));
    height: auto;
    max-height: none;
    margin: var(--container-gap) auto 0;
  }




  /* Hoehen auto -> Bild im natuerlichen Seitenverhaeltnis, wird nirgends links/rechts abgeschnitten */
  main section[data-type="ryze/media-banner"] .rd-module-slider,
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container,
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-wrapper {
    height: auto;
    max-height: none;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider {
    overflow: visible;
  }
  /* Swiper-Container muss die benachbarten Slides ausblenden, auch wenn das
     äußere .rd-module-slider wegen der überlappenden CTA-Box overflow: visible hat. */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container {
    overflow: hidden;
  }
  /* Fullwidth hero should sit in the container like the header on small screens */

  main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth {
    width: 100%;
    left: auto;
    transform: none;
  }

  /* Media-banner: image/video keep natural aspect ratio, indented like media-banner */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide {
    height: auto;
  }
  /* RVK-202: Das Medium bestimmt die Hoehe. Kein aspect-ratio und kein cover mehr —
     sonst wird jedes Medium, dessen Seitenverhaeltnis nicht 16:9 ist, beschnitten
     (gemessen: 2.56:1-Bilder verloren 30,6% links/rechts, 16:9-Videos im Landscape
     19,6% oben/unten). Die Selektoren tragen .swiper-container, weil die
     Desktop-Regeln weiter oben dieselbe Tiefe haben und Media Queries die
     Spezifitaet nicht erhoehen. */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .rd-slide-img {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    overflow: hidden;
    transform: none;
    z-index: auto;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .rd-slide-img .rd-block {
    height: auto;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .swiper-slide .media-element {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }


  /* Generische Slider-Margin (slider.css: 3.5rem @<=1023) fuer den Hero neutralisieren */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container {
    margin-bottom: 0;
  }
  /* Slide content and container also back into document flow, sitting below the image */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-container,
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
    height: auto;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-slide .rd-container {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }


  /* Einrueckung am immer-vollbreiten .rd-image-block, damit Bild und CTA-Box buendig sind
     (das Bild kann in einem schmaleren <a class="img-link"> stecken) */

  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-image-block {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-image-block .img-link {
    display: block;
    width: 100%;
  }

  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic {
    display: block;
    width: 100%;
    max-width: 100% !important;
    height: auto;
    margin: 0;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .img-pic img {
    width: 100%;
    max-width: 100% !important;
    height: auto;
    object-fit: contain;
    object-position: center;
    border-radius: 0;
  }

  /* Override is-fullwidth desktop 100vw rules so images stay within the container at <=1023px */
  main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-slide .rd-slide-img {
    left: auto;
    width: 100%;
    transform: none;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-container .img-pic,
  main section[data-type="ryze/media-banner"] .rd-module-slider.is-fullwidth .swiper-container .img-pic img {
    width: 100%;
    max-width: 100% !important;
  }

  /* CTA-Box im Fluss unter dem Bild; -2.2% der Breite ~ 6% der Bildhoehe (Seitenverhaeltnis ~2.56)
     -> es werden nur ~5-8% des Bildes unten verdeckt, unabhaengig von der Aufloesung. */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
    padding-left: 0;
    padding-right: 0;
  }
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-content {
    max-width: 100%;
  }


  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    max-width: initial;
    margin: -2.2% auto 0;
    padding-bottom: 5.5rem;
    box-shadow: none;
  }






  /* Steuerleiste im adaptiven Layout zentriert im padding-bottom der CTA-Box platzieren */
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-controls {
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 0.5rem;
    top: auto;
    transform: translateX(-50%);
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    width: fit-content;
    max-width: calc(100% - var(--container-gap) - var(--container-gap));
    margin: 0;
    padding: 0.5rem 0.75rem;
    gap: 0.125rem;
    z-index: 2;
  }


  main section[data-type="ryze/media-banner"] .media-banner-controls-group {
    gap: 0.25rem;
    padding: 0 0.125rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls.has-mute .media-banner-controls-group-nav,
  main section[data-type="ryze/media-banner"] .media-banner-controls.has-pagination .media-banner-controls-group-nav {
    margin-left: 0.125rem;
    margin-right: 0.125rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button {
    width: 1.75rem;
    height: 1.75rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button img {
    width: 1rem;
    height: 1rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start,
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start {
    width: 2.25rem;
    height: 2.25rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start img,
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start img {
    width: 1.125rem;
    height: 1.125rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination-bullet {
    width: 0.625rem;
    height: 0.625rem;
  }
}

/* RK-150: Sehr schmale Viewports (<=576px): Steuerleiste weiterhin zentriert, Elements verkleinert */
@media only screen and (max-width: 576px) {
  main section[data-type="ryze/media-banner"] .media-banner-controls {
    padding: 0.25rem 0.5rem;
    gap: 0.0625rem;
  }

  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button {
    width: 1.25rem;
    height: 1.25rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button img {
    width: 0.75rem;
    height: 0.75rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start,
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start {
    width: 1.5rem;
    height: 1.5rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-video-stop-start img,
  main section[data-type="ryze/media-banner"] .media-banner-controls .rd-button-slider-stop-start img {
    width: 0.75rem;
    height: 0.75rem;
  }
  main section[data-type="ryze/media-banner"] .media-banner-controls .swiper-pagination-bullet {
    width: 0.5rem;
    height: 0.5rem;
  }
}


/* RK-150: Ab <=910px das Padding der CTA-Box (rd-slide-block rd-position-center) auf 1rem reduzieren */
@media only screen and (max-width: 910px) {
  main section[data-type="ryze/media-banner"] .rd-module-slider .swiper-container .rd-slide-block {
    padding: 1rem;
    padding-bottom: 5.5rem;
  }

}


