/* === Swiper Slider Block General === */
.bd-swiper-slider-block .block-header {
    margin-bottom: var(--spacing-lg, 2rem); /* Abstand zur Slider-Komponente */
}

.bd-swiper-slider-block .block-subline {
    color: var(--color-text-muted, #6c757d);
    font-size: var(--font-size-sm, 0.875rem);
    text-transform: uppercase; /* Optional */
    letter-spacing: 0.05em; /* Optional */
    margin-bottom: var(--spacing-xs, 0.5rem);
}

.bd-swiper-slider-block .block-headline {
    margin-top: 0;
    margin-bottom: var(--spacing-md, 1rem);
    /* Font-Styling kommt vom Theme oder globalen Einstellungen */
}

.bd-swiper-slider-block .block-teaser {
    font-size: var(--font-size-base, 1rem);
    line-height: var(--line-height-base, 1.6);
    max-width: 760px; /* Maximale Breite für den Teaser, wenn zentriert */
    margin-left: auto;
    margin-right: auto;
}
.bd-swiper-slider-block .block-teaser p:last-child {
    margin-bottom: 0;
}


/* === Swiper Container === */
.bd-swiper-slider {
    width: 100%;
    /* padding-bottom wird durch Pagination/Navigation bestimmt, falls aktiv */
    position: relative;
    overflow: hidden; /* Verhindert, dass Pfeile überstehen, wenn nicht im Container */
}

.bd-swiper-slider .swiper-wrapper {
    /* Styles für max-width kommen ggf. inline aus PHP */
}

/* === General Slide Styling === */
.bd-swiper-slider .swiper-slide {
    background-color: var(--color-background-body, #fff); /* Standard-Hintergrund */
    box-sizing: border-box;
    /* height: auto; // Wird durch autoHeight oder Inhalt bestimmt */
    /* Für gleiche Höhe aller Slides, wenn autoHeight=false, ggf. mit Flex arbeiten
       oder eine feste Höhe im Tab "Einstellungen" anbieten */
}
.bd-swiper-slider .swiper-slide:not(.swiper-slide-type-hero) {
    /* Padding nur für nicht-Hero-Slides, da Hero oft Vollbild ist */
     /* padding: var(--spacing-md, 1rem); /* Grund-Padding für Inhalt, kann pro Typ überschrieben werden */
}


/* Placeholder für leere Slides im Editor */
.swiper-slide-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    color: #999;
    border: 2px dashed #ddd;
}


/* --- Slide Typ: Default (wie dein Partner-Slide) --- */
.swiper-slide-type-default {
    display: flex;
    flex-direction: column; /* Mobile first: Übereinander */
    gap: var(--spacing-md, 1.5rem);
    padding: var(--spacing-md, 1.5rem);
}

.swiper-slide-type-default .swiper-slide-image {
    flex-shrink: 0;
    width: 100%; /* Mobile: volle Breite */
    max-width: 100%;
}
.swiper-slide-type-default .swiper-slide-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 16/10; /* Oder 3/2, 4/3 etc. anpassen */
    border-radius: var(--border-radius, 4px);
    background-color: var(--color-background-muted, #f0f0f0); /* Fallback falls Bild nicht lädt */
}

.swiper-slide-type-default .swiper-slide-content-wrapper {
    flex-grow: 1;
}
.swiper-slide-type-default .swiper-slide-content-wrapper h3 {
    color: var(--color-text-headings, #333);
    font-size: calc(var(--font-size-base) * 1.25); /* ca. 20px */
    margin-top: 0;
    margin-bottom: var(--spacing-sm, 0.75rem);
    font-weight: var(--font-weight-bold, 700);
}
.swiper-slide-type-default .swiper-slide-text p {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-body, #555);
    line-height: 1.65;
    margin-bottom: var(--spacing-sm, 0.75rem);
}
.swiper-slide-type-default .swiper-slide-text p:last-child {
    margin-bottom: 0;
}
.swiper-slide-type-default blockquote {
    font-size: var(--font-size-sm, 0.875rem);
    padding: var(--spacing-sm, 0.75rem) var(--spacing-md, 1.5rem);
    margin: var(--spacing-md, 1.5rem) 0;
    border-left: 3px solid var(--color-primary-accent, #ffd700);
    background-color: transparent; /* Oder leichter Hintergrund */
}
.swiper-slide-type-default blockquote p {
    margin-bottom: 0;
    color: var(--color-text-muted, #6c757d);
    font-style: italic;
}
.swiper-slide-type-default .external-links {
    margin-top: var(--spacing-md, 1.5rem);
    padding-top: var(--spacing-sm, 0.75rem);
    border-top: 1px solid var(--color-border, #e0e0e0);
}
.swiper-slide-type-default .external-links p {
    margin-bottom: var(--spacing-xs, 0.5rem);
    font-size: var(--font-size-sm, 0.875rem);
}
.swiper-slide-type-default .external-links a {
    font-weight: var(--font-weight-medium, 500);
    text-decoration: none;
    color: var(--color-link, #007bff);
}
.swiper-slide-type-default .external-links a:hover {
    text-decoration: underline;
    color: var(--color-link-hover, #0056b3);
}
.swiper-slide-type-default .external-links a::after { /* Externer Link Icon */
    content: " \2197"; /* Nord-Ost Pfeil */
    font-size: 0.85em;
    display: inline-block;
    margin-left: 0.2em;
    opacity: 0.6;
    transition: opacity 0.2s;
}
.swiper-slide-type-default .external-links a:hover::after {
    opacity: 1;
}

/* Desktop Layout für "Default" Slide */
@media (min-width: 768px) {
    .swiper-slide-type-default.slide-image-left {
        flex-direction: row;
    }
    .swiper-slide-type-default.slide-image-right {
        flex-direction: row-reverse;
    }
    .swiper-slide-type-default .swiper-slide-image {
        width: 35%; /* Oder dynamisch per ACF */
        max-width: 300px; /* Oder dynamisch */
    }
}


/* --- Slide Typ: Intro (wie dein partner-slide-intro) --- */
.swiper-slide-type-intro .swiper-slide-content-full {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    padding: var(--spacing-lg, 2rem) var(--spacing-md, 1.5rem); /* Innenabstand für den Text */
}
.swiper-slide-type-intro .swiper-slide-content-full.text-align-left { text-align: left; }
.swiper-slide-type-intro .swiper-slide-content-full.text-align-center { text-align: center; }
.swiper-slide-type-intro .swiper-slide-content-full.text-align-right { text-align: right; }

.swiper-slide-type-intro .swiper-slide-content-full h3 {
    color: var(--color-text-headings, #333);
    font-size: var(--font-size-lg, 1.75rem);
    margin-top: 0;
    margin-bottom: var(--spacing-md, 1.5rem);
    font-weight: var(--font-weight-bold, 700);
}
.swiper-slide-type-intro .swiper-slide-content-full .swiper-slide-text p {
    font-size: var(--font-size-base, 1rem);
    color: var(--color-text-body, #555);
    line-height: var(--line-height-base, 1.6);
}
.swiper-slide-type-intro .swiper-slide-text p:last-child {
    margin-bottom: 0;
}

/* --- Slide Typ: Image Only --- */
.swiper-slide-type-image_only {
    padding: 0 !important; /* Kein Padding, Bild soll ggf. vollflächig sein */
    line-height: 0; /* Verhindert unerwünschte Abstände bei verlinkten Bildern */
}
.swiper-slide-type-image_only img {
    display: block;
    width: 100%;
    height: 100%; /* Nimmt die Höhe des Swiper-Containers/autoHeight an */
    object-fit: cover; /* Oder 'contain', je nach Wunsch */
    background-color: var(--color-background-muted, #f0f0f0);
}

/* --- Slide Typ: Card --- */
.swiper-slide-type-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-background-card, #f9f9f9); /* Leichter Hintergrund für die Karte */
    border-radius: var(--border-radius-lg, 8px);
    overflow: hidden; /* Für abgerundete Ecken beim Bild */
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    padding: 0 !important; /* Padding wird im Content-Wrapper gesetzt */
}
.swiper-slide-type-card .card-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9; /* Typisches Card-Bildverhältnis */
    object-fit: cover;
}
.swiper-slide-type-card .card-content {
    padding: var(--spacing-md, 1.5rem);
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Damit der Button unten bleibt, falls Höhe variiert */
}
.swiper-slide-type-card .card-content h3 {
    font-size: calc(var(--font-size-base) * 1.15);
    margin: 0 0 var(--spacing-sm, 0.75rem) 0;
}
.swiper-slide-type-card .card-content .swiper-slide-text {
    font-size: var(--font-size-sm, 0.875rem);
    margin-bottom: var(--spacing-md, 1.5rem);
    flex-grow: 1; /* Schiebt Links/Button nach unten */
}
.swiper-slide-type-card .card-content .swiper-slide-text p:last-child {
    margin-bottom: 0;
}
.swiper-slide-type-card .external-links {
    margin-top: auto; /* Schiebt sich nach oben, wenn kein Button da ist */
    padding-top: var(--spacing-sm, 0.75rem);
    /* Kein Border-Top hier, oder optional */
}
.swiper-slide-type-card .external-links p { margin-bottom: var(--spacing-xs, 0.25rem); }
.swiper-slide-type-card .slide-button-wrapper {
    margin-top: var(--spacing-md, 1.5rem); /* Abstand zum Text/Links */
}
.swiper-slide-type-card .slide-button {
    /* Standard Button Styling kommt vom Theme oder global */
    display: inline-block;
    /* padding: var(--button-padding-y, 0.5em) var(--button-padding-x, 1em); */
    /* background-color: var(--color-primary, #007bff); */
    /* color: #fff; */
    /* text-decoration: none; */
    /* border-radius: var(--border-radius, 4px); */
}


/* --- Slide Typ: Hero --- */
.swiper-slide-type-hero {
    position: relative;
    display: flex; /* Für vertikale Zentrierung des Inhalts */
    align-items: center; /* Standard: mittig */
    justify-content: center; /* Standard: mittig */
    min-height: 300px; /* Mindesthöhe für Hero-Slides */
    color: #fff; /* Standard-Textfarbe für Hero, kann überschrieben werden */
    padding: var(--spacing-xl, 3rem) var(--spacing-lg, 2rem); /* Großzügiges Padding */
}
.swiper-slide-type-hero .swiper-slide-hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: 1;
}
.swiper-slide-type-hero .swiper-slide-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* background-color: rgba(0,0,0,0.4); /* Standard-Overlay, wird per ACF überschrieben */
    z-index: 2;
}
.swiper-slide-type-hero .hero-content {
    position: relative;
    z-index: 3;
    max-width: 800px; /* Maximale Breite für den Inhalt */
}
.swiper-slide-type-hero .hero-content.text-align-left { text-align: left; margin-right: auto; margin-left:0; justify-content: flex-start; }
.swiper-slide-type-hero .hero-content.text-align-center { text-align: center; margin-left: auto; margin-right: auto; }
.swiper-slide-type-hero .hero-content.text-align-right { text-align: right; margin-left: auto; margin-right:0; justify-content: flex-end; }

.swiper-slide-type-hero .hero-content h2 { /* H2 für Hero, da oft prominenter */
    font-size: var(--font-size-xl, 2.5rem); /* Größere Schrift */
    color: currentColor; /* Erbt Farbe vom Slide (meist weiß) */
    margin: 0 0 var(--spacing-md, 1rem) 0;
    line-height: 1.2;
}
.swiper-slide-type-hero .hero-content .swiper-slide-text {
    font-size: var(--font-size-md, 1.125rem);
    color: currentColor;
    margin-bottom: var(--spacing-lg, 2rem);
}
.swiper-slide-type-hero .hero-content .slide-button {
    /* Spezifisches Styling für Hero-Button, falls abweichend */
    /* z.B. größer, anderer Farbkontrast */
    /* background-color: var(--color-accent, #ffc107); */
    /* color: #333; */
}


/* === Swiper Pagination und Navigation Buttons === */
/* (basiert auf deinem Original-CSS, ggf. Variablen anpassen) */
.bd-swiper-slider .swiper-pagination {
    bottom: 10px !important; /* Swiper setzt !important, daher hier auch */
    /* z-index: 10; // Normalerweise nicht nötig, da im Fluss */
}
.bd-swiper-slider .swiper-pagination-bullet {
    background-color: var(--color-text-muted, #6c757d);
    opacity: 0.6;
    width: 10px;
    height: 10px;
    margin: 0 5px !important;
}
.bd-swiper-slider .swiper-pagination-bullet-active {
    background-color: var(--color-primary, #007bff);
    opacity: 1;
}
.bd-swiper-slider .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--color-primary, #007bff) !important;
}
.bd-swiper-slider .swiper-pagination-fraction {
    color: var(--color-text-body, #555);
}


.bd-swiper-slider .swiper-button-next,
.bd-swiper-slider .swiper-button-prev {
    color: var(--color-primary, #007bff);
    background-color: rgba(255, 255, 255, 0.85);
    padding: var(--spacing-xs, 0.5rem);
    border-radius: var(--border-radius-round, 50%); /* Rund für Pfeile oft schöner */
    width: calc(var(--swiper-navigation-size) / 44 * 36); /* Etwas größer als dein Original */
    height: calc(var(--swiper-navigation-size) / 44 * 36);
    transition: background-color 0.2s, color 0.2s, opacity 0.2s, transform 0.2s;
    top: 50%;
    transform: translateY(-50%);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    opacity: 0; /* Standardmäßig unsichtbar */
}
.bd-swiper-slider:hover .swiper-button-next,
.bd-swiper-slider:hover .swiper-button-prev,
.bd-swiper-slider .swiper-button-next:focus-visible, /* Sichtbar bei Fokus für A11y */
.bd-swiper-slider .swiper-button-prev:focus-visible {
    opacity: 1;
}

.bd-swiper-slider .swiper-button-next:hover,
.bd-swiper-slider .swiper-button-prev:hover {
    background-color: var(--color-primary, #007bff);
    color: var(--color-background-body, #fff);
    transform: translateY(-50%) scale(1.1); /* Leichter Hover-Effekt */
}

.bd-swiper-slider .swiper-button-next::after,
.bd-swiper-slider .swiper-button-prev::after {
    font-size: 1rem; /* Angepasste Pfeilgröße */
}

/* === Responsive Anpassungen === */
@media (max-width: 767px) {
    /* Default Slide: Stackt bereits durch flex-direction: column */

    /* Card Slide: */
    .swiper-slide-type-card .card-content {
        padding: var(--spacing-sm, 1rem);
    }
    .swiper-slide-type-card .card-content h3 {
        font-size: calc(var(--font-size-base) * 1.1);
    }

    /* Hero Slide: */
    .swiper-slide-type-hero {
        min-height: 250px; /* Etwas geringere Mindesthöhe auf Mobilgeräten */
        padding: var(--spacing-lg, 2rem) var(--spacing-md, 1.5rem);
    }
    .swiper-slide-type-hero .hero-content h2 {
        font-size: var(--font-size-lg, 1.75rem);
    }
    .swiper-slide-type-hero .hero-content .swiper-slide-text {
        font-size: var(--font-size-base, 1rem);
    }

    /* Pfeile auf Mobile (deine ursprüngliche Logik, angepasst) */
    .bd-swiper-slider .swiper-button-next,
    .bd-swiper-slider .swiper-button-prev {
        opacity: 0.7; /* Etwas sichtbarer auf Touch-Geräten */
        width: calc(var(--swiper-navigation-size) / 44 * 30);
        height: calc(var(--swiper-navigation-size) / 44 * 30);
    }
    .bd-swiper-slider .swiper-button-next::after,
    .bd-swiper-slider .swiper-button-prev::after {
        font-size: 0.8rem;
    }
    .bd-swiper-slider:hover .swiper-button-next, /* Hover auf Slider macht sie voll sichtbar */
    .bd-swiper-slider:hover .swiper-button-prev {
        opacity: 1;
    }
}