/* ============================================================================
   fs-blocksatz.css — Flieaesstext beidseitig buendig, shopweit
   ----------------------------------------------------------------------------
   Ansage Yunus, 27.08.2026: "alle Texte als BLOCKTEXT ... links und rechts
   buendig", ausdruecklich AUCH mobil. Umgesetzt von Sitzung HERSTELLER.

   ⚠️ SILBENTRENNUNG IST TRAGEND, NICHT KOSMETIK.
   Blocksatz ohne Trennung reisst im Deutschen weisse Gassen in den Absatz
   ("Widerrufsbelehrung", "Versandkostenfreigrenze" passen nicht mehr in die
   Zeile und der Browser dehnt stattdessen die Wortabstaende). Deshalb steht
   `hyphens:auto` in jeder Regel. Voraussetzung dafuer ist `<html lang="de">` —
   am 27.08. nachgemessen: gesetzt. Faellt das Attribut weg, trennt der Browser
   nicht mehr und der Blocksatz wird sofort loechrig.

   WAS BEWUSST AUSSEN VOR BLEIBT (und warum):
   - Ueberschriften, Produktnamen, Kartentitel, Knoepfe, Etiketten, Navigation.
     Blocksatz wirkt nur auf Zeilen, die UMBRECHEN — bei einem zweizeiligen
     Produktnamen wird die erste Zeile ueber die volle Breite gedehnt und die
     Karte sieht auseinandergerissen aus. Genau dort schadet es also.
   - Bereits zentrierte oder rechtsbuendige Stellen (.text-center/.text-right):
     die haben ihre Ausrichtung aus einem Grund.
   - Zahlenspalten in Warenkorb und Kasse.

   ⚠️ Der Ausschluss nennt die KLASSEN `.nav`/`.nav-tabs`, nicht das Tag `nav`.
   Grund, teuer gemessen: auf der Produktdetailseite liegt das ganze Reitersystem
   samt Beschreibung, Sicherheitshinweisen und Bewertungen in einem
   `<nav class="tab-navigation">`. Ein Ausschluss auf `nav *` nimmt damit den
   kompletten Beschreibungstext der Produktseite mit heraus — er war nach dem
   ersten Wurf linksbuendig, obwohl er die groesste Textflaeche der PDP ist.
   - Header und Footer (Besitz anderer Sitzungen, dort steht ohnehin kein
     Flieaesstext, sondern Linklisten).

   Liegt als letzte Datei im Minify-Block und gewinnt damit bei gleicher
   Spezifitaet gegen alles davor.
   ============================================================================ */

#content :is(p, li, dd, blockquote, figcaption):not(
    .btn, .badge, .text-center, .text-right, .nav-item, .breadcrumb-item, .form-text
):not(
    :is(
        .productbox, .fs-mfr-karte, .fs-kartenlink,
        .text-center, .text-right, .nav, .nav-tabs, .navbar, .breadcrumb,
        .btn, .badge, .card-title, table, .fs-mfr-abc, .fs-mfr-sekt
    ) *
) {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;

    /* Bremst sinnlose Trennungen: mindestens 6 Zeichen im Wort, davon 3 vor
       und 3 nach dem Trennstrich. Ohne das trennt Chrome auch "Ei-nes". */
    hyphenate-limit-chars: 6 3 3;

    /* Sicherheitsnetz fuer sehr lange Einzelwoerter (URLs, Artikelnummern):
       lieber hart umbrechen als die Spalte sprengen. */
    overflow-wrap: break-word;
}

/* Die letzte Zeile eines Absatzes bleibt linksbuendig — das ist
   Blocksatz-Standard und keine Ausnahme, die man "reparieren" muesste. */

/* ⚠️ Hier stand eine Regel `#content ul li, #content ol li {text-align:justify}`
   ohne Ausnahmen und ohne hyphens. Sie hat die Reiter-Beschriftungen der
   Produktseite ("Beschreibung", "Sicherheit") und Statusetiketten ("Auf Lager")
   mitgenommen und dort Blocksatz OHNE Trennung gesetzt. Die Regel oben deckt
   `li` bereits mit allen Ausnahmen ab — nicht wieder einfuegen.                */

/* Ueberschriften bleiben linksbuendig, auch wenn sie in einem Absatzcontainer
   stehen. Anton ueber zwei gedehnte Zeilen sieht aus wie ein Satzfehler. */
#content :is(h1, h2, h3, h4, h5, h6) {
    text-align: left;
    hyphens: manual;
}

/* Kartentitel und Preiszeilen der Produktkarte sind UI, kein Flieaesstext.
   NUR .productbox — `.product-wrapper` heisst auf der Produktdetailseite der
   Hauptcontainer und haette dort die ganze Beschreibung linksbuendig gelassen. */
#content .productbox :is(p, li) {
    text-align: left;
    hyphens: manual;
}

/* ============================================================================
   AUSNAHME LISTENPUNKTE AUF SCHMALEN SCHIRMEN — 29.08.2026
   ----------------------------------------------------------------------------
   Befund am Handy (375 px, echtes mobile-device-Markup, Beschreibungsflaeche
   294 px breit) auf der Produktseite:

       <li><strong>Lieferumfang:</strong> 2 Pods pro Verpackungseinheit</li>

   Erste Zeile auf 124 % gedehnt, gemessen ueber die natuerliche Zeilenbreite.
   Absaetze derselben Seite lagen bei 1,085 — die tragen den Blocksatz, weil
   sie viele Zeilen haben und die Silbentrennung greift.

   WARUM AUSGERECHNET LISTENPUNKTE REISSEN — drei Gruende, die zusammenfallen:
   1. ZEILENLAENGE. 294 px fassen rund 39 Zeichen. Blocksatz braucht etwa 45;
      darunter verteilt sich der Rest auf zu wenige Wortluecken.
   2. NUR EINE AUSGLEICHSZEILE. Ein zweizeiliger Listenpunkt hat genau eine
      Zeile im Blocksatz — die letzte bleibt linksbuendig. Der gesamte
      Fehlbetrag landet dort, nichts mittelt ihn weg. Ein achtzeiliger Absatz
      verteilt denselben Fehlbetrag auf sieben Zeilen.
   3. DIE FETTE BESCHRIFTUNG frisst den Zeilenanfang, und was folgt, sind
      Eigennamen und Masseinheiten: "Elfbar", "ELFA", "LUVA", "2 Pods".
      Die trennt kein Woerterbuch.

   NACHGEMESSEN, DAMIT ES NICHT WIEDER PROBIERT WIRD: `hyphenate-limit-chars`
   von 6 3 3 auf 4 2 2 gelockert — Dehnung unveraendert 1,238. `text-wrap:
   pretty` zusaetzlich — unveraendert. Es gibt keinen Trennpunkt, den der
   Browser haette nutzen koennen; die Regel oben ist also nicht zu streng
   eingestellt, sondern das Wortmaterial gibt nichts her.

   Silbentrennung bleibt an: sie haelt lange Einzelwoerter in der Spalte,
   auch ohne Blocksatz.

   GELTUNGSBEREICH: nur `li` in echten Listen, nur unter 576 px. Flieaesstext
   (p, dd, blockquote, figcaption) bleibt ueberall im Blocksatz — Ansage Yunus
   vom 27.08.2026 gilt unveraendert.

   Spezifitaet: (1,2,2) gegen die (1,2,1) der Hauptregel oben. Der Vorsprung
   ist Absicht und muss erhalten bleiben, wenn jemand die Hauptregel schaerft.
   ============================================================================ */

@media (max-width: 575.98px) {
    #content :is(ul, ol) > li:not(.nav-item):not(.breadcrumb-item) {
        text-align: left;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
}
