
/* AccessKit – globale Seitenanpassungen */

html.af-text-90 { font-size: 90% !important; }
html.af-text-110 { font-size: 110% !important; }
html.af-text-125 { font-size: 125% !important; }
html.af-text-150 { font-size: 150% !important; }

html.af-readable-font,
html.af-readable-font *:not(svg):not(path) {
    font-family: Arial, Helvetica, sans-serif !important;
}

html.af-line-medium * { line-height: 1.8 !important; }
html.af-line-large * { line-height: 2.1 !important; }

html.af-letter-medium * { letter-spacing: 0.06em !important; }
html.af-letter-large * { letter-spacing: 0.12em !important; }

html.af-word-medium * { word-spacing: 0.12em !important; }
html.af-word-large * { word-spacing: 0.24em !important; }

html.af-left-align p,
html.af-left-align li,
html.af-left-align dd,
html.af-left-align blockquote,
html.af-left-align figcaption {
    text-align: left !important;
}

html.af-highlight-links a {
    text-decoration: underline !important;
    text-decoration-thickness: 3px !important;
    text-underline-offset: 4px !important;
    outline: 2px solid currentColor !important;
    outline-offset: 3px !important;
}

html.af-highlight-headings h1,
html.af-highlight-headings h2,
html.af-highlight-headings h3,
html.af-highlight-headings h4,
html.af-highlight-headings h5,
html.af-highlight-headings h6 {
    background: #ffef88 !important;
    color: #111 !important;
    outline: 3px solid #111 !important;
    padding: 0.12em 0.2em !important;
}

html.af-focus-strong a:focus-visible,
html.af-focus-strong button:focus-visible,
html.af-focus-strong input:focus-visible,
html.af-focus-strong select:focus-visible,
html.af-focus-strong textarea:focus-visible,
html.af-focus-strong [tabindex]:focus-visible {
    outline: 5px solid #ffbf00 !important;
    outline-offset: 5px !important;
    box-shadow: 0 0 0 3px #111 !important;
    border-radius: 4px !important;
}

html.af-grayscale body > *:not(#accesskit-widget-host) {
    filter: grayscale(1) !important;
}

html.af-invert body > *:not(#accesskit-widget-host) {
    filter: invert(1) hue-rotate(180deg) !important;
}

html.af-grayscale.af-invert body > *:not(#accesskit-widget-host) {
    filter: grayscale(1) invert(1) hue-rotate(180deg) !important;
}

/* Das Widget bleibt bei Darstellungsfiltern immer unverändert und bedienbar. */
#accesskit-widget-host {
    filter: none !important;
    isolation: isolate !important;
}

html.af-dark-contrast body {
    background-color: #000 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

html.af-dark-contrast body *:not(#accesskit-widget-host):not(#accesskit-widget-host *):not(img):not(video):not(svg):not(path) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border-color: #fff !important;
    text-shadow: none !important;
}

/* Nur echte Inhaltsflächen einfärben – transparente Layoutcontainer bleiben erhalten. */
html.af-dark-contrast main,
html.af-dark-contrast header,
html.af-dark-contrast footer,
html.af-dark-contrast section,
html.af-dark-contrast article,
html.af-dark-contrast aside,
html.af-dark-contrast nav,
html.af-dark-contrast form,
html.af-dark-contrast .menu-card,
html.af-dark-contrast .feature-card,
html.af-dark-contrast .contact-card,
html.af-dark-contrast .hours-card,
html.af-dark-contrast .map-card,
html.af-dark-contrast .reservation-form,
html.af-dark-contrast .story-card,
html.af-dark-contrast .info-panel {
    background-color: #000 !important;
    background-image: none !important;
}

html.af-dark-contrast a {
    color: #ffeb3b !important;
    -webkit-text-fill-color: #ffeb3b !important;
    text-decoration-color: #ffeb3b !important;
}

html.af-dark-contrast button,
html.af-dark-contrast input,
html.af-dark-contrast select,
html.af-dark-contrast textarea {
    background-color: #111 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: 2px solid #fff !important;
}

html.af-dark-contrast input::placeholder,
html.af-dark-contrast textarea::placeholder {
    color: #ddd !important;
    -webkit-text-fill-color: #ddd !important;
    opacity: 1 !important;
}

html.af-dark-contrast .button,
html.af-dark-contrast .nav-cta {
    background-color: #ffeb3b !important;
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
    border-color: #ffeb3b !important;
}

html.af-light-contrast body {
    background-color: #fff !important;
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
}

html.af-light-contrast body *:not(#accesskit-widget-host):not(#accesskit-widget-host *):not(img):not(video):not(svg):not(path) {
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
    border-color: #000 !important;
    text-shadow: none !important;
}

html.af-light-contrast main,
html.af-light-contrast header,
html.af-light-contrast footer,
html.af-light-contrast section,
html.af-light-contrast article,
html.af-light-contrast aside,
html.af-light-contrast nav,
html.af-light-contrast form,
html.af-light-contrast .menu-card,
html.af-light-contrast .feature-card,
html.af-light-contrast .contact-card,
html.af-light-contrast .hours-card,
html.af-light-contrast .map-card,
html.af-light-contrast .reservation-form,
html.af-light-contrast .story-card,
html.af-light-contrast .info-panel {
    background-color: #fff !important;
    background-image: none !important;
}

html.af-light-contrast a {
    color: #0000cc !important;
    -webkit-text-fill-color: #0000cc !important;
    text-decoration: underline !important;
}

html.af-light-contrast button,
html.af-light-contrast input,
html.af-light-contrast select,
html.af-light-contrast textarea {
    background-color: #fff !important;
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
    border: 2px solid #000 !important;
}

html.af-light-contrast .button,
html.af-light-contrast .nav-cta {
    background-color: #000 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border-color: #000 !important;
}

html.af-hide-images img,
html.af-hide-images picture,
html.af-hide-images video,
html.af-hide-images iframe,
html.af-hide-images canvas,
html.af-hide-images svg:not(#accesskit-widget-host svg),
html.af-hide-images [role="img"] {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Entfernt auch Hero- und Hintergrundbilder aus externen Stylesheets. */
html.af-hide-images body,
html.af-hide-images body *:not(#accesskit-widget-host):not(#accesskit-widget-host *) {
    background-image: none !important;
}

/* Bildflächen bleiben als neutrale Flächen erhalten, damit das Layout nicht springt. */
html.af-hide-images [role="img"],
html.af-hide-images picture,
html.af-hide-images img {
    background-color: #e8e8e8 !important;
}

html.af-stop-motion *,
html.af-stop-motion *::before,
html.af-stop-motion *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

html.af-big-cursor,
html.af-big-cursor body,
html.af-big-cursor body *:not(#accesskit-widget-host):not(#accesskit-widget-host *) {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M5 3 L5 38 L15 29 L22 45 L30 41 L23 26 L37 26 Z' fill='white' stroke='black' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 5 3, auto !important;
}

#af-reading-line {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    height: 4px;
    background: #ffbf00;
    box-shadow: 0 0 0 2px #111;
    z-index: 2147483646;
    pointer-events: none;
}

html.af-reading-line #af-reading-line {
    display: block;
}

@media (prefers-reduced-motion: reduce) {
    #accesskit-widget-host * {
        animation: none !important;
        transition: none !important;
    }
}


/* Farbschwäche-Unterstützung
   Die Filter werden nur auf den eigentlichen Seiteninhalt angewendet.
   AccessKit selbst bleibt unverändert und jederzeit bedienbar. */
html.af-color-protanopia body > *:not(#accesskit-widget-host) {
    filter: url("#af-filter-protanopia") !important;
}

html.af-color-deuteranopia body > *:not(#accesskit-widget-host) {
    filter: url("#af-filter-deuteranopia") !important;
}

html.af-color-tritanopia body > *:not(#accesskit-widget-host) {
    filter: url("#af-filter-tritanopia") !important;
}

/* Kombination mit Graustufen oder Invertierung wird bewusst vermieden,
   damit keine unvorhersehbaren, schwer lesbaren Darstellungen entstehen. */
