/* =========================================================
   BD CORE COMPONENTS
   Komponenten und Utilities fuer Krautzberger-Core-Templates.
   Tokens, Reset, globale Typografie und Button-Basis kommen aus
   assets/css/1-base/basics.css.
   ========================================================= */

/* =========================================================
   HEADLINE UTILITIES
   ========================================================= */

.bd-h1 { font-size: var(--bd-fs-h1); line-height: var(--bd-lh-tight); }
.bd-h2 { font-size: var(--bd-fs-h2); line-height: var(--bd-lh-snug); }
.bd-h3 { font-size: var(--bd-fs-h3); line-height: 1.25; }
.bd-h4 { font-size: var(--bd-fs-h4); line-height: 1.3; }
.bd-h5 { font-size: var(--bd-fs-h5); line-height: var(--bd-lh-normal); }
.bd-h6 { font-size: var(--bd-fs-h6); line-height: var(--bd-lh-loose); color: var(--bd-color-altgrey); }

.bd-h1,
.bd-h2,
.bd-h3,
.bd-h4,
.bd-h5,
.bd-h6 {
    margin: 0 0 var(--bd-space-headline-bottom) 0;
    padding: 0;
    font-weight: 700;
    color: var(--bd-color-darker);
    letter-spacing: 0;
}

.bd-h1,
.bd-h2,
.bd-h3 {
    text-wrap: balance;
    overflow-wrap: break-word;
    hyphens: auto;
}

.bd-topline {
    display: block;
    margin-bottom: 0.25em;
    color: var(--bd-color-topline);
    font-size: var(--bd-fs-topline);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.bd-subline {
    display: block;
    margin-top: 0.25em;
    color: var(--bd-color-subline);
    font-size: var(--bd-fs-subline);
    font-weight: 400;
    line-height: 1.3;
}

.bd-narrow .bd-h1,
.bd-narrow .bd-h2,
.bd-narrow .bd-h3 {
    line-height: 1.05;
    margin-bottom: 0.25em;
}

.bd-headline-group { margin-bottom: 2rem; }
.bd-headline-group--center { text-align: center; }
.bd-headline-group--right { text-align: right; }
.bd-headline-group--spaced > * + * { margin-top: 0.5em; }

/* =========================================================
   TEXT UTILITIES
   ========================================================= */

.bd-text-small { font-size: 0.9rem; }
.bd-text-muted { color: var(--color-muted); }
.bd-text-primary { color: var(--bd-color-primary); }
.bd-text-white { color: var(--bd-color-white); }
.bd-text-darker { color: var(--bd-color-darker); }
.bd-text-uppercase { text-transform: uppercase; letter-spacing: 0.05em; }
.bd-text-strong { font-weight: 700; }
.bd-text-left { text-align: left; }
.bd-text-center { text-align: center; }
.bd-text-right { text-align: right; }

/* =========================================================
   SPACING UTILITIES (margin / padding)
   ========================================================= */

.bd-mt-0 { margin-top: 0; }
.bd-mt-s { margin-top: 0.5rem; }
.bd-mt-m { margin-top: 1rem; }
.bd-mt-l { margin-top: 2rem; }

.bd-mb-0 { margin-bottom: 0; }
.bd-mb-s { margin-bottom: 0.5rem; }
.bd-mb-m { margin-bottom: 1rem; }
.bd-mb-l { margin-bottom: 2rem; }

.bd-my-0 { margin-block: 0; }
.bd-my-s { margin-block: 0.5rem; }
.bd-my-m { margin-block: 1rem; }
.bd-my-l { margin-block: 2rem; }

.bd-mx-0 { margin-inline: 0; }
.bd-mx-auto { margin-inline: auto; }

.bd-py-s { padding-block: 0.5rem; }
.bd-py-m { padding-block: 1rem; }
.bd-py-l { padding-block: 2rem; }

.bd-px-s { padding-inline: 0.5rem; }
.bd-px-m { padding-inline: 1rem; }
.bd-px-l { padding-inline: 2rem; }


/* =========================================================
   CONTENT / MEASURE / SEPARATOR
   ========================================================= */

.bd-measure { max-width: 65ch; font-size: var(--bd-fs-content); line-height: 1.65; }
.bd-measure-narrow { max-width: 50ch; }
.bd-measure-wide { max-width: 80ch; }

.bd-divider {
    height: 1px;
    background: var(--bd-color-alternative);
    margin: 2rem 0;
    border: 0;
}

.bd-divider--light { opacity: 0.4; }
.bd-divider--spaced { margin: 3rem 0; }


/* =========================================================
   SECTION SYSTEM
   ========================================================= */

.bd-section-content,
.bd-content-section {
    font-size: var(--bd-fs-content);
    line-height: 1.65;
}

.bd-section--xl .bd-section-content { font-size: var(--bd-fs-content-large); }


/* =========================================================
   CONTAINER
   ========================================================= */

.bd-fullwidth {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-inline: var(--bd-space-2);
}

@media (min-width: 768px) {
    .bd-fullwidth { padding-inline: var(--bd-space-4); }
}

.bd-fullwidth-nopad { padding-inline: 0; }


/* =========================================================
   GRID SYSTEM
   ========================================================= */

.bd-grid-auto {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: var(--bd-grid-gap, var(--bd-gap-mobile));
}

.bd-grid--cols-1col {
    --bd-grid-cols: 1;
    --bd-grid-gap: 1rem;
}

.bd-grid--gap-s { --bd-grid-gap: var(--bd-space-2); }
.bd-grid--gap-m { --bd-grid-gap: var(--bd-space-3); }
.bd-grid--gap-l { --bd-grid-gap: var(--bd-space-5); }

@media (min-width: 768px) {
    .bd-grid-auto { gap: var(--bd-grid-gap, var(--bd-gap-desktop)); }

    .bd-col-1 { grid-column: span 1; }
    .bd-col-2 { grid-column: span 2; }
    .bd-col-3 { grid-column: span 3; }
    .bd-col-4 { grid-column: span 4; }
    .bd-col-5 { grid-column: span 5; }
    .bd-col-6 { grid-column: span 6; }
    .bd-col-7 { grid-column: span 7; }
    .bd-col-8 { grid-column: span 8; }
    .bd-col-9 { grid-column: span 9; }
    .bd-col-10 { grid-column: span 10; }
    .bd-col-11 { grid-column: span 11; }
    .bd-col-12 { grid-column: span 12; }

    .bd-start-2 { grid-column-start: 2; }
    .bd-start-3 { grid-column-start: 3; }
    .bd-start-4 { grid-column-start: 4; }
    .bd-start-5 { grid-column-start: 5; }
    .bd-start-auto { grid-column-start: auto; }
}

@media (min-width: 1024px) {
    .bd-col-lg-3 { grid-column: span 3; }
    .bd-col-lg-4 { grid-column: span 4; }
    .bd-col-lg-6 { grid-column: span 6; }
    .bd-col-lg-8 { grid-column: span 8; }
}


/* =========================================================
   FLEX HELPERS
   ========================================================= */

.bd-flex {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bd-space-2);
}

.bd-flex--column { flex-direction: column; }

.bd-flex-middle { align-items: center; }
.bd-flex-bottom { align-items: flex-end; }
.bd-flex-between { justify-content: space-between; }
.bd-flex-center { justify-content: center; }

.bd-items-start { align-items: start; }
.bd-items-center { align-items: center; }
.bd-items-end { align-items: end; }

.bd-justify-start { justify-items: start; }
.bd-justify-center { justify-items: center; }
.bd-justify-end { justify-items: end; }

.bd-content-start { justify-content: start; }
.bd-content-center { justify-content: center; }
.bd-content-between { justify-content: space-between; }

.bd-order-first { order: -1; }
.bd-order-last { order: 99; }

@media (min-width: 768px) {
    .bd-order-md-0 { order: 0; }
}


/* =========================================================
   VISIBILITY
   ========================================================= */

.bd-hidden-mobile { display: none; }

@media (min-width: 768px) {
    .bd-hidden-mobile { display: block; }
    .bd-hidden-desktop { display: none; }
}


/* =========================================================
   CONTENT + SIDEBAR LAYOUT
   ========================================================= */

.bd-layout-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--bd-space-4);
}

.bd-layout-content,
.bd-layout-sidebar {
    min-width: 0;
}

.bd-layout-sidebar {
    width: 100%;
    max-width: none;
}

@media (min-width: 1024px) {
    .bd-layout-main {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
        align-items: start;
        gap: clamp(2.5rem, 4vw, 4.5rem);
    }
}


/* =========================================================
   SIDEBAR & WIDGETS
   ========================================================= */

.bd-sidebar {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    min-width: 0;
    color: var(--bd-color-body);
    font-size: var(--bd-sidebar-font-size);
    line-height: var(--bd-sidebar-leading);
}

@media (min-width: 1024px) {
    .bd-sidebar {
        position: sticky;
        top: var(--bd-sticky-top);
    }
}

.bd-widget { padding: 0; }
.bd-widget + .bd-widget { padding-top: 1.4rem; }

.bd-widget-title {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--bd-color-primary);
    font-weight: 700;
    margin-bottom: 1.25rem;
    display: block;
    border-bottom: 1px solid var(--bd-color-border);
    padding-bottom: 0.6rem;
}

/* Widget-Title ohne Unterstrich (z.B. CTA-Widget) */
.bd-widget-title--plain {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 1rem;
}

.bd-sidebar .bd-widget-title {
    line-height: var(--bd-sidebar-leading);
}

.bd-sidebar p,
.bd-sidebar li,
.bd-sidebar a {
    font-size: var(--bd-sidebar-font-size);
    line-height: var(--bd-sidebar-leading);
}

.bd-sidebar a:not(.btn):not(.bd-link-action):not(.bd-share-icon):not(.btn):not(.bd-contact-link):not(.bd-tag) {
    color: var(--bd-color-body);
    text-decoration: none;
}

.bd-sidebar a:not(.btn):not(.bd-link-action):not(.bd-share-icon):not(.btn):not(.bd-contact-link):not(.bd-tag):hover {
    color: var(--bd-color-primary);
}

.bd-search-inline {
    width: min(100%, 500px);
}

.bd-sidebar .bd-site-search--sidebar .bd-site-search__label {
    display: none;
}

.bd-sidebar .bd-site-search--sidebar .bd-site-search__row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.bd-sidebar .bd-site-search--sidebar input[type="search"],
.bd-sidebar .bd-site-search--sidebar button[type="submit"] {
    min-height: 48px;
    font-size: var(--text-ui);
}

.bd-sidebar .bd-site-search--sidebar input[type="search"] {
    padding-inline: 14px;
}

.bd-sidebar .bd-site-search--sidebar button[type="submit"] {
    padding-inline: 16px;
    white-space: nowrap;
}

.bd-sidebar .bd-site-search--sidebar .bd-site-search__result,
.bd-sidebar .bd-site-search--sidebar .bd-site-search__all-results {
    color: var(--bd-color-darker);
    font-size: var(--text-sm);
    line-height: 1.35;
}

.bd-sidebar .bd-site-search--sidebar .bd-site-search__result:hover,
.bd-sidebar .bd-site-search--sidebar .bd-site-search__result:focus-visible,
.bd-sidebar .bd-site-search--sidebar .bd-site-search__result.is-active,
.bd-sidebar .bd-site-search--sidebar .bd-site-search__all-results:hover,
.bd-sidebar .bd-site-search--sidebar .bd-site-search__all-results:focus-visible {
    color: var(--bd-color-primary);
}


/* =========================================================
   SHARE BUTTONS
   ========================================================= */

.bd-share-row {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.bd-share-icon {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bd-color-lightgrey);
    color: var(--bd-color-darkgrey);
    transition: 0.2s;
    font-size: 1.15rem;
    text-decoration: none;
}

.bd-share-icon:hover {
    background: var(--bd-color-primary);
    color: var(--bd-color-white);
    transform: translateY(-2px);
}


/* =========================================================
   TAG CLOUD
   ========================================================= */

.bd-tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.bd-tag {
    font-size: 0.85rem;
    color: var(--bd-color-body);
    background: var(--bd-color-lightgrey);
    padding: 6px 12px;
    border-radius: var(--bd-radius-xs);
    transition: 0.2s;
    text-decoration: none;
}

.bd-tag:hover,
.bd-tag.is-active {
    background: var(--bd-color-primary);
    color: var(--bd-color-white);
}


/* =========================================================
   TABLE OF CONTENTS
   ========================================================= */

.bd-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-left: 2px solid var(--bd-color-lightgrey);
}

.bd-toc-list li { margin: 0; }

.bd-toc-list a {
    display: block;
    padding: 0.55rem 0 0.55rem 1.5rem;
    font-size: 0.95rem;
    color: var(--bd-color-body);
    border-left: 2px solid transparent;
    margin-left: -2px;
    transition: 0.2s;
    text-decoration: none;
}

.bd-toc-list a:hover { color: var(--bd-color-primary); }

.bd-toc-list a.active {
    border-left-color: var(--bd-color-primary);
    color: var(--bd-color-primary);
    font-weight: 600;
}


/* =========================================================
   CAROUSEL
   ========================================================= */

.bd-carousel-wrapper {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--bd-color-border);
    border-radius: var(--bd-radius-s);
    padding: 1.4rem 0;
    background: var(--bd-color-white);
    width: 100%;
}

.bd-carousel-track {
    display: flex;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
}

.bd-carousel-slide {
    flex: 0 0 100%;
    min-width: 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
}

.bd-contact-slide-inner {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
    width: 100%;
}

.bd-contact-img-large {
    width: 132px;
    height: 132px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--bd-color-secondary);
    margin-bottom: 1rem;
}

/* Basis-Definition: greift in Carousel-Slides außerhalb der globalen Kontaktkarte. */
.bd-contact-name {
    font-size: 1.15rem;
    margin: 0;
    font-weight: 700;
    color: var(--bd-color-darker);
    line-height: 1.2;
}

.bd-contact-position {
    font-size: 0.8rem;
    color: var(--color-muted);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 1.5rem;
}

.bd-contact-actions {
    display: flex;
    gap: 0.75rem;
    width: 100%;
    justify-content: center;
}

.bd-carousel-controls {
    margin: 1.5rem 2rem 0;
    padding-top: 1rem;
    border-top: 1px solid var(--bd-color-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.bd-carousel-wrapper button.bd-carousel-arrow {
    all: unset;
    display: inline-grid;
    place-items: center;
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    cursor: pointer;
    color: var(--color-muted);
    font-size: 1.05rem;
    transition: 0.2s;
}

.bd-carousel-wrapper button.bd-carousel-arrow:hover {
    color: var(--bd-color-primary);
    transform: scale(1.15);
}

.bd-carousel-dots {
    font-size: 0.85rem;
    color: var(--color-muted);
}

.bd-carousel-wrapper--single .bd-carousel-controls { display: none; }

.bd-product-contact-widget .bd-carousel-wrapper {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    padding: clamp(1.4rem, 3vw, 2rem) 0;
    border: 1px solid var(--bd-color-border);
    border-radius: var(--bd-radius-m);
    background: var(--bd-color-white);
}

.bd-product-contact-widget .bd-carousel-track {
    display: flex;
    min-width: 0;
    transition: transform var(--transition);
    will-change: transform;
}

.bd-product-contact-widget .bd-carousel-slide {
    box-sizing: border-box;
    flex: 0 0 100%;
    max-width: 100%;
    min-width: 100%;
    padding: 0 clamp(1.4rem, 3vw, 2rem);
}

.bd-product-contact-widget .bd-contact-slide-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow-wrap: anywhere;
    min-width: 0;
    justify-items: center;
    gap: 0;
    text-align: center;
}

.bd-product-contact-widget .bd-contact-img-large {
    display: block;
    width: clamp(118px, 9vw, 148px);
    height: clamp(118px, 9vw, 148px);
    aspect-ratio: 1;
    overflow: hidden;
    margin: 0 auto clamp(1.2rem, 3vw, 1.6rem);
    border: 5px solid var(--bd-color-secondary);
    border-radius: 999px;
    clip-path: circle(50% at 50% 50%);
    object-fit: cover;
}

.bd-product-contact-widget .bd-contact-img-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bd-color-secondary);
    color: var(--bd-color-primary);
    font-size: 2.1rem;
    font-weight: var(--weight-heavy);
}

.bd-product-contact-widget .bd-contact-name {
    margin: 0;
    color: var(--bd-color-darker);
    font-size: clamp(1.15rem, 1.7vw, 1.35rem);
    font-weight: var(--weight-heavy);
    letter-spacing: 0;
    line-height: 1.2;
}

.bd-product-contact-widget .bd-contact-position {
    display: block;
    margin: 0.85rem 0 0;
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: var(--weight-heavy);
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bd-product-contact-widget .bd-contact-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.7rem;
    width: 100%;
    margin-top: clamp(1.25rem, 3vw, 1.7rem);
}

.bd-product-contact-widget .bd-contact-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 44px;
    min-width: 112px;
    padding: 0.55rem 0.75rem;
    border: 2px solid var(--bd-color-border);
    border-radius: var(--bd-radius-xs);
    background: var(--bd-color-secondary);
    color: var(--bd-color-primary);
    font-size: 0.9rem;
    font-weight: var(--weight-heavy);
    line-height: 1.1;
    text-decoration: none;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.bd-product-contact-widget .bd-contact-link:hover,
.bd-product-contact-widget .bd-contact-link:focus-visible {
    border-color: var(--bd-color-primary);
    background: var(--bd-color-primary);
    color: var(--bd-color-white);
}

.bd-product-contact-widget .bd-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: clamp(1.3rem, 3vw, 1.8rem) clamp(1.4rem, 3vw, 2rem) 0;
    padding-top: clamp(1rem, 2.5vw, 1.35rem);
    border-top: 1px solid var(--bd-color-border);
    color: var(--color-muted);
}

.bd-product-contact-widget .bd-carousel-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 1.05rem;
    cursor: pointer;
}

.bd-product-contact-widget .bd-carousel-arrow:hover,
.bd-product-contact-widget .bd-carousel-arrow:focus-visible {
    color: var(--bd-color-primary);
}

.bd-product-contact-widget .bd-carousel-dots {
    color: var(--color-muted);
    font-size: 0.9rem;
    line-height: 1.2;
}


/* =========================================================
   HERO
   ========================================================= */


/* =========================================================
   CARD SYSTEM
   ========================================================= */

/* Stretch-Link auf <a class="bd-card"> – ganze Karte klickbar */

/* XLINE-Variante */


/* =========================================================
   SECTION HEADER (Title + optionaler "Alle"-Link)
   ========================================================= */

.bd-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 0.75rem;
    gap: 1rem;
}

.bd-section-header h2,
.bd-section-header h3 { margin: 0; }

.bd-career-mediathek__header {
    display: block;
    max-width: var(--bd-container-narrow);
    margin-bottom: 1.5rem;
}

.bd-career-mediathek__header h2 {
    margin-bottom: 0.65rem;
}

.bd-career-mediathek__intro {
    margin: 0;
    color: var(--bd-color-body);
    line-height: 1.7;
}

.bd-career-mediathek__intro p {
    margin: 0;
}

.bd-career-mediathek .bd-mediathek {
    margin-block: 0;
}

.bd-company-video__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: center;
}

.bd-company-video__content {
    max-width: var(--bd-container-narrow);
}

.bd-company-video__content p {
    margin: 0;
    line-height: 1.7;
    color: var(--bd-color-body);
}

.bd-company-video__media {
    border-radius: var(--bd-radius-l);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
}

.bd-responsive-iframe .brlbs-cmpnt-container,
.bd-responsive-iframe .BorlabsCookie,
.bd-responsive-iframe ._brlbs-content-blocker,
.bd-responsive-iframe ._brlbs-embed,
.bd-responsive-iframe .brlbs-cmpnt-cb-preset-b,
.bd-responsive-iframe .brlbs-cmpnt-cb-preset-c,
.bd-responsive-iframe .brlbs-cmpnt-cb-thumbnail {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-width: 100%;
    max-width: 100%;
    min-height: 100%;
    max-height: 100%;
}

@media (min-width: 1024px) {
    .bd-company-video__grid {
        grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
        gap: clamp(2rem, 4vw, 4rem);
    }
}


/* =========================================================
   PROSE (Editor-Output / wysiwyg)
   ========================================================= */

.bd-prose {
    font-size: var(--bd-fs-content);
    line-height: 1.7;
    color: var(--bd-color-body);
    margin-bottom: 1.5rem;
}

.bd-prose > * + * { margin-top: 0.75em; }

.bd-prose p,
.bd-prose ul,
.bd-prose ol { margin-bottom: 1em; }

.bd-prose p:last-child,
.bd-prose ul:last-child,
.bd-prose ol:last-child { margin-bottom: 0; }

.bd-prose ul,
.bd-prose ol {
    padding-left: 1.5em;
    list-style: revert;
}

.bd-prose ul li,
.bd-prose ol li {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    list-style: revert;
}

.bd-prose li + li { margin-top: 0.3em; }

.bd-prose strong { font-weight: 700; }
.bd-prose em { font-style: italic; }

.bd-prose a {
    color: var(--bd-color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bd-prose a:hover { color: var(--bd-color-hover); }

.bd-prose h2,
.bd-prose h3,
.bd-prose h4 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
}


/* =========================================================
   WIDGET CTA
   ========================================================= */

.bd-widget-cta {
    background: var(--bd-color-white);
    border: 1px solid var(--bd-color-border);
    border-radius: var(--bd-radius-s);
    padding: 2rem 1.5rem;
    text-align: center;
}

.bd-cta-icon {
    font-size: 2.5rem;
    color: var(--bd-color-primary);
    margin-bottom: 1rem;
    line-height: 1;
}

.bd-cta-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--bd-color-darker);
    margin-bottom: 0.5rem;
}

.bd-cta-text {
    font-size: 0.9rem;
    color: var(--bd-color-body);
    margin-bottom: 1.5rem;
    line-height: 1.5;
}


/* =========================================================
   TRUST GRID (Kundenlogos / Referenzen)
   ========================================================= */

.bd-trust-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.bd-trust-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    background: var(--bd-color-secondary);
    border-radius: var(--bd-radius-s);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--color-muted);
    text-align: center;
    min-height: 52px;
}

.bd-trust-logo img {
    max-height: 36px;
    width: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: filter 0.2s, opacity 0.2s;
}

.bd-trust-logo:hover img { filter: none; opacity: 1; }


/* =========================================================
   EMPTY STATE (NEU – ersetzt Inline-Styles)
   ========================================================= */

.bd-empty-state {
    text-align: center;
    padding: 3rem 2rem;
    background: var(--bd-color-secondary);
    border: 1px solid var(--bd-color-border);
    border-radius: var(--bd-radius-m);
    color: var(--bd-color-body);
}

.bd-empty-state--large { padding: 4rem 2rem; }

.bd-empty-state__icon {
    font-size: 4rem;
    color: var(--bd-color-border);
    margin-bottom: 1.5rem;
    line-height: 1;
}

.bd-empty-state h3,
.bd-empty-state__title {
    margin-bottom: 0.5rem;
    color: var(--bd-color-darker);
}

.bd-empty-state p,
.bd-empty-state__text {
    color: var(--color-muted);
    margin: 0 auto 1.5rem;
    max-width: 480px;
}


/* =========================================================
   RESPONSIVE IFRAME / MAP / VIDEO
   ========================================================= */

.bd-responsive-iframe {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--bd-color-secondary);
    min-width: 100%;
    max-width: 100%;
}

.bd-responsive-iframe:not([style*="aspect-ratio"]) { aspect-ratio: 16 / 9; }

.bd-responsive-iframe iframe,
.bd-responsive-iframe object,
.bd-responsive-iframe embed,
.bd-responsive-iframe .borlabs-cookie-content-blocker {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    min-width: 100%;
    max-width: 100%;
    min-height: 100%;
    max-height: 100%;
}

.bd-map-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--bd-radius-l);
    background: var(--bd-color-secondary);
}

.bd-map-wrapper iframe,
.bd-map-wrapper .borlabs-cookie-content-blocker {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    min-width: 100%;
    max-width: 100%;
    min-height: 100%;
    max-height: 100%;
}


/* =========================================================
   COVER IMAGE HELPER (für Fallbacks im Card-Wrapper)
   ========================================================= */

.bd-img-fallback {
    background: var(--bd-color-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-muted);
    width: 100%;
    aspect-ratio: 16 / 9;
}

.bd-img-fallback i { font-size: 2rem; opacity: 0.4; }
