/*
    Barrierefreies Bedienkonzept.

    Diese Datei wird als letztes Stylesheet geladen (siehe templates/base.html.twig)
    und liegt bewusst NICHT in config/legacy_assets.yaml – die Datei wird beim
    Mirror-Import neu erzeugt und würde den Eintrag verlieren.

    Aufbau:
      1. Grundlagen, die immer gelten (Sprungmarke, Fokus, Aufklapper)
      2. Die Bedienleiste: am linken Fensterrand, auf schmalen Geräten in der
         Kopfleiste
      3. Die einzelnen Modi, geschaltet über data-Attribute am <html>-Element
      4. Rücknahme der Modi für die Bedienleiste selbst

    Die Modi überschreiben das aus Joomla importierte Template. Da dieses
    durchgängig mit "!important" und festen Pixelwerten arbeitet, kommen die
    Überschreibungen ohne "!important" nicht durch.

    Der Inhalt der Seite steckt in .body-wrapper, das Mobilmenü daneben in
    .offcanvas-menu. Das Panel liegt außerhalb und bleibt von den Modi
    unberührt – sonst würde es sich im Vergrößerungsmodus selbst mitskalieren.
    Die Leiste steht dagegen im Markup in der Kopfleiste und damit innerhalb
    von .body-wrapper; was die Modi dort anrichten würden, nimmt Abschnitt 4
    wieder zurück.
*/

:root {
    --a11y-blue: #3c5c81;
    --a11y-blue-dark: #12305c;
    --a11y-focus: #f5a623;
}


/* ------------------------------------------------------------------
   1. Grundlagen
   ------------------------------------------------------------------ */

/* Nur für Screenreader, optisch nicht sichtbar. */
.a11y-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/*
    Sprungmarke zum Inhalt: erstes Element im Dokument, sichtbar sobald sie den
    Tastaturfokus bekommt. Damit überspringt man Kopfbereich und Navigation.
*/
.a11y-skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 10001;
    padding: 12px 20px;
    background: var(--a11y-blue-dark);
    color: #fff !important;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .45);
    transform: translateY(calc(-100% - 20px));
    transition: transform .15s ease-out;
}

.a11y-skip-link:focus {
    transform: translateY(0);
}

/*
    Sichtbarer Tastaturfokus auf der ganzen Seite. Das Helix-Template blendet
    den Fokusrahmen an vielen Stellen aus. Gelb mit dunklem Rand ist auf hellem
    wie auf dunklem Untergrund erkennbar.
*/
:focus-visible {
    outline: 3px solid var(--a11y-focus) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 6px rgba(0, 0, 0, .45) !important;
}

/* Der Inhaltsbereich bekommt den Fokus nur per Sprungmarke, ohne Rahmen. */
main#site-component:focus {
    outline: none;
}

/*
    Die Aufklapper (.c-dropdown) und Hinweise (.c-hint) aus den importierten
    Inhalten reagierten nur auf Maus. Sie bekommen in a11y.js Tastaturbedienung;
    hier der passende Zeiger und der Zustand für Touch- und Tastaturbedienung.
*/
.c-dropdown .c-dropdown-header:focus-visible {
    outline-offset: -3px !important;
}

.c-hint:focus-visible .c-hint-content,
.c-hint.active .c-hint-content {
    display: block;
}

@media print {
    .a11y-skip-link,
    .a11y-rail,
    .a11y-panel {
        display: none !important;
    }
}


/* ------------------------------------------------------------------
   2. Bedienleiste
   ------------------------------------------------------------------ */

/* Ohne JavaScript lässt sich nichts umschalten, dann bleibt die Leiste weg. */
html:not(.a11y-ready) .a11y-rail {
    display: none;
}

/*
    Die Leiste trägt die Schaltflächen, die überall erreichbar bleiben sollen:
    die Barrierefreiheit und – sobald cookieconsent sie erzeugt hat – der
    Datenschutz. Beide sind gewöhnliche Flex-Elemente darin; liegt nur eine
    davon vor, steht sie allein in der Mitte, ohne Lücke daneben.

    Auf breiten Bildschirmen klebt sie senkrecht am linken Fensterrand. Dort
    ist links vom Inhalt Platz, in der Kopfleiste dagegen nicht: Ab 992 px
    tritt an die Stelle des Hamburger-Symbols die ausgeschriebene Navigation,
    und knapp über dieser Grenze reicht sie bis dicht an den linken Rand. Wie
    es darunter aussieht, steht im Block für schmale Geräte weiter unten.

    Das Panel steht bewusst neben der Leiste und nicht darin: Es liegt fest am
    Fenster (position: fixed) und würde sich sonst an der verschobenen Leiste
    ausrichten statt am Fensterrand.
*/
.a11y-rail {
    position: fixed;
    top: 50%;
    left: 0;
    z-index: 9998;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transform: translateY(-50%);
}

.a11y-toggle,
.a11y-rail .cc-revoke {
    /* Am Fensterrand klebt die Leiste, nicht die einzelne Schaltfläche. */
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 64px;
    min-height: 44px;
    padding: 9px 5px;
    border: 2px solid #fff;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    font-family: Verdana, Tahoma, sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    letter-spacing: .02em;
    text-transform: uppercase;
    /* "Barrierefreiheit" passt nur getrennt in die schmale Leiste. */
    hyphens: auto;
    overflow-wrap: break-word;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

.a11y-toggle svg,
.a11y-rail .cc-revoke svg {
    display: block;
    width: 30px;
    height: 30px;
    fill: currentColor;
}

.a11y-toggle {
    background: var(--a11y-blue);
    color: #fff;
}

.a11y-toggle:hover,
.a11y-toggle:focus,
html.a11y-open .a11y-toggle {
    background: var(--a11y-blue-dark);
    color: #fff;
}

/*
    Datenschutz-Schaltfläche

    cookieconsent stellt sie erst auf, wenn eine Entscheidung vorliegt, und
    hängt sie an den Anfang des <body>; in die Leiste holt sie
    partials/tracking.html.twig. Die Farben aus der Palette schreibt das Skript
    zur Laufzeit in ein eigenes <style> am Ende des <head> – gleich gewichtet
    und später als diese Datei, deshalb hier "!important". Die Verschiebung
    (das Ein- und Ausfahren am Fensterrand) ist sogar höher gewichtet.

    "display" bleibt ohne "!important": Damit blendet cookieconsent die
    Schaltfläche über das style-Attribut aus, solange nichts zu widerrufen ist.
*/
.a11y-rail .cc-revoke {
    transform: none !important;
    background: var(--a11y-blue) !important;
    color: #fff !important;
}

.a11y-rail .cc-revoke:hover,
.a11y-rail .cc-revoke:focus {
    background: var(--a11y-blue-dark) !important;
    text-decoration: none;
}

/*
    cookieconsent erkennt den Klick nur, wenn er das Element mit der Klasse
    cc-revoke selbst trifft. Symbol und Beschriftung dürfen deshalb kein
    eigenes Klickziel sein.
*/
.a11y-rail .cc-revoke > * {
    pointer-events: none;
}

/* Das Panel legt sich rechts neben die Schaltfläche, die geöffnet sichtbar bleibt. */
.a11y-panel {
    position: fixed;
    top: 50%;
    left: 58px;
    z-index: 9999;
    width: 330px;
    max-width: calc(100vw - 78px);
    max-height: calc(100vh - 20px);
    padding: 16px 18px 18px;
    overflow-y: auto;
    transform: translateY(-50%);
    border: 3px solid var(--a11y-blue);
    border-left: 0;
    border-radius: 0 12px 12px 0;
    background: #fff;
    color: #111;
    font-family: Verdana, Tahoma, sans-serif;
    font-size: 15px;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    box-shadow: 0 8px 34px rgba(0, 0, 0, .35);
}

.a11y-panel[hidden] {
    display: none;
}

.a11y-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.a11y-panel h2 {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--a11y-blue-dark);
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: none;
}

.a11y-panel h2::after {
    content: none;
}

.a11y-close {
    flex: none;
    width: 44px;
    height: 44px;
    margin: -8px -8px 0 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--a11y-blue-dark);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.a11y-close:hover {
    background: #eef2f7;
}

.a11y-hint {
    margin: 0 0 10px;
    color: #444;
    font-size: 13px;
    line-height: 1.45;
}

.a11y-group {
    margin: 0 0 12px;
    padding: 0;
    border: 0;
}

.a11y-group legend {
    margin: 0 0 4px;
    padding: 0;
    border: 0;
    color: #111;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.a11y-field {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 4px 8px;
    border-radius: 6px;
}

.a11y-field:hover {
    background: #eef2f7;
}

.a11y-field input {
    flex: none;
    width: 22px;
    height: 22px;
    margin: 0;
    accent-color: var(--a11y-blue);
}

.a11y-field label {
    flex: 1;
    margin: 0;
    color: #111;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.35;
    cursor: pointer;
}

.a11y-reset {
    width: 100%;
    min-height: 44px;
    margin-top: 4px;
    padding: 10px 16px;
    border: 2px solid var(--a11y-blue-dark);
    border-radius: 6px;
    background: #fff;
    color: var(--a11y-blue-dark);
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

.a11y-reset:hover {
    background: var(--a11y-blue-dark);
    color: #fff;
}

/*
    Schmale Geräte

    Am linken Fensterrand lag die Leiste hier mitten im Text und deckte die
    Überschriften ab. Sie rückt deshalb in die weiße Kopfleiste: links bündig,
    waagerecht nebeneinander, auf der Höhe des Hamburger-Symbols. Platz ist
    dort, weil unterhalb von 992 px nur dieses eine Symbol steht.

    Sie steht dafür im Markup in #site-header (siehe
    partials/accessibility-rail.html.twig) und ist absolut darin gesetzt: Beim
    Scrollen klebt die Kopfleiste oben fest und nimmt die Schaltflächen ohne
    eine einzige Zeile JavaScript mit.

    Die Kopfleiste ist 80 px hoch; mehr als rund 60 px darf eine Schaltfläche
    also nicht messen.

    Das Panel fährt hier von unten ein statt von der Seite: Als Kasten unter
    der Kopfleiste bliebe auf dem Telefon kaum Platz, und der Daumen erreicht
    den unteren Rand ohnehin am leichtesten.
*/
@media (max-width: 991px) {
    .a11y-rail {
        position: absolute;
        top: 50%;
        left: 20px;
        /* Über der Menüliste (z-index 99), damit die Klicks nicht dort landen –
           dieselbe Überlegung wie bei .sticky-bildmarke in custom.css. */
        z-index: 100;
        flex-direction: row;
    }

    /* Klebt die Kopfleiste, tritt links die Bildmarke an die Stelle des Logos
       (siehe .sticky-bildmarke in custom.css). Die Leiste rückt dann dahinter. */
    #site-header.header-sticky .a11y-rail {
        left: 76px;
    }

    .a11y-toggle,
    .a11y-rail .cc-revoke {
        gap: 2px;
        /* Kleiner als am Fensterrand – in der Kopfleiste stehen die
           Schaltflächen neben dem Inhalt und nicht davor.

           66 px bei 9 px Schrift ist die untere Grenze: Darunter fällt
           "Barrierefreiheit" nicht mehr in zwei saubere Zeilen
           (BARRIERE-FREIHEIT), sondern bricht buchstabenweise um. */
        width: 66px;
        padding: 4px 4px;
        border: 0;
        border-radius: 8px;
        font-size: 9px;
        line-height: 1.1;
        box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
    }

    .a11y-toggle svg,
    .a11y-rail .cc-revoke svg {
        width: 21px;
        height: 21px;
    }

    .a11y-panel {
        top: auto;
        bottom: 0;
        left: 0;
        width: 100%;
        max-width: 100%;
        max-height: 85vh;
        /* Platz für die Bedienleiste des Telefons am unteren Rand. */
        padding-bottom: max(18px, env(safe-area-inset-bottom));
        transform: none;
        border: 3px solid var(--a11y-blue);
        border-bottom: 0;
        border-radius: 12px 12px 0 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .a11y-skip-link {
        transition: none;
    }
}


/* ------------------------------------------------------------------
   3. Modi
   ------------------------------------------------------------------ */

/*
    Schriftgröße.

    Das importierte CSS ist durchgängig in Pixeln geschrieben; eine größere
    Wurzelschriftgröße bliebe deshalb wirkungslos. "zoom" skaliert stattdessen
    den kompletten Inhalt – wie der Zoom des Browsers, nur eben bedienbar auf
    der Seite selbst. Die Bedienleiste liegt außerhalb und bleibt unverändert.
*/
html[data-a11y-text="115"] .body-wrapper,
html[data-a11y-text="115"] .offcanvas-menu {
    zoom: 1.15;
}

html[data-a11y-text="130"] .body-wrapper,
html[data-a11y-text="130"] .offcanvas-menu {
    zoom: 1.3;
}

html[data-a11y-text="150"] .body-wrapper,
html[data-a11y-text="150"] .offcanvas-menu {
    zoom: 1.5;
}

/*
    Die Bootstrap-Container haben feste Maximalbreiten in Pixeln. Vergrößert
    passen sie nicht mehr ins Fenster und es entstünde ein waagerechter
    Scrollbalken. Im Vergrößerungsmodus laufen sie deshalb über die volle Breite.
*/
html[data-a11y-text] .container {
    max-width: 100% !important;
}

html[data-a11y-text] :is(.body-wrapper, .offcanvas-menu) :is(img, video, iframe, table) {
    max-width: 100%;
}

html[data-a11y-text] :is(.body-wrapper, .offcanvas-menu) img {
    height: auto;
}

/*
    Hoher Kontrast: schwarze Schrift auf weißem Grund, dunkleres Blau für Links
    (Kontrastverhältnis über 10:1), deutliche Trennlinien.

    Hintergrundbilder bleiben stehen. Auf dieser Seite sind sie kein Schmuck,
    sondern Inhalt: die Kopfgrafik mit dem hellen Logo und die Produktbilder im
    Karussell stecken darin. Text, der darauf liegt, bekommt weiter unten eine
    deckende Fläche.
*/
html[data-a11y-contrast] body,
html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu),
html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) :is(
    #site-header, #site-section-3, #site-main-body, #site-bottom, #site-footer,
    .pb-section, .pb-row-container, .pb-addon, .offcanvas-inner
) {
    background-color: #fff !important;
}

html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) :where(
    p, li, td, th, dt, dd, h1, h2, h3, h4, h5, h6,
    span, strong, em, b, small, label, figcaption, blockquote, address, time, div
) {
    color: #000 !important;
}

html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) a,
html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) a :where(span, strong, em, h1, h2, h3, h4, h5, h6, p, div) {
    color: var(--a11y-blue-dark) !important;
}

html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) a {
    text-decoration: underline !important;
}

html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) :is(.btn, .pb-btn, button, input[type="submit"]) {
    border: 2px solid #000 !important;
    background: var(--a11y-blue-dark) !important;
    color: #fff !important;
    text-decoration: none !important;
}

html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) :is(.btn, .pb-btn, button) :where(span, i, strong) {
    color: #fff !important;
}

html[data-a11y-contrast] #site-header {
    border-bottom: 3px solid #000 !important;
}

html[data-a11y-contrast] #site-footer {
    border-top: 3px solid #000 !important;
}

/* Überschriften tragen im Original eine blaue Linie – dunkler, aber erhalten. */
html[data-a11y-contrast] :is(.body-wrapper, .offcanvas-menu) :is(.site-page-title-heading, .pb-title-heading, .c-title) {
    border-color: var(--a11y-blue-dark) !important;
}

/* Weiße Schrift auf Bildern im Karussell bekommt eine deckende Fläche. */
html[data-a11y-contrast] .pb-carousel-pro-text :is(h2, .pb-carousel-pro-content),
html[data-a11y-contrast] .pb-carousel-pro-content {
    background-color: #fff !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
}

/*
    Gut lesbare Schrift: Verdana ist auf allen Systemen vorhanden, hat weit
    auseinanderliegende Buchstaben und braucht keinen Download. Symbolschriften
    (Font Awesome) bleiben ausgenommen, sonst verschwinden die Icons.
*/
html[data-a11y-font] :is(.body-wrapper, .offcanvas-menu),
html[data-a11y-font] :is(.body-wrapper, .offcanvas-menu) :where(
    p, li, td, th, dt, dd, h1, h2, h3, h4, h5, h6, label, figcaption, blockquote, address,
    a:not([class*="fa-"]), span:not([class*="fa-"]), div:not([class*="fa-"]),
    button, input, select, textarea
) {
    font-family: Verdana, Tahoma, "DejaVu Sans", system-ui, sans-serif !important;
    letter-spacing: .02em !important;
    word-spacing: .06em !important;
}

html[data-a11y-font] :is(.body-wrapper, .offcanvas-menu) :where(p, li, dd, td, blockquote) {
    line-height: 1.7 !important;
}

/* Links hervorheben: unterstrichen, fett, Bildlinks mit Rahmen. */
html[data-a11y-links] :is(.body-wrapper, .offcanvas-menu) a:not(.btn):not(.pb-btn) {
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

/* Nur im Inhalt: Logo und Sprachflaggen im Kopf sind als Link erkennbar genug. */
html[data-a11y-links] #site-main-body a img {
    outline: 2px solid var(--a11y-blue);
    outline-offset: 2px;
}

/*
    Bewegung reduzieren. Ganz auf 0 zu setzen bricht Skripte, die auf das Ende
    einer Animation warten – deshalb eine sehr kurze Dauer statt keiner.
*/
html[data-a11y-motion] *,
html[data-a11y-motion] *::before,
html[data-a11y-motion] *::after {
    animation-duration: .001s !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001s !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
}

html[data-a11y-motion] .s-shine {
    display: none !important;
}

/*
    Große Bedienflächen: mindestens 44 × 44 Pixel für alles, was angeklickt
    wird, und mehr Abstand zwischen benachbarten Zielen.
*/
html[data-a11y-targets] :is(.body-wrapper, .offcanvas-menu) :is(.btn, .pb-btn, button, input[type="submit"]) {
    min-height: 44px;
    padding: 10px 18px !important;
}

html[data-a11y-targets] :is(#site-footer, #site-bottom, .offcanvas-menu, .site-dropdown-items) a {
    display: block;
    min-height: 44px;
    padding-top: 10px;
    padding-bottom: 10px;
    line-height: 24px;
}

html[data-a11y-targets] .site-megamenu-parent > li > a {
    padding-right: 18px;
    padding-left: 18px;
}

html[data-a11y-targets] .c-dropdown .c-dropdown-header {
    min-height: 44px;
    padding: 12px 14px;
}

html[data-a11y-targets] .lang-inline li {
    margin: 0 6px;
}

html[data-a11y-targets] .lang-inline a {
    display: inline-block;
    min-width: 44px;
    min-height: 44px;
    padding: 12px 8px;
}


/* ------------------------------------------------------------------
   4. Rücknahme der Modi für die Bedienleiste
   ------------------------------------------------------------------ */

/*
    Die Leiste steht im Markup in der Kopfleiste und damit innerhalb von
    .body-wrapper – dort greifen die Modi aus Abschnitt 3. Die Leiste sollen
    sie aber nicht verstellen: Sie ist das Bedienelement, mit dem man sie
    wieder abschaltet, und muss in jedem Zustand gleich aussehen und gleich
    groß bleiben.

    Der Abschnitt muss am Ende der Datei stehen bleiben: Die Regeln aus
    Abschnitt 3 sprechen die Schaltflächen über :is(...) genauso stark an,
    dann entscheidet die Reihenfolge.
*/

/*
    Kontrast: beide Schaltflächen bekommen dasselbe dunkle Blau. Ohne diese
    Regel träfe die allgemeine Regel für Schaltflächen nur die
    Barrierefreiheit (ein <button>), während die Datenschutz-Schaltfläche
    daneben – ein <div> – nur die schwarze Textfarbe für Fließtext abbekäme
    und unlesbar auf blauem Grund stünde.
*/
html[data-a11y-contrast] .a11y-rail button.a11y-toggle,
html[data-a11y-contrast] .a11y-rail .cc-revoke {
    background: var(--a11y-blue-dark) !important;
    color: #fff !important;
}

html[data-a11y-contrast] .a11y-rail button.a11y-toggle span,
html[data-a11y-contrast] .a11y-rail .cc-revoke span {
    color: #fff !important;
}

/* Der weiße Rand am Fensterrand bleibt; die Kontrastregel möchte ihn schwarz. */
html[data-a11y-contrast] .a11y-rail button.a11y-toggle {
    border: 2px solid #fff !important;
    border-left: 0 !important;
}

/*
    Große Bedienflächen: 44 px hoch ist die Leiste ohnehin. Der Innenabstand
    von 18 px an den Seiten würde das Symbol aus der schmalen Schaltfläche
    drücken und die Beschriftung Buchstabe für Buchstabe umbrechen.
*/
html[data-a11y-targets] .a11y-rail button.a11y-toggle {
    padding: 9px 5px !important;
}

/*
    In der Kopfleiste (siehe Abschnitt 2) ist die Schaltfläche flacher und hat
    keinen Rand – die Rücknahmen oben müssen dort dieselben Werte einsetzen.
*/
@media (max-width: 991px) {
    html[data-a11y-contrast] .a11y-rail button.a11y-toggle {
        border: 0 !important;
    }

    html[data-a11y-targets] .a11y-rail button.a11y-toggle {
        padding: 4px 4px !important;
    }
}

/*
    Vergrößerung auf schmalen Geräten

    Dort steht die Leiste in der Kopfleiste. Die skaliert mit, das Fenster
    nicht: Bei 130 % und 150 % reichen die verbleibenden Millimeter neben dem
    Hamburger-Symbol nicht mehr für die Beschriftungen. Dann bleiben die
    Symbole allein stehen.

    "font-size: 0" blendet die Beschriftung nur optisch aus – sie bleibt im
    Quelltext stehen und wird weiter vorgelesen. Genau darum steht sie nicht
    auf "display: none": Die Schaltflächen hätten sonst keinen Namen mehr.
*/
@media (max-width: 991px) {
    html[data-a11y-text="130"] .a11y-toggle,
    html[data-a11y-text="130"] .a11y-rail .cc-revoke,
    html[data-a11y-text="150"] .a11y-toggle,
    html[data-a11y-text="150"] .a11y-rail .cc-revoke {
        width: 44px;
        font-size: 0;
    }
}
