/* ============================================================
   JJ KFO – Barrierefreiheits-Panel, Gestaltung
   Handy = Bodenblatt (volle Breite, Griff, Abdunkelung)
   Tablet/Desktop = schwebende Karte ueber dem Knopf
   Tippziele durchgehend >= 44 px (WCAG 2.5.5)
   ============================================================ */

#jj-a11y-hinter{position:fixed;inset:0;background:rgba(28,40,37,.44);
-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2147483645;
opacity:0;pointer-events:none;transition:opacity .22s ease}
#jj-a11y-hinter[data-an="1"]{opacity:1;pointer-events:auto}

#jj-a11y-panel{position:fixed;inset:auto auto 23px 23px;
width:min(384px,calc(100vw - 32px));max-height:min(78vh,700px);
background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%);color:#343637;
border:1px solid rgba(95,128,119,.26);border-radius:20px;
box-shadow:0 24px 60px -14px rgba(28,45,41,.32),0 3px 12px rgba(28,45,41,.10);
z-index:2147483647;padding:0;display:none;overflow:hidden;
font-family:-apple-system,system-ui,"Segoe UI",Roboto,Arial,sans-serif;
font-size:15px;line-height:1.5;-webkit-tap-highlight-color:transparent}
#jj-a11y-panel[data-offen="1"]{display:flex;flex-direction:column}
#jj-a11y-panel *{box-sizing:border-box}
#jj-a11y-panel button{font-family:inherit}
#jj-a11y-panel button:focus-visible,#jj-a11y-panel a:focus-visible{outline:3px solid #26362f;outline-offset:2px}

/* ---- Kopf ---- */
#jj-a11y-kopf{flex:none;position:relative;display:flex;align-items:center;gap:.7rem;
padding:1rem 1.1rem .85rem;border-bottom:1px solid rgba(95,128,119,.16);
background:linear-gradient(180deg,rgba(119,156,148,.14),rgba(119,156,148,.02))}
#jj-a11y-kopf h2{margin:0;font-size:1.09rem;font-weight:700;color:#33544b;
letter-spacing:-.01em;flex:1 1 auto}
#jj-a11y-griff{display:none}
#jj-a11y-zu{flex:none;appearance:none;-webkit-appearance:none;
border:1px solid rgba(95,128,119,.32);background:#fff;color:#3c534c;
width:44px;height:44px;min-width:44px;border-radius:50%;font-size:21px;line-height:1;
cursor:pointer;display:flex;align-items:center;justify-content:center;
transition:background .15s ease,border-color .15s ease}
#jj-a11y-zu:hover,#jj-a11y-zu:focus-visible{background:rgba(119,156,148,.2);border-color:rgba(95,128,119,.6)}

/* ---- Koerper ---- */
#jj-a11y-koerper{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;
overscroll-behavior:contain;padding:.85rem 1.1rem .3rem}

#jj-a11y-panel .jja-gruppe{margin:0 0 .8rem;padding:.7rem .8rem .45rem;
background:rgba(119,156,148,.06);border:1px solid rgba(119,156,148,.16);border-radius:14px}
#jj-a11y-panel .jja-gruppe>h3{margin:0 0 .5rem;font-size:.71rem;text-transform:uppercase;
letter-spacing:.09em;font-weight:700;color:#5b7b72}

#jj-a11y-panel .jja-zeile{display:flex;align-items:center;justify-content:space-between;gap:.55rem .7rem;
padding:.4rem 0;border-bottom:1px solid rgba(150,180,172,.24);flex-wrap:wrap}
#jj-a11y-panel .jja-zeile:last-child{border-bottom:none}
#jj-a11y-panel .jja-name{font-weight:600;color:#3f5f57;font-size:.93rem;flex:1 1 7em}

/* ---- Stufen ---- */
#jj-a11y-panel .jja-stufen{display:flex;gap:.3rem;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
#jj-a11y-panel .jja-stufe{appearance:none;-webkit-appearance:none;border:1px solid rgba(95,128,119,.3);
background:#fff!important;color:#4a655d!important;min-width:44px;min-height:40px;padding:0 .5rem;border-radius:10px;
font-size:.84rem;font-weight:600;cursor:pointer;
transition:background .15s ease,border-color .15s ease,color .15s ease}
#jj-a11y-panel .jja-stufe:hover{background:rgba(119,156,148,.14)}
#jj-a11y-panel .jja-stufe[aria-pressed="true"]{background:#5F8077!important;border-color:#5F8077;color:#fff!important;
box-shadow:0 2px 7px rgba(95,128,119,.34)}

/* ---- Schalter als Kippschalter ---- */
#jj-a11y-panel .jja-schalter{appearance:none;-webkit-appearance:none;border:0;background:none;
padding:.2rem 0 .2rem .6rem;margin:0;cursor:pointer;flex:0 0 auto;
display:flex;align-items:center;min-height:44px}
#jj-a11y-panel .jja-track{display:block;position:relative;width:52px;height:30px;border-radius:999px;
background:#dde5e2;border:1px solid rgba(95,128,119,.28);
transition:background .18s ease,border-color .18s ease}
#jj-a11y-panel .jja-knopf{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;
background:#fff;box-shadow:0 1px 3px rgba(28,45,41,.32);transition:transform .18s ease}
#jj-a11y-panel .jja-schalter[aria-pressed="true"] .jja-track{background:#5F8077;border-color:#5F8077}
#jj-a11y-panel .jja-schalter[aria-pressed="true"] .jja-knopf{transform:translateX(22px)}
#jj-a11y-panel .jja-zustand{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- Seitenstruktur ---- */
#jj-a11y-panel .jja-hilfe{margin:.15rem 0 .35rem;font-size:.79rem;color:#6b7a75;line-height:1.45}
#jj-a11y-struktur{margin:.2rem 0 .25rem;padding:0;list-style:none;max-height:196px;overflow:auto;
overscroll-behavior:contain}
#jj-a11y-struktur li{margin:0}
#jj-a11y-struktur a{display:flex;align-items:center;min-height:40px;padding:.35rem .4rem;
color:#43625a;text-decoration:none;font-size:.87rem;border-radius:8px;
border-bottom:1px solid rgba(150,180,172,.2)}
#jj-a11y-struktur a:hover,#jj-a11y-struktur a:focus-visible{background:rgba(119,156,148,.16)}
#jj-a11y-struktur .lvl3{padding-left:1.1rem}
#jj-a11y-struktur .lvl4{padding-left:2.1rem}
#jj-a11y-struktur .jja-leer{font-size:.84rem;color:#6b7a75;padding:.4rem}

/* ---- Fuss ---- */
#jj-a11y-fuss{flex:none;padding:.8rem 1.1rem calc(.9rem + env(safe-area-inset-bottom,0px));
border-top:1px solid rgba(95,128,119,.16);
background:linear-gradient(0deg,rgba(119,156,148,.11),rgba(255,255,255,.55))}
#jj-a11y-reset{appearance:none;-webkit-appearance:none;width:100%;
border:1px solid rgba(95,128,119,.42);background:#fff;color:#3c534c;
min-height:46px;border-radius:12px;font-size:.92rem;font-weight:700;cursor:pointer;
transition:background .15s ease}
#jj-a11y-reset:hover,#jj-a11y-reset:focus-visible{background:rgba(119,156,148,.18)}
#jj-a11y-hinweis{margin:.55rem 0 0;font-size:.735rem;line-height:1.45;color:#6b7a75;text-align:center}

/* ---- Handy: Bodenblatt ---- */
@media(max-width:640px){
  #jj-a11y-kopf{touch-action:none;cursor:grab}
  #jj-a11y-kopf:active{cursor:grabbing}
  #jj-a11y-panel{left:0;right:0;bottom:0;width:auto;
  border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0;
  max-height:min(86vh,calc(100vh - 40px));
  box-shadow:0 -8px 40px rgba(28,45,41,.28)}
  #jj-a11y-griff{display:block;position:absolute;top:8px;left:50%;transform:translateX(-50%);
  width:44px;height:5px;border-radius:99px;background:rgba(95,128,119,.34)}
  #jj-a11y-kopf{padding-top:1.4rem}
  #jj-a11y-panel .jja-zeile{flex-direction:column;align-items:stretch;gap:.4rem;padding:.55rem 0}
  /* In Spaltenrichtung wuerde flex-grow das Etikett in die Hoehe ziehen. */
  #jj-a11y-panel .jja-zeile .jja-name{flex:0 0 auto}
  #jj-a11y-panel .jja-zeile.jja-schalterzeile{flex-direction:row;align-items:center}
  #jj-a11y-panel .jja-schalterzeile .jja-name{flex:1 1 auto}
  #jj-a11y-panel .jja-stufen{justify-content:stretch;width:100%}
  #jj-a11y-panel .jja-stufe{flex:1 1 0;min-width:0;padding:0 .3rem}
  #jj-a11y-koerper{padding-left:.95rem;padding-right:.95rem}
  #jj-a11y-fuss{padding-left:.95rem;padding-right:.95rem}
}

/* ---- Tablet ---- */
@media(min-width:641px) and (max-width:1024px){
  #jj-a11y-panel{width:min(430px,calc(100vw - 48px))}
}

/* ---- flache Fenster (Querformat) ---- */
@media(max-height:540px){
  #jj-a11y-panel{max-height:calc(100vh - 16px)}
  #jj-a11y-panel .jja-gruppe{margin-bottom:.55rem;padding:.5rem .7rem .3rem}
  #jj-a11y-struktur{max-height:120px}
}

@media(prefers-reduced-motion:no-preference){
  #jj-a11y-panel[data-offen="1"]{animation:jja-auf .2s ease-out}
  @keyframes jja-auf{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}

/* ============ Wirkungen auf die Seite ============
   [data-jja-ui] kennzeichnet unsere eigenen Overlays (Abdunkelung, Lesemaske).
   Sie muessen von Kontrast, Graustufen und Bilderausblendung ausgenommen bleiben. */
html.jja-schrift body,html.jja-schrift body *:not(#jj-a11y-panel):not(#jj-a11y-panel *):not(#jj-a11y-fab):not(#jj-a11y-fab *)
{font-family:Arial,Helvetica,sans-serif!important;letter-spacing:.012em!important}
html.jja-grau{filter:grayscale(1)}
html.jja-bilder img:not(#jj-a11y-panel img),html.jja-bilder picture,html.jja-bilder svg:not(#jj-a11y-panel svg):not(#jj-a11y-fab svg)
{visibility:hidden!important}
html.jja-anim *,html.jja-anim *::before,html.jja-anim *::after
{animation-play-state:paused!important;animation-duration:0s!important;transition:none!important;scroll-behavior:auto!important}
html.jja-links a[href]:not(#jj-a11y-panel a):not(#jj-a11y-fab)
{background:#ff0!important;color:#000!important;text-decoration:underline!important;text-underline-offset:2px!important;
box-shadow:none!important;-webkit-text-fill-color:#000!important}
html.jja-fokus *:focus-visible{outline:4px solid #d24a00!important;outline-offset:3px!important}
html.jja-links_a body *:not(#jj-a11y-panel):not(#jj-a11y-panel *){text-align:left!important}
html.jja-rechts_a body *:not(#jj-a11y-panel):not(#jj-a11y-panel *){text-align:right!important}
#jj-a11y-maske-oben,#jj-a11y-maske-unten{position:fixed;left:0;right:0;background:rgba(0,0,0,.62)!important;
z-index:2147483640;pointer-events:none}
#jj-a11y-maske-oben{top:0}#jj-a11y-maske-unten{bottom:0}
html.jja-k-dunkel body,html.jja-k-dunkel body *:not(#jj-a11y-panel):not(#jj-a11y-panel *):not(#jj-a11y-fab):not(#jj-a11y-fab *):not([data-jja-ui])
{background-color:#18181b!important;color:#fafafa!important;border-color:#4a4a52!important}
html.jja-k-dunkel a[href]:not(#jj-a11y-panel a){color:#8fd3c3!important}
html.jja-k-hell body,html.jja-k-hell body *:not(#jj-a11y-panel):not(#jj-a11y-panel *):not(#jj-a11y-fab):not(#jj-a11y-fab *):not([data-jja-ui])
{background-color:#fffdf7!important;color:#1a1a1a!important}
html.jja-k-hell a[href]:not(#jj-a11y-panel a){color:#004a99!important}
html.jja-k-hoch body,html.jja-k-hoch body *:not(#jj-a11y-panel):not(#jj-a11y-panel *):not(#jj-a11y-fab):not(#jj-a11y-fab *):not([data-jja-ui])
{background-color:#000!important;color:#fff!important;border-color:#fff!important}
html.jja-k-hoch a[href]:not(#jj-a11y-panel a){color:#ff0!important;text-decoration:underline!important}
html.jja-k-dunkel img,html.jja-k-hoch img{opacity:.85}

/* ---------- Marker am Knopf ----------
   Zeigt, dass mindestens eine Einstellung von der Grundstellung abweicht.
   Ohne diesen Hinweis sucht man den Grund fuer eine veraenderte Seite in der
   Website statt im eigenen Browser - genau das ist am 09.08.2026 passiert.
   Der Knopf steht auf position:fixed; das reicht als Bezugspunkt fuer das
   absolut gesetzte Pseudoelement, und overflow ist dort sichtbar. */
#jj-a11y-fab.jja-hat-einstellung::after{
content:"";position:absolute;top:0;right:0;width:13px;height:13px;
border-radius:50%;background:#B4551E;border:2px solid #fff;
box-shadow:0 1px 3px rgba(0,0,0,.35);pointer-events:none}