/* ==========================================================================
   Benz Digital – Farbenkrauth Mega-Menü
   --------------------------------------------------------------------------
   Stand: Schritt 1+2 des Plans (Topbar + Header). Mega-Panels und Mobile-
   Drawer folgen in den nächsten Iterationen.
   ========================================================================== */

:root {
    --bd-primary:        #C6BF89;
    --bd-primary-hover:  #b5ae75;
    --bd-body:           #1a1a1a;
    --bd-black:          #0c0c0e;
    --bd-white:          #ffffff;
    --bd-beige:          #f2efe9;
    --bd-beige-light:    #faf8f5;
    --bd-border:         #e5e2d9;
    --bd-focus:          #C6BF89;
    --bd-container:      1300px;
    --bd-gutter:         20px;
    --bd-nav-height:     60px;
}

/* ----- Reset / Basis nur für Plugin-Bauteile -------------------------------
   Bewusst eng auf .bd-* gescoped, damit wir das Theme-CSS nicht überschreiben. */
.bd-topbar,
.bd-main-header,
.bd-navbar {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    color: var(--bd-body);
    line-height: 1.4;
}
.bd-topbar *, .bd-main-header *, .bd-navbar * { box-sizing: border-box; }
.bd-topbar ul, .bd-main-header ul, .bd-navbar ul { list-style: none; margin: 0; padding: 0; }
/* Link-Reset:
   - text-decoration und transition gelten für alle Plugin-Links.
   - color:inherit nur für Topbar/Header (die haben einheitliche Vordergrundfarbe).
   - Navbar-Links setzen ihre Farbe pro Link-Typ explizit (.bd-nav-link,
     .bd-tile-link, .bd-link-more etc.). Sonst würde `.bd-navbar a` mit höherer
     Specificity die expliziten Farben (z.B. rot für .bd-link-more) überschreiben. */
.bd-topbar a, .bd-main-header a, .bd-navbar a {
    text-decoration: none;
    transition: color 0.15s ease, background 0.15s ease;
}
.bd-topbar a, .bd-main-header a {
    color: inherit;
}

/* ----- Divi-Reset: kein Phantom-Padding für den entfernten Divi-Header -----
   Divi-JS setzt sonst inline padding-top auf #page-container, weil es eigentlich
   einen fixierten Header erwartet. Da unser Header oberhalb des Page-Containers
   steht, brauchen wir das nicht. */
#page-container {
    padding-top: 0 !important;
}

/* ----- Skip-Link (WCAG 2.4.1) ----------------------------------------------- */
.bd-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--bd-black);
    color: var(--bd-white);
    padding: 10px 16px;
    z-index: 9999;
    font-weight: 600;
}
.bd-skip-link:focus {
    left: 8px;
    top: 8px;
    outline: 3px solid var(--bd-focus);
    outline-offset: 2px;
}

/* ----- Screen-Reader-Only Helper ------------------------------------------- */
.bd-visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ----- Container ----------------------------------------------------------- */
.bd-container {
    max-width: var(--bd-container);
    margin: 0 auto;
    padding-left: var(--bd-gutter);
    padding-right: var(--bd-gutter);
    display: flex;
    align-items: center;
}

/* ----- Topbar -------------------------------------------------------------- */
/* z-index 1010 hebt Topbar über den Mega-Backdrop (z-index 800), damit der
   dunkle Schleier nur den Body-Content unterhalb des Menüs überdeckt. */
.bd-topbar {
    background-color: var(--bd-body);
    color: var(--bd-white);
    font-size: 13px;
    padding: 8px 0;
    position: relative;
    z-index: 1010;
}
.bd-topbar .bd-container { justify-content: flex-end; gap: 25px; flex-wrap: wrap; }
.bd-topbar a:hover, .bd-topbar a:focus-visible { text-decoration: underline; }
.bd-contact-item { display: flex; align-items: center; gap: 8px; }
.bd-contact-item i { color: var(--bd-primary); }

/* Auf Smartphones: Adresse zeigen, Telefon/Mail wegblenden (optional) */
@media (max-width: 768px) {
    .bd-topbar--compact-mobile .bd-contact-item:not(:first-child) { display: none; }
    .bd-topbar .bd-container { justify-content: flex-start; }
}

/* ----- Main Header --------------------------------------------------------- */
.bd-main-header {
    padding: 20px 0;
    background: var(--bd-white);
    border-bottom: 1px solid var(--bd-border);
    /* z-index 1010 = über Backdrop. So bleibt der Header beim offenen Mega-
       Panel hell, nur der Body darunter wirkt verdunkelt. */
    position: relative;
    z-index: 1010;
}
.bd-main-header .bd-container {
    justify-content: space-between;
    gap: 40px;
}

.bd-logo img { height: 40px; width: auto; display: block; }
.bd-logo { min-width: 0; flex-shrink: 0; }
.bd-logo-text { font-size: 22px; font-weight: 700; color: var(--bd-black); }
.bd-logo:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 4px; border-radius: 2px; }

/* Suchfeld */
.bd-search-wrapper { flex: 1; max-width: 600px; }
.bd-search-form { display: flex; position: relative; }
.bd-search-input {
    width: 100%;
    padding: 10px 15px;
    background: var(--bd-beige-light);
    border: 1px solid var(--bd-border);
    border-right: none;
    border-radius: 4px 0 0 4px;
    font-size: 15px;
    color: var(--bd-body);
    outline: none;
    font-family: inherit;
}
.bd-search-input:focus {
    border-color: var(--bd-primary);
    background: var(--bd-white);
    box-shadow: 0 0 0 2px rgba(240, 20, 28, 0.15);
}
.bd-search-btn {
    background: var(--bd-primary);
    color: white;
    border: none;
    padding: 0 20px;
    border-radius: 0 4px 4px 0;
    font-size: 16px;
    cursor: pointer;
    font-family: inherit;
}
.bd-search-btn:hover { background: var(--bd-primary-hover); }
.bd-search-btn:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: 2px;
}
.bd-main-header .bd-search-form .bd-search-input,
.bd-navbar .bd-search-form .bd-search-input {
    width: 100%;
    margin: 0;
    min-width: 0;
    padding: 10px 15px;
    background: var(--bd-beige-light);
    border: 1px solid var(--bd-border);
    border-right: none;
    border-radius: 4px 0 0 4px;
    color: var(--bd-body);
    font: 15px/1.2 inherit;
    outline: none;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.bd-main-header .bd-search-form .bd-search-btn,
.bd-navbar .bd-search-form .bd-search-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    background: var(--bd-primary);
    color: var(--bd-white);
    border: none;
    border-radius: 0 4px 4px 0;
    box-sizing: border-box;
    line-height: 1;
    flex: 0 0 auto;
}

/* Socials */
.bd-socials { display: flex; gap: 10px; }
.bd-social-btn {
    width: 44px; height: 44px;     /* WCAG 2.5.5 Touch-Target */
    border-radius: 50%;
    background: var(--bd-beige);
    color: var(--bd-body);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}
.bd-social-btn:hover {
    background: var(--bd-primary);
    color: white;
}
.bd-social-btn:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: 2px;
}

/* Mobile-Toggle (Hamburger) */
.bd-mobile-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    padding: 10px;
    color: var(--bd-black);
    cursor: pointer;
}
/* Drawer-Close-Button standardmäßig versteckt – wird in der Mobile-
   Media-Query unten angezeigt. Ohne diese Regel rendert er sich im
   Desktop als ungestyltes Browser-Default-X oben in der Navbar. */
.bd-drawer-close { display: none; }
/* Mobile-Suche ebenfalls Default-versteckt; im Mobile-Block sichtbar. */
.bd-mobile-search-wrapper { display: none; }
.bd-drawer-footer { display: none; }
/* Drawer-Titel: Desktop unsichtbar; Mobile als sichtbare „Menü"-Überschrift,
   die per aria-labelledby das Dialog-Label liefert. */
.bd-drawer-title { display: none; }
.bd-mobile-toggle:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: 2px;
}

/* ----- Mobile Layout ------------------------------------------------------- */
@media (max-width: 1099px) {
    .bd-container { padding-left: 15px; padding-right: 15px; }
    .bd-main-header { padding: 14px 0; }
    .bd-main-header .bd-container { gap: 16px; }
    .bd-logo img {
        max-width: min(230px, calc(100vw - 100px));
        max-height: 42px;
        height: auto;
    }
    .bd-logo-text {
        display: block;
        max-width: calc(100vw - 100px);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .bd-search-wrapper, .bd-socials { display: none; }
    .bd-mobile-toggle { display: inline-flex; align-items: center; justify-content: center; }
}

/* ----- Navbar -------------------------------------------------------------- */
.bd-navbar {
    background: var(--bd-white);
    height: var(--bd-nav-height);
    border-bottom: 1px solid var(--bd-border);
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    /* Theme-Styles setzen `nav { transform: ... }` ab 1050px Bildschirmbreite.
       Mein `.bd-navbar` schlägt durch höhere Specificity, kein !important nötig.
       Wichtig: KEIN !important – sonst blockiert es das translateX(100%) im
       Mobile-Block und der Drawer bleibt sichtbar. */
    transform: none;
}
.bd-navbar .bd-container { height: 100%; justify-content: center; }
.bd-nav-list { display: flex; height: 100%; gap: 5px; margin-left: 0; }
/* Erstes Menüpunkt-Element ohne linkes Padding, damit der Text-Anfang
   bündig mit dem Logo darüber sitzt (beide am Container-Padding-Rand). */
.bd-nav-list > .bd-nav-item:first-child > .bd-nav-link {
    padding-left: 0;
}
/* .bd-nav-item bewusst KEIN position:relative – sonst wird das Mega-Panel
   am einzelnen Menüpunkt verankert statt voll-breit am Viewport. */
.bd-nav-item { display: flex; align-items: stretch; }

.bd-nav-link {
    height: 100%;
    display: inline-flex;
    align-items: center;
    padding: 0 15px;
    font-weight: 600;
    font-size: 16px;
    color: var(--bd-body);
    background: none;
    border: none;
    gap: 8px;
    border-bottom: 3px solid transparent;
    border-top: 3px solid transparent; /* gleicht den unteren aus, hält die Höhe stabil */
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
    transition: color 0.2s ease, border-color 0.2s ease;
}
/* Hover, „Panel geöffnet" und „aktuelle Seite" alle identisch behandeln,
   damit die Akzentfarbe konsistent „du bist gerade hier / hier passiert was"
   bedeutet. Rote Schrift + roter Border-Bottom als einheitliches Signal. */
/* current-menu-parent bewusst NICHT drin – das matcht in WP auch bei
   Geschwister-Hierarchien zu großzügig und macht plötzlich mehrere Top-Levels
   rot. current-page-ancestor bleibt, damit „Service" rot wird, wenn man auf
   einer Service-Sub-Page ist. */
.bd-nav-link:hover,
.bd-nav-link[aria-expanded="true"],
.bd-nav-item.current-menu-item > .bd-nav-link,
.bd-nav-item.current_page_item > .bd-nav-link,
.bd-nav-item.current-menu-ancestor > .bd-nav-link,
.bd-nav-item.current-page-ancestor > .bd-nav-link {
    color: var(--bd-primary);
    border-bottom-color: var(--bd-primary);
}
.bd-nav-link:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: -3px;
}

.bd-caret {
    font-size: 12px;
    color: var(--bd-primary);
    opacity: 0.6;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.bd-nav-link[aria-expanded="true"] .bd-caret {
    transform: rotate(180deg);
    opacity: 1;
}

/* Hinweis-Variante, wenn noch kein Menü zugewiesen ist */
.bd-navbar--placeholder { background: var(--bd-beige-light); padding: 12px 0; height: auto; }
.bd-navbar--placeholder p { margin: 0; font-size: 14px; }
.bd-navbar--placeholder a { color: var(--bd-primary); text-decoration: underline; }

/* ----- Mega-Panel ---------------------------------------------------------- */
/* Panel ist absolute relativ zur .bd-navbar (die ist position:sticky und damit
   selbst Containing-Block) → mit left:0; right:0 ergibt sich volle Viewport-
   Breite, weil die Navbar selbst voll-breit ist. */
.bd-mega-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: auto;
    margin-left: 0;
    background: var(--bd-white);
    border-top: 1px solid var(--bd-border);
    border-bottom: 1px solid var(--bd-border);
    box-shadow: 0 20px 30px -5px rgba(0,0,0,0.08);
    z-index: 900;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.18s ease, transform 0.18s ease;
    pointer-events: none;
}
.bd-mega-panel[hidden] { display: none; }
.bd-nav-link[aria-expanded="true"] + .bd-mega-panel {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}
/* Inhalt im Mega-Panel: auf Container-Breite begrenzt, eigenes
   horizontales Padding (Theme-resistent gegen variable-Überschreibungen). */
.bd-mega-content {
    display: block;            /* überschreibt .bd-container { display:flex } */
    max-width: 1300px;         /* hardcoded statt CSS-Variable, falls Theme `--bd-container` setzt */
    width: 100%;
    margin: 0 auto;
    padding: 40px 20px;
    box-sizing: border-box;
    align-items: initial;
}

/* Tile-Grid */
.bd-grid-5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 25px;
    width: 100%;
}
/* Spalten als Flex-Spalten, damit „Alle anzeigen" mit margin-top:auto
   ans untere Ende rutscht und alle Mehr-Links auf einer Linie liegen. */
.bd-col {
    display: flex;
    flex-direction: column;
}
.bd-col-header {
    font-size: 18px;
    font-weight: 700;
    color: var(--bd-black);
    margin-bottom: 15px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--bd-beige);
    display: flex;
    align-items: center;
    gap: 10px;
}
/* .bd-col-toggle ist im Desktop nur ein optischer Header (kein Button-Look),
   im Mobile dann ein echter Akkordeon-Trigger. */
.bd-col-toggle {
    background: none;
    border: none;
    border-bottom: 2px solid var(--bd-beige);
    padding: 0 0 12px;
    width: 100%;
    text-align: left;
    cursor: default;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    color: var(--bd-black);
    pointer-events: none;
}
.bd-col-caret { display: none; }
.bd-icon-circle {
    width: 32px;
    height: 32px;
    background: var(--bd-beige);
    color: var(--bd-primary);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
.bd-tile-list { display: flex; flex-direction: column; }
.bd-tile-list li { margin: 0; }
/* Tile-Links: Text-Anfang bündig zur Spaltenkante (durch negative margin),
   Hover-Fläche ragt 12px nach links/rechts heraus. Selber Effekt wie bei
   den Rich-Items – einheitliche Sprache in allen Panel-Typen. */
.bd-tile-link {
    display: block;
    padding: 8px 12px;
    margin: 0 -12px;
    border-radius: 6px;
    color: var(--bd-body);
    font-size: 15px;
    transition: background 0.18s ease, color 0.18s ease;
}
.bd-tile-link:hover {
    background: var(--bd-beige);
    color: var(--bd-black);
}
.bd-tile-link:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: 1px;
}
/* „Alle anzeigen" rutscht ans untere Ende der Spalte (alle Spalten haben
   per Grid stretch gleiche Höhe → die Links liegen auf einer Linie). */
.bd-link-more {
    margin-top: auto;
    padding-top: 16px;
    align-self: flex-start;
    font-weight: 700;
    color: var(--bd-primary);
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.bd-link-more:hover { color: var(--bd-primary-hover); text-decoration: underline; }
.bd-link-more:focus-visible {
    outline: 3px solid var(--bd-focus);
    outline-offset: 2px;
}

/* ----- Sidebar-Layout ------------------------------------------------------ */
.bd-grid-sidebar {
    display: grid;
    grid-template-columns: 1fr 1fr 350px;
    gap: 50px;
    width: 100%;
}
.bd-grid-sidebar--cols-1 { grid-template-columns: 1fr 350px; }
.bd-grid-sidebar--cols-3 { grid-template-columns: 1fr 1fr 1fr 350px; }

.bd-col--sidebar .bd-col-header > i {
    color: var(--bd-primary);
    margin-right: 8px;
    font-size: 18px;
}

.bd-rich-list { display: flex; flex-direction: column; gap: 4px; }
.bd-rich-item {
    display: flex;
    gap: 15px;
    padding: 15px;
    margin: 0 -15px;
    border-radius: 6px;
    align-items: flex-start;
    color: var(--bd-body);  /* gegen Theme-a-color */
    transition: background 0.15s ease;
}
.bd-rich-item:hover { background: var(--bd-beige); }
.bd-rich-item:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 1px; }
.bd-rich-icon {
    flex-shrink: 0;
    font-size: 20px;
    color: var(--bd-primary);
    line-height: 1.2;
    margin-top: 2px;
    min-width: 24px;
}
.bd-rich-text { display: flex; flex-direction: column; }
.bd-rich-title {
    font-weight: 700;
    font-size: 17px;
    color: var(--bd-black);
    margin-bottom: 4px;
}
.bd-rich-desc {
    font-size: 15.5px;
    color: var(--bd-body);
    line-height: 1.4;
}

/* Feature-Box rechts */
.bd-feature-box {
    background: var(--bd-beige-light);
    border: 1px solid var(--bd-beige);
    border-radius: 8px;
    padding: 30px;
    align-self: start;
}
.bd-feature-title {
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--bd-black);
}
.bd-feature-title > i { color: var(--bd-primary); }
.bd-feature-text {
    font-size: 15px;
    color: var(--bd-body);
    line-height: 1.5;
    margin: 0 0 15px;
}
.bd-feature-phone {
    display: block;
    font-weight: 700;
    font-size: 20px;
    color: var(--bd-primary);
    margin-bottom: 4px;
}
.bd-feature-phone:hover { text-decoration: underline; }
.bd-feature-email {
    display: block;
    font-size: 14px;
    margin-bottom: 16px;
}
.bd-feature-email:hover { text-decoration: underline; }
.bd-btn-cta {
    display: inline-block;
    padding: 10px 18px;
    background: var(--bd-primary);
    color: white;
    font-weight: 600;
    border-radius: 4px;
    font-size: 14px;
}
.bd-btn-cta:hover { background: var(--bd-primary-hover); }
.bd-btn-cta:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 2px; }

/* Brand-Bar als Panel-Footer (im Tile-Grid-Layout) */
.bd-mega-footer {
    background: var(--bd-beige-light);
    border-top: 1px solid var(--bd-border);
    padding: 15px 0;
}
.bd-footer-content {
    display: flex;
    max-width: 1300px;
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
}
.bd-brands-row { display: flex; align-items: center; gap: 20px; }
.bd-brands-label {
    font-weight: 700;
    font-size: 13px;
    color: var(--bd-body);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bd-brands-list {
    display: flex;
    gap: 30px;
    align-items: center;
    flex-wrap: wrap;
}
.bd-brand-logo {
    height: 28px;
    width: auto;
    filter: grayscale(100%);
    transition: filter 0.2s ease, transform 0.2s ease;
}
.bd-brand-link:hover .bd-brand-logo,
.bd-brand-logo:hover {
    filter: grayscale(0%);
    transform: scale(1.06);
}
.bd-brand-link:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 4px; }
.bd-footer-link {
    font-size: 14px;
    font-weight: 700;
    color: var(--bd-primary);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.bd-footer-link:hover { text-decoration: underline; }
.bd-footer-link:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 2px; }

/* Backdrop für offenes Mega-Panel (Desktop) und offenen Drawer (Mobile) */
.bd-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.4);
    z-index: 800;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease;
}
body.bd-mega-open .bd-backdrop,
body.bd-menu-open .bd-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* ----- Mobile: Drawer + Akkordeon ------------------------------------------ */
@media (max-width: 1099px) {

    /* Navbar wird zum Slide-In-Drawer von rechts */
    .bd-navbar {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: auto;
        width: 92vw;
        width: min(92vw, 430px);
        max-width: none;
        height: 100vh;
        height: 100dvh;        /* dynamic viewport height für mobile Safari */
        border-bottom: none;
        border-left: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: -8px 0 30px rgba(0,0,0,0.8);
        background: #121215;
        transform: translateX(100%);
        transition: transform 0.25s ease;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        z-index: 1100;
        padding: calc(74px + env(safe-area-inset-top, 0px)) 0 calc(20px + env(safe-area-inset-bottom, 0px));
    }
    .bd-navbar.is-open {
        transform: translateX(0);
    }
    /* WICHTIG: > (direkter Kind) – sonst matcht das auch den inneren
       .bd-container im Mega-Panel und drückt dort fälschlich 20px
       Side-Padding rein. Der innere .bd-mega-content soll seine eigenen
       Padding-Werte behalten. */
    .bd-navbar > .bd-container {
        display: block;
        height: auto;
        max-width: none;
        padding: 0 20px;
    }
    .bd-nav-list {
        flex-direction: column;
        gap: 0;
        margin-left: 0;
        padding: 0;
        height: auto;
    }
    .bd-nav-item {
        width: 100%;
        display: block;
        position: relative;
    }
    .bd-nav-link {
        width: 100%;
        min-height: 52px;
        height: auto;
        justify-content: space-between;
        padding: 16px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        border-top: none;
        background: none !important;
        color: rgba(255, 255, 255, 0.85);
        text-align: left;
        line-height: 1.25;
        white-space: normal;
    }
    .bd-nav-list > .bd-nav-item:last-child > .bd-nav-link {
        border-bottom-color: transparent;
    }
    .bd-nav-link--mega[aria-expanded="true"] {
        color: var(--bd-primary);
        border-bottom-color: rgba(255, 255, 255, 0.08);
    }
    .bd-nav-link--mega[aria-expanded="true"] .bd-caret {
        color: var(--bd-primary);
        opacity: 1;
    }

    /* Mega-Panel klappt als Akkordeon im Drawer auf – weiß, kein Inset.
       Linksbündig zum übergeordneten Trigger (Unser Sortiment etc.). */
    .bd-mega-panel {
        position: static;
        width: auto;
        margin: 0;
        padding: 0;
        box-shadow: none;
        border: none;
        opacity: 1;
        transform: none;
        pointer-events: auto;
        background: #18181c;
    }
    .bd-mega-panel .bd-mega-footer {
        display: none;
    }
    /* Vertikales Padding ja (visueller Abstand zum Akkordeon-Trigger),
       horizontales bewusst 0 – Mega-Content sitzt damit linksbündig zur
       umgebenden Spalte. */
    .bd-mega-content { padding: 10px 0 14px; max-width: none; margin: 0; }
    .bd-grid-5,
    .bd-grid-sidebar,
    .bd-grid-sidebar--cols-1,
    .bd-grid-sidebar--cols-3 {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .bd-mega-footer { margin: 8px 0 0; padding: 12px 0; }
    .bd-footer-content { flex-direction: column; align-items: flex-start; gap: 10px; padding: 0; }
    .bd-brands-row { align-items: flex-start; flex-direction: column; gap: 10px; }
    .bd-brands-list { gap: 14px 18px; }
    .bd-brand-logo { max-width: 110px; height: auto; max-height: 28px; }

    /* Spalten-Akkordeon: Header wird zum klickbaren Trigger,
       Body klappt auf/zu basierend auf aria-expanded. */
    .bd-col-toggle {
        cursor: pointer;
        pointer-events: auto;
        display: flex;
        align-items: center;
        gap: 10px;
        min-height: 54px;
        padding: 12px 0;
        margin: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        line-height: 1.25;
        font-size: 16px;
        color: #ffffff;
    }
    .bd-icon-circle {
        width: 30px;
        height: 30px;
        font-size: 13px;
    }
    .bd-col-header-text {
        flex: 1;
        min-width: 0;
    }
    .bd-col-caret {
        display: inline-block;
        margin-left: auto;
        color: var(--bd-primary);
        font-size: 14px;
        transition: transform 0.2s ease;
    }
    .bd-col-toggle[aria-expanded="true"] .bd-col-caret {
        transform: rotate(180deg);
    }
    .bd-col-toggle:focus-visible {
        outline: 3px solid var(--bd-focus);
        outline-offset: -3px;
    }
    /* Body initial geschlossen, öffnet wenn Toggle aria-expanded="true" */
    .bd-col-body {
        display: none;
        padding: 4px 0 12px 40px;
    }
    .bd-col-toggle[aria-expanded="true"] + .bd-col-body {
        display: block;
    }
    /* Falls kein Toggle vorhanden ist (keine Header in Spalte) – Body sichtbar */
    .bd-col > .bd-col-body:first-child { display: block; }

    /* Tile-Links im Mobile: keine seitliche margin (kein Hover-Pille-Effekt),
       statt dessen größeres vertikales Padding für Touch-Target (≥44px). */
    .bd-tile-link {
        display: flex;
        align-items: center;
        min-height: 42px;
        margin: 0;
        padding: 8px 0;
        border-radius: 0;
        color: rgba(255, 255, 255, 0.7);
    }
    .bd-tile-link:hover {
        background: none;
        color: var(--bd-primary);
    }

    /* Rich-Items analog: kein margin-Overflow, kein Hover-Hintergrund. */
    .bd-rich-item {
        margin: 0;
        padding: 9px 0;
        min-height: 44px;
    }
    .bd-rich-item:hover {
        background: none;
    }

    /* Drawer-Titel: echte Heading (h2) statt CSS-Pseudo, damit Screen-Reader
       das beim Dialog-Öffnen als Label vorlesen können. */
    .bd-drawer-title {
        display: block;
        position: absolute;
        top: calc(20px + env(safe-area-inset-top, 0px));
        left: 20px;
        margin: 0;
        font-family: inherit;
        font-weight: 700;
        font-size: 18px;
        color: #ffffff;
    }
    .bd-navbar .bd-drawer-title {
        color: #ffffff;
        line-height: 1.2;
        padding: 0;
    }

    /* Backdrop hinter dem Drawer */
    .bd-backdrop {
        z-index: 1050;
    }
    body.bd-menu-open .bd-backdrop {
        opacity: 1;
        visibility: visible;
    }
    body.bd-menu-open {
        overflow: hidden;
    }
    html.bd-menu-open {
        overflow: hidden;
    }

    /* Mobile-Suche im Drawer */
    .bd-mobile-search-wrapper {
        display: block;
        margin: 0 0 26px;
    }
    .bd-mobile-search-wrapper .bd-search-form {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        width: 100%;
        margin: 0;
    }
    .bd-mobile-search-wrapper .bd-search-input {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        height: 42px;
        margin: 0;
        padding: 10px 12px;
        font-size: 15px;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-right: none;
        border-radius: 4px 0 0 4px;
        background: #18181c;
        color: #ffffff;
        line-height: 1.2;
    }
    .bd-mobile-search-wrapper .bd-search-input:focus {
        background: #121215;
        border-color: var(--bd-primary);
        outline: none;
    }
    .bd-mobile-search-wrapper .bd-search-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 48px;
        width: 48px;
        min-width: 48px;
        height: 42px;
        margin: 0;
        background: var(--bd-primary);
        color: white;
        border: none;
        padding: 0;
        border-radius: 0 4px 4px 0;
    }

    /* Drawer-Close-Button oben rechts (nur im Mobile-Drawer sichtbar) */
    .bd-drawer-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: calc(16px + env(safe-area-inset-top, 0px));
        right: 14px;
        width: 44px;
        height: 44px;
        background: none;
        border: none;
        font-size: 22px;
        color: #ffffff;
        cursor: pointer;
        z-index: 2;
    }
    .bd-drawer-close:focus-visible { outline: 3px solid var(--bd-focus); outline-offset: 2px; }

    .bd-feature-box {
        width: 100%;
        margin-top: 8px;
        padding: 20px;
    }
    .bd-feature-phone {
        font-size: 18px;
        overflow-wrap: anywhere;
    }

    .bd-drawer-footer {
        display: block;
        margin: 24px -20px 0;
        padding: 18px 20px calc(22px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .bd-drawer-contact-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 22px;
    }
    .bd-drawer-contact-link,
    .bd-drawer-contact-text {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        color: rgba(255, 255, 255, 0.7);
        font-size: 14px;
        line-height: 1.4;
    }
    .bd-drawer-contact-text {
        grid-column: 1 / -1;
    }
    .bd-drawer-contact-link:hover {
        color: var(--bd-primary);
    }
    .bd-drawer-contact-link i,
    .bd-drawer-contact-text i {
        flex: 0 0 18px;
        color: var(--bd-primary);
        text-align: center;
    }
    .bd-drawer-contact-link span,
    .bd-drawer-contact-text span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .bd-drawer-socials {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 16px;
    }
    .bd-drawer-socials .bd-social-btn {
        width: 40px;
        height: 40px;
        background: #18181c;
        border: 1px solid rgba(255, 255, 255, 0.08);
        color: #ffffff;
    }
}

@media (max-width: 420px) {
    .bd-drawer-contact-list {
        grid-template-columns: 1fr;
    }
    .bd-drawer-contact-text {
        grid-column: auto;
    }
}

@media (max-width: 767px) {
    .bd-navbar {
        width: 100vw;
        border-left: none;
        box-shadow: none;
    }
}

/* ----- Reduced Motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
    .bd-topbar a, .bd-main-header a, .bd-navbar a,
    .bd-search-btn, .bd-social-btn, .bd-mobile-toggle,
    .bd-mega-panel, .bd-tile-link, .bd-caret, .bd-backdrop,
    .bd-nav-link {
        transition: none !important;
    }
    .bd-tile-link:hover { transform: none !important; }
}
