/* ============================================================================
   MusikBlog — Header & Konto
   ----------------------------------------------------------------------------
   Rechter Icon-/Konto-Cluster, Such-Overlay, Konto-Dropdown + Theming für
   Nav-Band & Logo. Werte aus dem Design-System (colors_and_type.css).

   Dark/Light folgt dem SITE-Toggle `body.mb-dark` (kein data-theme). Die Tokens
   werden NUR auf die Header-Region gescoped (nicht global auf :root) → keine
   Nebenwirkungen auf den Rest der Seite, Dark-Farben unangetastet.
   ============================================================================ */

/* ---- Design-Tokens, gescoped auf die Header-Region (Light = Default) ------ */
.elementor-location-header,
[data-mb-header],
.mb-account,
.mb-search,
.mb-navband,
.woocommerce-account {
    --bg:            #FFFFFF;
    --surface:       #F5F5F5;
    --surface-2:     #E9E9E9;
    --surface-3:     #DDDDDD;
    --overlay:       rgba(34, 34, 39, 0.45);
    --fg:            #222227;
    --fg-2:          #55555E;
    --fg-3:          #84848E;
    --border:        rgba(34, 34, 39, 0.14);
    --border-strong: rgba(34, 34, 39, 0.55);
    --accent:        #C22BF7;
    --accent-hover:  #BC16F8;
    --accent-weak:   rgba(194, 43, 247, 0.12);
    --fg-on-accent:  #FFFFFF;
    --mb-ink-800:    #222227;
    --shadow-md:     0 8px 22px rgba(34, 34, 39, 0.10);
    --shadow-lg:     0 22px 54px rgba(34, 34, 39, 0.16);
    --r-xs:          2px;
    --r-md:          5px;
    --r-pill:        999px;
    --ease:          cubic-bezier(0.2, 0.6, 0.2, 1);
    --dur:           200ms;
    --dur-fast:      120ms;
    --dur-slow:      320ms;
    --font-body:     -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;

    /* Genau 3 Schriftgrößen für die ganze Kontoseite */
    --fs-sm:         0.875rem; /* Meta, Labels, Tabellenköpfe, Pillen — Schrift-Boden 14px (§9.2) */
    --fs-base:       0.9rem;  /* Fließtext, Inputs, Buttons, Tabellenzellen, Nav */
    --fs-lg:         1.15rem; /* Überschriften */
}

body.mb-dark .elementor-location-header,
body.mb-dark [data-mb-header],
body.mb-dark .mb-account,
body.mb-dark .mb-search,
body.mb-dark .mb-navband,
body.mb-dark.woocommerce-account {
    --bg:            #222227;
    --surface:       #2A2A30;
    --surface-2:     #33333B;
    --surface-3:     #45454F;
    --overlay:       rgba(0, 0, 0, 0.62);
    --fg:            #F5F5F7;
    --fg-2:          #B6B6BE;
    --fg-3:          #84848E;
    --border:        rgba(255, 255, 255, 0.12);
    --border-strong: rgba(255, 255, 255, 0.30);
    --accent-weak:   rgba(194, 43, 247, 0.18);
    --shadow-md:     0 6px 20px rgba(0, 0, 0, 0.45);
    --shadow-lg:     0 20px 52px rgba(0, 0, 0, 0.58);
}

.mb-ic { display: inline-flex; flex: none; vertical-align: middle; }

/* Header „sticky": klebt oben, liegt über dem Inhalt. Pro-frei (reines CSS, kein
   Editor-Schritt). Das Sticky MUSS auf den Header-Location-Wrapper (sein Elternteil
   <body> ist hoch genug) — auf der inneren Flexbox klebt es nicht (deren Eltern-
   <header> ist nur header-hoch). Gescoped via :has auf unsere mb-header-Klasse.
   !important, weil Elementor `position: relative` sonst gewinnt. */
.elementor-location-header:has(.mb-header) {
    position: sticky !important;
    top: 0;
    z-index: 100;
}

/* ============================================================================
   Rechter Cluster
   ============================================================================ */
.mb-hdr-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    -webkit-tap-highlight-color: transparent;
}

/* Hohe Spezifität + !important: setzt den globalen Magenta-Button-Stil des
   Themes zurück, der sonst die <button>-Icons (Suche) übernimmt. */
.mb-hdr-actions .mb-hdr-ic,
.mb-search .mb-hdr-ic,
.mb-hdr-actions .mb-hdr-ic:hover,
.mb-hdr-actions .mb-hdr-ic:focus {
    position: relative;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 0 !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: var(--r-xs) !important;
    color: var(--fg) !important;
    text-shadow: none !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: opacity var(--dur) var(--ease);
}

.mb-hdr-actions .mb-hdr-ic:hover { opacity: 0.55; }
.mb-search__close.mb-hdr-ic { color: var(--fg-3) !important; }

.mb-hdr-ic:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: var(--r-xs);
}

/* Icon-Glyph-Größe in der Utility-Leiste (Suche/Herz/Glocke). Klickfläche bleibt
   44px; nur das SVG wird größer, damit es zu Menü/Schrift passt (Default-SVG 21px). */
.mb-hdr-ic svg { width: 24px; height: 24px; }

.mb-hdr-divider {
    width: 1px;
    height: 24px;
    flex: none;
    margin: 0 4px;
    background: var(--border);
}

/* Ungelesen-Punkt an der Glocke */
.mb-hdr-dot {
    position: absolute;
    top: 11px;
    right: 12px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
}

/* Lupe ↔ X umschalten */
.mb-hdr-ic--search .mb-hdr-ic__close { display: none; }
.mb-hdr-actions.is-search-open .mb-hdr-ic--search .mb-hdr-ic__open { display: none; }
.mb-hdr-actions.is-search-open .mb-hdr-ic--search .mb-hdr-ic__close { display: inline-flex; }

/* ============================================================================
   Konto — Avatar-Trigger (ohne Name/Chevron) + Dropdown
   ============================================================================ */
.mb-account {
    position: relative;
    display: inline-flex;
    align-items: center;
}

/* Trigger gegen den globalen Theme-Button-Stil härten */
.mb-account .mb-account__trigger,
.mb-account .mb-account__trigger:hover,
.mb-account .mb-account__trigger:focus {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 0 !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: var(--r-pill) !important;
    color: inherit !important;
    cursor: pointer;
    transition: opacity var(--dur) var(--ease);
}

.mb-account .mb-account__trigger:hover { opacity: 0.85; }

.mb-account__trigger:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.mb-account__avatar {
    display: inline-flex;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    overflow: hidden;
    flex: 0 0 auto;
    background: var(--accent);
    box-shadow: 0 0 0 2px var(--accent); /* Akzent-Ring */
}

.mb-account__avatar .mb-account__avatar-img,
.mb-account__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

/* Backdrop (nur Phone-Bottom-Sheet) */
.mb-account__backdrop {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: var(--overlay);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease);
}

.mb-account.is-open .mb-account__backdrop {
    opacity: 1;
    visibility: visible;
}

/* Menü — mobil: Bottom-Sheet */
.mb-account__menu {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100001;
    margin: 0;
    padding: 6px 8px calc(12px + env(safe-area-inset-bottom, 0px));
    background: var(--surface);
    color: var(--fg);
    border: 1px solid var(--border);
    border-bottom: 0;
    border-radius: 16px 16px 0 0;
    box-shadow: var(--shadow-lg);
    transform: translateY(100%);
    visibility: hidden;
    transition: transform var(--dur-slow) var(--ease), visibility var(--dur-slow) var(--ease);
}

.mb-account.is-open .mb-account__menu {
    transform: translateY(0);
    visibility: visible;
}

.mb-account__grip {
    display: block;
    width: 40px;
    height: 4px;
    margin: 6px auto 12px;
    border-radius: 999px;
    background: var(--fg-3);
    opacity: 0.5;
}

.mb-account__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 12px 14px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 6px;
}

.mb-account__head-avatar {
    display: inline-flex;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    overflow: hidden;
    flex: 0 0 auto;
    background: var(--surface-2);
}

.mb-account__head-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.mb-account__head-meta { display: flex; flex-direction: column; min-width: 0; }
.mb-account__head-name {
    font: 600 0.95rem var(--font-body);
    color: var(--fg);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mb-account__head-mail {
    font: 400 var(--fs-sm) var(--font-body);
    color: var(--fg-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mb-account__item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 11px 16px;
    border-radius: var(--r-xs);
    color: var(--fg);
    text-decoration: none;
    font: 600 0.95rem var(--font-body);
    transition: background var(--dur-fast) var(--ease);
}

.mb-account__item-ic { display: inline-flex; flex: none; color: var(--fg-3); }

.mb-account__item:hover,
.mb-account__item:focus-visible {
    background: var(--surface-2);
    color: var(--fg);
    outline: none;
}

.mb-account__sep { height: 1px; margin: 6px 8px; background: var(--border); }

/* ============================================================================
   Such-Overlay
   ============================================================================ */
.mb-search { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99990; }
.mb-search[hidden] { display: none; }

.mb-search__scrim { position: absolute; inset: 0; background: var(--overlay); }

.mb-search__panel {
    position: relative;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    padding: 18px 24px 20px;
}

.mb-search__form {
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 760px;
    margin: 0 auto;
    min-height: 52px;
    padding: 0 8px 0 16px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-xs);
}

.mb-search__icon { display: inline-flex; flex: none; color: var(--fg-3); }

.mb-search__input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    font: 400 1.05rem var(--font-body);
    color: var(--fg);
}
.mb-search__input::placeholder { color: var(--fg-3); }

.mb-search__close { width: 40px; height: 40px; color: var(--fg-3); }

.mb-search__popular {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    max-width: 760px;
    margin: 12px auto 0;
}
.mb-search__popular-label { font: 400 var(--fs-sm) var(--font-body); color: var(--fg-3); }
.mb-search__chip {
    font: 600 var(--fs-sm) var(--font-body);
    color: var(--fg-2);
    text-decoration: none;
    transition: opacity var(--dur) var(--ease);
}
.mb-search__chip:hover { opacity: 0.6; }

/* ============================================================================
   Theming für die in Elementor gebauten Bänder (per CSS-Klasse)
   ============================================================================ */

/* Teaser-Streifen — immer dunkel (beide Modi) */
.mb-teaser { background: var(--mb-ink-800); }
.mb-teaser,
.mb-teaser p,
.mb-teaser .elementor-widget-container { color: rgba(255, 255, 255, 0.82); }
/* Eine Zeile (Desktop); Mobil darf umbrechen (Slogan über CTA).
   Der <br> im Text-Widget erzwingt sonst 2 Zeilen → auf Desktop ausblenden. */
.mb-teaser p { margin: 0; white-space: nowrap; }
.mb-teaser p br { display: none; }
.mb-teaser p a { margin-left: 5px; }
@media (max-width: 600px) {
    .mb-teaser p { white-space: normal; }
    .mb-teaser p br { display: inline; }
    .mb-teaser p a { margin-left: 0; }
}
/* Link sichtbar weiß + unterstrichen (Theme überschreibt sonst dunkel) */
.mb-teaser a,
.mb-teaser a:hover,
.mb-teaser a:visited {
    color: #fff !important;
    font-weight: 600;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Utility-Zeile — Body-Fläche (hell = weiß / dunkel = schwarz) */
.mb-utility { background: var(--bg); }

/* Nav-Band */
.mb-navband { background: var(--surface); border-bottom: 1px solid var(--border); }
body.mb-dark .mb-navband { background: var(--bg); }

.mb-navband .elementor-item,
.mb-navband a {
    color: var(--fg) !important;
    font-weight: 600;
    transition: opacity var(--dur) var(--ease);
}
.mb-navband .elementor-item:hover,
.mb-navband a:hover { opacity: 0.55; color: var(--fg) !important; }
.mb-navband .elementor-item-active,
.mb-navband .current-menu-item > a {
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 2px;
}

/* Logo — Höhe steuern (Breite proportional), Utility-Band bleibt schlank. */
/* Größe NICHT erzwingen → die Logo-Größe stellst du im Bild-Widget ein
   (Stil → Größe → Breite); Höhe folgt proportional. */
.mb-logo img { display: block; height: auto; max-width: 100%; }

/* Dark-Mode A — EIN Logo (monochrom): per Filter invertieren (schwarz→weiß im Dark).
   Greift nur, wenn KEINE --light/--dark-Variante gesetzt ist. */
.mb-logo:not(.mb-logo--light):not(.mb-logo--dark) img { filter: none; }
body.mb-dark .mb-logo:not(.mb-logo--light):not(.mb-logo--dark) img { filter: invert(1); }

/* Dark-Mode B — ZWEI Logos: helle Datei (schwarze Schrift) im Light, dunkle Datei
   (weiße Schrift) im Dark. Kein Filter → exakt deine Dateien inkl. Schatten. */
.mb-logo--dark { display: none !important; }
body.mb-dark .mb-logo--light { display: none !important; }
body.mb-dark .mb-logo--dark { display: block !important; }

/* ============================================================================
   Glas-Menü — aufgeklapptes Nav-Dropdown (mobiler Hamburger + Untermenüs)
   ============================================================================ */
/* Glas-Hintergrund. HELL = Standard. */
.elementor-nav-menu--dropdown {
    background-color: rgba(255, 255, 255, 0.6) !important;
    -webkit-backdrop-filter: blur(16px) saturate(140%);
    backdrop-filter: blur(16px) saturate(140%);
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
}
/* DUNKEL — wenn body.mb-dark aktiv ist. */
body.mb-dark .elementor-nav-menu--dropdown {
    background-color: rgba(20, 20, 25, 0.55) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Aktiver Menüpunkt = genau EIN exakter URL-Treffer. */
body:not(.mb-dark) .elementor-nav-menu--dropdown a.elementor-item-active {
    background-color: rgba(255, 255, 255, 0.85) !important;
    color: #000 !important;
}
body.mb-dark .elementor-nav-menu--dropdown a.elementor-item-active {
    background-color: rgba(255, 255, 255, 0.14) !important;
    color: #fff !important;
}

/* Hover/Focus (NICHT der aktive Punkt): nur zarter Tint, damit nie zwei
   Punkte gleich stark selektiert wirken. */
body:not(.mb-dark) .elementor-nav-menu--dropdown .elementor-item:not(.elementor-item-active):hover,
body:not(.mb-dark) .elementor-nav-menu--dropdown .elementor-item:not(.elementor-item-active):focus {
    background-color: rgba(0, 0, 0, 0.05) !important;
}
body.mb-dark .elementor-nav-menu--dropdown .elementor-item:not(.elementor-item-active):hover,
body.mb-dark .elementor-nav-menu--dropdown .elementor-item:not(.elementor-item-active):focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

/* Feste Dropdown-Schriftgröße 18px (= Hauptmenü). Elementors Nav-Menü hat eine
   getrennte „Dropdown"-Typografie mit Default 13px → hier persistent verankert,
   überlebt Cache/Re-Import/Elementor-Änderungen. */
.elementor-nav-menu--dropdown .elementor-item {
    font-size: 18px !important;
}

/* ============================================================================
   >= 600px: Konto-Dropdown angedockt statt Bottom-Sheet
   ============================================================================ */
@media (min-width: 600px) {
    .mb-account__backdrop,
    .mb-account__grip { display: none; }

    .mb-account__menu {
        position: absolute;
        left: auto;
        right: 0;
        bottom: auto;
        top: calc(100% + 8px);
        width: 288px;
        max-width: none;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--border);
        border-radius: var(--r-md);
        box-shadow: var(--shadow-lg);
        transform: translateY(-6px);
        opacity: 0;
        transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast) var(--ease);
    }

    .mb-account.is-open .mb-account__menu { transform: translateY(0); opacity: 1; }

    .mb-account__head { padding: 16px; margin-bottom: 0; }
    .mb-account__item { min-height: 0; padding: 11px 16px; border-radius: 0; font-size: 0.9rem; }
    .mb-account__sep { margin: 0; }
}

/* ============================================================================
   Reduced Motion
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
    .mb-account__menu,
    .mb-account__backdrop,
    .mb-account__item,
    .mb-hdr-ic,
    .mb-account .mb-account__trigger { transition: none; }
}
