.section-scalable-image {
    width: 100%;
    box-sizing: border-box;
}

.section-scalable-image__inner {
    width: min(100%, 1200px);
    margin: 0 auto;
}

.section-scalable-image--width-wide .section-scalable-image__inner {
    width: min(92vw, 1600px);
}

.section-scalable-image--width-full {
    overflow-x: hidden;
    overflow-x: clip;
}

.section-scalable-image--width-full .section-scalable-image__inner {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.section-scalable-image__media {
    position: relative;
    width: 100%;
    line-height: 0;
}

.section-scalable-image__media picture,
.section-scalable-image__media img {
    display: block;
    width: 100%;
    height: auto;
}

.section-scalable-image__text {
    display: flow-root;
    min-width: 0;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.section-scalable-image__text--above {
    padding: 1.5rem 1.5rem 0.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.section-scalable-image__text--below {
    padding: 1rem 1.5rem 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* Overlay-Modi (left/right) — auf mobil unter dem Bild, auf Desktop überlagert */
.section-scalable-image__text--left,
.section-scalable-image__text--right {
    padding: 1rem 1.5rem;
    background: #fff;
}

.section-scalable-image--textbox-dark .section-scalable-image__text--left,
.section-scalable-image--textbox-dark .section-scalable-image__text--right {
    background: rgba(0, 0, 0, 0.68);
    color: #fff;
}

.section-scalable-image--textbox-transparent .section-scalable-image__text--left,
.section-scalable-image--textbox-transparent .section-scalable-image__text--right {
    background: transparent;
}

@media (min-width: 1024px) {
    /* Beide Grid-Elemente bestimmen die Hoehe; langer Text vergroessert die Sektion. */
    .section-scalable-image__media--overlay {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .section-scalable-image__media--overlay > picture {
        grid-area: 1 / 1;
        min-width: 0;
        min-height: 0;
    }

    .section-scalable-image__media--overlay > picture > img {
        height: 100%;
        object-fit: cover;
    }

    .section-scalable-image__text--left,
    .section-scalable-image__text--right {
        grid-area: 1 / 1;
        position: relative;
        align-self: center;
        width: calc(40% + 4rem);
        max-width: calc(100% - 4rem);
        box-sizing: border-box;
        margin: 1.5rem 2rem;
        padding: 1.5rem 2rem;
        background: rgba(255, 255, 255, 0.9);
        border-radius: 4px;
    }

    .section-scalable-image--textbox-dark .section-scalable-image__text--left,
    .section-scalable-image--textbox-dark .section-scalable-image__text--right {
        background: rgba(0, 0, 0, 0.68);
        color: #fff;
    }

    .section-scalable-image--textbox-transparent .section-scalable-image__text--left,
    .section-scalable-image--textbox-transparent .section-scalable-image__text--right {
        background: transparent;
        color: #fff;
    }

    .section-scalable-image__text--left  { justify-self: start; }
    .section-scalable-image__text--right { justify-self: end; }
}

.section-scalable-image__text :is(p, h1, h2, h3, h4, h5, h6) {
    margin: 0 0 0.75rem 0;
}

.section-scalable-image__text :is(p, h1, h2, h3, h4, h5, h6):last-child {
    margin-bottom: 0;
}
