.slpb-page--empty {
    min-height: 1px;
}

.slpb-section {
    min-height: 48px;
}

.slpb-section.slpb-section--min-height,
.slpb-section__surface.slpb-section--min-height {
    min-height: var(--slpb-section-min-h, 0);
}

@media (min-width: 768px) {
    .slpb-section.slpb-section--min-height,
    .slpb-section__surface.slpb-section--min-height {
        min-height: var(--slpb-section-min-h-sm, var(--slpb-section-min-h, 0));
    }
}

@media (min-width: 992px) {
    .slpb-section.slpb-section--min-height,
    .slpb-section__surface.slpb-section--min-height {
        min-height: var(--slpb-section-min-h-md, var(--slpb-section-min-h-sm, var(--slpb-section-min-h, 0)));
    }
}

/* Responsive Abstände (Desktop-first-Kaskade wie Grid) */
.slpb-section.slpb-section--spacing {
    margin-top: var(--slpb-sec-mt, 0) !important;
    margin-bottom: var(--slpb-sec-mb, 0) !important;
}

.slpb-section.slpb-section--spacing.slpb-section--surface-full {
    padding-top: var(--slpb-sec-pt, 0) !important;
    padding-bottom: var(--slpb-sec-pb, 0) !important;
}

.slpb-section.slpb-section--spacing.slpb-section--surface-full > .slpb-section__surface {
    padding-left: var(--slpb-sec-px, 0) !important;
    padding-right: var(--slpb-sec-px, 0) !important;
}

.slpb-section.slpb-section--spacing:not(.slpb-section--surface-full) > .slpb-section__surface {
    padding-top: var(--slpb-sec-pt, 0) !important;
    padding-bottom: var(--slpb-sec-pb, 0) !important;
    padding-left: var(--slpb-sec-px, 0) !important;
    padding-right: var(--slpb-sec-px, 0) !important;
}

@media (min-width: 768px) {
    .slpb-section.slpb-section--spacing {
        margin-top: var(--slpb-sec-mt-sm, var(--slpb-sec-mt, 0)) !important;
        margin-bottom: var(--slpb-sec-mb-sm, var(--slpb-sec-mb, 0)) !important;
    }

    .slpb-section.slpb-section--spacing.slpb-section--surface-full {
        padding-top: var(--slpb-sec-pt-sm, var(--slpb-sec-pt, 0)) !important;
        padding-bottom: var(--slpb-sec-pb-sm, var(--slpb-sec-pb, 0)) !important;
    }

    .slpb-section.slpb-section--spacing.slpb-section--surface-full > .slpb-section__surface {
        padding-left: var(--slpb-sec-px-sm, var(--slpb-sec-px, 0)) !important;
        padding-right: var(--slpb-sec-px-sm, var(--slpb-sec-px, 0)) !important;
    }

    .slpb-section.slpb-section--spacing:not(.slpb-section--surface-full) > .slpb-section__surface {
        padding-top: var(--slpb-sec-pt-sm, var(--slpb-sec-pt, 0)) !important;
        padding-bottom: var(--slpb-sec-pb-sm, var(--slpb-sec-pb, 0)) !important;
        padding-left: var(--slpb-sec-px-sm, var(--slpb-sec-px, 0)) !important;
        padding-right: var(--slpb-sec-px-sm, var(--slpb-sec-px, 0)) !important;
    }
}

@media (min-width: 992px) {
    .slpb-section.slpb-section--spacing {
        margin-top: var(--slpb-sec-mt-md, var(--slpb-sec-mt-sm, var(--slpb-sec-mt, 0))) !important;
        margin-bottom: var(--slpb-sec-mb-md, var(--slpb-sec-mb-sm, var(--slpb-sec-mb, 0))) !important;
    }

    .slpb-section.slpb-section--spacing.slpb-section--surface-full {
        padding-top: var(--slpb-sec-pt-md, var(--slpb-sec-pt-sm, var(--slpb-sec-pt, 0))) !important;
        padding-bottom: var(--slpb-sec-pb-md, var(--slpb-sec-pb-sm, var(--slpb-sec-pb, 0))) !important;
    }

    .slpb-section.slpb-section--spacing.slpb-section--surface-full > .slpb-section__surface {
        padding-left: var(--slpb-sec-px-md, var(--slpb-sec-px-sm, var(--slpb-sec-px, 0))) !important;
        padding-right: var(--slpb-sec-px-md, var(--slpb-sec-px-sm, var(--slpb-sec-px, 0))) !important;
    }

    .slpb-section.slpb-section--spacing:not(.slpb-section--surface-full) > .slpb-section__surface {
        padding-top: var(--slpb-sec-pt-md, var(--slpb-sec-pt-sm, var(--slpb-sec-pt, 0))) !important;
        padding-bottom: var(--slpb-sec-pb-md, var(--slpb-sec-pb-sm, var(--slpb-sec-pb, 0))) !important;
        padding-left: var(--slpb-sec-px-md, var(--slpb-sec-px-sm, var(--slpb-sec-px, 0))) !important;
        padding-right: var(--slpb-sec-px-md, var(--slpb-sec-px-sm, var(--slpb-sec-px, 0))) !important;
    }
}

.slpb-section.slpb-section-bw-0 { border-width: 0 !important; }
.slpb-section.slpb-section-bw-1 { border-style: solid !important; border-width: 1px !important; }
.slpb-section.slpb-section-bw-2 { border-style: solid !important; border-width: 2px !important; }
.slpb-section.slpb-section-bw-3 { border-style: solid !important; border-width: 3px !important; }
.slpb-section.slpb-section-bw-4 { border-style: solid !important; border-width: 4px !important; }
.slpb-section.slpb-section-bw-5 { border-style: solid !important; border-width: 5px !important; }

.slpb-section.slpb-section-bc-primary { border-color: var(--bs-primary) !important; }
.slpb-section.slpb-section-bc-secondary { border-color: var(--bs-secondary) !important; }
.slpb-section.slpb-section-bc-success { border-color: var(--bs-success) !important; }
.slpb-section.slpb-section-bc-danger { border-color: var(--bs-danger) !important; }
.slpb-section.slpb-section-bc-warning { border-color: var(--bs-warning) !important; }
.slpb-section.slpb-section-bc-info { border-color: var(--bs-info) !important; }
.slpb-section.slpb-section-bc-light { border-color: var(--bs-light) !important; }
.slpb-section.slpb-section-bc-dark { border-color: var(--bs-dark) !important; }
.slpb-section.slpb-section-bc-white { border-color: var(--bs-white) !important; }
.slpb-section.slpb-section-bc-black { border-color: var(--bs-black) !important; }
.slpb-section.slpb-section-bc-body { border-color: var(--bs-body-color) !important; }
.slpb-section.slpb-section-bc-muted { border-color: var(--bs-secondary-color) !important; }

.slpb-section__surface.slpb-section-bw-0 { border-width: 0 !important; }
.slpb-section__surface.slpb-section-bw-1 { border-style: solid !important; border-width: 1px !important; }
.slpb-section__surface.slpb-section-bw-2 { border-style: solid !important; border-width: 2px !important; }
.slpb-section__surface.slpb-section-bw-3 { border-style: solid !important; border-width: 3px !important; }
.slpb-section__surface.slpb-section-bw-4 { border-style: solid !important; border-width: 4px !important; }
.slpb-section__surface.slpb-section-bw-5 { border-style: solid !important; border-width: 5px !important; }

.slpb-section__surface.slpb-section-bc-primary { border-color: var(--bs-primary) !important; }
.slpb-section__surface.slpb-section-bc-secondary { border-color: var(--bs-secondary) !important; }
.slpb-section__surface.slpb-section-bc-success { border-color: var(--bs-success) !important; }
.slpb-section__surface.slpb-section-bc-danger { border-color: var(--bs-danger) !important; }
.slpb-section__surface.slpb-section-bc-warning { border-color: var(--bs-warning) !important; }
.slpb-section__surface.slpb-section-bc-info { border-color: var(--bs-info) !important; }
.slpb-section__surface.slpb-section-bc-light { border-color: var(--bs-light) !important; }
.slpb-section__surface.slpb-section-bc-dark { border-color: var(--bs-dark) !important; }
.slpb-section__surface.slpb-section-bc-white { border-color: var(--bs-white) !important; }
.slpb-section__surface.slpb-section-bc-black { border-color: var(--bs-black) !important; }
.slpb-section__surface.slpb-section-bc-body { border-color: var(--bs-body-color) !important; }
.slpb-section__surface.slpb-section-bc-muted { border-color: var(--bs-secondary-color) !important; }

.slpb-section--has-free-slot {
    position: relative;
}

/* Section: Höhe folgt Freiflächen-Inhalt (--slpb-section-free-grow-min per JS). */
.slpb-section.slpb-section--free-grow {
    min-height: var(--slpb-section-free-grow-min, auto);
}

.slpb-section.slpb-section--free-grow.slpb-section--min-height {
    min-height: max(var(--slpb-section-free-grow-min, 0px), var(--slpb-section-min-h, 0));
}

@media (min-width: 768px) {
    .slpb-section.slpb-section--free-grow.slpb-section--min-height {
        min-height: max(var(--slpb-section-free-grow-min, 0px), var(--slpb-section-min-h-sm, var(--slpb-section-min-h, 0)));
    }
}

@media (min-width: 992px) {
    .slpb-section.slpb-section--free-grow.slpb-section--min-height {
        min-height: max(var(--slpb-section-free-grow-min, 0px), var(--slpb-section-min-h-md, var(--slpb-section-min-h-sm, var(--slpb-section-min-h, 0))));
    }
}

/* Spalte: optionale Freifläche (Overlay wie Section) */
.slpb-column.slpb-column--has-free-slot {
    position: relative;
}

/* Ohne gesetzte Höhe: nutzbare Freifläche (absolute Kinder stützen die Spalte nicht). */
.slpb-column.slpb-column--has-free-slot:not(.slpb-column--min-height) {
    min-height: 16rem;
}

.slpb-column__slot {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    min-height: 3rem;
}

.slpb-column__slot--free > .slpb-multi-card__free-item {
    pointer-events: auto;
}

.slpb-column--has-free-slot > .slpb-column__inner {
    position: relative;
    z-index: 2;
}

.slpb-section__slot {
    position: absolute;
    inset: 0;
    z-index: 3;
    /* Immer none: leere Freifläche darf Flow-/Card-Inhalte darunter nicht blockieren. */
    pointer-events: none;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    min-height: 3rem;
}

.slpb-section__slot--free > .slpb-multi-card__free-item {
    pointer-events: auto;
}

.slpb-section--has-free-slot > .slpb-section__surface,
.slpb-section--has-free-slot > .container,
.slpb-section--has-free-slot > .container-fluid {
    position: relative;
    z-index: 2;
}

.slpb-section__gradient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}

.slpb-section.slpb-section--has-gradient,
.slpb-section__surface.slpb-section--has-gradient {
    position: relative;
}

.slpb-section.slpb-section--has-gradient > .slpb-section__surface,
.slpb-section.slpb-section--has-gradient > .container,
.slpb-section.slpb-section--has-gradient > .container-fluid {
    position: relative;
    z-index: 2;
}

.slpb-section__surface.slpb-section--has-gradient > *:not(.slpb-section__gradient) {
    position: relative;
    z-index: 2;
}

.slpb-section--bg-image {
    position: relative;
    isolation: isolate;
}

.slpb-section--bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--slpb-bg-image);
    background-size: var(--slpb-bg-size, cover);
    background-position: var(--slpb-bg-position, center center);
    background-repeat: no-repeat;
    opacity: var(--slpb-bg-image-opacity, 1);
    pointer-events: none;
}

/* Volle Breite: Hintergrund auf <section>, Inhalt im Container darunter */
.slpb-section--bg-image > .container,
.slpb-section--bg-image > .container-fluid,
.slpb-section--bg-image > .slpb-section__surface {
    position: relative;
    z-index: 1;
}

/* Legacy: alter Aufbau mit Hintergrund auf .slpb-section__surface (nur falls noch gecacht) */
.slpb-section > .slpb-section__surface.slpb-section--bg-image > * {
    position: relative;
    z-index: 1;
}

/* Abgerundete Section-Fläche: Pseudo-Hintergrundbild an Ecken clippen */
.slpb-section.slpb-section--bg-image.overflow-hidden::before,
.slpb-section > .slpb-section__surface.overflow-hidden.slpb-section--bg-image::before {
    border-radius: inherit;
}

.slpb-section + .slpb-section {
    margin-top: 0;
}

.slpb-heading {
    margin-top: 0;
    margin-bottom: 0;
}

/* Laufweite an den gerenderten H/P-Tags (nicht am Wrapper) */
.slpb-heading .slpb-heading-ls-tight,
.slpb-page .slpb-heading-ls-tight {
    letter-spacing: -0.055em;
}

.slpb-heading .slpb-heading-ls-normal,
.slpb-page .slpb-heading-ls-normal {
    letter-spacing: 0;
}

.slpb-heading .slpb-heading-ls-wide,
.slpb-page .slpb-heading-ls-wide {
    letter-spacing: 0.05em;
}

.slpb-heading > :is(h1, h2, h3, h4, h5, h6, p),
.slpb-heading .slpb-heading__text > :is(h1, h2, h3, h4, h5, h6, p) {
    margin-top: 0;
    margin-bottom: 0;
}

.slpb-page .slpb-inline-h1,
.slpb-page .slpb-heading .slpb-inline-h1 {
    font-size: var(--slpb-h1-font-size);
    font-weight: var(--slpb-h1-font-weight);
    line-height: var(--slpb-h1-line-height);
}

.slpb-page .slpb-inline-h2,
.slpb-page .slpb-heading .slpb-inline-h2 {
    font-size: var(--slpb-h2-font-size);
    font-weight: var(--slpb-h2-font-weight);
    line-height: var(--slpb-h2-line-height);
}

.slpb-page .slpb-inline-h3,
.slpb-page .slpb-heading .slpb-inline-h3 {
    font-size: var(--slpb-h3-font-size);
    font-weight: var(--slpb-h3-font-weight);
    line-height: var(--slpb-h3-line-height);
}

.slpb-page .slpb-inline-h4,
.slpb-page .slpb-heading .slpb-inline-h4 {
    font-size: var(--slpb-h4-font-size);
    font-weight: var(--slpb-h4-font-weight);
    line-height: var(--slpb-h4-line-height);
}

.slpb-page .slpb-inline-h5,
.slpb-page .slpb-heading .slpb-inline-h5 {
    font-size: var(--slpb-h5-font-size);
    font-weight: var(--slpb-h5-font-weight);
    line-height: var(--slpb-h5-line-height);
}

.slpb-page .slpb-inline-h6,
.slpb-page .slpb-heading .slpb-inline-h6 {
    font-size: var(--slpb-h6-font-size);
    font-weight: var(--slpb-h6-font-weight);
    line-height: var(--slpb-h6-line-height);
}

.slpb-page .slpb-heading :is(h1, h2, h3, h4, h5, h6, p) span[style*="font-size"] {
    line-height: 1.2;
}

.slpb-heading.slpb-heading--paragraph > p,
.slpb-heading.slpb-heading--paragraph .slpb-heading__text > p {
    margin-top: 0;
    margin-bottom: 0;
    font-size: var(--slpb-body-font-size, 1rem);
    font-weight: 400;
    line-height: var(--slpb-body-line-height, 1.5);
}

/* Überschrift-Ebene pro Viewport (Handy / Tablet / Desktop) */
.slpb-heading__vp--tablet,
.slpb-heading__vp--desktop {
    display: none !important;
}

.slpb-heading__vp--handy {
    display: block !important;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .slpb-heading__vp--handy,
    .slpb-heading__vp--desktop {
        display: none !important;
    }

    .slpb-heading__vp--tablet {
        display: block !important;
    }
}

@media (min-width: 992px) {
    .slpb-heading__vp--handy,
    .slpb-heading__vp--tablet {
        display: none !important;
    }

    .slpb-heading__vp--desktop {
        display: block !important;
    }
}

.slpb-heading--spacing {
    padding-top: var(--slpb-h-pt, 0) !important;
    padding-bottom: var(--slpb-h-pb, 0) !important;
    padding-left: var(--slpb-h-px, 0) !important;
    padding-right: var(--slpb-h-px, 0) !important;
    margin-top: var(--slpb-h-mt, 0) !important;
    margin-bottom: var(--slpb-h-mb, 0) !important;
}

.slpb-heading--spacing.slpb-heading--padding-left {
    padding-left: var(--slpb-h-pl, var(--slpb-h-px, 0)) !important;
}

@media (min-width: 768px) {
    .slpb-heading--spacing {
        padding-top: var(--slpb-h-pt-sm, var(--slpb-h-pt, 0)) !important;
        padding-bottom: var(--slpb-h-pb-sm, var(--slpb-h-pb, 0)) !important;
        padding-left: var(--slpb-h-px-sm, var(--slpb-h-px, 0)) !important;
        padding-right: var(--slpb-h-px-sm, var(--slpb-h-px, 0)) !important;
        margin-top: var(--slpb-h-mt-sm, var(--slpb-h-mt, 0)) !important;
        margin-bottom: var(--slpb-h-mb-sm, var(--slpb-h-mb, 0)) !important;
    }

    .slpb-heading--spacing.slpb-heading--padding-left {
        padding-left: var(--slpb-h-pl-sm, var(--slpb-h-pl, var(--slpb-h-px-sm, var(--slpb-h-px, 0)))) !important;
    }
}

@media (min-width: 992px) {
    .slpb-heading--spacing {
        padding-top: var(--slpb-h-pt-md, var(--slpb-h-pt-sm, var(--slpb-h-pt, 0))) !important;
        padding-bottom: var(--slpb-h-pb-md, var(--slpb-h-pb-sm, var(--slpb-h-pb, 0))) !important;
        padding-left: var(--slpb-h-px-md, var(--slpb-h-px-sm, var(--slpb-h-px, 0))) !important;
        padding-right: var(--slpb-h-px-md, var(--slpb-h-px-sm, var(--slpb-h-px, 0))) !important;
        margin-top: var(--slpb-h-mt-md, var(--slpb-h-mt-sm, var(--slpb-h-mt, 0))) !important;
        margin-bottom: var(--slpb-h-mb-md, var(--slpb-h-mb-sm, var(--slpb-h-mb, 0))) !important;
    }

    .slpb-heading--spacing.slpb-heading--padding-left {
        padding-left: var(--slpb-h-pl-md, var(--slpb-h-pl-sm, var(--slpb-h-pl, var(--slpb-h-px-md, var(--slpb-h-px-sm, var(--slpb-h-px, 0)))))) !important;
    }
}


/* Überschrift Freifläche: Breite Text vs. volle Slot-Breite */
.slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-h-full {
    width: 100% !important;
    max-width: 100% !important;
}

.slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-h-content {
    width: max-content;
    max-width: calc(100% - 0.5rem);
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-sm-full {
        width: 100% !important;
        max-width: 100% !important;
    }

    .slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-sm-content {
        width: max-content;
        max-width: calc(100% - 0.5rem);
    }
}

@media (min-width: 992px) {
    .slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-md-full {
        width: 100% !important;
        max-width: 100% !important;
    }

    .slpb-heading.slpb-multi-card__free-item.slpb-heading-fw-md-content {
        width: max-content;
        max-width: calc(100% - 0.5rem);
    }
}

.slpb-heading--has-icon {
    min-width: 0;
}

.slpb-heading-icon {
    line-height: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.slpb-heading-icon--circle {
    border-radius: 50%;
}

.slpb-heading__text {
    min-width: 0;
}

.slpb-heading-icon__img {
    display: block;
    width: auto;
    height: auto;
    object-fit: contain;
}

.slpb-heading-icon__mask {
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-image: var(--slpb-heading-icon-url);
    mask-image: var(--slpb-heading-icon-url);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.slpb-heading-icon__img--xxs {
    width: 0.75rem;
    height: 0.75rem;
}

.slpb-heading-icon__img--xs {
    width: 1rem;
    height: 1rem;
}

.slpb-heading-icon__img--sm {
    width: 1.5rem;
    height: 1.5rem;
}

.slpb-heading-icon__img--md {
    width: 2rem;
    height: 2rem;
}

.slpb-heading-icon__img--lg {
    width: 3rem;
    height: 3rem;
}

.slpb-heading-icon__img--xl {
    width: 4rem;
    height: 4rem;
}

.slpb-heading-icon__img--2xl {
    width: 5rem;
    height: 5rem;
}

.slpb-button__link {
    vertical-align: middle;
}

.slpb-button__link--icon-only {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
}

.slpb-button__text {
    min-width: 0;
}

.slpb-button-icon {
    display: block;
    width: auto;
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.slpb-button-icon--mask {
    background-color: currentColor;
    -webkit-mask-image: var(--slpb-button-icon-url);
    mask-image: var(--slpb-button-icon-url);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.slpb-button-icon--xxs {
    width: 0.75rem;
    height: 0.75rem;
}

.slpb-button-icon--xs {
    width: 1rem;
    height: 1rem;
}

.slpb-button-icon--sm {
    width: 1.25rem;
    height: 1.25rem;
}

.slpb-button-icon--md {
    width: 1.5rem;
    height: 1.5rem;
}

.slpb-button-icon--lg {
    width: 2rem;
    height: 2rem;
}

.slpb-button-icon--xl {
    width: 2.5rem;
    height: 2.5rem;
}

.slpb-button-icon--2xl {
    width: 3rem;
    height: 3rem;
}

.slpb-icon {
    display: block;
    line-height: 0;
}

.slpb-icon__img {
    display: inline-block;
    width: auto;
    height: auto;
    object-fit: contain;
    vertical-align: middle;
}

.slpb-icon__img--mask {
    background-color: currentColor;
    -webkit-mask-image: var(--slpb-icon-url);
    mask-image: var(--slpb-icon-url);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.slpb-icon__img--xxs {
    width: 0.75rem;
    height: 0.75rem;
}

.slpb-icon__img--xs {
    width: 1rem;
    height: 1rem;
}

.slpb-icon__img--sm {
    width: 1.5rem;
    height: 1.5rem;
}

.slpb-icon__img--md {
    width: 2rem;
    height: 2rem;
}

.slpb-icon__img--lg {
    width: 3rem;
    height: 3rem;
}

.slpb-icon__img--xl {
    width: 4rem;
    height: 4rem;
}

.slpb-icon__img--2xl {
    width: 5rem;
    height: 5rem;
}

.slpb-icon-list {
    padding-left: 0;
}

.slpb-icon-list--max-width {
    width: 100%;
    max-width: var(--slpb-icon-list-max-w, none);
    min-width: 0;
}

/* Spalte · Inhalt horizontal: begrenzte Bausteine folgen align-items (nicht immer zentriert) */
.slpb-column__inner.align-items-start > .slpb-icon-list--max-width,
.slpb-column__inner.align-items-start > .slpb-multi-card--max-width {
    margin-inline: 0;
}

.slpb-column__inner.align-items-center > .slpb-icon-list--max-width,
.slpb-column__inner.align-items-center > .slpb-multi-card--max-width {
    margin-inline: auto;
}

.slpb-column__inner.align-items-end > .slpb-icon-list--max-width,
.slpb-column__inner.align-items-end > .slpb-multi-card--max-width {
    margin-inline-start: auto;
    margin-inline-end: 0;
}

.slpb-icon-list--no-icons {
    padding-left: 1rem;
}

.slpb-icon-list--rows {
    padding-left: 0;
    display: flex;
    flex-direction: column;
    gap: var(--slpb-icon-list-row-gap, 0);
}

.slpb-icon-list--rows.slpb-icon-list--no-icons {
    padding-left: 0;
}

.slpb-icon-list__item {
    min-width: 0;
}

.slpb-icon-list__item--row {
    display: grid;
    grid-template-columns: var(--slpb-icon-list-row-cols, auto);
    column-gap: var(--slpb-icon-list-col-gap, 0.75rem);
    align-items: center;
    width: 100%;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.slpb-icon-list__icon-slot {
    display: block;
    min-width: 0;
}

.slpb-icon-list__cell,
.slpb-icon-list__text {
    min-width: 0;
    line-height: 1.45;
}

.slpb-icon-list--rows .slpb-icon-list__icon {
    justify-self: center;
}

/* ——— Darstellungs-Stile ——— */

.slpb-icon-list--appearance-standard .slpb-icon-list__item--row {
    padding: 0.55rem 0.15rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.slpb-icon-list--appearance-standard .slpb-icon-list__item--row:last-child {
    border-bottom: none;
}

.slpb-icon-list--appearance-standard .slpb-icon-list__item--row:hover {
    background-color: rgba(15, 23, 42, 0.02);
}

.slpb-icon-list--appearance-standard .slpb-icon-list__cell:first-of-type,
.slpb-icon-list--appearance-standard .slpb-icon-list__text {
    font-weight: 500;
}

.slpb-icon-list--appearance-striped .slpb-icon-list__item--row {
    padding: 0.55rem 0.65rem;
    border-bottom: none;
    border-radius: 0.25rem;
}

.slpb-icon-list--appearance-striped .slpb-icon-list__item--row:nth-child(odd) {
    background-color: rgba(15, 23, 42, 0.04);
}

.slpb-icon-list--appearance-striped .slpb-icon-list__item--row:hover {
    background-color: rgba(15, 23, 42, 0.07);
}

.slpb-icon-list--appearance-bordered {
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.5rem;
    overflow: hidden;
}

.slpb-icon-list--appearance-bordered .slpb-icon-list__item--row {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}

.slpb-icon-list--appearance-bordered .slpb-icon-list__item--row:last-child {
    border-bottom: none;
}

.slpb-icon-list--appearance-bordered .slpb-icon-list__cell + .slpb-icon-list__cell {
    border-left: 1px solid rgba(15, 23, 42, 0.06);
    padding-left: 0.65rem;
}

.slpb-icon-list--appearance-cards.slpb-icon-list--rows {
    gap: var(--slpb-icon-list-row-gap, 0.55rem);
}

.slpb-icon-list--appearance-cards .slpb-icon-list__item--row {
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.75rem;
    box-shadow: 0 0.25rem 0.75rem rgba(15, 23, 42, 0.05);
    background-color: #fff;
}

.slpb-icon-list--appearance-cards .slpb-icon-list__item--row:hover {
    border-color: rgba(15, 23, 42, 0.14);
    box-shadow: 0 0.45rem 1.1rem rgba(15, 23, 42, 0.1);
    transform: translateY(-1px);
}

.slpb-icon-list--appearance-compact .slpb-icon-list__item--row {
    padding: 0.3rem 0.1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    font-size: 0.875rem;
}

.slpb-icon-list--appearance-compact .slpb-icon-list__item--row:last-child {
    border-bottom: none;
}

.slpb-icon-list--appearance-compact .slpb-icon-list__cell,
.slpb-icon-list--appearance-compact .slpb-icon-list__text {
    line-height: 1.35;
}

.slpb-icon-list--appearance-accent.slpb-icon-list--rows {
    gap: var(--slpb-icon-list-row-gap, 0.35rem);
}

.slpb-icon-list--appearance-accent .slpb-icon-list__item--row {
    padding: 0.55rem 0.75rem 0.55rem 0.85rem;
    border-left: 3px solid var(--bs-primary);
    background-color: rgba(13, 110, 253, 0.04);
    border-radius: 0 0.35rem 0.35rem 0;
}

.slpb-icon-list--appearance-accent .slpb-icon-list__item--row:hover {
    background-color: rgba(13, 110, 253, 0.08);
}

.slpb-icon-list--appearance-accent .slpb-icon-list__cell:first-of-type,
.slpb-icon-list--appearance-accent .slpb-icon-list__text {
    font-weight: 600;
}

.slpb-icon-list--appearance-minimal .slpb-icon-list__item--row {
    padding: 0.4rem 0;
    border-bottom: none;
}

.slpb-icon-list--appearance-minimal .slpb-icon-list__cell:first-of-type,
.slpb-icon-list--appearance-minimal .slpb-icon-list__text {
    font-weight: 400;
}

.slpb-icon-list--appearance-pill.slpb-icon-list--rows {
    gap: var(--slpb-icon-list-row-gap, 0.4rem);
}

.slpb-icon-list--appearance-pill .slpb-icon-list__item--row {
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    background-color: rgba(15, 23, 42, 0.05);
}

.slpb-icon-list--appearance-pill .slpb-icon-list__item--row:hover {
    background-color: rgba(15, 23, 42, 0.09);
}

.slpb-text > :first-child {
    margin-top: 0;
}

.slpb-text > :last-child {
    margin-bottom: 0;
}

.slpb-text p {
    margin-top: 0;
    margin-bottom: 0;
}

.slpb-cta-banner__inner {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.slpb-cta-banner__headline {
    margin-bottom: 0;
}

.slpb-cta-banner__lead {
    white-space: pre-line;
}

.slpb-feature-grid__headline {
    margin-bottom: 0;
}

.slpb-feature-grid__eyebrow {
    letter-spacing: 0.06em;
    font-size: 0.875rem;
}

.slpb-feature-grid__intro {
    white-space: pre-line;
}

.slpb-feature-grid__icon {
    margin-left: auto;
    margin-right: auto;
}

.slpb-icon.slpb-feature-grid__icon.slpb-heading-icon {
    display: inline-flex;
    line-height: 0;
    width: auto;
    max-width: 100%;
}

.slpb-card.slpb-feature-grid__card .slpb-card__slot--flow > .slpb-icon.slpb-feature-grid__icon {
    align-self: flex-start;
}

.slpb-card.slpb-feature-grid__card.text-center .slpb-card__slot--flow > .slpb-icon.slpb-feature-grid__icon:not(.text-start):not(.text-end) {
    align-self: center;
}

.slpb-card.slpb-feature-grid__card.text-end .slpb-card__slot--flow > .slpb-icon.slpb-feature-grid__icon:not(.text-start):not(.text-center) {
    align-self: flex-end;
}

.slpb-icon.slpb-feature-grid__icon.text-start {
    align-self: flex-start;
    margin-left: 0;
    margin-right: auto;
}

.slpb-icon.slpb-feature-grid__icon.text-center {
    align-self: center;
    margin-left: auto;
    margin-right: auto;
}

.slpb-icon.slpb-feature-grid__icon.text-end {
    align-self: flex-end;
    margin-left: auto;
    margin-right: 0;
}

.text-start .slpb-feature-grid__icon:not(.text-center):not(.text-end),
.slpb-column__inner.align-items-start .slpb-feature-grid__icon:not(.text-center):not(.text-end),
.slpb-feature-grid__card.text-start .slpb-feature-grid__icon:not(.text-center):not(.text-end) {
    margin-left: 0;
    margin-right: auto;
}

.text-end .slpb-feature-grid__icon:not(.text-start):not(.text-center),
.slpb-column__inner.align-items-end .slpb-feature-grid__icon:not(.text-start):not(.text-center),
.slpb-feature-grid__card.text-end .slpb-feature-grid__icon:not(.text-start):not(.text-center) {
    margin-left: auto;
    margin-right: 0;
}

.slpb-column.slpb-feature-grid__item {
    display: flex;
    flex-direction: column;
}

.slpb-column.slpb-feature-grid__item > .slpb-column__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.slpb-column.slpb-gallery__item {
    display: flex;
    flex-direction: column;
}

.slpb-column.slpb-gallery__item > .slpb-column__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.slpb-feature-grid__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.slpb-feature-grid__footer {
    margin-top: auto;
}

.slpb-team-grid__headline.section-title::after {
    content: "";
    display: block;
    width: var(--slpb-team-headline-bar-width, 50px);
    height: var(--slpb-team-headline-bar-height, 3px);
    background-color: var(--slpb-team-headline-bar-color, var(--slpb-team-accent, var(--bs-primary)));
    margin: 20px auto;
}

.slpb-team-grid__headline.section-title {
    margin-bottom: 0;
}

/* Team-Mitglied: Spalte = Grid-Zelle, echte Card trägt das Look */
.slpb-column.slpb-team-grid__item {
    display: flex;
    flex-direction: column;
}

.slpb-column.slpb-team-grid__item > .slpb-column__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Legacy: Spalte noch als Karte gestylt (vor Card-Migration) */
.slpb-column.slpb-team-grid__card > .slpb-column__inner {
    border-radius: var(--slpb-team-card-radius, 1rem);
    border: var(--slpb-team-card-border-width, 1px) solid var(--slpb-team-card-border-color, rgba(15, 23, 42, 0.08));
    box-shadow: var(--slpb-team-card-shadow, 0 0.35rem 1.1rem rgba(15, 23, 42, 0.07));
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
    height: 100%;
    overflow: hidden;
    background-clip: padding-box;
}

.slpb-column.slpb-team-grid__card:hover > .slpb-column__inner {
    transform: translateY(calc(-1 * var(--slpb-team-card-hover-lift, 7px)));
    border-color: var(--slpb-team-card-hover-border-color, rgba(15, 23, 42, 0.12));
    box-shadow: var(--slpb-team-card-hover-shadow, 0 0.9rem 1.85rem rgba(15, 23, 42, 0.14));
}

.slpb-card.slpb-team-grid__card,
.slpb-card.slpb-card--look {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    border-radius: var(--slpb-team-card-radius, 1rem);
    border: var(--slpb-team-card-border-width, 1px) solid var(--slpb-team-card-border-color, rgba(15, 23, 42, 0.08));
    box-shadow: var(--slpb-team-card-shadow, 0 0.35rem 1.1rem rgba(15, 23, 42, 0.07));
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
    overflow: hidden;
    background-clip: padding-box;
}

.slpb-card.slpb-team-grid__card:hover,
.slpb-card.slpb-card--look:hover {
    transform: translateY(calc(-1 * var(--slpb-team-card-hover-lift, 7px)));
    border-color: var(--slpb-team-card-hover-border-color, rgba(15, 23, 42, 0.12));
    box-shadow: var(--slpb-team-card-hover-shadow, 0 0.9rem 1.85rem rgba(15, 23, 42, 0.14));
}

/* Card-Hover-Effekte (Inspector-Tab „Effekte“) */
.slpb-card.slpb-card--hover-fx {
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.slpb-card.slpb-card--hover-lift:hover {
    transform: translateY(calc(-1 * var(--slpb-card-hover-lift, 7px)));
    box-shadow: var(--slpb-card-hover-shadow, 0 0.9rem 1.85rem rgba(15, 23, 42, 0.14));
}

/* Rahmenfarbe nur, wenn die Card bereits einen sichtbaren Rahmen hat (Tab Darstellung) */
.slpb-card.slpb-card--hover-lift.slpb-card-bw-1:hover,
.slpb-card.slpb-card--hover-lift.slpb-card-bw-2:hover,
.slpb-card.slpb-card--hover-lift.slpb-card-bw-3:hover,
.slpb-card.slpb-card--hover-lift.slpb-card-bw-4:hover,
.slpb-card.slpb-card--hover-lift.slpb-card-bw-5:hover {
    border-color: var(--slpb-card-hover-border-color, rgba(15, 23, 42, 0.12));
}

.slpb-card.slpb-card--hover-fx.slpb-card-bw-1,
.slpb-card.slpb-card--hover-fx.slpb-card-bw-2,
.slpb-card.slpb-card--hover-fx.slpb-card-bw-3,
.slpb-card.slpb-card--hover-fx.slpb-card-bw-4,
.slpb-card.slpb-card--hover-fx.slpb-card-bw-5 {
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.slpb-card.slpb-card--hover-scale:hover {
    transform: scale(var(--slpb-card-hover-scale, 1.04));
}

.slpb-card.slpb-card--hover-lift.slpb-card--hover-scale:hover {
    transform: translateY(calc(-1 * var(--slpb-card-hover-lift, 7px)))
        scale(var(--slpb-card-hover-scale, 1.04));
}

.slpb-card.slpb-card--has-shadow {
    box-shadow: var(--slpb-card-shadow, 0 0.35rem 1.1rem rgba(15, 23, 42, 0.07));
}

.slpb-card.slpb-card--shadow-none {
    box-shadow: none !important;
}

/* Portrait/Produktbild liegt als Kind-Bild — Card-Viewport nie als leeres Hero-Rechteck zeigen */
.slpb-card.slpb-team-grid__card > .slpb-card__viewport,
.slpb-card.slpb-team-grid__card > .slpb-card__media > .slpb-card__viewport,
.slpb-card.slpb-feature-grid__card > .slpb-card__viewport,
.slpb-card.slpb-feature-grid__card > .slpb-card__media > .slpb-card__viewport,
.slpb-card.slpb-product-grid__card > .slpb-card__viewport,
.slpb-card.slpb-product-grid__card > .slpb-card__media > .slpb-card__viewport {
    display: none !important;
    min-height: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}

/* Standard-Card mit Freifläche: leeren Viewport ausblenden — Slot nutzt volle Kartenfläche. */
.slpb-card.slpb-card--has-free-slot > .slpb-card__viewport,
.slpb-card.slpb-card--has-free-slot > .slpb-card__media > .slpb-card__viewport {
    display: none !important;
    min-height: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}

.slpb-card.slpb-feature-grid__card .slpb-card__slot--flow {
    position: relative;
    inset: auto;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-height: 0;
}

.slpb-card.slpb-team-grid__card .slpb-card__slot--flow {
    position: relative;
    inset: auto;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-height: 0;
    pointer-events: auto;
}

/*
 * Team-Portrait: Kreis.
 * width:100% + max-width (inline aus imageWidth %, Fallback 64%) —
 * nicht width:auto (Hintergrund-Fill hat keine Intrinsic-Breite → kollabiert).
 * Wrapper nicht stauchen (feste Kartenhöhe + Flex): sonst ovaler rounded-circle-Rahmen.
 */
.slpb-card.slpb-team-grid__card .slpb-image.slpb-team-grid__photo,
.slpb-image.slpb-team-grid__photo {
    flex: 0 0 auto;
    width: 100% !important;
    max-width: 64%;
    height: auto !important;
    min-height: 0;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

.slpb-card.slpb-team-grid__card .slpb-image.slpb-team-grid__photo .slpb-image__viewport,
.slpb-image.slpb-team-grid__photo .slpb-image__viewport {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    box-shadow:
        0 0 0 var(--slpb-team-photo-ring-width, 4px) #fff,
        0 0 0 calc(var(--slpb-team-photo-ring-width, 4px) + var(--slpb-team-photo-accent-width, 1px))
            var(--slpb-team-photo-accent-ring, rgba(13, 110, 253, 0.22));
}

.slpb-card.slpb-team-grid__card.slpb-card--fixed-height .slpb-card__slot--flow,
.slpb-card.slpb-team-grid__card.slpb-card--fixed-height > .slpb-card__media > .slpb-card__slot--flow {
    justify-content: flex-start;
    overflow: hidden;
}

.slpb-team-grid__name {
    font-weight: var(--slpb-team-name-weight, 700);
    letter-spacing: -0.01em;
}

.slpb-team-grid__role {
    font-size: var(--slpb-team-role-size, 0.9rem);
}

.slpb-team-grid__bio {
    color: var(--bs-secondary-color, #6c757d);
    line-height: var(--slpb-team-bio-line-height, 1.55);
}

.slpb-team-grid__photo {
    transition: transform 0.28s ease;
}

.slpb-column.slpb-team-grid__card:hover .slpb-team-grid__photo,
.slpb-card.slpb-team-grid__card:hover .slpb-team-grid__photo,
.slpb-card.slpb-card--look:hover .slpb-team-grid__photo {
    transform: scale(var(--slpb-team-photo-hover-scale, 1.04));
}

.slpb-team-grid__member {
    transition: transform 0.3s ease-in-out;
}

.slpb-team-grid__member:hover {
    transform: translateY(-10px);
}

.slpb-team-grid__photo-wrap {
    width: var(--slpb-team-image-size, 200px);
    height: var(--slpb-team-image-size, 200px);
    border-radius: 50%;
    border: 5px solid var(--bs-light, #f8f9fa);
    overflow: hidden;
    display: inline-block;
    transition: transform 0.3s ease;
}

.slpb-team-grid__photo-viewport {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.slpb-team-grid__photo-fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: var(--slpb-img-url);
    background-size: var(--slpb-img-size, cover);
    background-position: var(--slpb-img-position, center center);
    background-repeat: no-repeat;
}

.slpb-team-grid__member:hover .slpb-team-grid__photo-wrap {
    transform: scale(1.05);
}

.slpb-team-grid__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--slpb-team-social-size, 35px);
    height: var(--slpb-team-social-size, 35px);
    border-radius: 50%;
    background-color: var(--slpb-social-bg, var(--bs-light, #f8f9fa));
    color: var(--slpb-social-icon, var(--slpb-team-accent, var(--bs-primary)));
    margin: 0 5px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.slpb-team-grid__social-link:hover {
    background-color: var(--slpb-social-bg-hover, var(--slpb-team-accent, var(--bs-primary)));
    color: var(--slpb-social-icon-hover, #fff);
    transform: translateY(calc(-1 * var(--slpb-team-social-hover-lift, 3px)));
}

.slpb-team-grid__social-icon-mask {
    width: 18px;
    height: 18px;
    display: block;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-image: var(--slpb-social-icon-url);
    mask-image: var(--slpb-social-icon-url);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.slpb-team-grid__social-link .bi {
    font-size: 1rem;
    line-height: 1;
}

.slpb-social .slpb-team-grid__social-links {
    display: inline-block;
}

.slpb-column.slpb-product-grid__item {
    display: flex;
    flex-direction: column;
}

.slpb-column.slpb-product-grid__item > .slpb-column__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Produkt-Grid-Karte: Spaltenhöhe zuverlässig füllen (Live + Admin-Vorschau) */
.slpb-column.slpb-product-grid__item > .slpb-column__inner > .slpb-card.slpb-product-grid__card {
    flex: 1 1 auto;
    min-height: 0;
}

/* Freiflächen-/Standard-Card mit fester Höhe in Grid-Spalte: nicht mitstrecken */
.slpb-column.slpb-product-grid__item > .slpb-column__inner > .slpb-card.slpb-card--fixed-height:not(.slpb-product-grid__card) {
    flex: 0 0 auto;
    align-self: stretch;
    max-height: 100%;
}

.slpb-column.slpb-product-grid__item > .slpb-column__inner > .slpb-card.slpb-product-grid__card.slpb-card--fixed-height {
    flex: 0 0 auto;
    align-self: stretch;
    max-height: 100%;
}

.slpb-card.slpb-product-grid__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.slpb-product-grid__card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.slpb-card.slpb-product-grid__card > .slpb-card__body,
.slpb-card.slpb-product-grid__card > .slpb-card__slot--flow {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    pointer-events: auto;
}

.slpb-card.slpb-product-grid__card .slpb-product-grid__image,
.slpb-image.slpb-product-grid__image {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 0 !important;
}

.slpb-card.slpb-product-grid__card .slpb-product-grid__image .slpb-image__viewport,
.slpb-image.slpb-product-grid__image .slpb-image__viewport {
    width: 100% !important;
    aspect-ratio: 3 / 2 !important;
    border-radius: 0 !important;
}

.slpb-product-grid__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12) !important;
}

.slpb-product-grid__image {
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

/* ——— Wohnungen-Karte (Design-Referenz) ——— */
.slpb-wohnungen {
    --slpb-wohnungen-ink: #1a202c;
    --slpb-wohnungen-muted: #718096;
    --slpb-wohnungen-status: #0f766e;
    --slpb-wohnungen-btn: #0f4c5c;
    --slpb-wohnungen-btn-hover: #0a3a46;
    --slpb-wohnungen-chip: #f0f4f8;
    --slpb-wohnungen-line: #e2e8f0;
    --slpb-wohnungen-radius: 0.75rem;
}

.slpb-wohnungen__card {
    border-radius: var(--slpb-wohnungen-radius);
    background: #fff;
    box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.slpb-wohnungen__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.12);
}

.slpb-wohnungen__card > .row {
    align-items: stretch;
}

.slpb-wohnungen__media {
    position: relative;
    background-color: var(--slpb-wohnungen-chip);
    align-self: stretch;
    height: auto !important;
    min-height: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.slpb-multi-card {
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

/* Freifläche: definite Höhe + Clip (bottom-Anker brauchen feste Slot-Höhe). */
.slpb-multi-card:has(.slpb-multi-card__slot--free) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.slpb-multi-card:has(.slpb-multi-card__slot--free) > .row {
    overflow: hidden;
}

.slpb-multi-card[class*="rounded-"] {
    border-radius: var(--bs-border-radius);
}

.slpb-multi-card.rounded-0 {
    border-radius: 0 !important;
}

.slpb-multi-card.rounded-1 {
    border-radius: var(--bs-border-radius-sm) !important;
}

.slpb-multi-card.rounded-2 {
    border-radius: var(--bs-border-radius) !important;
}

.slpb-multi-card.rounded-3 {
    border-radius: var(--bs-border-radius-lg) !important;
}

.slpb-multi-card.rounded-4 {
    border-radius: var(--bs-border-radius-xl) !important;
}

.slpb-multi-card.rounded-5 {
    border-radius: var(--bs-border-radius-xxl) !important;
}

.slpb-multi-card[class*=" bg-"],
.slpb-multi-card.slpb-multi-card--bg-pattern,
.slpb-multi-card.slpb-multi-card--bg-custom-gradient,
.slpb-multi-card.slpb-multi-card--bg-image,
.slpb-multi-card.slpb-multi-card--bg-svg {
    background-color: transparent;
}

.slpb-multi-card--bg-pattern-gradient {
    background-color: #fff;
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, transparent 45%, rgba(0, 0, 0, 0.1) 100%);
    background-repeat: no-repeat;
}

.slpb-multi-card--bg-pattern-stripes {
    background-color: #fff;
    background-image: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px);
    background-repeat: repeat;
}

.slpb-multi-card--bg-pattern-dots {
    background-color: #fff;
    background-image: radial-gradient(circle, rgba(0, 0, 0, 0.09) 1px, transparent 1px);
    background-size: 14px 14px;
    background-repeat: repeat;
}

.slpb-multi-card--bg-pattern-grid {
    background-color: #fff;
    background-image:
        linear-gradient(rgba(0, 0, 0, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.07) 1px, transparent 1px);
    background-size: 18px 18px;
    background-repeat: repeat;
}

.slpb-multi-card--bg-image {
    position: relative;
}

.slpb-multi-card--bg-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--slpb-bg-image);
    background-size: var(--slpb-bg-size, cover);
    background-position: var(--slpb-bg-position, center);
    background-repeat: no-repeat;
    opacity: var(--slpb-bg-image-opacity, 1);
    pointer-events: none;
    z-index: 0;
}

.slpb-multi-card--bg-image > .row {
    position: relative;
    z-index: 1;
}

.slpb-multi-card--min-height {
    display: flex;
    flex-direction: column;
}

.slpb-multi-card--min-height > .row {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.slpb-multi-card > .row {
    align-items: stretch;
}

.slpb-multi-card__media {
    position: relative;
    background-color: #f0f4f8;
    align-self: stretch;
    min-height: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.slpb-multi-card__media-inner,
.slpb-multi-card__viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.slpb-multi-card__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
}

.slpb-multi-card__body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    align-self: stretch;
}

.slpb-multi-card__slot {
    flex: 1 1 auto;
    min-height: 3rem;
    border-radius: 0;
}

.slpb-multi-card__slot--free {
    position: relative !important;
    isolation: isolate;
    /* Früher 10rem → mit Bildhöhe gestapelt oft ~320px harte Untergrenze */
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    min-height: 3rem;
    overflow: hidden;
}

/*
 * Freifläche braucht eine definite Höhe — sonst ist bottom/center unbestimmt
 * und das Element landet an der Static-Position (Row/Section statt Slot).
 */
.slpb-multi-card:has(.slpb-multi-card__slot--free) > .slpb-multi-card__row {
    flex: 1 1 auto;
    align-items: stretch;
    min-height: 0;
    width: 100%;
}

.slpb-multi-card__body:has(.slpb-multi-card__slot--free) {
    display: flex !important;
    flex-direction: column;
    align-self: stretch;
    min-height: 100%;
    height: 100%;
}

.slpb-multi-card__body:has(.slpb-multi-card__slot--free) > .slpb-multi-card__slot--free {
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    height: 100%;
    min-height: 100%;
}

/* Explizite Karten-Mindesthöhe: Inhalt darf die Karte nicht künstlich aufblasen */
.slpb-multi-card--min-height .slpb-multi-card__slot--free,
.slpb-multi-card--min-height .slpb-multi-card__slot {
    min-height: 0;
}

.slpb-multi-card--min-height .slpb-multi-card__media {
    aspect-ratio: auto;
}

.slpb-multi-card--max-width {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    max-width: var(--slpb-mc-max-w, none);
}

/*
 * Nebeneinander (ab Tablet): Karten füllen die Spalte — Abstand = Row-Gutter / column-gap,
 * nicht wachsender Leerraum durch zentrierte Max-Breite.
 */
@media (min-width: 768px) {
    .slpb-row:has(> .slpb-column .slpb-multi-card) {
        align-items: flex-start;
    }

    /*
     * Bei Gutter 0: Abstand über Spalten-Padding (nicht column-gap —
     * sonst wrapen col-md-6 wegen 50%+50%+gap).
     */
    .slpb-row:has(> .slpb-column .slpb-multi-card)[style*="--bs-gutter-x:0"] {
        --slpb-mc-row-gap: 1rem;
        margin-left: calc(var(--slpb-mc-row-gap) * -0.5);
        margin-right: calc(var(--slpb-mc-row-gap) * -0.5);
    }

    .slpb-row:has(> .slpb-column .slpb-multi-card)[style*="--bs-gutter-x:0"] > .slpb-column {
        padding-left: calc(var(--slpb-mc-row-gap) * 0.5);
        padding-right: calc(var(--slpb-mc-row-gap) * 0.5);
    }

    .slpb-column[class*="col-md-"]:not(.col-md-12) > .slpb-column__inner > .slpb-multi-card.slpb-multi-card--max-width {
        width: 100%;
        max-width: 100% !important;
        margin-left: 0;
        margin-right: 0;
    }
}

@media (min-width: 992px) {
    .slpb-column[class*="col-lg-"]:not(.col-lg-12) > .slpb-column__inner > .slpb-multi-card.slpb-multi-card--max-width {
        width: 100%;
        max-width: 100% !important;
        margin-left: 0;
        margin-right: 0;
    }
}

.slpb-multi-card--min-height {
    min-height: var(--slpb-mc-min-h, 0);
}

.slpb-multi-card--spacing {
    padding-top: var(--slpb-mc-pt, 0) !important;
    padding-bottom: var(--slpb-mc-pb, 0) !important;
    padding-left: var(--slpb-mc-px, 0) !important;
    padding-right: var(--slpb-mc-px, 0) !important;
    margin-top: var(--slpb-mc-mt, 0) !important;
    margin-bottom: var(--slpb-mc-mb, 0) !important;
}

/* Basis VOR den Media-Queries — sonst überschreibt die spätere Regel Tablet/Desktop. */
.slpb-multi-card--has-media-height .slpb-multi-card__media {
    aspect-ratio: auto !important;
    height: var(--slpb-multi-card-media-height) !important;
    min-height: var(--slpb-multi-card-media-height) !important;
    max-height: var(--slpb-multi-card-media-height) !important;
    flex: 0 0 auto !important;
    /* Nicht stretch: sonst zieht Row-Höhe die Bildhöhe auseinander. */
    align-self: flex-start !important;
}

.slpb-multi-card--media-top:not(.slpb-multi-card--has-media-height) .slpb-multi-card__media {
    aspect-ratio: 16 / 9;
}

/* Bildposition: pro Viewport-Band (sonst überschreibt „oben“ die Neben­einander-Spalten) */
@media (max-width: 767.98px) {
    .slpb-mc-pos-h-left > .slpb-multi-card__row {
        flex-direction: row;
        align-items: stretch;
    }

    .slpb-mc-pos-h-right > .slpb-multi-card__row {
        flex-direction: row-reverse;
        align-items: stretch;
    }

    /*
     * Bild links/rechts: Body braucht die Bildhöhe — sonst kollabiert die Freifläche
     * (nur absolute Kinder) und Preis/Features sind unsichtbar (overflow:hidden).
     */
    .slpb-mc-pos-h-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-pos-h-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body {
        align-self: stretch !important;
        min-height: var(--slpb-multi-card-media-height) !important;
        height: auto !important;
    }

    .slpb-mc-pos-h-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media,
    .slpb-mc-pos-h-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media {
        align-self: stretch !important;
        height: auto !important;
        max-height: none !important;
        min-height: var(--slpb-multi-card-media-height) !important;
    }

    .slpb-mc-pos-h-top > .slpb-multi-card__row,
    .slpb-mc-stack-h > .slpb-multi-card__row {
        flex-direction: column !important;
    }

    /* Gestapelt + Position rechts: Bild unten (wie früher column-reverse). */
    .slpb-mc-stack-h.slpb-mc-pos-h-right > .slpb-multi-card__row {
        flex-direction: column-reverse !important;
    }

    .slpb-mc-pos-h-top > .slpb-multi-card__row > [class*="col-"],
    .slpb-mc-stack-h > .slpb-multi-card__row > [class*="col-"] {
        /* Gegen Bootstrap col-*-6 — sonst ist Freifläche nur 50% breit (Center-Anker links). */
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Bild oben / gestapelt (Breite 12): Body muss wachsen — absolute Kinder geben sonst Höhe 0. */
    .slpb-mc-pos-h-top > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-stack-h > .slpb-multi-card__row > .slpb-multi-card__body {
        flex: 1 1 auto !important;
        min-height: 3rem;
        display: flex;
        flex-direction: column;
    }

    .slpb-mc-pos-h-top .slpb-multi-card__slot--free,
    .slpb-mc-pos-h-top.slpb-multi-card--min-height .slpb-multi-card__slot--free,
    .slpb-mc-stack-h .slpb-multi-card__slot--free,
    .slpb-mc-stack-h.slpb-multi-card--min-height .slpb-multi-card__slot--free {
        flex: 1 1 auto;
        min-height: 3rem !important;
    }
}

@media (min-width: 768px) {
    .slpb-multi-card--max-width {
        max-width: var(--slpb-mc-max-w-sm, var(--slpb-mc-max-w, none));
    }

    .slpb-multi-card--min-height {
        min-height: var(--slpb-mc-min-h-sm, var(--slpb-mc-min-h, 0));
    }

    .slpb-multi-card--spacing {
        padding-top: var(--slpb-mc-pt-sm, var(--slpb-mc-pt, 0)) !important;
        padding-bottom: var(--slpb-mc-pb-sm, var(--slpb-mc-pb, 0)) !important;
        padding-left: var(--slpb-mc-px-sm, var(--slpb-mc-px, 0)) !important;
        padding-right: var(--slpb-mc-px-sm, var(--slpb-mc-px, 0)) !important;
        margin-top: var(--slpb-mc-mt-sm, var(--slpb-mc-mt, 0)) !important;
        margin-bottom: var(--slpb-mc-mb-sm, var(--slpb-mc-mb, 0)) !important;
    }

    .slpb-multi-card--has-media-height .slpb-multi-card__media {
        height: var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height)) !important;
        min-height: var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height)) !important;
        max-height: var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height)) !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .slpb-mc-pos-t-left > .slpb-multi-card__row {
        flex-direction: row;
        align-items: stretch;
    }

    .slpb-mc-pos-t-right > .slpb-multi-card__row {
        flex-direction: row-reverse;
        align-items: stretch;
    }

    /*
     * Bild links/rechts: Body braucht die Bildhöhe — sonst kollabiert die Freifläche
     * (nur absolute Kinder) und Features sind unsichtbar (overflow:hidden).
     */
    .slpb-mc-pos-t-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-pos-t-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body {
        align-self: stretch !important;
        min-height: var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height)) !important;
        height: auto !important;
    }

    .slpb-mc-pos-t-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media,
    .slpb-mc-pos-t-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media {
        align-self: stretch !important;
        height: auto !important;
        max-height: none !important;
        min-height: var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height)) !important;
    }

    .slpb-mc-pos-t-top > .slpb-multi-card__row,
    .slpb-mc-stack-t > .slpb-multi-card__row {
        flex-direction: column !important;
    }

    .slpb-mc-pos-t-top > .slpb-multi-card__row > [class*="col-"],
    .slpb-mc-stack-t > .slpb-multi-card__row > [class*="col-"] {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .slpb-mc-pos-t-top > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-stack-t > .slpb-multi-card__row > .slpb-multi-card__body {
        flex: 1 1 auto !important;
        min-height: 3rem;
        display: flex;
        flex-direction: column;
    }

    .slpb-mc-pos-t-top .slpb-multi-card__slot--free,
    .slpb-mc-pos-t-top.slpb-multi-card--min-height .slpb-multi-card__slot--free,
    .slpb-mc-stack-t .slpb-multi-card__slot--free,
    .slpb-mc-stack-t.slpb-multi-card--min-height .slpb-multi-card__slot--free {
        flex: 1 1 auto;
        min-height: 3rem !important;
    }
}

@media (min-width: 992px) {
    .slpb-multi-card--max-width {
        max-width: var(--slpb-mc-max-w-md, var(--slpb-mc-max-w-sm, var(--slpb-mc-max-w, none)));
    }

    .slpb-multi-card--min-height {
        min-height: var(--slpb-mc-min-h-md, var(--slpb-mc-min-h-sm, var(--slpb-mc-min-h, 0)));
    }

    .slpb-multi-card--spacing {
        padding-top: var(--slpb-mc-pt-md, var(--slpb-mc-pt-sm, var(--slpb-mc-pt, 0))) !important;
        padding-bottom: var(--slpb-mc-pb-md, var(--slpb-mc-pb-sm, var(--slpb-mc-pb, 0))) !important;
        padding-left: var(--slpb-mc-px-md, var(--slpb-mc-px-sm, var(--slpb-mc-px, 0))) !important;
        padding-right: var(--slpb-mc-px-md, var(--slpb-mc-px-sm, var(--slpb-mc-px, 0))) !important;
        margin-top: var(--slpb-mc-mt-md, var(--slpb-mc-mt-sm, var(--slpb-mc-mt, 0))) !important;
        margin-bottom: var(--slpb-mc-mb-md, var(--slpb-mc-mb-sm, var(--slpb-mc-mb, 0))) !important;
    }

    .slpb-multi-card--has-media-height .slpb-multi-card__media {
        height: var(--slpb-multi-card-media-height-md, var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height))) !important;
        min-height: var(--slpb-multi-card-media-height-md, var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height))) !important;
        max-height: var(--slpb-multi-card-media-height-md, var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height))) !important;
    }

    .slpb-mc-pos-d-left > .slpb-multi-card__row {
        flex-direction: row;
        align-items: stretch;
    }

    .slpb-mc-pos-d-right > .slpb-multi-card__row {
        flex-direction: row-reverse;
        align-items: stretch;
    }

    .slpb-mc-pos-d-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-pos-d-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__body {
        align-self: stretch !important;
        min-height: var(--slpb-multi-card-media-height-md, var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height))) !important;
        height: auto !important;
    }

    .slpb-mc-pos-d-left.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media,
    .slpb-mc-pos-d-right.slpb-multi-card--has-media-height > .slpb-multi-card__row > .slpb-multi-card__media {
        align-self: stretch !important;
        height: auto !important;
        max-height: none !important;
        min-height: var(--slpb-multi-card-media-height-md, var(--slpb-multi-card-media-height-sm, var(--slpb-multi-card-media-height))) !important;
    }

    .slpb-mc-pos-d-top > .slpb-multi-card__row,
    .slpb-mc-stack-d > .slpb-multi-card__row {
        flex-direction: column !important;
    }

    .slpb-mc-pos-d-top > .slpb-multi-card__row > [class*="col-"],
    .slpb-mc-stack-d > .slpb-multi-card__row > [class*="col-"] {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .slpb-mc-pos-d-top > .slpb-multi-card__row > .slpb-multi-card__body,
    .slpb-mc-stack-d > .slpb-multi-card__row > .slpb-multi-card__body {
        flex: 1 1 auto !important;
        min-height: 3rem;
        display: flex;
        flex-direction: column;
    }

    .slpb-mc-pos-d-top .slpb-multi-card__slot--free,
    .slpb-mc-pos-d-top.slpb-multi-card--min-height .slpb-multi-card__slot--free,
    .slpb-mc-stack-d .slpb-multi-card__slot--free,
    .slpb-mc-stack-d.slpb-multi-card--min-height .slpb-multi-card__slot--free {
        flex: 1 1 auto;
        min-height: 3rem !important;
    }
}

.slpb-multi-card__free-item {
    position: absolute !important;
    z-index: 1;
    max-width: calc(100% - 0.5rem);
    margin: 0 !important;
    box-sizing: border-box;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
}

/* Cards auf Freifläche: Breite über „Feste Breite“ / Inhalt, nicht erzwingend 100 % */
.slpb-card.slpb-multi-card__free-item {
    width: max-content;
    max-width: 100%;
    box-sizing: border-box;
}

.slpb-card.slpb-multi-card__free-item.slpb-card--fixed-width {
    max-width: 100%;
}

/* Anker pro Breakpoint: h = Handy, sm = Tablet, md = Desktop */

/* Handy (Default) */

.slpb-multi-card__free-item.slpb-free-anchor-h-top-left {
    top: var(--slpb-free-top, 0px) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-h-top-center {
    top: var(--slpb-free-top, 0px) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-h-top-right {
    top: var(--slpb-free-top, 0px) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-h-middle-left {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-h-center {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translate(-50%, -50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-h-middle-right {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-h-bottom-left {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-h-bottom-center {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-h-bottom-right {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    transform: none;
}

.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-h-top-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-h-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-h-bottom-center {
    width: 100% !important;
}


/* Tablet */

@media (min-width: 768px) {

.slpb-multi-card__free-item.slpb-free-anchor-sm-top-left {
    top: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    left: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-top-center {
    top: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    left: calc(50% + var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-top-right {
    top: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    right: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    left: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-middle-left {
    top: calc(50% + var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-center {
    top: calc(50% + var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: calc(50% + var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translate(-50%, -50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-middle-right {
    top: calc(50% + var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    right: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-bottom-left {
    top: auto !important;
    bottom: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    left: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-bottom-center {
    top: auto !important;
    bottom: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    left: calc(50% + var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-sm-bottom-right {
    top: auto !important;
    bottom: var(--slpb-free-top-sm, var(--slpb-free-top, 0px)) !important;
    right: var(--slpb-free-left-sm, var(--slpb-free-left, 0px)) !important;
    left: auto !important;
    transform: none;
}

.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-sm-top-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-sm-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-sm-bottom-center {
    width: 100% !important;
}

}


/* Desktop */

@media (min-width: 992px) {

.slpb-multi-card__free-item.slpb-free-anchor-md-top-left {
    top: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-md-top-center {
    top: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: calc(50% + var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px)))) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-md-top-right {
    top: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    right: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    left: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-md-middle-left {
    top: calc(50% + var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px)))) !important;
    left: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-md-center {
    top: calc(50% + var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px)))) !important;
    left: calc(50% + var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px)))) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translate(-50%, -50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-md-middle-right {
    top: calc(50% + var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px)))) !important;
    right: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-md-bottom-left {
    top: auto !important;
    bottom: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    right: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-md-bottom-center {
    top: auto !important;
    bottom: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    left: calc(50% + var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px)))) !important;
    right: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-md-bottom-right {
    top: auto !important;
    bottom: var(--slpb-free-top-md, var(--slpb-free-top-sm, var(--slpb-free-top, 0px))) !important;
    right: var(--slpb-free-left-md, var(--slpb-free-left-sm, var(--slpb-free-left, 0px))) !important;
    left: auto !important;
    transform: none;
}

.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-md-top-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-md-center,
.slpb-image.slpb-multi-card__free-item.slpb-free-anchor-md-bottom-center {
    width: 100% !important;
}

}

/* Legacy-Einzelklasse (= Handy), für alte Markup/Drag-Pin */

.slpb-multi-card__free-item.slpb-free-anchor-top-left {
    top: var(--slpb-free-top, 0px) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-top-center {
    top: var(--slpb-free-top, 0px) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-top-right {
    top: var(--slpb-free-top, 0px) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    bottom: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-middle-left {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-center {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translate(-50%, -50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-middle-right {
    top: calc(50% + var(--slpb-free-top, 0px)) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-bottom-left {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    left: var(--slpb-free-left, 0px) !important;
    right: auto !important;
    transform: none;
}

.slpb-multi-card__free-item.slpb-free-anchor-bottom-center {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    left: calc(50% + var(--slpb-free-left, 0px)) !important;
    right: auto !important;
    width: max-content;
    max-width: calc(100% - 0.5rem);
    transform: translateX(-50%);
}

.slpb-multi-card__free-item.slpb-free-anchor-bottom-right {
    top: auto !important;
    bottom: var(--slpb-free-top, 0px) !important;
    right: var(--slpb-free-left, 0px) !important;
    left: auto !important;
    transform: none;
}

@media (min-width: 768px) {
    .slpb-multi-card__media {
        aspect-ratio: auto;
        min-height: 0;
    }

    /* Default nur ohne explizite Bildhöhe — sonst gewinnt 12rem gegen Desktop-px. */
    .slpb-multi-card--media-top:not(.slpb-multi-card--has-media-height) .slpb-multi-card__media {
        aspect-ratio: 21 / 9;
        min-height: 12rem;
    }
}

.slpb-wohnungen__media-inner,
.slpb-wohnungen__carousel,
.slpb-multi-card__carousel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.slpb-wohnungen__carousel .carousel-inner,
.slpb-wohnungen__carousel .carousel-item,
.slpb-multi-card__carousel .carousel-inner,
.slpb-multi-card__carousel .carousel-item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.slpb-wohnungen__viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.slpb-wohnungen__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.slpb-wohnungen__image {
    object-fit: cover;
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* Carousel-Controls: weiße Kreise */
.slpb-wohnungen__carousel .carousel-control-prev,
.slpb-wohnungen__carousel .carousel-control-next,
.slpb-multi-card__carousel .carousel-control-prev,
.slpb-multi-card__carousel .carousel-control-next {
    width: 2.25rem;
    height: 2.25rem;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    opacity: 1;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 50%;
    box-shadow: 0 0.125rem 0.5rem rgba(15, 23, 42, 0.15);
}

.slpb-wohnungen__carousel .carousel-control-prev,
.slpb-multi-card__carousel .carousel-control-prev {
    left: 0.75rem;
}

.slpb-wohnungen__carousel .carousel-control-next,
.slpb-multi-card__carousel .carousel-control-next {
    right: 0.75rem;
}

.slpb-wohnungen__carousel .carousel-control-prev-icon,
.slpb-wohnungen__carousel .carousel-control-next-icon,
.slpb-multi-card__carousel .carousel-control-prev-icon,
.slpb-multi-card__carousel .carousel-control-next-icon {
    width: 0.9rem;
    height: 0.9rem;
    filter: invert(1) grayscale(1) brightness(0.25);
}

.slpb-wohnungen__carousel .carousel-indicators,
.slpb-multi-card__carousel .carousel-indicators {
    margin-bottom: 0.85rem;
}

.slpb-wohnungen__carousel .carousel-indicators [data-bs-target],
.slpb-multi-card__carousel .carousel-indicators [data-bs-target] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: #fff;
    opacity: 0.45;
    border: 0;
    margin: 0 0.2rem;
    box-sizing: content-box;
    text-indent: -999px;
    overflow: hidden;
}

.slpb-wohnungen__carousel .carousel-indicators .active,
.slpb-multi-card__carousel .carousel-indicators .active {
    opacity: 1;
}

.slpb-wohnungen__body {
    padding: 1.35rem 1.5rem 1.5rem;
    color: var(--slpb-wohnungen-ink);
}

.slpb-wohnungen__title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--slpb-wohnungen-ink);
}

.slpb-wohnungen__address {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--slpb-wohnungen-muted);
}

.slpb-wohnungen__status {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--slpb-wohnungen-status);
}

.slpb-wohnungen__status-icon {
    font-size: 1.05rem;
    line-height: 1;
}

.slpb-wohnungen__features-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.slpb-wohnungen__feature {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0.35rem 0.65rem;
    border-radius: 0.375rem;
    background: var(--slpb-wohnungen-chip);
    color: var(--slpb-wohnungen-ink);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    border: 0;
}

.slpb-wohnungen__feature-icon {
    font-size: 0.9rem;
    color: #4a5568;
    line-height: 1;
}

.slpb-feature-badges {
    --slpb-feature-badges-ink: #1a202c;
    --slpb-feature-badges-chip: #f0f4f8;
}

.slpb-feature-badges__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--slpb-feature-badges-ink);
}

.slpb-feature-badges__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.slpb-feature-badges__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0.35rem 0.65rem;
    border-radius: 0.375rem;
    background: var(--slpb-feature-badges-chip);
    color: var(--slpb-feature-badges-ink);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    border: 0;
}

.slpb-feature-badges__icon {
    font-size: 0.9rem;
    color: #4a5568;
    line-height: 1;
}

.slpb-feature-badges__icon--img {
    display: block;
    width: 1.05rem;
    height: 1.05rem;
    object-fit: contain;
    flex-shrink: 0;
}

.slpb-wohnungen__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-top: 0.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--slpb-wohnungen-line);
}

.slpb-wohnungen__price {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.35;
    color: var(--slpb-wohnungen-ink);
}

.slpb-wohnungen__price-amount {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.slpb-price {
    --slpb-price-ink: #1a202c;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.35;
    color: var(--slpb-price-ink);
}

/* Glas-Karte — Tabellen-Layout: Icon | Eyebrow / Titel */
/* Pill-Badge (Klabautermann Hero-Badge) */
.slpb-pill-badge {
    --bs-badge-padding-x: 0;
    --bs-badge-padding-y: 0;
    --slpb-pill-icon-cell-width: auto;
    --slpb-pill-icon-size: 1em;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0 !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    width: max-content;
    max-width: 100%;
    /* Nie unter Icon-/Textmaß kollabieren (Free-Pos-Drag ohne Höhen-Pin). */
    min-height: max(1em, var(--slpb-pill-icon-size));
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.75em;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    border: 0;
    white-space: nowrap;
}

.slpb-pill-badge--fixed-width {
    max-width: 100%;
}

.slpb-pill-badge--fixed-height {
    overflow: hidden;
}

.slpb-pill-badge.slpb-multi-card__free-item:not(.slpb-pill-badge--fixed-width) {
    width: max-content;
    max-width: calc(100% - 0.5rem);
}

.slpb-pill-badge__icon-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    max-width: none;
    height: auto;
    min-height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    box-sizing: border-box;
    text-align: center;
}

.slpb-pill-badge--has-icon-cell-width .slpb-pill-badge__icon-cell {
    width: var(--slpb-pill-icon-cell-width) !important;
    min-width: var(--slpb-pill-icon-cell-width) !important;
    max-width: var(--slpb-pill-icon-cell-width) !important;
}

.slpb-pill-badge__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--slpb-pill-icon-size);
    height: var(--slpb-pill-icon-size);
    margin: 0 !important;
    padding: 0 !important;
    font-size: var(--slpb-pill-icon-size);
    line-height: 1;
    text-align: center;
    vertical-align: middle;
}

.slpb-pill-badge__icon::before {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1;
    width: var(--slpb-pill-icon-size);
    height: var(--slpb-pill-icon-size);
    text-align: center;
}

.slpb-pill-badge__icon-img {
    display: block;
    width: var(--slpb-pill-icon-size);
    height: var(--slpb-pill-icon-size);
    margin: 0 auto !important;
    padding: 0 !important;
    flex-shrink: 0;
    object-fit: contain;
    object-position: center;
}

.slpb-pill-badge--has-icon-cell-width .slpb-pill-badge__icon,
.slpb-pill-badge--has-icon-cell-width .slpb-pill-badge__icon-img {
    width: var(--slpb-pill-icon-size);
    height: var(--slpb-pill-icon-size);
    max-width: 100%;
    max-height: 100%;
}

.slpb-pill-badge__text {
    display: inline-block;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0;
}

.slpb-pill-badge__text :is(p, div, h1, h2, h3, h4, h5, h6, ul, ol, li) {
    display: inline;
    margin: 0;
    padding: 0;
}

.slpb-pill-badge__text br {
    display: none;
}

.slpb-glass-card {
    --slpb-glass-card-icon: #f4bf3a;
    --slpb-glass-text-color: #fff;
    --slpb-glass-title-size: 1.05rem;
    --slpb-glass-eyebrow-size: 0.74rem;
    --slpb-glass-icon-cell-width: 3.25rem;
    --slpb-glass-icon-size: 1.6rem;
    --slpb-glass-blur: 12px;
    --slpb-glass-bg-alpha: 0.12;
    --slpb-glass-border-alpha: 0.22;
    --slpb-glass-radius: 1rem;
    box-sizing: border-box;
    display: block;
    padding: 1rem;
    background: rgba(255, 255, 255, var(--slpb-glass-bg-alpha));
    border: 1px solid rgba(255, 255, 255, var(--slpb-glass-border-alpha));
    border-radius: var(--slpb-glass-radius);
    -webkit-backdrop-filter: blur(var(--slpb-glass-blur));
    backdrop-filter: blur(var(--slpb-glass-blur));
    color: var(--slpb-glass-text-color);
}

.slpb-glass-card--fixed-width {
    max-width: 100%;
}

.slpb-glass-card--fixed-height {
    overflow: hidden;
}

.slpb-glass-card__table {
    /* max-content: Icon-Spalte bleibt beim Freiflächen-Drag/Snap stabil */
    width: max-content;
    max-width: 100%;
    height: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
    margin: 0;
}

.slpb-glass-card--fixed-width .slpb-glass-card__table {
    width: 100%;
}

/* Freifläche: Kartenbreite = Inhalt — kein Shrink-to-fit, das die Icon-Spalte aufbläht */
.slpb-glass-card.slpb-multi-card__free-item {
    width: max-content;
    max-width: calc(100% - 0.5rem);
}

.slpb-glass-card__col--icon {
    width: var(--slpb-glass-icon-cell-width) !important;
    min-width: var(--slpb-glass-icon-cell-width) !important;
    max-width: var(--slpb-glass-icon-cell-width) !important;
}

.slpb-glass-card__col--text {
    width: auto;
}

.slpb-glass-card__cell {
    box-sizing: border-box;
    padding: 0;
    vertical-align: middle;
    text-align: start;
}

.slpb-glass-card__cell--icon {
    width: var(--slpb-glass-icon-cell-width) !important;
    min-width: var(--slpb-glass-icon-cell-width) !important;
    max-width: var(--slpb-glass-icon-cell-width) !important;
    /* Kein Padding in der Icon-Spalte — Abstand kommt als padding-left der Textzellen. */
    padding: 0 !important;
    text-align: center;
    vertical-align: middle;
    overflow: hidden;
}

.slpb-glass-card__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.slpb-glass-card__cell--eyebrow,
.slpb-glass-card__cell--title {
    min-width: 0;
    padding-left: 0;
    text-align: start;
}

.slpb-glass-card--align-start .slpb-glass-card__cell--eyebrow,
.slpb-glass-card--align-start .slpb-glass-card__cell--title,
.slpb-glass-card.text-start .slpb-glass-card__cell--eyebrow,
.slpb-glass-card.text-start .slpb-glass-card__cell--title {
    text-align: start;
}

.slpb-glass-card--align-center .slpb-glass-card__cell--icon,
.slpb-glass-card--align-center .slpb-glass-card__cell--eyebrow,
.slpb-glass-card--align-center .slpb-glass-card__cell--title,
.slpb-glass-card.text-center .slpb-glass-card__cell--icon,
.slpb-glass-card.text-center .slpb-glass-card__cell--eyebrow,
.slpb-glass-card.text-center .slpb-glass-card__cell--title {
    text-align: center;
}

.slpb-glass-card--align-center .slpb-glass-card__cell--eyebrow,
.slpb-glass-card--align-center .slpb-glass-card__cell--title,
.slpb-glass-card.text-center .slpb-glass-card__cell--eyebrow,
.slpb-glass-card.text-center .slpb-glass-card__cell--title {
    padding-left: 0;
    padding-right: 0;
}

.slpb-glass-card--align-end .slpb-glass-card__cell--eyebrow,
.slpb-glass-card--align-end .slpb-glass-card__cell--title,
.slpb-glass-card.text-end .slpb-glass-card__cell--eyebrow,
.slpb-glass-card.text-end .slpb-glass-card__cell--title {
    text-align: end;
    padding-left: 0;
    padding-right: 0;
}

.slpb-glass-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--slpb-glass-icon-size);
    height: var(--slpb-glass-icon-size);
    margin: 0;
    padding: 0;
    color: var(--slpb-glass-card-icon);
    font-size: var(--slpb-glass-icon-size);
    line-height: 1;
    text-align: center;
}

.slpb-glass-card__icon::before {
    display: block;
    margin: 0;
    padding: 0;
    line-height: 1;
}

.slpb-glass-card__icon-img {
    display: block;
    flex-shrink: 0;
    width: var(--slpb-glass-icon-size);
    height: var(--slpb-glass-icon-size);
    margin: 0;
    padding: 0;
    object-fit: contain;
}

.slpb-glass-card__eyebrow,
.slpb-glass-card__title {
    display: block;
    margin: 0;
}

.slpb-glass-card__eyebrow {
    color: color-mix(in srgb, var(--slpb-glass-text-color, currentColor) 65%, transparent);
    font-size: var(--slpb-glass-eyebrow-size);
    font-weight: 500;
    letter-spacing: 0.07em;
    /* letter-spacing wirkt nur nach rechts — optisch zentrieren */
    padding-left: 0.07em;
    text-transform: uppercase;
    line-height: 1.3;
}

.slpb-glass-card__title {
    font-size: var(--slpb-glass-title-size);
    font-weight: 700;
    line-height: 1.25;
    color: var(--slpb-glass-text-color, currentColor);
}

/* Explizite Schriftfarbe (Bootstrap-Klasse + CSS-Var) — überschreibt Defaults. */
.slpb-glass-card.slpb-glass-card--has-text-color,
.slpb-glass-card.slpb-glass-card--has-text-color .slpb-glass-card__title {
    color: var(--slpb-glass-text-color, currentColor);
}

.slpb-glass-card.slpb-glass-card--has-text-color .slpb-glass-card__eyebrow {
    color: color-mix(in srgb, var(--slpb-glass-text-color, currentColor) 65%, transparent);
}

.slpb-glass-card.slpb-glass-card--has-eyebrow-color .slpb-glass-card__eyebrow {
    color: var(--slpb-glass-eyebrow-color, currentColor);
}

.slpb-price__amount {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.slpb-wohnungen__cleaning {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    background: var(--slpb-wohnungen-chip);
    color: #4a5568;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
}

.slpb-wohnungen__cleaning-icon {
    color: #0f766e;
    font-size: 0.95rem;
    line-height: 1;
}

.slpb-wohnungen__cta {
    margin-top: auto;
    padding-top: 1rem;
}

.slpb-wohnungen__btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.7rem 1.25rem;
    border: 0 !important;
    border-radius: 0.5rem !important;
    background-color: var(--slpb-wohnungen-btn) !important;
    color: #fff !important;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none !important;
    box-shadow: none !important;
}

.slpb-wohnungen__cta .slpb-wohnungen__btn.w-100 {
    width: 100% !important;
    align-self: stretch;
}

.slpb-wohnungen__cta .slpb-wohnungen__btn.w-auto {
    width: auto !important;
    align-self: flex-start;
    max-width: 100%;
}

.slpb-wohnungen__btn:hover,
.slpb-wohnungen__btn:focus {
    background-color: var(--slpb-wohnungen-btn-hover) !important;
    color: #fff !important;
}

.slpb-wohnungen__btn-icon {
    font-size: 1.05rem;
    line-height: 1;
}

.slpb-wohnungen__list > .slpb-wohnungen__card:last-child {
    margin-bottom: 0 !important;
}

@media (min-width: 768px) {
    .slpb-wohnungen__media {
        aspect-ratio: auto;
        border-radius: var(--slpb-wohnungen-radius) 0 0 var(--slpb-wohnungen-radius);
    }

    .slpb-wohnungen__card > .row > .slpb-wohnungen__media.order-md-2 {
        border-radius: 0 var(--slpb-wohnungen-radius) var(--slpb-wohnungen-radius) 0;
    }

    .slpb-wohnungen__body {
        padding: 1.5rem 1.75rem;
    }
}

@media (max-width: 767.98px) {
    .slpb-wohnungen__media {
        border-radius: var(--slpb-wohnungen-radius) var(--slpb-wohnungen-radius) 0 0;
    }

    .slpb-wohnungen__meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

.slpb-hero-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.slpb-hero-section > .container,
.slpb-hero-section > .container-fluid {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: inherit;
}

.slpb-hero-section--bg-video .slpb-hero-section__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.slpb-hero-section > .container > .slpb-hero-section__row,
.slpb-hero-section > .container-fluid > .slpb-hero-section__row {
    flex: 1;
    min-height: 100%;
}

.slpb-hero-section__image-col {
    min-height: 100%;
}

.slpb-hero-section__image-slot {
    flex: 0 0 auto;
    width: min(100%, 300px);
    max-width: 100%;
}

.slpb-hero-section__image-slot--wide {
    width: 100%;
}

.slpb-hero-section__image-slot > .slpb-hero-section__image {
    width: 100%;
    max-width: 100%;
}

.slpb-hero-section__image-slot > .slpb-hero-section__image .slpb-image__viewport {
    width: 100%;
}

.slpb-hero-section .slpb-hero-section__image.slpb-hero-icon:not(.slpb-hero-section__image--sized) {
    max-width: min(100%, 300px);
}

.slpb-hero-section .slpb-hero-section__image.slpb-hero-icon:not(.slpb-hero-section__image--sized) .slpb-image__fill {
    --slpb-img-size: contain;
}

.slpb-hero-section .slpb-hero-section__image.slpb-hero-section__image--sized {
    margin-left: 0;
    margin-right: 0;
}

.slpb-section.slpb-section--sport-benefits {
    background-color: #e8f5e9;
}

.slpb-section.slpb-section--hero-beregnung {
    background-color: #2f9e44;
}

.slpb-section--hero-beregnung .slpb-hero-icon:not(.slpb-hero-section__image--sized) {
    max-width: min(100%, 300px);
    margin-left: auto;
    margin-right: auto;
}

.slpb-section--hero-beregnung .slpb-hero-icon:not(.slpb-hero-section__image--sized) .slpb-image__fill {
    --slpb-img-size: contain;
}

.slpb-section.slpb-section--bewaehrte-technik {
    background-color: #f4f4f4;
}

.slpb-section.slpb-section--leistungen {
    background-color: #e8f5e9;
}

.slpb-section.slpb-section--warum-bucher {
    background-color: #ffffff;
}

.slpb-section--warum-bucher .slpb-image--warum-bucher .slpb-image__fill {
    object-fit: cover;
}

.slpb-icon-list--warum-bucher .slpb-icon-list__text {
    font-weight: 700;
}

.slpb-section.slpb-section--sportvereine {
    background-color: #e8f5e9;
}

.slpb-section.slpb-logo-partner-strip {
    background-color: #e8f5e9;
}

.slpb-logo-partner-strip__headline {
    margin-bottom: 0.5rem;
}

.slpb-logo-partner-strip__intro {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.slpb-logo-partner-strip__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 8.5rem;
    margin-left: auto;
    margin-right: auto;
}

.slpb-logo-partner-strip__img {
    max-height: var(--slpb-logo-max-height, 120px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.slpb-logo-partner-strip__link {
    display: block;
    line-height: 0;
}

.slpb-section--sportvereine .slpb-verein-logo .slpb-image__fill {
    --slpb-img-size: contain;
}

.slpb-section--sportvereine .slpb-verein-logo .slpb-image__viewport {
    max-width: 8.5rem;
    margin-left: auto;
    margin-right: auto;
}

.slpb-section.slpb-section--stats {
    background-color: #e8f5e9;
}

.slpb-stat-grid__value {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.1;
}

.slpb-stat-grid__label {
    font-size: 1rem;
    line-height: 1.35;
}

.slpb-info-card__card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.slpb-info-card__card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

.slpb-info-card__image {
    display: block;
    width: 100%;
}

.slpb-info-card__divider {
    margin: 0;
    border: 0;
    border-top: 1px solid rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.15);
    opacity: 1;
}

.slpb-info-card__title {
    font-size: 1.1rem;
    line-height: 1.3;
}

.slpb-info-card__text {
    font-size: 0.95rem;
    line-height: 1.45;
}

.slpb-frontend-editing .slpb-info-card__text.slpb-inline-editable.is-editing {
    white-space: pre-wrap;
}

.slpb-info-card__body {
    padding: 1.25rem;
}

.slpb-image-box__card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.slpb-image-box__card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

.slpb-image-box__image {
    display: block;
    width: 100%;
}

.slpb-image-box__title {
    font-size: 1.1rem;
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

.slpb-image-box__text {
    font-size: 0.95rem;
    line-height: 1.45;
    margin-bottom: 1rem;
}

.slpb-frontend-editing .slpb-image-box__text.slpb-inline-editable.is-editing {
    white-space: pre-wrap;
}

.slpb-image-box__body {
    padding: 1.25rem;
}

.slpb-image-box__btn {
    margin-top: auto;
}

.slpb-gallery__masonry {
    column-count: var(--slpb-masonry-cols, 2);
    column-gap: var(--slpb-masonry-gap, 1rem);
}

@media (min-width: 768px) {
    .slpb-gallery--masonry .slpb-gallery__masonry {
        column-count: var(--slpb-masonry-cols-md, 3);
    }
}

.slpb-gallery--masonry .slpb-gallery__item {
    break-inside: avoid;
    display: inline-block;
    width: 100%;
    margin: 0 0 var(--slpb-masonry-gap, 1rem);
}

/* Galerie-Grid: Bootstrap-Card pro Bild (wie Feature-/Team-Grid) */
.slpb-card.slpb-gallery__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.slpb-card.slpb-gallery__card:hover {
    transform: translateY(-2px);
}

.slpb-card.slpb-gallery__card > .slpb-gallery__trigger,
.slpb-card.slpb-gallery__card > .slpb-gallery__link,
.slpb-card.slpb-gallery__card > .slpb-card__viewport {
    flex-shrink: 0;
    display: block;
    width: 100%;
}

.slpb-card.slpb-gallery__card .slpb-card__slot--flow {
    position: relative;
    inset: auto;
    flex: 0 0 auto;
    display: block;
    width: 100%;
    min-height: 0;
    pointer-events: auto;
}

.slpb-card.slpb-gallery__card .slpb-card__viewport {
    width: 100%;
}

.slpb-gallery__trigger {
    cursor: zoom-in;
}

.slpb-gallery__trigger:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.slpb-gallery__trigger:hover .slpb-card__fill,
.slpb-gallery__link:hover .slpb-card__fill {
    opacity: 0.92;
}

.slpb-gallery__media {
    display: block;
}

.slpb-gallery__img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.2s ease;
}

.slpb-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slpb-gallery-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
}

.slpb-gallery-lightbox__panel {
    position: relative;
    z-index: 1;
    width: min(96vw, 1100px);
    max-height: 92vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 3rem;
}

.slpb-gallery-lightbox__figure {
    margin: 0;
    max-width: 100%;
    max-height: 86vh;
    text-align: center;
}

.slpb-gallery-lightbox__img {
    max-width: 100%;
    max-height: 78vh;
    width: auto;
    height: auto;
    display: block;
    margin: 0 auto;
}

.slpb-gallery-lightbox__caption {
    color: #f8f9fa;
    margin-top: 0.75rem;
}

.slpb-gallery-lightbox__counter {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

.slpb-gallery-lightbox__close,
.slpb-gallery-lightbox__nav {
    position: absolute;
    border: 0;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    font-size: 1.5rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.slpb-gallery-lightbox__close {
    top: 0.5rem;
    right: 0.5rem;
}

.slpb-gallery-lightbox__nav--prev {
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.slpb-gallery-lightbox__nav--next {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

body.slpb-gallery-lightbox-open {
    overflow: hidden;
}

.slpb-section.slpb-section--timeline {
    background-color: #f3f4f6;
}

.slpb-timeline__inner {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.slpb-timeline__viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
}

.slpb-timeline__track {
    position: relative;
    min-width: min-content;
    padding: 0 0.5rem;
}

.slpb-timeline__line {
    position: absolute;
    top: 6px;
    left: 0;
    right: 0;
    height: 2px;
    background-color: currentColor;
}

.slpb-timeline__points {
    display: flex;
    gap: 4rem;
    min-width: min-content;
    position: relative;
}

.slpb-timeline__track--positioned {
    width: 100%;
    min-height: auto;
}

.slpb-timeline__points--positioned {
    display: grid;
    grid-template-columns: 1fr;
    position: relative;
    width: 100%;
    min-height: auto;
}

.slpb-timeline__points--positioned .slpb-timeline__point {
    position: relative;
    top: auto;
    left: auto;
    grid-area: 1 / 1;
    justify-self: start;
    transform: translateX(-50%);
    width: 11rem;
    max-width: 42vw;
}

.slpb-timeline__point {
    flex: 0 0 auto;
    width: 11rem;
    text-align: center;
}

.slpb-timeline__dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    position: relative;
    z-index: 1;
}

.slpb-timeline__dot.bg-body {
    background-color: var(--bs-body-color) !important;
}

.slpb-timeline__dot.bg-black {
    background-color: #000 !important;
}

.slpb-timeline__dot.bg-muted {
    background-color: var(--bs-secondary-color) !important;
}

.slpb-timeline__year {
    margin-top: 0.75rem;
    font-size: 1.25rem;
    line-height: 1.2;
}

.slpb-timeline__text {
    line-height: 1.4;
    margin-top: 0.5rem;
}

.slpb-timeline__arrow {
    flex: 0 0 auto;
    width: 0;
    height: 0;
    margin-top: 1px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
}

.slpb-timeline__arrow--start {
    border-right: 10px solid #212529;
    margin-right: 0.15rem;
}

.slpb-timeline__arrow--end {
    border-left: 10px solid #212529;
    margin-left: 0.15rem;
}

.slpb-process-steps__track {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
}

.slpb-process-steps__track--horizontal {
    flex-direction: row;
    align-items: flex-start;
}

.slpb-process-steps__track--vertical {
    flex-direction: column;
    align-items: center;
}

.slpb-process-steps__track--horizontal.slpb-process-steps__track--connector::before {
    content: '';
    position: absolute;
    top: 1.75rem;
    left: calc(100% / (var(--slpb-steps-count, 3) * 2));
    right: calc(100% / (var(--slpb-steps-count, 3) * 2));
    border-top: 2px dotted #ced4da;
    z-index: 0;
    pointer-events: none;
}

.slpb-process-steps__track--connector-muted.slpb-process-steps__track--connector::before {
    border-color: var(--bs-secondary-color);
}

.slpb-process-steps__track--connector-secondary.slpb-process-steps__track--connector::before {
    border-color: #6c757d;
}

.slpb-process-steps__track--connector-success.slpb-process-steps__track--connector::before {
    border-color: #198754;
}

.slpb-process-steps__track--connector-primary.slpb-process-steps__track--connector::before {
    border-color: #0d6efd;
}

.slpb-process-steps__track--connector-dark.slpb-process-steps__track--connector::before,
.slpb-process-steps__track--connector-black.slpb-process-steps__track--connector::before {
    border-color: #212529;
}

.slpb-process-steps__item {
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    z-index: 1;
}

.slpb-process-steps__track--vertical .slpb-process-steps__item {
    flex: 0 0 auto;
    width: 100%;
    max-width: 28rem;
}

.slpb-process-steps__icon-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.slpb-process-steps__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

.slpb-process-steps__icon.text-body {
    color: var(--bs-body-color) !important;
}

.slpb-process-steps__icon.text-black {
    color: #000 !important;
}

.slpb-process-steps__icon.text-muted {
    color: var(--bs-secondary-color) !important;
}

.slpb-process-steps__title {
    font-size: 1.125rem;
    line-height: 1.3;
}

.slpb-process-steps__text {
    line-height: 1.5;
    font-size: 0.95rem;
}

@media (max-width: 767.98px) {
    .slpb-process-steps__track--horizontal {
        flex-direction: column;
        align-items: center;
    }

    .slpb-process-steps__track--horizontal .slpb-process-steps__item {
        flex: 0 0 auto;
        width: 100%;
        max-width: 28rem;
    }

    .slpb-process-steps__track--horizontal.slpb-process-steps__track--connector::before {
        display: none;
    }
}

.slpb-section.slpb-section--process-steps {
    background-color: #e8f5e9;
}

.slpb-section.slpb-section--testimonials {
    background-color: #f3f4f6;
}

.slpb-testimonial-carousel__viewport {
    overflow: hidden;
    width: 100%;
    min-width: 0;
}

.slpb-testimonial-carousel__track {
    display: flex;
    align-items: stretch;
    transition: transform 0.35s ease;
    will-change: transform;
    width: max-content;
    max-width: none;
}

.slpb-testimonial-carousel__slide {
    display: flex;
    flex: 0 0 auto;
    box-sizing: border-box;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.slpb-testimonial-carousel__card {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.slpb-testimonial-carousel__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.slpb-testimonial-carousel__text {
    flex: 1 1 auto;
    line-height: 1.5;
}

.slpb-testimonial-carousel__footer {
    flex-shrink: 0;
    margin-top: auto;
}

.slpb-testimonial-carousel__name {
    font-size: 1.125rem;
}

.slpb-testimonial-carousel__quote {
    display: block;
    font-size: 2.5rem;
    line-height: 1;
    margin-bottom: 1rem;
    font-family: Georgia, "Times New Roman", serif;
}

.slpb-testimonial-carousel__nav {
    display: flex;
    gap: 0.35rem;
    margin-top: 1.5rem;
}

.slpb-testimonial-carousel__nav--start {
    justify-content: flex-start;
}

.slpb-testimonial-carousel__nav--center {
    justify-content: center;
}

.slpb-testimonial-carousel__nav--end {
    justify-content: flex-end;
}

.slpb-testimonial-carousel__btn {
    background: none;
    border: 0;
    color: #212529;
    cursor: pointer;
    font-size: 1.75rem;
    line-height: 1;
    padding: 0.15rem 0.45rem;
}

.slpb-testimonial-carousel__btn:disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.slpb-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.slpb-carousel__viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-width: 0;
    display: block;
}

.slpb-carousel__track {
    display: flex;
    align-items: stretch;
    transition: transform 0.45s ease;
    will-change: transform;
    width: 100%;
}

.slpb-carousel--fade .slpb-carousel__track {
    position: absolute;
    inset: 0;
    display: block;
    height: 100%;
    width: 100%;
}

.slpb-carousel--slide .slpb-carousel__track {
    height: 100%;
    width: max-content;
    max-width: none;
}

.slpb-carousel__slide {
    flex: 0 0 auto;
    min-width: 0;
}

.slpb-carousel--slide .slpb-carousel__slide {
    height: 100%;
    align-self: stretch;
}

.slpb-carousel--slide .slpb-carousel__media,
.slpb-carousel--slide .slpb-carousel__link {
    min-height: 100%;
}

.slpb-carousel--fade .slpb-carousel__slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.65s ease;
    pointer-events: none;
}

.slpb-carousel--fade .slpb-carousel__slide--active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}

.slpb-carousel__media,
.slpb-carousel__link {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.slpb-carousel__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.slpb-carousel__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slpb-carousel--contain .slpb-carousel__image {
    object-fit: contain;
}

.slpb-carousel--contain .slpb-carousel__media {
    background-color: #f8f9fa;
}

.slpb-carousel__bottom-fade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 100%);
    z-index: 2;
}

.slpb-carousel__nav {
    display: flex;
    gap: 0.35rem;
    z-index: 3;
}

.slpb-carousel--nav-inside .slpb-carousel__nav {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1rem;
    padding: 0 1rem;
}

.slpb-carousel--nav-below .slpb-carousel__nav {
    margin-top: 0.75rem;
}

.slpb-carousel__nav--start {
    justify-content: flex-start;
}

.slpb-carousel__nav--center {
    justify-content: center;
}

.slpb-carousel__nav--end {
    justify-content: flex-end;
}

.slpb-carousel__btn {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 999px;
    color: #212529;
    cursor: pointer;
    font-size: 1.35rem;
    line-height: 1;
    padding: 0.2rem 0.55rem;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.slpb-carousel__btn:disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.slpb-carousel__dots {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
}

.slpb-carousel__dots--start {
    justify-content: flex-start;
}

.slpb-carousel__dots--center {
    justify-content: center;
}

.slpb-carousel__dots--end {
    justify-content: flex-end;
}

.slpb-carousel__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: rgba(33, 37, 41, 0.25);
    cursor: pointer;
}

.slpb-carousel__dot--active {
    background: #198754;
}


.slpb-section > .container,
.slpb-section > .container-fluid {
    min-height: 32px;
}

.min-vh-25 {
    min-height: 25vh !important;
}

.min-vh-50 {
    min-height: 50vh !important;
}

.min-vh-75 {
    min-height: 75vh !important;
}

.min-vh-100 {
    min-height: 100vh !important;
}

.min-svh-100 {
    min-height: 100svh !important;
}

/* Hero-Card mit Freifläche: füllt die Section-Mindesthöhe, sonst werden
   absolute Freiflächen-Kinder (z. B. Visitenkarten) abgeschnitten. */
.slpb-section .slpb-card.slpb-card--auto.slpb-card--has-free-slot.min-svh-100,
.slpb-section .slpb-card.slpb-card--auto.slpb-card--has-free-slot.min-vh-100 {
    width: 100%;
}

.slpb-card.slpb-card--auto.slpb-card--has-free-slot .slpb-card__viewport {
    min-height: inherit;
    height: 100%;
}

/* Platzhalter nur strukturell; gestrichelter Rahmen nur im Builder (Canvas-CSS) */
.slpb-empty-slot {
    min-height: 60px;
    border: 0;
    border-radius: 6px;
}

/* Platzhalter für leere Spalten: auf der echten Seite unsichtbar (nur im Editor sichtbar) */
.slpb-empty-slot-label {
    display: none;
}

/* Card- und Info-Card-Rahmen aus dem Inspector – überschreibt Bootstrap .card und z. B. border-0 */
.slpb-info-card__card.slpb-card-bw-0 {
    border-width: 0 !important;
}

.slpb-info-card__card.slpb-card-bw-1 {
    border-style: solid !important;
    border-width: 1px !important;
}

.slpb-info-card__card.slpb-card-bw-2 {
    border-style: solid !important;
    border-width: 2px !important;
}

.slpb-info-card__card.slpb-card-bw-3 {
    border-style: solid !important;
    border-width: 3px !important;
}

.slpb-info-card__card.slpb-card-bw-4 {
    border-style: solid !important;
    border-width: 4px !important;
}

.slpb-info-card__card.slpb-card-bw-5 {
    border-style: solid !important;
    border-width: 5px !important;
}

.slpb-info-card__card.slpb-card-bc-primary {
    border-color: var(--bs-primary) !important;
}

.slpb-info-card__card.slpb-card-bc-secondary {
    border-color: var(--bs-secondary) !important;
}

.slpb-info-card__card.slpb-card-bc-success {
    border-color: var(--bs-success) !important;
}

.slpb-info-card__card.slpb-card-bc-danger {
    border-color: var(--bs-danger) !important;
}

.slpb-info-card__card.slpb-card-bc-warning {
    border-color: var(--bs-warning) !important;
}

.slpb-info-card__card.slpb-card-bc-info {
    border-color: var(--bs-info) !important;
}

.slpb-info-card__card.slpb-card-bc-light {
    border-color: var(--bs-light) !important;
}

.slpb-info-card__card.slpb-card-bc-dark {
    border-color: var(--bs-dark) !important;
}

.slpb-info-card__card.slpb-card-bc-white {
    border-color: var(--bs-white) !important;
}

.slpb-info-card__card.slpb-card-bc-black {
    border-color: var(--bs-black) !important;
}

.slpb-info-card__card.slpb-card-bc-body {
    border-color: var(--bs-body-color) !important;
}

.slpb-info-card__card.slpb-card-bc-muted {
    border-color: var(--bs-secondary-color) !important;
}

.slpb-image-box__card.slpb-card-bw-0 {
    border-width: 0 !important;
}

.slpb-image-box__card.slpb-card-bw-1 {
    border-width: 1px !important;
}

.slpb-image-box__card.slpb-card-bw-2 {
    border-width: 2px !important;
}

.slpb-image-box__card.slpb-card-bw-3 {
    border-width: 3px !important;
}

.slpb-image-box__card.slpb-card-bw-4 {
    border-width: 4px !important;
}

.slpb-image-box__card.slpb-card-bw-5 {
    border-width: 5px !important;
}

.slpb-image-box__card.slpb-card-bc-primary {
    border-color: var(--bs-primary) !important;
}

.slpb-image-box__card.slpb-card-bc-secondary {
    border-color: var(--bs-secondary) !important;
}

.slpb-image-box__card.slpb-card-bc-success {
    border-color: var(--bs-success) !important;
}

.slpb-image-box__card.slpb-card-bc-danger {
    border-color: var(--bs-danger) !important;
}

.slpb-image-box__card.slpb-card-bc-warning {
    border-color: var(--bs-warning) !important;
}

.slpb-image-box__card.slpb-card-bc-info {
    border-color: var(--bs-info) !important;
}

.slpb-image-box__card.slpb-card-bc-light {
    border-color: var(--bs-light) !important;
}

.slpb-image-box__card.slpb-card-bc-dark {
    border-color: var(--bs-dark) !important;
}

.slpb-image-box__card.slpb-card-bc-white {
    border-color: #fff !important;
}

.slpb-image-box__card.slpb-card-bc-black {
    border-color: #000 !important;
}

.slpb-image-box__card.slpb-card-bc-body {
    border-color: var(--bs-body-color) !important;
}

.slpb-image-box__card.slpb-card-bc-muted {
    border-color: var(--bs-secondary-color) !important;
}


.slpb-image--empty .slpb-empty-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 120px;
}

.slpb-image--empty .slpb-empty-slot-label {
    display: inline-block;
    font-size: 12px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.slpb-column__inner {
    width: 100%;
    min-width: 0;
    height: 100%;
}

/* Spalte: optionale Mindesthöhe (leer = Auto) */
.slpb-column.slpb-column--min-height {
    min-height: var(--slpb-col-min-h, 0);
}

@media (min-width: 768px) {
    .slpb-column.slpb-column--min-height {
        min-height: var(--slpb-col-min-h-sm, var(--slpb-col-min-h, 0));
    }
}

@media (min-width: 992px) {
    .slpb-column.slpb-column--min-height {
        min-height: var(--slpb-col-min-h-md, var(--slpb-col-min-h-sm, var(--slpb-col-min-h, 0)));
    }
}

/* Grid-Row: Gutter / Abstände pro Viewport (Handy → md → lg) */
.slpb-row.slpb-row--gutter {
    --bs-gutter-x: var(--slpb-row-gx, 0) !important;
    --bs-gutter-y: var(--slpb-row-gy, 0) !important;
    row-gap: var(--slpb-row-gy, 0) !important;
}

.slpb-row.slpb-row--spacing {
    padding-top: var(--slpb-row-pt, 0) !important;
    padding-bottom: var(--slpb-row-pb, 0) !important;
    padding-left: var(--slpb-row-px, 0) !important;
    padding-right: var(--slpb-row-px, 0) !important;
    margin-top: var(--slpb-row-mt, 0) !important;
    margin-bottom: var(--slpb-row-mb, 0) !important;
}

@media (min-width: 768px) {
    .slpb-row.slpb-row--gutter {
        --bs-gutter-x: var(--slpb-row-gx-sm, var(--slpb-row-gx, 0)) !important;
        --bs-gutter-y: var(--slpb-row-gy-sm, var(--slpb-row-gy, 0)) !important;
        row-gap: var(--slpb-row-gy-sm, var(--slpb-row-gy, 0)) !important;
    }

    .slpb-row.slpb-row--spacing {
        padding-top: var(--slpb-row-pt-sm, var(--slpb-row-pt, 0)) !important;
        padding-bottom: var(--slpb-row-pb-sm, var(--slpb-row-pb, 0)) !important;
        padding-left: var(--slpb-row-px-sm, var(--slpb-row-px, 0)) !important;
        padding-right: var(--slpb-row-px-sm, var(--slpb-row-px, 0)) !important;
        margin-top: var(--slpb-row-mt-sm, var(--slpb-row-mt, 0)) !important;
        margin-bottom: var(--slpb-row-mb-sm, var(--slpb-row-mb, 0)) !important;
    }
}

@media (min-width: 992px) {
    .slpb-row.slpb-row--gutter {
        --bs-gutter-x: var(--slpb-row-gx-md, var(--slpb-row-gx-sm, var(--slpb-row-gx, 0))) !important;
        --bs-gutter-y: var(--slpb-row-gy-md, var(--slpb-row-gy-sm, var(--slpb-row-gy, 0))) !important;
        row-gap: var(--slpb-row-gy-md, var(--slpb-row-gy-sm, var(--slpb-row-gy, 0))) !important;
    }

    .slpb-row.slpb-row--spacing {
        padding-top: var(--slpb-row-pt-md, var(--slpb-row-pt-sm, var(--slpb-row-pt, 0))) !important;
        padding-bottom: var(--slpb-row-pb-md, var(--slpb-row-pb-sm, var(--slpb-row-pb, 0))) !important;
        padding-left: var(--slpb-row-px-md, var(--slpb-row-px-sm, var(--slpb-row-px, 0))) !important;
        padding-right: var(--slpb-row-px-md, var(--slpb-row-px-sm, var(--slpb-row-px, 0))) !important;
        margin-top: var(--slpb-row-mt-md, var(--slpb-row-mt-sm, var(--slpb-row-mt, 0))) !important;
        margin-bottom: var(--slpb-row-mb-md, var(--slpb-row-mb-sm, var(--slpb-row-mb, 0))) !important;
    }
}

/*
 * Horizontale Row-Ausrichtung (justify-content-*): Spalten sind col-auto.
 * width:100% am Inneren/Bild würde die Spalte wieder auf volle Zeilenbreite
 * aufblasen — dann wirkt Mitte/Rechts nicht.
 */
.slpb-row[class*="justify-content-"] > .slpb-column.col-auto {
    max-width: 100%;
}

.slpb-row[class*="justify-content-"] > .slpb-column.col-auto.slpb-col-empty {
    min-width: 8rem;
}

.slpb-row[class*="justify-content-"] > .slpb-column.col-auto > .slpb-column__inner {
    width: auto;
    max-width: 100%;
}

.slpb-row[class*="justify-content-"] > .slpb-column.col-auto .slpb-image,
/* col-auto: Card darf trotzdem die verfügbare Spaltenbreite nutzen */
.slpb-row[class*="justify-content-"] > .slpb-column.col-auto .slpb-card {
    width: 100%;
    max-width: 100%;
}

.slpb-column.slpb-col-empty .slpb-column__inner {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slpb-image--contain .slpb-image__viewport {
    background-color: #fff;
}

/* Hero-Icons (SVG) auf farbigem Hero-Hintergrund — kein weißer Contain-Kasten */
.slpb-image.slpb-hero-icon.slpb-image--contain .slpb-image__viewport {
    background-color: transparent;
}

.slpb-image {
    display: block;
    width: 100%;
}

.slpb-image__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.slpb-image__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: var(--slpb-img-url);
    background-size: var(--slpb-img-size, cover);
    background-position: var(--slpb-img-position, center center);
    background-repeat: no-repeat;
    opacity: var(--slpb-img-opacity, 1);
}

/* Hero-SVG: Inline-SVG mit Farbe/Strichstärke (fill="currentColor" allein reicht nicht als background-image) */
.slpb-image__fill.slpb-image__fill--svg-inline {
    background-image: none;
}

.slpb-image__fill--svg-inline .slpb-image__svg-frame {
    position: absolute;
    left: var(--slpb-img-pos-x, 50%);
    top: var(--slpb-img-pos-y, 50%);
    width: var(--slpb-img-size, 100%);
    height: var(--slpb-img-size, 100%);
    max-width: 100%;
    max-height: 100%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.slpb-image__fill--svg-inline .slpb-image__svg {
    display: block;
    width: 100%;
    height: 100%;
}

/* Multi-Karte: Zoom/Position pro Viewport (nach .slpb-image__fill, höhere Spezifität) */
.slpb-image__fill.slpb-multi-card__fill {
    background-size: var(--slpb-img-size, cover);
    background-position: var(--slpb-img-position, center center);
}

@media (min-width: 768px) {
    .slpb-image__fill.slpb-multi-card__fill {
        background-size: var(--slpb-img-size-sm, var(--slpb-img-size, cover));
        background-position: var(--slpb-img-position-sm, var(--slpb-img-position, center center));
    }
}

@media (min-width: 992px) {
    .slpb-image__fill.slpb-multi-card__fill {
        background-size: var(--slpb-img-size-md, var(--slpb-img-size-sm, var(--slpb-img-size, cover)));
        background-position: var(--slpb-img-position-md, var(--slpb-img-position-sm, var(--slpb-img-position, center center)));
    }
}

.slpb-image--auto .slpb-image__viewport {
    min-height: 180px;
}

.slpb-image.slpb-image-bw-0 {
    border-width: 0 !important;
}

.slpb-image.slpb-image-bw-1 {
    border-style: solid !important;
    border-width: 1px !important;
}

.slpb-image.slpb-image-bw-2 {
    border-style: solid !important;
    border-width: 2px !important;
}

.slpb-image.slpb-image-bw-3 {
    border-style: solid !important;
    border-width: 3px !important;
}

.slpb-image.slpb-image-bw-4 {
    border-style: solid !important;
    border-width: 4px !important;
}

.slpb-image.slpb-image-bw-5 {
    border-style: solid !important;
    border-width: 5px !important;
}

.slpb-image.slpb-image-bc-primary {
    border-color: var(--bs-primary) !important;
}

.slpb-image.slpb-image-bc-secondary {
    border-color: var(--bs-secondary) !important;
}

.slpb-image.slpb-image-bc-success {
    border-color: var(--bs-success) !important;
}

.slpb-image.slpb-image-bc-danger {
    border-color: var(--bs-danger) !important;
}

.slpb-image.slpb-image-bc-warning {
    border-color: var(--bs-warning) !important;
}

.slpb-image.slpb-image-bc-info {
    border-color: var(--bs-info) !important;
}

.slpb-image.slpb-image-bc-light {
    border-color: var(--bs-light) !important;
}

.slpb-image.slpb-image-bc-dark {
    border-color: var(--bs-dark) !important;
}

.slpb-image.slpb-image-bc-white {
    border-color: var(--bs-white) !important;
}

.slpb-builder-tracker__table th {
    white-space: nowrap;
}

.slpb-builder-tracker__status-toggles {
    max-width: 100%;
}

.slpb-builder-tracker__note {
    white-space: pre-wrap;
}

.slpb-builder-tracker__card-meta + .slpb-builder-tracker__card-meta {
    margin-top: 0.35rem;
}

.slpb-builder-tracker__extra-fields {
    margin-top: 0.35rem;
}

.slpb-builder-tracker__extra-fields-row td {
    background-color: rgba(0, 0, 0, 0.015);
}

.slpb-builder-tracker__extra-field + .slpb-builder-tracker__extra-field {
    margin-top: 0.25rem;
}

.slpb-builder-tracker__extra-label {
    font-weight: 600;
}

.slpb-image.slpb-image-bc-body {
    border-color: var(--bs-body-color) !important;
}

.slpb-image.slpb-image-bc-muted {
    border-color: var(--bs-secondary-color) !important;
}

/* Card (card) — gleiche Darstellung wie Bild */
.slpb-card--empty .slpb-empty-slot {
    min-height: 8rem;
}

.slpb-card--fixed-height.slpb-card--empty .slpb-empty-slot,
.slpb-card--fixed-height:not(.slpb-card--has-free-slot) .slpb-card__viewport,
.slpb-card--fixed-height:not(.slpb-card--has-free-slot) .slpb-card__media {
    min-height: 0;
    height: 100%;
}

.slpb-card--fixed-height {
    position: relative;
}

.slpb-card.slpb-feature-grid__card.slpb-card--fixed-height,
.slpb-card.slpb-team-grid__card.slpb-card--fixed-height,
.slpb-card.slpb-product-grid__card.slpb-card--fixed-height {
    flex: 0 0 auto;
    max-height: 100%;
    align-self: flex-start;
}

.slpb-card--fixed-height.slpb-card--has-chrome .slpb-card__media {
    flex: 1 1 auto;
}

.slpb-card--fixed-width {
    box-sizing: border-box;
}

.slpb-card--contain .slpb-card__viewport {
    background-color: transparent;
}

.slpb-card {
    display: block;
    width: 100%;
}

.slpb-card--has-chrome {
    display: flex;
    flex-direction: column;
}

.slpb-card__header,
.slpb-card__footer {
    position: relative;
    z-index: 4;
    flex: 0 0 auto;
    padding: 0;
    min-height: 3rem;
    color: inherit;
    box-sizing: border-box;
}

/* Dezente Trennlinie nur ohne eigenen Rahmen */
.slpb-card__header:not([class*="slpb-card__header-bw-"]):not([class*="slpb-card__header-bc-"]) {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.slpb-card__footer:not([class*="slpb-card__footer-bw-"]):not([class*="slpb-card__footer-bc-"]) {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.slpb-card__header > .slpb-card__slot,
.slpb-card__footer > .slpb-card__slot {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    min-height: 3rem;
    pointer-events: auto;
    overflow: hidden;
    isolation: isolate;
}

.slpb-card__header.slpb-card__header-bw-0,
.slpb-card__footer.slpb-card__footer-bw-0 {
    border-width: 0 !important;
}

.slpb-card__header.slpb-card__header-bw-1,
.slpb-card__footer.slpb-card__footer-bw-1 {
    border-style: solid !important;
    border-width: 1px !important;
}

.slpb-card__header.slpb-card__header-bw-2,
.slpb-card__footer.slpb-card__footer-bw-2 {
    border-style: solid !important;
    border-width: 2px !important;
}

.slpb-card__header.slpb-card__header-bw-3,
.slpb-card__footer.slpb-card__footer-bw-3 {
    border-style: solid !important;
    border-width: 3px !important;
}

.slpb-card__header.slpb-card__header-bw-4,
.slpb-card__footer.slpb-card__footer-bw-4 {
    border-style: solid !important;
    border-width: 4px !important;
}

.slpb-card__header.slpb-card__header-bw-5,
.slpb-card__footer.slpb-card__footer-bw-5 {
    border-style: solid !important;
    border-width: 5px !important;
}

.slpb-card__header.slpb-card__header-bc-primary,
.slpb-card__footer.slpb-card__footer-bc-primary { border-color: var(--bs-primary) !important; }

.slpb-card__header.slpb-card__header-bc-secondary,
.slpb-card__footer.slpb-card__footer-bc-secondary { border-color: var(--bs-secondary) !important; }

.slpb-card__header.slpb-card__header-bc-success,
.slpb-card__footer.slpb-card__footer-bc-success { border-color: var(--bs-success) !important; }

.slpb-card__header.slpb-card__header-bc-danger,
.slpb-card__footer.slpb-card__footer-bc-danger { border-color: var(--bs-danger) !important; }

.slpb-card__header.slpb-card__header-bc-warning,
.slpb-card__footer.slpb-card__footer-bc-warning { border-color: var(--bs-warning) !important; }

.slpb-card__header.slpb-card__header-bc-info,
.slpb-card__footer.slpb-card__footer-bc-info { border-color: var(--bs-info) !important; }

.slpb-card__header.slpb-card__header-bc-light,
.slpb-card__footer.slpb-card__footer-bc-light { border-color: var(--bs-light) !important; }

.slpb-card__header.slpb-card__header-bc-dark,
.slpb-card__footer.slpb-card__footer-bc-dark { border-color: var(--bs-dark) !important; }

.slpb-card__header.slpb-card__header-bc-white,
.slpb-card__footer.slpb-card__footer-bc-white { border-color: var(--bs-white) !important; }

.slpb-card__header.slpb-card__header-bc-black,
.slpb-card__footer.slpb-card__footer-bc-black { border-color: #000 !important; }

.slpb-card__header.slpb-card__header-bc-body,
.slpb-card__footer.slpb-card__footer-bc-body { border-color: var(--bs-body-color) !important; }

.slpb-card__header.slpb-card__header-bc-muted,
.slpb-card__footer.slpb-card__footer-bc-muted { border-color: var(--bs-secondary-color) !important; }

.slpb-card__media {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.slpb-card__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.slpb-card__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: var(--slpb-img-url);
    background-size: var(--slpb-img-size, cover);
    background-position: var(--slpb-img-position, center center);
    background-repeat: no-repeat;
    opacity: var(--slpb-img-opacity, 1);
}

.slpb-card__gradient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.slpb-card[class*=" bg-"],
.slpb-card.slpb-card--bg-pattern,
.slpb-card.slpb-card--bg-custom-gradient,
.slpb-card.slpb-card--bg-image,
.slpb-card.slpb-card--bg-svg {
    background-color: transparent;
}

.slpb-card--bg-pattern-gradient {
    background-color: #fff;
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, transparent 45%, rgba(0, 0, 0, 0.1) 100%);
    background-repeat: no-repeat;
}

.slpb-card--bg-pattern-stripes {
    background-color: #fff;
    background-image: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px);
    background-repeat: repeat;
}

.slpb-card--bg-pattern-dots {
    background-color: #fff;
    background-image: radial-gradient(circle, rgba(0, 0, 0, 0.09) 1px, transparent 1px);
    background-size: 14px 14px;
    background-repeat: repeat;
}

.slpb-card--bg-pattern-grid {
    background-color: #fff;
    background-image:
        linear-gradient(rgba(0, 0, 0, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.07) 1px, transparent 1px);
    background-size: 18px 18px;
    background-repeat: repeat;
}

.slpb-card--bg-image {
    position: relative;
}

.slpb-card--bg-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--slpb-bg-image);
    background-size: var(--slpb-bg-size, cover);
    background-position: var(--slpb-bg-position, center);
    background-repeat: no-repeat;
    opacity: var(--slpb-bg-image-opacity, 1);
    pointer-events: none;
    z-index: 0;
}

.slpb-card--bg-image > .slpb-card__viewport,
.slpb-card--bg-image > .slpb-card__media > .slpb-card__viewport {
    position: relative;
    z-index: 1;
}

.slpb-card--has-gradient {
    position: relative;
}

.slpb-card--has-gradient > .slpb-card__gradient,
.slpb-card--has-gradient > .slpb-card__media > .slpb-card__gradient {
    z-index: 0;
}

.slpb-card--has-slot > .slpb-card__slot--flow,
.slpb-card--has-slot > .slpb-card__media > .slpb-card__slot--flow {
    position: relative;
    z-index: 2;
    pointer-events: auto;
}

.slpb-card--has-slot {
    position: relative;
}

.slpb-card__slot {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}

.slpb-card__media > .slpb-card__slot {
    position: absolute;
    inset: 0;
}

.slpb-card__slot.slpb-empty-slot,
.slpb-card__slot--free {
    pointer-events: auto;
}

.slpb-card__slot--free {
    overflow: hidden;
    isolation: isolate;
    min-height: 3rem;
}

.slpb-card--has-free-slot .slpb-card__viewport,
.slpb-card--has-free-slot .slpb-card__media > .slpb-card__viewport {
    z-index: 1;
}

.slpb-card--has-free-slot .slpb-card__gradient,
.slpb-card--has-free-slot .slpb-card__media > .slpb-card__gradient {
    z-index: 0;
}

.slpb-card--auto .slpb-card__viewport {
    min-height: 180px;
}

.slpb-card.slpb-card-bw-0 { border-width: 0 !important; }
.slpb-card.slpb-card-bw-1 { border-style: solid !important; border-width: 1px !important; }
.slpb-card.slpb-card-bw-2 { border-style: solid !important; border-width: 2px !important; }
.slpb-card.slpb-card-bw-3 { border-style: solid !important; border-width: 3px !important; }
.slpb-card.slpb-card-bw-4 { border-style: solid !important; border-width: 4px !important; }
.slpb-card.slpb-card-bw-5 { border-style: solid !important; border-width: 5px !important; }
.slpb-card.slpb-card-bc-primary { border-color: var(--bs-primary) !important; }
.slpb-card.slpb-card-bc-secondary { border-color: var(--bs-secondary) !important; }
.slpb-card.slpb-card-bc-success { border-color: var(--bs-success) !important; }
.slpb-card.slpb-card-bc-danger { border-color: var(--bs-danger) !important; }
.slpb-card.slpb-card-bc-warning { border-color: var(--bs-warning) !important; }
.slpb-card.slpb-card-bc-info { border-color: var(--bs-info) !important; }
.slpb-card.slpb-card-bc-light { border-color: var(--bs-light) !important; }
.slpb-card.slpb-card-bc-dark { border-color: var(--bs-dark) !important; }
.slpb-card.slpb-card-bc-white { border-color: var(--bs-white) !important; }
.slpb-card.slpb-card-bc-body { border-color: var(--bs-body-color) !important; }
.slpb-card.slpb-card-bc-muted { border-color: var(--bs-secondary-color) !important; }

.slpb-tabs-content__panes {
    width: 100%;
}

.slpb-tabs-content__pane {
    min-height: 2rem;
}

.slpb-tabs-content__pane .slpb-empty-slot-label {
    display: block;
    padding: 1rem;
    text-align: center;
    color: var(--bs-secondary-color);
    font-size: 0.875rem;
}

.slpb-tabs-content--sidebar .slpb-tabs-content__nav.flex-column {
    min-width: 12rem;
}

.slpb-tabs-content--sidebar .slpb-tabs-content__nav.flex-column .nav-item {
    width: 100%;
}

.slpb-tabs-content--sidebar .slpb-tabs-content__nav.flex-column .nav-link {
    width: 100%;
    text-align: start;
}

.slpb-tabs-content--sidebar .slpb-tabs-content__nav-col {
    flex: 0 0 auto;
}

.slpb-tabs-content--sidebar .slpb-tabs-content__panes-col {
    min-width: 0;
}

.slpb-contact-form-section .slpb-contact-form__sidebar-info {
    white-space: pre-line;
    line-height: 1.45;
    margin: 0;
}

.slpb-contact-form-section .slpb-contact-form__sidebar-info :is(p, ul, ol, h1, h2, h3, h4, h5, h6, table) {
    white-space: normal;
}

.slpb-contact-form-section .slpb-contact-form__sidebar-info p {
    margin: 0 0 0.5rem;
}

.slpb-contact-form-section .slpb-contact-form__sidebar-info p:last-child {
    margin-bottom: 0;
}

.slpb-contact-form-section .slpb-contact-form__sidebar-info ul,
.slpb-contact-form-section .slpb-contact-form__sidebar-info ol {
    margin: 0 0 0.5rem;
    padding-left: 1.25rem;
}

.slpb-contact-form__turnstile {
    min-height: 65px;
}

.slpb-contact-form[data-slpb-form-disabled="1"] .slpb-contact-form__submit {
    pointer-events: none;
    opacity: 0.65;
}

/* Legacy: ehem. Medien-Karte / media_card CSS-Klassen */
.slpb-media-card {
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.slpb-media-card[class*="rounded-"] {
    border-radius: var(--bs-border-radius);
}

.slpb-media-card.rounded-0 {
    border-radius: 0 !important;
}

.slpb-media-card.rounded-1 {
    border-radius: var(--bs-border-radius-sm) !important;
}

.slpb-media-card.rounded-2 {
    border-radius: var(--bs-border-radius) !important;
}

.slpb-media-card.rounded-3 {
    border-radius: var(--bs-border-radius-lg) !important;
}

.slpb-media-card.rounded-4 {
    border-radius: var(--bs-border-radius-xl) !important;
}

.slpb-media-card.rounded-5 {
    border-radius: var(--bs-border-radius-xxl) !important;
}

.slpb-media-card[class*=" bg-"],
.slpb-media-card.slpb-media-card--bg-pattern,
.slpb-media-card.slpb-media-card--bg-custom-gradient,
.slpb-media-card.slpb-media-card--bg-image,
.slpb-media-card.slpb-media-card--bg-svg {
    background-color: transparent;
}

.slpb-media-card--bg-pattern-gradient {
    background-color: #fff;
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, transparent 45%, rgba(0, 0, 0, 0.1) 100%);
    background-repeat: no-repeat;
}

.slpb-media-card--bg-pattern-stripes {
    background-color: #fff;
    background-image: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px);
    background-repeat: repeat;
}

.slpb-media-card--bg-pattern-dots {
    background-color: #fff;
    background-image: radial-gradient(circle, rgba(0, 0, 0, 0.09) 1px, transparent 1px);
    background-size: 14px 14px;
    background-repeat: repeat;
}

.slpb-media-card--bg-pattern-grid {
    background-color: #fff;
    background-image:
        linear-gradient(rgba(0, 0, 0, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.07) 1px, transparent 1px);
    background-size: 18px 18px;
    background-repeat: repeat;
}

.slpb-media-card--bg-image {
    position: relative;
}

.slpb-media-card--bg-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--slpb-bg-image);
    background-size: var(--slpb-bg-size, cover);
    background-position: var(--slpb-bg-position, center);
    background-repeat: no-repeat;
    opacity: var(--slpb-bg-image-opacity, 1);
    pointer-events: none;
    z-index: 0;
}

.slpb-media-card--bg-image > .row {
    position: relative;
    z-index: 1;
}

.slpb-media-card--min-height {
    display: flex;
    flex-direction: column;
}

.slpb-media-card--min-height > .row {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.slpb-media-card > .row {
    align-items: stretch;
}

.slpb-media-card__media {
    position: relative;
    background-color: #f0f4f8;
    align-self: stretch;
    min-height: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.slpb-media-card__media-inner,
.slpb-media-card__viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.slpb-media-card__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
}

.slpb-media-card__body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    align-self: stretch;
}

.slpb-media-card__slot {
    flex: 1 1 auto;
    min-height: 3rem;
    border-radius: 0;
}

.slpb-media-card__slot--free {
    position: relative;
    min-height: 10rem;
}

.slpb-media-card__free-item {
    position: absolute;
    z-index: 1;
    max-width: calc(100% - 0.5rem);
    margin: 0 !important;
}

@media (min-width: 768px) {
    .slpb-media-card__media {
        aspect-ratio: auto;
        min-height: 0;
    }
}

/* Legacy: Multi-Karte Carousel (ehem. Medien-Karte) */
.slpb-media-card__carousel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}
.slpb-media-card__carousel .carousel-inner,
.slpb-media-card__carousel .carousel-item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}
.slpb-media-card__carousel .carousel-control-prev,
.slpb-media-card__carousel .carousel-control-next {
    width: 2.25rem;
    height: 2.25rem;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    opacity: 1;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 50%;
    box-shadow: 0 0.125rem 0.5rem rgba(15, 23, 42, 0.15);
}
.slpb-media-card__carousel .carousel-control-prev { left: 0.75rem; }
.slpb-media-card__carousel .carousel-control-next { right: 0.75rem; }
.slpb-media-card__carousel .carousel-control-prev-icon,
.slpb-media-card__carousel .carousel-control-next-icon {
    width: 0.9rem;
    height: 0.9rem;
    filter: invert(1) grayscale(1) brightness(0.25);
}
.slpb-media-card__carousel .carousel-indicators { margin-bottom: 0.85rem; }
.slpb-media-card__carousel .carousel-indicators [data-bs-target] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: #fff;
    opacity: 0.45;
    border: 0;
    margin: 0 0.2rem;
    box-sizing: content-box;
    text-indent: -999px;
    overflow: hidden;
}
.slpb-media-card__carousel .carousel-indicators .active { opacity: 1; }
