/* ============================================================================
   FS-HEADER-FINAL — Kopfzeile nach der verbindlichen Referenz vom 27.08.2026
   (Sitzung HEADER FINAL, Auftrag + Referenzbild + Referenz-HTML von Yunus)
   ----------------------------------------------------------------------------
   DREI FLAECHEN, harte Kanten, keine Rundungen, keine Verlaeufe:
       #header-top-bar  Trustbar          WEISS   52 px
       .hide-navbar     Hauptflaeche      SCHWARZ 164 px
       .navbar-wrapper  Navigationszeile  WEISS   66 px

   WARUM EIGENE DATEI statt Eingriff in fs-redesign.css:
   fs-redesign.css ist 3.010 Zeilen lang und wird von mehreren parallelen
   Sitzungen beschrieben (Lese-Schreib-Rennen sind dort schon zweimal
   passiert). Diese Datei haengt in template.xml GANZ HINTEN und gewinnt
   dadurch bei gleicher Spezifitaet gegen F/F5-F14 und FM1. Rollback =
   Zeile aus template.xml nehmen, Version hochzaehlen — der alte Header ist
   danach unveraendert zurueck, weil in fs-redesign.css nichts geloescht wurde.

   ⚠️ F11 in fs-redesign.css ("NICHT LOESCHEN", Anweisung Yunus 20.08.:
   "logo auch in der desktopvariante mittig machen") ist NICHT geloescht.
   Die Absicht — Logo exakt mittig — wird hier weitergefuehrt, nur mit dem
   besseren Mittel: F11 zentriert per position:absolute, das kann bei engem
   Platz unter Haendlerknopf und Icons laufen. Hier steht stattdessen ein
   echtes dreispaltiges Raster (1fr auto 1fr), wie im Auftrag verlangt.
   Deshalb werden F11s !important-Werte hier gezielt zurueckgenommen.

   FARBEN — Vorgabe Yunus ("behalte unsere icons und die farben bei",
   "bleib bei unseren farben"): ausschliesslich Token aus fs-tokens.css.
   Das mitgelieferte Referenz-HTML bringt ein FREMDES Magenta #d100a9 mit —
   bewusst NICHT uebernommen. Im ganzen Header steht genau EIN Magenta:

       --brand-aktion #c90f88

   Das ist nicht Bequemlichkeit, sondern gemessen die einzige Wahl, die den
   Farbkontrakt auf BEIDEN Untergruenden einhaelt:
     - Navigationszeile ist WEISS -> Hover-Magenta ist Textfarbe.
       #c90f88 = 5,37:1 (besteht), #e5169f = 4,24:1 (faellt durch).
     - Hauptflaeche ist SCHWARZ -> Magenta ist dort nur Kante, Flaeche, Icon,
       nie Textfarbe (#c90f88 auf Schwarz = 3,51:1). Text bleibt weiss.
       Weiss auf #c90f88 = 5,37:1 (besteht) — gilt fuer den gefuellten
       Haendlerknopf und die Warenkorb-Zahl.
   Nebenbefund erledigt: FEHLERLISTE F26 (Warenkorb-Zaehler #e5169f, 4,24:1)
   ist damit auf 5,37:1 gehoben — der Zaehler war ausdruecklich Header-Revier.

   ICONS — Vorgabe Yunus: unsere bleiben. Die Kopf-Icons kommen weiter aus
   fs-icons.css (Iconset Blocksatz v4.1, i.far/::before), der Haendler-Koffer
   aus dem vorhandenen Inline-SVG, WhatsApp/LKW aus header_top_bar.tpl. Aus
   dem Referenz-HTML ist KEIN einziges SVG uebernommen — nur die Mechanik
   (Raster, Hover-Fuellung, Glow, Panel-Suche).

   Rollback = Zeile in template.xml + Sicherungen der drei .tpl.
   ============================================================================ */

:root {
    /* Nur Zuordnungen auf vorhandene Marken-Token, keine neue Farbe. */
    --fsh-magenta:  var(--brand-aktion, #c90f88);
    --fsh-schwarz:  var(--brand-tinte, #111114);
    --fsh-weiss:    var(--brand-papier, #ffffff);
    --fsh-kante:    var(--brand-kante, #d9d9de);
    /* Standard-Grauflaeche des Shops. Ansage Yunus 27.08.: "gib mal bitte
       der TRUSTBAR die standard grau farbe die wir verwenden die hinter
       staffelpreiserlaeuterung ist" — das ist --fs-st-grund in
       fs-staffel.css (#f6f5f3), und dieser Wert ist deckungsgleich mit
       --brand-flaeche aus fs-tokens.css. Es ist also nicht die Farbe der
       Staffelflaeche, sondern die shopweite Flaechenfarbe (auf ihr laufen
       u.a. auch die card-header). Deshalb wird hier das MARKEN-Token
       gebunden, nicht der Rohwert: wenn die Flaechenfarbe irgendwann
       zentral gedreht wird, geht die Trustbar von selbst mit. */
    --fsh-grau:     var(--brand-flaeche, #f6f5f3);
    --fsh-haar:     var(--brand-haar, #e4e4e7);

    /* Glow der Navigation: dieselbe Farbe, nur transparent. */
    --fsh-glow-nah:  rgba(201, 15, 136, .55);
    --fsh-glow-fern: rgba(201, 15, 136, .28);

    /* Hoehen nach Referenz (52 / 164 / 66). Der Auftrag erlaubt fuer die
       schwarze Flaeche 150-165 px; 164 ist der Wert der Referenz. */
    /* Abstand innerhalb der Iconreihe — an EINER Stelle, weil ihn auch
       der Trennstrich braucht (er sitzt auf der halben Luecke). */
    --fsh-icongap: clamp(18px, 1.9vw, 32px);

    --fsh-trust-h: 36px;
    --fsh-main-h:  145px;   /* 164 -> 160 -> 155 -> 145 (Ansage Yunus 31.08.: schwarze Flaeche 10px flacher, Inhalt unveraendert) */
    --fsh-nav-h:   63px;   /* 66 - 3, Menuezeile zusammengezogen (Yunus 27.08.) */

    /* Standardbreite des Shops. Derselbe Wert, auf dem die drei
       Innencontainer oben schon stehen — hier als Token, weil ihn jetzt auch
       die FLAECHEN brauchen (Abschnitt 9). */
    --fsh-breite:  1430px;
}

/* ============================================================================
   1 — TRUSTBAR: WEISS
   Auftrag: weisser Grund, schwarze Outline-Icons, schwarze Schrift, dezente
   graue Trenner, KEINE magentafarbene Sternflaeche, keine Schatten/Rundungen.
   Das Sternfeld ist im Template entfernt (nicht nur ausgeblendet).
   ============================================================================ */

#header-top-bar.topbar-wrapper {
    background: var(--fsh-grau) !important;   /* schlaegt F10 (transparent) */
    /* Kante entfaellt: darunter folgt sofort das schwarze Band, die Kante
       waere dort ohnehin unsichtbar. Grau gegen Schwarz trennt von selbst. */
    border-bottom: 0;
}

.fs-topbar.fs-v6-utility {
    background: var(--fsh-grau);
    color: var(--fsh-schwarz);
    /* F10 hatte die Bar auf 1430px geboxt. Die Referenz zeigt durchgehende
       Baender ueber die volle Breite — der INHALT bleibt im 1430er-Raster
       (Abschnitt 4 unten), damit er weiter mit der Seite darunter fluchtet. */
    max-width: none;
}

@media (min-width: 992px) {

    .fs-v6-utility .fs-topbar-inner {
        min-height: var(--fsh-trust-h);
        height: var(--fsh-trust-h);
        max-width: 1430px;
        margin: 0 auto;
        padding: 0 11px;
        /* VIER gleiche Spalten (Ansage Yunus: "eventuell noch einen punkt
           in die trustbar aber nur desktop"). Der vierte Punkt steht nur im
           Desktop-Markup, die mobile Swipe-Bar behaelt ihre drei Folien. */
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        align-items: center;
    }

    /* Die alte Prozentverteilung (F5) ausser Kraft setzen */
    .fs-v6-utility .fs-v6-utility-items > .fs-tb-item:nth-child(1),
    .fs-v6-utility .fs-v6-utility-items > .fs-tb-item:nth-child(2),
    .fs-v6-utility .fs-v6-utility-items > .fs-tb-item:nth-child(3) {
        flex: 0 1 auto;
    }

    .fs-v6-utility .fs-v6-utility-items {
        display: contents;   /* die drei Punkte liegen direkt im Raster */
    }

    /* "Trustbar auch viel kleiner auf dem Desktop" (Ansage Yunus):
       Bandhoehe 53 -> 36, Schrift 13 -> 11, Innenabstand 28 -> 16.
       Die Icons gehen mit (22 -> 16): in einem 36px-Band blieben bei 22px
       nur 7px Luft nach oben und unten — das waere kein kleineres Band,
       sondern ein volles. Sag Bescheid, wenn die Icons ihre 22px behalten
       sollen, dann brauchen wir eher 44px Bandhoehe. */
    .fs-v6-utility .fs-tb-item {
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        padding: 0 16px;
        color: var(--fsh-schwarz) !important;   /* schlaegt F/F7 (weiss) */
        font-family: var(--fs-v6-body);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .035em;
        text-transform: uppercase;
        white-space: nowrap;
        border-left: 0;
    }

    /* Dezente graue Trenner — vorher 2px Magenta bzw. weiss-transparent */
    .fs-v6-utility .fs-tb-item + .fs-tb-item {
        border-left: 1px solid var(--fsh-kante);
    }
    .fs-v6-utility .fs-tb-gruppe .fs-tb-item:first-child { padding-left: 16px; }

    /* Alle vier Symbole liegen jetzt auf demselben 24er-Raster
       (header_top_bar.tpl) — erst dadurch wirkt EINE Strichstaerke bei allen
       gleich. Vorher lag der LKW auf einem 48er-Raster und rendelte mit
       halber Staerke, was ihn neben den anderen ausfransen liess.
       16 -> 18px: bei 16px waren die Konturen bei 1,7 Strichstaerke zu fein,
       um die Formen auseinanderzuhalten. Das Band bleibt trotzdem 36px. */
    .fs-v6-utility .fs-tb-item svg {
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
        color: var(--fsh-schwarz);
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
        fill: none;
    }
    /* Das WhatsApp-Original ist eine Flaechenform, keine Outline —
       es wird gefuellt statt gestrichen (Ansage Yunus 20.08.: Originalicon). */
    .fs-v6-utility .fs-tb-item svg.wa {
        fill: currentColor;
        stroke: none;
    }
}

/* ============================================================================
   ⚠️ 1b — DIE LKW-MASKE ABSCHALTEN  (Befund Yunus 27.08.:
   "Suche passende ICONS fuer die TRUSTBAR du hast ausschliesslich LKWs drin")
   ----------------------------------------------------------------------------
   DAS WAR DER EIGENTLICHE FEHLER — und er lag NICHT im Markup. In
   fs-icons.css (Sitzung ICONSET, Blocksatz v4.1) steht:

       .fs-v6-utility .fs-tb-item svg:not(.wa),
       .fs-mtrust .fs-mtrust-slide svg:not(.wa) {
           -webkit-mask-image: url("data:image/svg+xml,...LKW...");
       }

   Also: JEDES Trustbar-Symbol ausser WhatsApp wird mit einer LKW-Silhouette
   maskiert. Eine Maske ersetzt die Form vollstaendig — was im <svg> steht,
   ist danach voellig gleichgueltig. Deshalb halfen weder die neuen Pfade
   noch das vereinheitlichte 24er-Raster: es kamen weiter drei LKWs heraus.

   Als die Regel entstand, war sie richtig: damals hatte die Trustbar genau
   EIN Nicht-WhatsApp-Symbol, und das war der LKW. Mit dem Kunden-Symbol
   (Punkt 1) und dem Kaeuferschutz-Schild (Punkt 4) ist die Annahme hinfaellig.

   Hier wird die Maske abgeschaltet, damit die Symbole ihre eigene Form
   zeichnen. fs-icons.css bleibt unangetastet (ICONSET-Revier) — die Sitzung
   ist ueber OFFENE-PUNKTE.md informiert; wenn sie die Maske dort auf den
   Versand-Punkt einschraenkt, kann dieser Block ersatzlos weg.
   ============================================================================ */
.fs-v6-utility .fs-tb-item svg:not(.wa),
.fs-mtrust .fs-mtrust-slide svg:not(.wa) {
    -webkit-mask-image: none !important;
            mask-image: none !important;
    /* ⚠️ Die Maske allein abzuschalten reicht NICHT — dann kommen schwarze
       Kaesten heraus. Die Technik des ICONSETs ist zweiteilig: das <svg>
       ist nur eine mit `background-color: currentColor` eingefaerbte
       FLAECHE, und erst die Maske schneidet die Form heraus. Der Inhalt des
       <svg> wird dabei gar nicht gezeichnet.
       Nimmt man nur die Maske weg, bleibt die volle eingefaerbte Flaeche
       stehen (am Shop gesehen: vier schwarze Quadrate). Also muss auch der
       Hintergrund zurueck auf transparent — erst dann zeichnen die
       Pfade im <svg> selbst. */
    background: none !important;
    background-color: transparent !important;
}

/* Teil DREI derselben Technik: fs-icons.css blendet zusaetzlich die
   Original-Pfade aus —
     .fs-v6-utility .fs-tb-item svg:not(.wa) > path,
     .fs-mtrust .fs-mtrust-slide svg:not(.wa) > path { display: none; }
   Konsequent gedacht, denn bei Maskentechnik zeichnet der Inhalt ja nichts.
   Fuer uns heisst das: ohne diese Zeile bleiben nur die <circle> uebrig
   (die standen nicht im Selektor) — am Shop zu sehen als "Punkt 1 nur ein
   Kreis, Punkt 2 nur zwei Raeder, Punkt 4 gar nichts".
   Zusammengefasst besteht die Iconset-Technik aus drei Teilen, und ALLE
   drei muessen zurueck, damit ein eigenes SVG sichtbar wird:
     1. background-color am <svg>   (die eingefaerbte Flaeche)
     2. mask-image am <svg>         (die Form)
     3. display:none an > path      (der Originalinhalt) */
.fs-v6-utility .fs-tb-item svg:not(.wa) > path,
.fs-mtrust .fs-mtrust-slide svg:not(.wa) > path {
    display: inline !important;
}

@media (min-width: 992px) {
}

/* ============================================================================
   2 — SCHWARZE HAUPTFLAECHE + ECHTES DREISPALTIGES RASTER
   ============================================================================ */

/* F10 faerbte den Traeger weiss, damit der geboxte Kasten frei steht.
   Jetzt traegt er die durchgehende schwarze Flaeche. */
@media (min-width: 992px) {
    header#jtl-nav-wrapper { background: var(--fsh-weiss) !important; }
}

#jtl-nav-wrapper .hide-navbar {
    background: var(--fsh-schwarz);
}

@media (min-width: 992px) {

    #jtl-nav-wrapper .hide-navbar {
        min-height: var(--fsh-main-h);
        padding: 0;
    }

    /* --- Das Raster ------------------------------------------------------
       1fr auto 1fr: die beiden Aussenspalten sind per Definition gleich
       breit, das Logo in der Mitte steht damit exakt auf der Seitenmitte —
       unabhaengig davon, wie breit Haendlerknopf und Iconreihe werden.
       Genau das verlangt der Auftrag ("Unterschiedliche Breiten ... duerfen
       das Logo nicht verschieben").                                          */
    #jtl-nav-wrapper .hide-navbar > .navbar {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        gap: 32px;
        min-height: var(--fsh-main-h);
        max-width: 1430px;
        margin: 0 auto;
        padding: 0 11px;
        width: 100%;
        /* position:relative bleibt (kommt schon aus F11) — es wird jetzt
           nicht mehr fuer das Logo gebraucht, sondern als Bezugsrahmen fuer
           das Such-Panel, siehe Abschnitt 6. */
        position: relative;
    }

    /* ⚠️ Die Spalten werden AUSDRUECKLICH zugewiesen, nicht der automatischen
       Platzierung ueberlassen. Grund: im BESTELLVORGANG gibt es die
       Haendlerspalte nicht (bewusst, siehe header_menu_single_row.tpl) und
       statt der Iconreihe steht dort die Spalte "Sichere Bezahlung". Mit
       automatischer Platzierung waeren das nur zwei Kinder, und das Logo
       waere in Spalte 1 gerutscht — also nach links statt in die Mitte.
       Mit fester Zuweisung sitzt das Logo IMMER in Spalte 2 und damit immer
       auf der Seitenmitte, egal wie viele Aussenspalten gerade da sind. */
    #jtl-nav-wrapper .hide-navbar > .navbar > .secure-checkout-icon {
        grid-column: 3;
        justify-self: end;
        align-self: center;
        /* Schwarz auf Schwarz: das Theme faerbt diesen Hinweis #111111, das
           Band ist jetzt #111114 — der Text war unsichtbar (am Shop
           gemessen). Er ist ein Vertrauenselement mitten im Kaufprozess und
           muss lesbar sein. */
        color: var(--fsh-weiss);
        font-family: var(--fs-v6-body);
        letter-spacing: .04em;
    }
    #jtl-nav-wrapper .hide-navbar > .navbar > .secure-checkout-icon i,
    #jtl-nav-wrapper .hide-navbar > .navbar > .secure-checkout-icon .fas {
        color: var(--fsh-weiss);
    }

    /* Spalte 1: Haendlerbereich (neue Spalte aus header_menu_single_row.tpl) */
    #jtl-nav-wrapper .hide-navbar .fs-hd-col {
        grid-column: 1;
        order: 1;
        justify-self: start;
        display: flex;
        align-items: center;
        min-width: 0;
        padding: 0;
        max-width: none;
        flex: 0 0 auto;
    }

    /* Spalte 2: Logo. F11s Absolutsetzung wird hier zurueckgenommen —
       die Zentrierung uebernimmt das Raster. */
    #jtl-nav-wrapper .hide-navbar .nav-logo-wrapper {
        position: static !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        grid-column: 2;
        order: 2;
        justify-self: center;
        width: auto !important;
        flex: 0 0 auto;
        padding: 0;
        z-index: auto;
    }

    /* Spalte 3: Icons.
       align-self:stretch ist hier nicht Kosmetik, sondern traegt die
       Positionierung des Such-Panels: Bootstrap gibt jeder .col ein
       `position:relative`, damit ist diese Spalte der Bezugsrahmen fuer das
       absolut gesetzte Dropdown darin — nicht die Navbar. War die Spalte nur
       46 px hoch (Icongroesse), landete `top:100%` mitten im schwarzen Band
       (gemessen: Panel-Oberkante 158 statt 217). Auf voller Bandhoehe
       gestreckt heisst `top:100%` genau Bandunterkante.
       Die Icons bleiben mittig, das uebernimmt #shop-nav. */
    #jtl-nav-wrapper .hide-navbar .nav-icons-wrapper {
        grid-column: 3;
        order: 4;
        justify-self: end;
        align-self: stretch;
        width: auto !important;
        min-width: 0;
        padding: 0;
        flex: 0 0 auto;
    }
    #jtl-nav-wrapper .hide-navbar .nav-icons-wrapper > #shop-nav {
        width: auto;
        height: 100%;
        align-items: center;
        justify-content: flex-end;
        flex-wrap: nowrap;
    }
}

/* ============================================================================
   3 — LOGO: WEISSE FASSUNG AUF SCHWARZ
   Auftrag: originales Logo, weiss/invertiert, Distressed-Optik erhalten,
   nicht verzerren, nicht durch HTML-Text ersetzen.
   ----------------------------------------------------------------------------
   Umgesetzt ueber invert(1) auf die vorhandene Datei fogsmoke-logo-v8*.png
   (schwarze Zeichnung auf transparentem Grund). Der Filter dreht nur die
   Farbkanaele, der Alphakanal bleibt unangetastet — die ausgefransten
   Kanten der Distressed-Optik bleiben deshalb Pixel fuer Pixel erhalten.
   Kein zweites Bild, kein zusaetzlicher Download, kein Austausch im Template.
   (Der Weg ist im Shop erprobt: derselbe Filter hat vor dem 20.08. die
   mobile weisse Fassung erzeugt.)
   ============================================================================ */

#jtl-nav-wrapper .hide-navbar .navbar-brand img,
#jtl-nav-wrapper .hide-navbar #shop-logo {
    filter: invert(1);
}

@media (min-width: 992px) {
    #jtl-nav-wrapper .hide-navbar .navbar-brand img,
    #jtl-nav-wrapper .hide-navbar #shop-logo {
        /* Ansage Yunus 27.08.: "Logo kleiner". 280 -> 240 (-14 %).
           max-height geht im selben Verhaeltnis mit (68 -> 58), sonst
           verzerrt der object-fit-Kasten das Seitenverhaeltnis. */
        /* dritte Verkleinerung (Ansage Yunus): 240 -> 205, max-height im
           gleichen Verhaeltnis 58 -> 50 */
        width: 205px;
        max-height: 50px;
        object-position: center center;   /* mittige Spalte, nicht linksbuendig */
    }
}

/* ============================================================================
   4 — HAENDLERBEREICH
   Auftrag woertlich: vollstaendig rechteckig, vier harte 90-Grad-Ecken,
   border-radius 0, KEINE Spitze, KEIN clip-path, schwarzer Grund, scharfer
   2px-Rahmen in Magenta, weisser Text, kleiner Magenta-Pfeil rechts.
   Icon-Bereich schwarz, Koffer in Magenta, duenne Magenta-Trennlinie.
   Hover: Textflaeche fuellt sich rechteckig von links nach rechts, Icon-
   Bereich bleibt schwarz, Text weiss, Pfeil weiss + 4px nach rechts, 200ms.
   ----------------------------------------------------------------------------
   Das loest zugleich den F13-Keil ab (clip-path polygon) — ausdruecklich
   verlangt ("keine angeschnittene Aussenkante").
   ============================================================================ */

@media (min-width: 992px) {

    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler {
        position: relative;
        isolation: isolate;
        /* Ansage Yunus 27.08.: "Destkop: Haendler button insgesamt kleiner!"
           Alle Masse um denselben Faktor (~0,86) heruntergezogen, damit die
           Proportionen des Knopfes untereinander erhalten bleiben:
             Hoehe      58 -> 50
             Iconfeld   64 -> 55
             Pfeilfeld  44 -> 38
             Schrift    21 -> 18
             Koffer     26 -> 22
           Damit steht er jetzt in klarem Verhaeltnis zum Lupenknopf (46px)
           statt ihn zu ueberragen. */
        /* Zweite Verkleinerung (Ansage Yunus 27.08.: "Haendlerbereich
           kleiner"), wieder alle Masse mit demselben Faktor:
             Hoehe 50 -> 44 · Iconfeld 55 -> 48 · Pfeilfeld 38 -> 33
             Schrift 18 -> 16 · Koffer 22 -> 19 · Pfeil 19 -> 17
           Er sitzt damit unter dem Lupenknopf (46px) statt darueber. */
        height: 44px;
        display: inline-grid;
        /* Icon-Feld QUADRATISCH (44x44) — in der Vorlage ist der magentafarbene
           Block ein Quadrat, kein Streifen. */
        grid-template-columns: 44px auto 33px;
        align-items: stretch;
        overflow: hidden;

        background: var(--fsh-schwarz);
        color: var(--fsh-weiss);
        /* Vorlage 27.08.: KEINE 2px-Magentakante mehr um den ganzen Knopf,
           sondern eine duenne, zurueckhaltende Kante nur um die Textflaeche.
           Auf dem schwarzen Band als Weiss mit niedriger Deckung statt als
           Grauton — so bleibt sie unabhaengig davon richtig, falls das Band
           spaeter einen anderen Schwarzton bekommt. */
        border: 1px solid rgba(255, 255, 255, .26);
        border-radius: 0;
        clip-path: none;            /* nimmt den F13-Keil zurueck */
        padding: 0;
        gap: 0;
        text-decoration: none;
        transition: transform 120ms ease;
    }

    /* Die Fuellung ist eine eigene Ebene hinter dem Inhalt und beginnt erst
       HINTER dem Icon-Feld (inset links = Breite des Icon-Felds), damit der
       Icon-Bereich beim Hover schwarz bleibt — so verlangt der Auftrag. */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler::before {
        content: "";
        position: absolute;
        z-index: -1;
        inset: 0 0 0 44px;
        background: var(--fsh-magenta);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 200ms cubic-bezier(.22, 1, .36, 1);
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:hover::before,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible::before {
        transform: scaleX(1);
    }

    /* Icon-Feld: schwarz, Koffer magenta, Magenta-Haarkante nach rechts */
    /* Icon-Feld: MAGENTA GEFUELLT (vorher schwarz mit Magentakante).
       Die negativen Raender legen den Block ueber die duenne Kante des
       Knopfes — in der Vorlage laeuft das Magenta-Quadrat oben, unten und
       links randlos durch, die graue Kante beginnt erst rechts davon.
       Ohne die -1px blitzte die Kante als heller Saum um das Magenta. */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler > svg:first-child,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-ikon {
        display: grid;
        place-items: center;
        background: var(--fsh-magenta);
        border-right: 0;
        margin: -1px 0 -1px -1px;
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-ikon svg {
        width: 19px;
        height: 19px;
        flex: 0 0 19px;
        fill: none;
        /* Koffer jetzt SCHWARZ auf der Magentaflaeche (vorher magenta auf
           schwarz). Schwarz auf #c90f88 = 3,51:1 und damit ueber der
           3:1-Schwelle, die fuer Bedienelemente und Symbole gilt. */
        stroke: var(--fsh-schwarz);
        stroke-width: 2.4;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    /* Beschriftung: exakt "HAENDLERBEREICH", einzeilig, Anton */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-text {
        align-self: center;
        padding: 0 8px 0 17px;
        font-family: var(--fs-v6-title);
        font-weight: 400;            /* Anton hat nur einen Schnitt */
        font-size: 16px;
        line-height: 1;
        letter-spacing: .015em;
        white-space: nowrap;
        color: var(--fsh-weiss);
    }

    /* Pfeil rechts */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-pfeil {
        align-self: center;
        justify-self: center;
        width: 17px;
        height: 17px;
        color: var(--fsh-magenta);
        fill: none;
        stroke: currentColor;
        stroke-width: 2.5;
        stroke-linecap: round;
        stroke-linejoin: round;
        transition: color 180ms ease, transform 180ms ease;
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:hover .fs-hd-pfeil,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible .fs-hd-pfeil {
        color: var(--fsh-weiss);
        transform: translateX(4px);
    }

    /* Text bleibt beim Hover weiss (kein Farbwechsel), Knopf kein Glow */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:hover,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible {
        background: var(--fsh-schwarz);
        color: var(--fsh-weiss);
        box-shadow: none;
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:active { transform: scale(.98); }

    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible {
        outline: 2px solid var(--fsh-magenta);
        outline-offset: 4px;
    }

    /* Die alte zweizeilige Fassung (F13) hat keine Traeger mehr, die Regeln
       werden hier trotzdem stillgelegt, falls Markup zurueckkommt. */
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hz { display: none; }
}

/* ============================================================================
   5 — KOPF-ICONS RECHTS
   Auftrag: weisse Outline-Icons, transparenter/schwarzer Grund, KEINE runden
   Icon-Flaechen, Suche als quadratischer Knopf mit weisser Kontur,
   Warenkorb-Badge Magenta mit weisser Zahl, Funktionen und Links erhalten.
   Reihenfolge nach Referenz: Suche, Konto, Wunschliste, Warenkorb.
   ----------------------------------------------------------------------------
   Die Icon-FORMEN bleiben unsere (fs-icons.css, Iconset Blocksatz v4.1) —
   hier stehen nur Farbe, Kastenmass und Anordnung.
   ============================================================================ */

@media (min-width: 992px) {

    /* Reihenfolge im Raster der Iconreihe */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search               { order: 10; }
    #jtl-nav-wrapper .hide-navbar #shop-nav > .account-icon-dropdown { order: 20; }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #shop-nav-wish         { order: 30; }
    #jtl-nav-wrapper .hide-navbar #shop-nav > .cart-icon-dropdown    { order: 40; }

    /* ⚠️ Der Abstand kommt als `gap` vom FLEX-CONTAINER, nicht als
       margin-left an den einzelnen Punkten. Grund, am Shop gemessen:
       mit Einzelraendern stand die Reihe 36 / **0** / 37 px — Konto und
       Wunschliste klebten aneinander. Die Wunschliste traegt eine ID
       (#shop-nav-wish) und damit eine hoehere Spezifitaet als meine
       .nav-item-Regel; ihr Rand blieb auf 0 und war mit einer Klassenregel
       nicht zu erreichen. `gap` liegt am Elternteil und kann von einzelnen
       Kindern gar nicht ueberschrieben werden — es wirkt zwischen ALLEN
       Punkten gleich, auch bei umsortierter `order`. Die Einzelraender
       werden dafuer ausdruecklich genullt, sonst addieren sie sich dazu. */
    #jtl-nav-wrapper .hide-navbar .nav-icons-wrapper > #shop-nav {
        gap: var(--fsh-icongap);
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > .nav-item,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #shop-nav-wish,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search {
        padding: 0;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* ⚠️ ZWEI zusaetzliche Linien, die NICHT von hier kommen:
       custom.css setzt ab 992px
         #jtl-nav-wrapper .account-icon-dropdown,
         #jtl-nav-wrapper .cart-icon-dropdown { border-left: 1px solid rgba(255,255,255,.15) }
       Weiss auf 15 % — auf der frueheren WEISSEN Kopfzeile war davon nichts
       zu sehen, deshalb ist die Regel jahrelang nicht aufgefallen. Auf dem
       neuen schwarzen Band leuchten beide ploetzlich auf und standen als
       zusaetzliche Striche vor Konto und Warenkorb (Befund Yunus 27.08.).
       custom.css bleibt unangetastet (shopweit, fremdes Revier), hier nur
       zurueckgesetzt. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > .account-icon-dropdown,
    #jtl-nav-wrapper .hide-navbar #shop-nav > .cart-icon-dropdown,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #shop-nav-wish {
        border-left: 0;
        border-right: 0;
    }

    /* Alle Trennstriche der V6-Fassung weg ... */
    #jtl-nav-wrapper .hide-navbar #shop-nav > .fs-hd-item::before,
    #jtl-nav-wrapper .hide-navbar #shop-nav > .account-icon-dropdown::before,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #shop-nav-wish::before,
    #jtl-nav-wrapper .hide-navbar #shop-nav > .cart-icon-dropdown::before {
        display: none !important;
        content: none !important;
    }

    /* ... EINER kommt zurueck. Ansage Yunus 27.08.:
       "Anordnung Icons: SUCHE *STRICH* dann die restlichen ICONs".
       Die Lupe ist Nummer eins in der Reihe (order 10), Konto folgt als
       Nummer zwei (order 20) — der Strich gehoert also VOR das Konto.
       Er wird hier vollstaendig neu definiert statt der Altregel
       wiederbelebt: die stammt aus der weissen Zeile und war
       rgba(3,3,3,.10), auf Schwarz waere davon nichts zu sehen.
       left: calc(-0.5 * <Abstand>) setzt ihn in die MITTE der Luecke
       zwischen Lupe und Konto, nicht an die Kante des Kontos. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > .account-icon-dropdown::before {
        display: block !important;
        content: "" !important;
        position: absolute;
        left: calc(-0.5 * var(--fsh-icongap));
        top: 50%;
        width: 1px;
        height: 26px;
        margin-top: -13px;
        background: rgba(255, 255, 255, .30);
        pointer-events: none;
    }

    /* Icons weiss auf Schwarz (vorher schwarz auf Weiss) */
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link {
        color: var(--fsh-weiss);
        background: transparent;
        border-radius: 0;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link:hover,
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link:focus-visible {
        color: var(--fsh-magenta);
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link i.fas,
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link i.far {
        color: inherit;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link:focus-visible {
        outline: 2px solid var(--fsh-magenta);
        outline-offset: 4px;
    }

    /* Der Warenkorbpreis neben dem Symbol war schwarz */
    #jtl-nav-wrapper .hide-navbar .cart-icon-dropdown .nav-link .price,
    #jtl-nav-wrapper .hide-navbar .cart-icon-dropdown .nav-link .cart-icon-dropdown-price {
        color: var(--fsh-weiss);
    }

    /* --- Warenkorb-Badge: Magenta, weisse Zahl, RUND (Ansage Yunus 30.08.) ---
       Das ist zugleich die Erledigung von FEHLERLISTE F26: der Zaehler stand
       auf #e5169f (4,24:1 gegen Weiss) und liegt jetzt auf 5,37:1.
       999px statt 50%: bei einstelliger Zahl ein Kreis (24x24), ab zwei
       Ziffern waechst min-width zur Pille statt zur Ellipse.
       Zentrierung per Grid + line-height 1, nicht ueber line-height=Hoehe:
       die Ziffer sitzt damit unabhaengig von den Font-Metriken mittig. */
    #jtl-nav-wrapper .hide-navbar #shop-nav i .fa-sup {
        background: var(--fsh-magenta) !important;
        color: var(--fsh-weiss) !important;
        border-radius: 999px !important;
        min-width: 24px;
        height: 24px;
        /* myclean_crit.css deckelt .fa-sup mit max-height:20px — ein
           max-height schlaegt height bei JEDER Spezifitaet. Ohne diese
           Zeile rendert der Kreis 24x20, also oval. */
        max-height: none;
        line-height: 1;
        display: inline-grid;
        place-items: center;
        padding: 0 6px;
        font-family: var(--fs-v6-body);
        font-weight: 700;
        font-size: 13px;
        text-align: center;
    }
}

/* --- Fokusring im schwarzen Band, fuer ALLE Elemente ------------------------
   fs-redesign.css setzt `#jtl-nav-wrapper .hide-navbar a:focus-visible
   { outline: 3px solid var(--fs-v6-purple) }` — also #830779. Das stammt aus
   der Zeit, als dieses Band WEISS war (dort 9,24:1, tadellos). Auf der neuen
   schwarzen Flaeche sind es **2,04:1**: der Farbkontrakt sagt dazu
   ausdruecklich "darf Schwarz nicht beruehren". Wer sich mit der Tastatur
   durch den Kopf bewegt, saehe praktisch nicht, wo er steht.

   Meine Einzelregeln weiter unten decken Haendlerknopf und Iconfamilie ab —
   aber NICHT den Logo-Link und den Burger. Deshalb hier eine Regel fuer
   alles im Band. #c90f88 auf Schwarz = 3,51:1 und damit ueber der
   3:1-Schwelle, die fuer Bedienelemente und Fokusanzeigen gilt.
   Gleiche Spezifitaet wie die Altregel, aber spaeter geladen -> gewinnt.
   ------------------------------------------------------------------------- */
@media (min-width: 992px) {
    #jtl-nav-wrapper .hide-navbar a:focus-visible,
    #jtl-nav-wrapper .hide-navbar button:focus-visible {
        outline: 2px solid var(--fsh-magenta);
        outline-offset: 4px;
    }
}
@media (max-width: 991.98px) {
    #jtl-nav-wrapper .hide-navbar a:focus-visible,
    #jtl-nav-wrapper .hide-navbar button:focus-visible {
        outline: 2px solid var(--fsh-magenta);
        outline-offset: 3px;
    }
}

/* ============================================================================
   6 — GESCHLOSSENE SUCHE + SCHWEBENDES PANEL
   Auftrag: im Normalzustand NUR ein quadratischer Knopf, harte Ecken,
   weisse Kontur, weisses Lupensymbol. Beim Klick oeffnet die vorhandene
   Suche als schwebendes Panel — ohne Layout-Shift, Escape und Aussenklick
   schliessen, Fokus ins Feld, aria-expanded korrekt, Suchvorschlaege intakt.
   ----------------------------------------------------------------------------
   WICHTIG, NICHT ANFASSEN: Der Shop haengt mit der gesamten Suche an
   Doofinder, und dessen Ausloeser ist die Klasse .form-control.ac_input am
   Suchfeld. Hier wird ausschliesslich deren OPTIK gesetzt, nie die Klasse.

   Die Aufklapp-Mechanik ist bereits die von JTL (navitemdropdown ->
   snippets/search_form.tpl, genau EIN Formular auf der Seite). Bootstrap
   liefert Escape, Aussenklick und aria-expanded von Haus aus; fs-header.js
   ergaenzt nur den Fokus ins Feld. Es wird KEIN zweites Suchformular gebaut.
   Weil das Panel position:absolute ist, veraendert das Oeffnen weder die
   Headerhoehe noch die Position von Logo oder Icons — kein Layout-Shift.
   ============================================================================ */

@media (min-width: 992px) {

    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > a.nav-link,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link {
        /* 46 -> 44 (Ansage Yunus): der Kasten wird 2px schmaler und steht
           damit exakt auf der Hoehe des Haendlerknopfes (ebenfalls 44px) —
           die beiden gerahmten Elemente im schwarzen Band sind jetzt
           gleich hoch. Die Kantenstaerke bleibt bei 2px. */
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        padding: 0;
        border: 2px solid var(--fsh-weiss);
        border-radius: 0;
        background: transparent;
        color: var(--fsh-weiss);
        transition: border-color 180ms ease, color 180ms ease;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link:hover,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link:focus-visible,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search.show > .nav-link {
        border-color: var(--fsh-magenta);
        color: var(--fsh-magenta);
        background: transparent;
    }

    /* Das Panel soll an der UNTERKANTE der schwarzen Flaeche haengen, nicht
       auf halber Hoehe aus dem Lupenknopf herausfallen. Dafuer wird der
       Bezugsrahmen um eine Ebene nach aussen gelegt: die Navbar (= das ganze
       schwarze Band) wird zum Containing Block, der Suchpunkt selbst gibt
       seinen ab (position:static). `top:100%` heisst dann Bandunterkante,
       `right:0` die rechte Containerkante — beides wie in der Referenz.
       Nur >=992px: mobil richtet fs-header.js das Menue selbst per
       left/right aus (Theme nimmt dort keine feste width an). */
    /* ⚠️ Die Selektorkette ist absichtlich so lang. fs-redesign.css (F5)
       setzt `#jtl-nav-wrapper .hide-navbar #shop-nav > #search { position:
       relative }` — das sind DREI IDs. Ein kuerzerer Selektor verliert hier,
       egal wie weit hinten die Datei haengt: Spezifitaet schlaegt
       Reihenfolge. Mit `> #search.fs-v6-search` stehen es 3 IDs + 2 Klassen
       gegen 3 IDs + 1 Klasse. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search { position: static; }

    /* Theme-Aufklappanimation fuer DIESES eine Dropdown abschalten.
       myclean.css gibt jedem Header-Dropdown
         visibility:hidden; opacity:0; transform:translateY(-15px);
         transition:.3s ease-in-out
       und dreht es per .show um. Das hat hier zwei Nebenwirkungen:
       1. Der translateY(-15px) verschiebt das Panel um 15px nach oben und
          machte meine Positionierung an der Bandunterkante zunichte
          (gemessen als matrix(1,0,0,1,0,-15)).
       2. `visibility` wird MIT-transitioniert und springt erst nach der
          halben Laufzeit auf visible. In einem noch unsichtbaren Teilbaum
          nimmt aber kein Eingabefeld den Fokus an — der Autofokus aus
          fs-header.js lief deshalb ins Leere (am Shop nachgestellt:
          "visibility=hidden … erfolg=false").
       Ohne Animation ist das Panel im Moment von shown.bs.dropdown wirklich
       da, und der Fokus sitzt beim ersten Versuch. Der Auftrag verlangt
       ohnehin nur "oeffnen", keine Einblendung. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .dropdown-menu {
        transition: none;
        transform: none;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .dropdown-menu.show {
        transform: none;
        visibility: visible;
        opacity: 1;
    }

    /* Das schwebende Panel */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .dropdown-menu {
        position: absolute;
        top: 100%;
        right: 0;
        left: auto;
        margin-top: 0;
        width: min(560px, calc(100vw - 32px));
        max-width: none;
        padding: 18px;
        background: var(--fsh-weiss);
        border: 2px solid var(--fsh-schwarz);
        border-radius: 0;
        box-shadow: 10px 10px 0 var(--fsh-glow-fern);
        z-index: 1080;   /* ueber dem Mega-Menue-Panel */
    }

    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .form-control.ac_input {
        height: 52px;
        border: 2px solid var(--fsh-schwarz);
        border-right: 0;
        border-radius: 0;
        background: var(--fsh-weiss);
        color: var(--fsh-schwarz);
        padding: 0 16px;
        box-shadow: none;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .form-control.ac_input:focus {
        border-color: var(--fsh-magenta);
        box-shadow: none;
        outline: 0;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .input-group-append .btn,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .btn {
        width: 52px;
        height: 52px;
        display: grid;
        place-items: center;
        border: 0;
        border-radius: 0;
        background: var(--fsh-schwarz);
        color: var(--fsh-weiss);
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .btn:hover,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .btn:focus-visible {
        background: var(--fsh-magenta);
        color: var(--fsh-weiss);
    }
}

/* ============================================================================
   7 — WEISSE NAVIGATIONSZEILE
   Auftrag: weisser Grund, schwarze Kategorienamen UND schwarze Dropdown-
   Pfeile. Beim Hover ausschliesslich der Name (und sein Pfeil) auf Magenta,
   dazu ein enger und ein schwaecherer Glow um die Buchstaben. Keine
   Unterstreichungen, keine Balken, keine ::before/::after-Linien, keine
   farbigen Hintergrundflaechen, keine Bewegung, 180ms.
   ============================================================================ */

@media (min-width: 992px) {

    #jtl-nav-wrapper .navbar-wrapper {
        background: var(--fsh-weiss) !important;   /* schlaegt F10 */
        min-height: var(--fsh-nav-h);
        border-bottom: 1px solid var(--fsh-kante);
    }

    /* F9/F10: der schwarze Kasten und der Magenta-Keil am linken Rand */
    #jtl-nav-wrapper .navbar-wrapper > .container,
    #jtl-nav-wrapper .navbar-wrapper > .container-fluid {
        background: transparent;
        max-width: 1430px;
        margin: 0 auto;
        padding: 0 11px;
    }
    #jtl-nav-wrapper .navbar-wrapper > .container::before,
    #jtl-nav-wrapper .navbar-wrapper > .container-fluid::before,
    #jtl-nav-wrapper .navbar-wrapper::before,
    #jtl-nav-wrapper .navbar-wrapper::after {
        display: none !important;
        content: none !important;
    }

    #jtl-nav-wrapper .navbar-wrapper .navbar {
        min-height: var(--fsh-nav-h);
    }

    /* ⚠️ Ohne diese drei Zeilen wirkt space-between nicht.
       myclean_crit.css macht `header .nav-mobile-body` ab 992px zum GRID.
       Das Grid legt eine einzige IMPLIZITE Spalte an, und die wird so breit
       wie ihr Inhalt (gemessen 1.243 px) — nicht so breit wie der Container
       (1.393 px). Die Spalte wird dann mittig gesetzt. Folge: die Zeile
       stand 74 px vom linken und 76 px vom rechten Containerrand entfernt,
       und weil Inhalt = Spaltenbreite war, blieb fuer space-between GENAU
       0 px zu verteilen — alle elf Punkte klebten aneinander.
       Ein `width:100%` am <ul> hilft dagegen nicht: 100 % beziehen sich auf
       eben diese inhaltsbreite Spalte, die Rechnung dreht sich im Kreis.
       Deshalb die Spalte selbst auf 1fr zwingen.
       Strikt >=992px — mobil ist .nav-mobile-body das Offcanvas-Menue und
       gehoert fs-menu-mobil.css. */
    #jtl-nav-wrapper .navbar-wrapper #mainNavigation .nav-mobile-body {
        grid-template-columns: minmax(0, 1fr);
        justify-items: stretch;
    }

    /* Bootstrap gibt .navbar-collapse 15px Rand nach rechts. Dadurch endete
       der letzte Kategoriename 15px vor der Containerkante und fluchtete
       nicht mit dem Warenkorb darueber (gemessen 1642 statt 1657). */
    #jtl-nav-wrapper .navbar-wrapper #mainNavigation { margin-right: 0; }
    /* ⚠️ KEIN gap hier. Die Verteilung macht ausschliesslich space-between.
       Warum das wichtig ist: Die Referenz zeigt ACHT Kategorien, der Shop
       hat ELF (Merch | POS, Aromen | Nic Shots und Outlet kommen dazu —
       laut Auftrag duerfen die nicht geloescht werden). Mit einem festen
       gap:16px kamen 10 x 16 = 160 px Zwang obendrauf; am Shop gemessen bei
       1280 px: Summe der Punkte 1.206 px, verfuegbar 1.218 px — die Punkte
       passten, der gap nicht. SALE und OUTLET wanderten aus dem Bild.
       space-between verteilt den Rest von selbst und laeuft nie ueber. */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav {
        min-height: var(--fsh-nav-h);
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        gap: 0;
        margin: 0;
    }

    /* --- Die Kategorienamen ---
       ⚠️ !important ist hier PFLICHT, nicht Bequemlichkeit. In custom.css
       steht (Zeile aus dem Theme-Bestand, fremdes Revier):
           @media (min-width:992px) { .navbar-wrapper .nav-link { color:#fff !important } }
       Die Zeile stammt aus der Zeit, als die Kategorienzeile SCHWARZ war.
       Gegen ein !important hilft nur ein !important — ohne das hier stehen
       die Kategorienamen weiss auf weiss und sind unsichtbar (am Shop
       gemessen, kostete einen Durchgang). custom.css bleibt unangetastet,
       weil sie shopweit gilt und nicht Header-Revier ist. */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        padding: 0;
        color: var(--fsh-schwarz) !important;
        background: transparent;
        font-family: var(--fs-v6-title);
        font-weight: 400;
        /* Obergrenze 19px statt der 24px der Referenz: die Referenz rechnet
           mit acht Punkten, wir tragen elf im selben 1430er-Container.
           Gemessen ist 19px der groesste Wert, bei dem alle elf Punkte bei
           1430px Containerbreite noch mit Luft dazwischen stehen. */
        /* "verkleinere die texte in der menuezeile um 3 px" (Yunus 27.08.):
           die 3px werden VON DER FLIESSENDEN GROESSE abgezogen, nicht nur
           von der Obergrenze — sonst waere die Zeile nur auf breiten
           Fenstern kleiner und auf schmalen unveraendert.
           Aus clamp(14, 1.32vw, 19) wird clamp(11, 1.32vw-3, 16). */
        /* zweite Verkleinerung um 3px (Yunus 27.08.): der Abzug waechst von
           -3 auf -6, die Grenzen wandern entsprechend mit.
           1600px -> 13px · 1440px -> 13px · 1280px -> 10,9px
           Untergrenze 10px ist bewusst gesetzt: Anton laeuft nur in
           Versalien, darunter faellt die Zeile unter die Lesbarkeit. */
        /* Groessenverlauf dieser Zeile in Ansagen:
           19px (Referenz) -> -3 -> 16 -> -3 -> 13 -> +2 -> 15.
           Der Abzug wandert entsprechend von -6 auf -4, die Grenzen mit.
           1600px -> 15px · 1440px -> 15px · 1280px -> 12,9px
           Untergrenze 12px: Anton laeuft nur in Versalien, darunter faellt
           die Zeile unter die Lesbarkeit. */
        font-size: clamp(12px, calc(1.32vw - 4px), 15px);
        line-height: 1;
        white-space: nowrap;
        text-decoration: none;
        border: 0;
        transition: color 180ms ease, text-shadow 180ms ease;
    }

    /* Saemtliche Linien, Balken und Unterstreichungen der Altfassung.
       Die Trennstriche zwischen den Punkten (F/V6) sassen auf
       li.nav-item + li.nav-item > a.nav-link::before.

       ⚠️ NUR ::before abraeumen, NIE ::after. Am Shop gemessen: ::after
       traegt nicht etwa eine Unterstreichung, sondern den DROPDOWN-PFEIL —
       myclean_crit.css setzt dort ein Glyph der Icon-Schrift "Themycons"
       (.dropdown-toggle::after, content mit !important). Ein pauschales
       ::after-Verbot loescht damit saemtliche Pfeile aus der Navigation.
       Genau das ist hier einmal passiert.

       Angenehmer Nebeneffekt der Glyph-Loesung: der Pfeil ist TEXT und erbt
       deshalb color und text-shadow vom Link. Der Auftrag verlangt "der
       zugehoerige Dropdown-Pfeil wird ebenfalls Magenta" — das passiert
       dadurch von allein, es braucht keine eigene Hover-Regel. */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link::before,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item + li.nav-item > a.nav-link::before {
        display: none !important;
        content: none !important;
    }

    /* Der Pfeil sitzt am Text, nicht am Zeilenende */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link::after {
        margin-left: 8px;
        font-size: 11px;
        color: inherit;
    }
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link {
        border-bottom: 0 !important;
        box-shadow: none !important;
        text-decoration: none !important;
    }
    #jtl-nav-wrapper .navbar-wrapper li.flag-outlet { border-left: 0; }

    /* ⚠️ custom.css setzt ab 992px `.navbar-wrapper li.flag-sale
       { margin-left:auto }`. Das stammt aus der links ausgerichteten
       Altfassung und schob SALE/OUTLET an den rechten Rand.
       Zusammen mit space-between ist das toedlich: ein auto-Rand SAUGT den
       gesamten Freiraum auf, bevor space-between ueberhaupt verteilen kann.
       Am Shop gemessen: SALE bekam 149,5 px Rand, die restlichen zehn
       Punkte hatten danach exakt 0 px Abstand und klebten aneinander.
       Die Referenz zeigt gleichmaessige Verteilung ueber die volle Breite —
       also Rand zurueck auf 0 und space-between machen lassen.
       custom.css selbst bleibt unangetastet (shopweit, fremdes Revier). */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item {
        margin-left: 0;
        margin-right: 0;
    }

    /* --- Hover / Fokus / aktiver Punkt: nur Farbe + Glow --- */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link:hover,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link:focus-visible,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item.active > a.nav-link,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link[aria-expanded="true"] {
        color: var(--fsh-magenta) !important;   /* siehe custom.css-Notiz oben */
        background: transparent;
        /* KEIN Leuchten. Verlauf der Entscheidung, damit es niemand
           versehentlich zurueckbaut:
           Der urspruengliche Auftragstext vom 27.08. verlangte ausdruecklich
           "ein enger Glow und ein zweiter schwaecherer Glow". Umgesetzt,
           dann von Yunus als zu schwach gemeldet, daraufhin verstaerkt —
           und danach die klare Ansage: "ENTFERNE das schimmern wenn ich auf
           die texte in der menuezeile gehe!".
           Die spaetere Ansage gilt. Der Hover macht jetzt genau eins:
           die Farbe wechselt auf Magenta. Kein Schimmern, kein Schatten,
           keine Bewegung, keine Flaeche, keine Unterstreichung. */
        text-shadow: none;
    }

    /* Der Dropdown-Pfeil faerbt sich mit — er erbt die Textfarbe.
       Das Theme setzt ihn teils als eigenes Element, deshalb beide Wege. */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link .caret,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link i,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link svg {
        color: currentColor;
        fill: currentColor;
        transition: color 180ms ease;
    }

    #jtl-nav-wrapper .navbar-wrapper a:focus-visible {
        outline: 2px solid var(--fsh-magenta);
        outline-offset: 4px;
    }

    /* --- Mega-Menue wieder auf die Containerkante ---------------------------
       fs-redesign.css (Sitzung SEITEN, 21.08., Ansage Yunus: "das Fenster das
       sich oeffnet soll so breit sein wie die schwarze Flaeche dahinter")
       zieht das Panel mit `left:-68px !important; right:-11px !important`
       zurecht. Die 68px waren der Ausgleich fuer das linke Innenpolster der
       damaligen Kategorienzeile — dort sass der Magenta-Keil.
       Dieser Keil ist mit der weissen Navigationszeile weggefallen, das
       Polster ist jetzt beidseitig 11px. Die alten Negativwerte ziehen das
       Panel deshalb 68px ueber die linke Containerkante hinaus (gemessen:
       Panel bei x=180, Zeileninhalt bei x=249, Panelbreite 1487 statt 1408).
       Mit 0/0 deckt sich das Panel exakt mit der Zeile darueber — Yunus'
       urspruengliche Absicht ("so breit wie die Flaeche dahinter"), nur auf
       die neue Flaeche bezogen. Die Regel in fs-redesign.css bleibt stehen,
       sie wird hier nur ueberschrieben. */
    #jtl-nav-wrapper #mainNavigation .dropdown-menu:has(.mm-wrapper) {
        left: 0 !important;
        right: 0 !important;
        width: auto !important;
    }
}

/* Kein eigener Aufschlag ab 1600px: der Container ist bei 1430px gedeckelt,
   die Zeile bekommt oberhalb davon keinen Millimeter mehr Platz. Ein
   groesserer Schriftgrad wuerde dort nur wieder ueberlaufen. Die clamp()-
   Obergrenze von 19px ist deshalb bewusst das Ende der Fahnenstange. */

/* ============================================================================
   NACHTRAG — 5px Luft zwischen Menuezeile und Kategorie-Karussell
   (Ansage Yunus 27.08.: "Entferne den Kategoriekarossel um 5px von der
   menuezeile")
   ----------------------------------------------------------------------------
   ⚠️ Das ist streng genommen NICHT mehr Header: `.fs-rail-wrap` gehoert der
   Kategorie-Rail (fs-redesign.css Abschnitt D / BASELINE-KATEGORIE-RAIL.md).
   Gemessen lag ihre Oberkante exakt auf der Unterkante des Headers (beide
   bei y=268), es gab also gar keinen Abstand. Der Eingriff ist bewusst das
   kleinstmoegliche: EIN margin-top, kein Anfassen der Rail-Optik.
   Wer die Rail betreut: hier steht der einzige Wert, den ich veraendert habe.
   ============================================================================ */
.fs-rail-wrap {
    /* Luft zur Menuezeile, in drei Ansagen gewachsen:
       5px + 4px + 10px = 19px. Ohne die Regel liegt die Rail-Oberkante
       exakt auf der Header-Unterkante (gemessen beide bei y=268). */
    margin-top: 19px;
}

/* Abstand Kategorie-Rail -> Kampagnen-Banner um 10px verringert
   (Ansage Yunus 27.08.).
   ⚠️ NICHT Header und auch NICHT das Banner selbst. Der Abstand kommt aus
   dem SECTION-TAKT der Startseite: fs-start.css setzt
     #content:has(#fs-geschmacksfinder) > section { margin-top: var(--fs-takt) }
   und --fs-takt ist 32px. Die Rail hat unten weder margin noch padding
   (gemessen), das Banner selbst auch keinen eigenen Wert — es erbt den Takt.

   Deshalb wird hier GENAU EINE Section aus dem Takt herausgenommen, das
   Kampagnen-Mosaik. In zwei Ansagen: 32 -> 22 -> 7 (erst 10px, dann 15px).
   Der Takt aller uebrigen Sections bleibt unberuehrt (gegengeprueft:
   fs-mw und fs-st stehen weiter auf 32px).

   NUR >=992px: mobil laeuft ein eigener Takt (--fs-takt-m, 24px,
   Sitzung SECTION-MOBIL). Den hier mitzuziehen waere ein Eingriff, den
   niemand bestellt hat.

   !important ist noetig, weil die Taktregel zwei IDs plus drei Klassen
   traegt und mit normaler Spezifitaet nicht zu schlagen ist. */
@media (min-width: 992px) {
    #content:has(#fs-geschmacksfinder) > section.container.fs-campaign-mosaic,
    section.fs-campaign-mosaic {
        margin-top: 7px !important;
    }

    /* ⚠️ RANDKOLLAPS. Der margin-top des Banners allein reicht nicht:
       der Container, der die Kategorie-Rail traegt (.container.link-content),
       hat `margin-bottom: 15px`. Zwei senkrecht benachbarte Raender
       kollabieren zu EINEM, und zwar auf den GROESSEREN — bei 15 gegen 7
       blieben es 15px, mein Wert war wirkungslos (am Shop gemessen: Wert
       stand auf 7, Abstand blieb 15).
       Deshalb muss der Rand des Vorgaengers mit weg.

       ACHTUNG bei der Auswahl: `:has(.fs-rail-wrap)` greift daneben — dieser
       .link-content ENTHAELT die Rail gar nicht, er steht als eigenes,
       hoehenloses Element direkt dahinter (gemessen: Unterkante 451, exakt
       wie die Rail). Richtig ist die Nachbarschaft zum Banner:
       `:has(+ section.fs-campaign-mosaic)` trifft genau den einen Container,
       der unmittelbar vor dem Mosaik steht. Jeder andere .link-content auf
       der Seite behaelt seinen Rand. */
    #content > .container.link-content:has(+ section.fs-campaign-mosaic) {
        margin-bottom: 0 !important;
    }
}

/* ============================================================================
   8 — TABLET (992-1279): Abstaende runter, Logo bleibt mittig, kein Ueberlapp
   Das Raster verhindert Ueberschneidung von Haus aus — es kann nichts
   uebereinander laufen, die Spalten schrumpfen stattdessen.
   ============================================================================ */

@media (min-width: 992px) and (max-width: 1599.98px) {
    #jtl-nav-wrapper .hide-navbar > .navbar { gap: 20px; padding: 0 16px; }
    #jtl-nav-wrapper .navbar-wrapper > .container,
    #jtl-nav-wrapper .navbar-wrapper > .container-fluid { padding: 0 16px; }
    .fs-v6-utility .fs-topbar-inner { padding: 0 16px; }
    .fs-v6-utility .fs-tb-item { gap: 8px; padding: 0 10px; font-size: 10px; }
    .fs-v6-utility .fs-tb-gruppe .fs-tb-item:first-child { padding-left: 10px; }
}

@media (min-width: 992px) and (max-width: 1279.98px) {
    :root { --fsh-main-h: 140px; }

    #jtl-nav-wrapper .hide-navbar > .navbar { gap: 14px; padding: 0 12px; }
    #jtl-nav-wrapper .hide-navbar .navbar-brand img,
    #jtl-nav-wrapper .hide-navbar #shop-logo { width: 160px; max-height: 40px; }

    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler {
        height: 44px;
        grid-template-columns: 44px auto 30px;
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler::before { inset: 0 0 0 44px; }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-ikon svg { width: 19px; height: 19px; }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-text { padding: 0 7px 0 12px; font-size: 14px; }

    #jtl-nav-wrapper .hide-navbar #shop-nav > .nav-item { margin-left: 14px; }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link { width: 40px; height: 40px; }

    /* Elf Kategorien auf Tabletbreite: mit 14px blieben zwischen den Punkten
       gemessen nur 1,5px (Summe 962 px in 977 px verfuegbar) — die Namen
       klebten aneinander und liessen sich nicht mehr als getrennte Punkte
       lesen. Ein Grad kleiner schafft rund 12px Luft.
       Kein Ueberlauf war es nie, nur zu eng. */
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link {
        /* Hier NICHT die vollen +2px. Bei 10,5px lief die Zeile auf 1024px
           ueber (gemessen: 10px Ueberlauf, Abstaende auf 0) — elf Kategorien
           passen dort nicht mehr. 9,5px ist der groesste Wert, bei dem sie
           mit Luft nebeneinander stehen. Desktop bekommt die vollen +2px. */
        font-size: clamp(9.5px, calc(1.22vw - 4px), 11px);
    }
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link::after {
        margin-left: 5px;
        font-size: 9px;
    }
    .fs-v6-utility .fs-tb-item { font-size: 9.5px; padding: 0 6px; gap: 6px; }
    .fs-v6-utility .fs-tb-item svg { width: 14px; height: 14px; flex-basis: 14px; }
}

/* ============================================================================
   9 — MOBIL (<992px)
   Auftrag: kompakter Header, Haendlerbereich als Eintrag im mobilen Menue,
   Suche und Warenkorb sichtbar, Desktop-Navigation NICHT zusammendruecken,
   bestehendes mobiles Menue erhalten.
   ----------------------------------------------------------------------------
   Die mobile Anordnung (Burger + Lupe links, Logo mittig, Konto + Warenkorb
   rechts) ist von Yunus am 20.08. abgenommen und bleibt unangetastet — hier
   werden NUR die drei Flaechenfarben nachgezogen und das Sternfeld entfernt.
   Die Haendler-Spalte ist mobil ausgeblendet; der B2B-Weg wohnt weiter im
   mobilen Menue (unveraendert).
   ============================================================================ */

@media (max-width: 991.98px) {

    /* ---------- Trustbar MOBIL: SCHWARZ ----------
       Ansage Yunus, 27.08.: "Mobil TRUSTBAR - muss schwarz werden - texte
       viel kleiner! Icons genau so belassen anordnung etc - groesse
       abstaende!"

       Der Auftragstext vom selben Tag verlangt eine weisse Trustbar — das
       gilt damit nur noch fuer den DESKTOP. Mobil bleibt sie schwarz, wie
       vor diesem Umbau (FM1, Abnahme 20.08.). Die spaetere Ansage schlaegt
       den frueheren Auftragstext.

       UNANGETASTET bleiben laut Ansage: Icongroesse (17px), Abstand
       Icon-zu-Text (gap 9px), Innenabstand der Folie (0 10px), Position des
       Punktefelds. Hier wird NUR die Flaeche gefaerbt und die Schrift
       verkleinert. Die Icons bekommen Weiss statt Schwarz — das ist keine
       Groessen- oder Abstandsaenderung, sondern die Bedingung dafuer, dass
       sie auf der schwarzen Flaeche ueberhaupt sichtbar sind. */
    #header-top-bar.topbar-wrapper {
        background: var(--fsh-schwarz) !important;
        border-bottom: 0;
    }
    .fs-mtrust {
        background: var(--fsh-schwarz);
        color: var(--fsh-weiss);
        /* zurueck auf die abgenommene FM1-Hoehe. Ich hatte sie beim
           Weiss-Umbau unaufgefordert auf 48px gesetzt; mit der kleineren
           Schrift stuende die Zeile darin nur leer herum. 35px ist der
           Wert, der am 20.08. abgenommen wurde. */
        height: 35px;
    }
    .fs-mtrust-text { color: var(--fsh-weiss); }

    /* "texte viel kleiner": 12px -> 9.5px (-21 %). Die Laufweite geht
       leicht mit zurueck, sonst zerfaellt die Versalzeile bei dem Grad. */
    .fs-mtrust-slide {
        font-size: 9.5px;
        letter-spacing: .06em;
    }

    /* Icons: Groesse und Abstaende NICHT angefasst (17px / gap 9px kommen
       unveraendert aus FM1) — nur die Farbe, damit sie auf Schwarz stehen. */
    .fs-mtrust-slide svg {
        color: var(--fsh-weiss);
        stroke: currentColor;
        fill: none;
    }
    .fs-mtrust-slide svg.wa { fill: currentColor; stroke: none; }

    /* Punkte wieder fuer dunklen Grund: aus = gedaempftes Weiss,
       aktiv = Magenta mit weissem Ring. Der Ring ist Pflicht, nicht Zierde —
       Yunus ist farbenblind, der aktive Zustand darf nie nur an der Farbe
       haengen (FM1, Variante A). */
    .fs-mtrust-dot {
        background: rgba(255, 255, 255, .35);
    }
    .fs-mtrust-dot.is-active {
        background: var(--fsh-magenta);
        box-shadow: 0 0 0 1px rgba(255, 255, 255, .6), 0 0 8px var(--fsh-glow-nah);
    }
    .fs-mtrust-dot:focus-visible { outline: 2px solid var(--fsh-weiss); outline-offset: 2px; }

    /* Hauptzeile schwarz + weisses Logo (der invert-Filter oben gilt global) */
    #jtl-nav-wrapper .hide-navbar { background: var(--fsh-schwarz); }

    /* Kopf-Icons und Burger weiss */
    #jtl-nav-wrapper .hide-navbar #shop-nav a.nav-link { color: var(--fsh-weiss); }
    #jtl-nav-wrapper .hide-navbar #shop-nav i.fas,
    #jtl-nav-wrapper .hide-navbar #shop-nav i.far { color: var(--fsh-weiss); }
    #jtl-nav-wrapper #burger-menu .navbar-toggler-icon,
    #jtl-nav-wrapper #burger-menu .navbar-toggler-icon::before,
    #jtl-nav-wrapper #burger-menu .navbar-toggler-icon::after {
        background-color: var(--fsh-weiss);
    }

    /* Warenkorb-Badge auch mobil auf Aktion-Magenta (F26), rund wie am
       Desktop (Ansage Yunus 30.08.). Ohne eigene Masse liefert das Theme
       ein 26x20-Rechteck (padding .4em .6em) — fuer den Kreis brauchen
       Hoehe/min-width dieselbe Zahl, Zentrierung per Grid statt padding. */
    #jtl-nav-wrapper .hide-navbar #shop-nav i .fa-sup {
        background: var(--fsh-magenta) !important;
        color: var(--fsh-weiss) !important;
        border-radius: 999px !important;
        min-width: 20px;
        height: 20px;
        line-height: 1;
        display: inline-grid;
        place-items: center;
        padding: 0 5px;
        font-weight: 700;
        font-size: 12px;
        text-align: center;
    }

    /* Die Haendler-Spalte gehoert mobil nicht in die Kopfzeile */
    #jtl-nav-wrapper .hide-navbar .fs-hd-col { display: none; }

    /* ---------- Logo mobil kleiner (Ansage Yunus 27.08.) ----------
       ⚠️ BEIDE Zahlen muessen zusammen gedreht werden. Wirksam ist auf
       Handybreiten der vw-Zweig (33,6 % von 375 = 126px), die px-Deckelung
       greift erst ab ~465px Fensterbreite. Wer nur die 156 aendert, sieht
       auf dem Handy gar nichts und bekommt oberhalb 465px einen Sprung.
       Faktor auf beide gleich: 176 -> 156 und 37.9vw -> 33.6vw (-11 %).
       Bei 375px also 142 -> 126px. */
    #jtl-nav-wrapper #shop-logo { max-width: min(156px, 33.6vw); }

    /* ---------- Kopf-Icons staerker (Ansage Yunus: "2-3 px staerker") ----------
       Die Formen kommen unveraendert aus fs-icons.css (Iconset Blocksatz),
       hier steht nur das Kastenmass: 23 -> 26px (+3).
       ACHTUNG: die ::after-Raeder des ICONSETs skalieren mit dem Kasten —
       Warenkorb-Zahl und Raeder bei 26px gegengeprueft. */
    #jtl-nav-wrapper .hide-navbar #shop-nav i.fas,
    #jtl-nav-wrapper .hide-navbar #shop-nav i.far,
    #jtl-nav-wrapper .hide-navbar #shop-nav i.fas::before,
    #jtl-nav-wrapper .hide-navbar #shop-nav i.far::before {
        width: 26px;
        height: 26px;
        font-size: 20px;
    }
}

/* ============================================================================
   10 — BEWEGUNG AUS
   Auftrag ausdruecklich: prefers-reduced-motion pruefen.
   ============================================================================ */

@media (prefers-reduced-motion: reduce) {
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler::before,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler .fs-hd-pfeil,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link,
    #jtl-nav-wrapper .navbar-wrapper .navbar-nav > li.nav-item > a.nav-link {
        transition-duration: .01ms !important;
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:hover::before,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible::before {
        transform: scaleX(1);
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:hover .fs-hd-pfeil,
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:focus-visible .fs-hd-pfeil {
        transform: none;   /* kein 4px-Sprung ohne Uebergang */
    }
    #jtl-nav-wrapper .hide-navbar .fs-hd-haendler:active { transform: none; }
}

/* ============================================================================
   SUCHE-CONVERSION (Sitzung DOOFINDER, 27.08.2026) — Auftrag Yunus:
   Header-Suche conversion-orientiert, Doofinder bleibt die einzige Suchlogik.
   Dieser Abschnitt baut auf Abschnitt 6 auf und aendert NUR Optik/Typo:
   1. Desktop-Knopf traegt neben der Lupe das Wort "Suche" (.fs-such-wort,
      Markup in layout/header_nav_search.tpl).
   2. Panel-Feld: Lupe links IM Feld, 16px Schrift (16px auch <992px —
      unter 16px zoomt iOS beim Fokussieren die ganze Seite).
   3. Theme-Loeschknopf .form-clear auf 44px-Touchflaeche und Kanon-Farben.
   NICHT ANFASSEN: Klasse .ac_input (Doofinder-Trigger), name="qs",
   Formular-Action (natives Fallback). Rollback: Abschnitt loeschen +
   Span aus header_nav_search.tpl.
   ============================================================================ */

/* Wortmarke nur auf dem Desktop; unter 992px bleibt das Lupen-Quadrat. */
.fs-v6-search .fs-such-wort { display: none; }

@media (min-width: 992px) {
    /* Aus dem 44px-Quadrat wird Lupe + Wort. Hoehe, Kontur, Hover und die
       Abstaende der Iconreihe (gap am Container) bleiben unveraendert. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > a.nav-link,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link {
        width: auto;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 0 16px;
    }
    .fs-v6-search .fs-such-wort {
        display: inline;
        font-family: "FS Display", "FS Text", sans-serif;
        font-weight: 400;
        font-synthesis: none;
        font-size: 15px;
        letter-spacing: .05em;
        text-transform: uppercase;
        line-height: 1;
    }

    /* Lupe links IM Feld (Spec Punkt 2). Der tt-hint-Klon liegt HINTER dem
       opaken echten Feld und ist ohnehin unsichtbar — das Bild stoert ihn
       nicht. 16px Schrift auch hier (Lesbarkeit, einheitlich mit mobil). */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .form-control.ac_input {
        font-size: 16px;
        padding-left: 46px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111114' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: 15px center;
        background-size: 18px 18px;
    }

    /* Theme-Loeschknopf (erscheint per Theme-JS bei Eingabe): 44px-Ziel,
       mittig im 52px-Feld, links neben dem 52px-Suchknopf. */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .form-clear {
        width: 44px;
        height: 44px;
        bottom: 4px;
        right: 52px;
        color: #111114;
        font-size: 16px;
    }
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .form-clear:hover {
        color: var(--fsh-magenta);
    }
}

/* iOS-Zoom-Bremse fuer das Theme-Suchfeld unter 992px: iOS Safari zoomt die
   Seite, wenn ein fokussiertes Feld unter 16px Schrift hat. */
@media (max-width: 991.98px) {
    #shop-nav .fs-v6-search .form-control.ac_input {
        font-size: 16px;
    }
}

/* ============================================================================
   RUECKNAHME DER SUCH-WORTMARKE (Sitzung HEADER FINAL, 27.08.2026)
   ----------------------------------------------------------------------------
   Entscheidung Yunus, direkt nach Vorlage des Ist-Zustands: der Suchknopf
   bleibt das QUADRAT. Der Abschnitt "SUCHE-CONVERSION" darueber (Sitzung
   DOOFINDER) hatte ihn auf `width:auto` gestellt und das Wort "SUCHE"
   danebengesetzt — gemessen 115x44 statt 44x44.

   BEWUSST NUR DER KNOPF. Die uebrigen drei Punkte jenes Abschnitts bleiben
   in Kraft, weil sie mit dieser Entscheidung nichts zu tun haben und fuer
   sich genommen richtig sind:
     - Lupe links IM Panel-Feld, 16px Schrift
     - 16px auch unter 992px (sonst zoomt iOS beim Fokussieren die Seite)
     - Theme-Loeschknopf auf 44px-Touchflaeche
   Wer den ganzen Abschnitt zurueckdreht, nimmt diese drei mit — das war
   nicht die Ansage.

   ⚠️ AN DOOFINDER: Das Markup <span class="fs-such-wort"> in
   layout/header_nav_search.tpl bleibt ABSICHTLICH stehen und wird hier nur
   ausgeblendet. So bleibt euer Rollback-Weg intakt und es geht nichts
   verloren, falls die Entscheidung noch einmal kippt.
   ⚠️ Diese Rueckname haengt HINTER eurem Abschnitt und gewinnt nur ueber
   die Reihenfolge. Wer nach mir an dieselbe Datei anhaengt, gewinnt gegen
   mich — vor dem Deploy bitte frisch ziehen.
   ============================================================================ */

@media (min-width: 992px) {
    /* zurueck auf das Quadrat — dieselben Masse wie der Haendlerknopf (44px) */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > a.nav-link,
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search > .nav-link {
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        gap: 0;
        padding: 0;
    }
    /* Wort raus, auf jeder Breite */
    #jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search .fs-such-wort {
        display: none !important;
    }
}

/* ============================================================================
   PANEL STUMM SCHALTEN, WENN DOOFINDER UEBERNIMMT
   (Sitzung HEADER FINAL, 27.08.2026 — Ansage Yunus: "wenn man auf suche
   klickt soll nicht davor unsere eigene suchleiste erscheinen sondern
   direkt doofinder")
   ----------------------------------------------------------------------------
   Am Shop gemessener Ablauf VORHER: Klick auf die Lupe -> unser Panel klappt
   auf und ist sichtbar -> erst danach schiebt sich Doofinders Vollbild-Layer
   darueber. Genau dieses Aufblitzen soll weg.

   WARUM DAS PANEL TROTZDEM OEFFNEN MUSS: Doofinders Layer haengt am Feld
   `.ac_input`. Ein Feld in einem `visibility:hidden`-Teilbaum nimmt keinen
   Fokus an — ohne geoeffnetes Panel gibt es also gar keinen Ausloeser.
   Deshalb wird das Panel geoeffnet, aber nicht GEZEIGT: opacity 0 haelt es
   fokussierbar, visibility:hidden wuerde das zerstoeren.

   ⚠️ NUR EINE KLASSE, GESETZT VON fs-header.js — und zwar ausschliesslich
   dann, wenn Doofinder auch wirklich geladen ist. Das ist kein Schoenheits-
   detail, sondern Pflicht: Doofinder steht im Cookie-Banner. Ohne
   Einwilligung laedt es nicht (gemessen: _doofinderConsent.isLoaded=false,
   Layer oeffnet nie) — dann IST unser Panel die Suche und muss sichtbar
   bleiben. Ein pauschales Ausblenden haette die Suche fuer jeden
   ausgeknipst, der die Cookies ablehnt.
   ============================================================================ */

#jtl-nav-wrapper .hide-navbar #shop-nav > #search.fs-v6-search.fs-suche-still .dropdown-menu {
    opacity: 0 !important;
    pointer-events: none !important;
}


/* ============================================================================
   9 — FLAECHEN AUF STANDARDBREITE STATT RANDLOS
   01.09.2026, Ansage Yunus: "kannst du header und footer auf unsere
   standardbreite bringen? das sieht fuer mich besser aus."

   Bis hierher liefen die drei Kopfbaender (Trustbar, schwarzes Band,
   Navizeile) von Fensterkante zu Fensterkante, waehrend der Inhalt darin auf
   1430 px sass — zwei Bauweisen in einem Bild. Jetzt endet auch die FARBE bei
   1430: Kopf, Seiteninhalt und Fuss stehen in derselben Spalte, links und
   rechts bleibt Papier. Der Fuss geht denselben Weg zurueck
   (fs-footer.css, Abschnitt 45).

   Warum genau 1430 und kein neuer Wert: der Standard-Container des Shops ist
   bis rund 1445 px FLUID und deckelt erst darueber bei 1430. Gemessen:
   1920 -> 1430 (238..1668), 1600 -> 1430 (78..1508), 1400 -> volle Breite,
   1280 -> volle Breite. Ein Band mit derselben Deckelung folgt dem Inhalt auf
   JEDER Stufe, auch unterhalb der Schwelle, wo beide randlos sind. Genau
   deshalb steht hier nur EINE Medienabfrage und keine Staffelung.

   Die Inhaltskante bewegt sich dabei NICHT: die Innencontainer tragen
   dieselbe 1430er-Deckelung, fuellen das Band jetzt exakt aus und behalten
   ihre 11 px Polster. Text und Icons stehen vorher wie nachher auf
   249..1657 (bei 1920).

   Drei Fallen, alle am Objekt geprueft:

   1. Die Trustbar ist KEIN Kind von header#jtl-nav-wrapper, sondern ein
      direktes Geschwister im <body>. Sie braucht ihre eigene Zeile; wer nur
      innerhalb des Headers boxt, laesst sie randlos stehen.
   2. Der Traeger header#jtl-nav-wrapper bleibt ABSICHTLICH randlos weiss. Er
      ist sticky-top, und das Theme blendet beim Scrollen das schwarze Band
      aus (Klasse hide-navbar). Ohne die volle weisse Flaeche liefe der
      Seiteninhalt in den Randstreifen unter der stehenden Navizeile durch.
   3. Das Mega-Menue bleibt unberuehrt. Seine Panels haengen am inneren
      .container-fluid (offsetParent nav.navbar), der bereits auf 1430
      deckelt — nicht an .navbar-wrapper. MENUE-Revier also nicht angefasst.

   Rueckbau: diesen Abschnitt loeschen.
   ========================================================================== */
@media (min-width: 992px) {
    #header-top-bar.topbar-wrapper,
    #jtl-nav-wrapper .hide-navbar,
    #jtl-nav-wrapper .navbar-wrapper {
        max-width: var(--fsh-breite);
        margin-left: auto;
        margin-right: auto;
    }
}
