.kibis-header__actions { align-items: center; display: flex; gap: 14px; margin-left: auto; }
.kibis-accessibility { position: relative; }
.kibis-accessibility button { font: inherit; }
.kibis-accessibility__trigger { background: var(--kibis-white); border: 2px solid var(--kibis-white); border-radius: 8px; color: var(--kibis-dark); cursor: pointer; font-size: .9375rem; font-weight: 700; line-height: 1.25; min-height: 44px; padding: 8px 12px; }
.kibis-accessibility__trigger:hover, .kibis-accessibility__trigger[aria-expanded="true"] { background: var(--kibis-light-blue); border-color: var(--kibis-light-blue); }
.kibis-accessibility__panel { background: var(--kibis-white); border: 2px solid var(--kibis-light-blue); border-radius: var(--kibis-radius); box-shadow: 0 12px 28px rgba(0,0,0,.3); color: #111; padding: 20px; position: absolute; right: 0; top: calc(100% + 10px); width: min(360px, calc(100vw - 30px)); z-index: 120; }
.kibis-accessibility__panel[hidden] { display: none; }
.kibis-accessibility__panel-header { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 16px; }
.kibis-accessibility__title { color: var(--kibis-dark); font-size: 1.25rem; margin: 0; }
.kibis-accessibility__close { flex: 0 0 auto; }
.kibis-accessibility__group { border-top: 1px solid #b8c4d0; margin-top: 14px; padding-top: 14px; }
.kibis-accessibility__group > p { color: #111; font-weight: 700; margin: 0 0 8px; }
.kibis-accessibility__font-buttons, .kibis-accessibility__contrast-buttons, .kibis-accessibility__read-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.kibis-accessibility__panel button:not(.kibis-accessibility__trigger) { background: var(--kibis-dark); border: 2px solid var(--kibis-dark); border-radius: 6px; color: var(--kibis-white); cursor: pointer; font-size: .9375rem; font-weight: 700; min-height: 44px; padding: 8px 10px; }
.kibis-accessibility__panel button:hover, .kibis-accessibility__panel button[aria-pressed="true"] { background: var(--kibis-red); border-color: var(--kibis-red); }
.kibis-accessibility__panel button:disabled { cursor: not-allowed; opacity: .55; }
.kibis-accessibility__switch { align-items: center; color: #111; display: flex; font-weight: 700; gap: 10px; margin-top: 10px; min-height: 44px; }
.kibis-accessibility__switch input { accent-color: var(--kibis-red); block-size: 20px; inline-size: 20px; }
.kibis-accessibility__status { color: #222; font-size: .875rem; margin: 10px 0 0; }
.kibis-accessibility__reset { margin-top: 18px; width: 100%; }
.kibis-accessibility__statement { margin: 14px 0 0; text-align: center; }
.kibis-accessibility__statement a { color: #003e9b; font-size: .9375rem; font-weight: 700; }
.kibis-accessibility :is(button, input):focus-visible { outline: 3px solid var(--kibis-red); outline-offset: 3px; }

body.kibis-contrast-dark, body.kibis-contrast-dark :not(.kibis-accessibility):not(.kibis-accessibility *) { background-color: #111 !important; border-color: #fff !important; color: #fff !important; }
body.kibis-contrast-light, body.kibis-contrast-light :not(.kibis-accessibility):not(.kibis-accessibility *) { background-color: #fff !important; border-color: #111 !important; color: #111 !important; }
body.kibis-contrast-high, body.kibis-contrast-high :not(.kibis-accessibility):not(.kibis-accessibility *) { background-color: #000 !important; border-color: #fff !important; color: #fff !important; }
body:is(.kibis-contrast-dark, .kibis-contrast-high) :not(.kibis-accessibility):not(.kibis-accessibility *) a { color: #7cddff !important; text-decoration: underline !important; text-decoration-thickness: 2px !important; }
body.kibis-contrast-light :not(.kibis-accessibility):not(.kibis-accessibility *) a { color: #003e9b !important; text-decoration: underline !important; text-decoration-thickness: 2px !important; }
body:is(.kibis-contrast-dark, .kibis-contrast-light, .kibis-contrast-high) :focus-visible { outline: 4px solid #ffea00 !important; outline-offset: 3px; }
body:is(.kibis-contrast-dark, .kibis-contrast-light, .kibis-contrast-high) :not(.kibis-accessibility):not(.kibis-accessibility *)::before,
body:is(.kibis-contrast-dark, .kibis-contrast-light, .kibis-contrast-high) :not(.kibis-accessibility):not(.kibis-accessibility *)::after { border-color: currentColor !important; }
body.kibis-contrast-light :not(.kibis-accessibility):not(.kibis-accessibility *) { color: #111 !important; }
body.kibis-contrast-light :not(.kibis-accessibility):not(.kibis-accessibility *) :is(svg, path, use) { fill: currentColor !important; stroke: currentColor !important; }
body:is(.kibis-contrast-dark, .kibis-contrast-light, .kibis-contrast-high) :is(.kibis-audio-item, .kibis-section-title, .kibis-event, .kibis-event-date, .kibis-event-info, .directorist-card, .directorist-listing-single) { box-shadow: inset 0 0 0 2px currentColor !important; }
/* The report and appointment cards use gradients.  A background colour alone
   cannot replace those, leaving a blue edge visible in contrast modes. */
body:is(.kibis-contrast-dark, .kibis-contrast-light, .kibis-contrast-high) :is(.kibis-bericht-inhalt, .kibis-section-heading, .kibis-section-line, .kibis-audio-item, .kibis-event, .kibis-event-date, .kibis-event-info, .kibis-dashboard-card, .directorist-user-dashboard__contents, .directorist-user-dashboard__nav) { background-image: none !important; }
body.kibis-contrast-light :is(.kibis-event-title, .kibis-event-title a, .kibis-event-meta, .kibis-event-meta *, .kibis-audio-titel, .kibis-audio-titel *) { color: #111 !important; }
/* The homepage event styles use a highly specific, important shorthand.
   Override that rule explicitly so no blue card or white text remains. */
.home.page-id-2939.kibis-contrast-dark .kibis-home .em-events-list > .kibis-event { background: #111 !important; color: #fff !important; }
.home.page-id-2939.kibis-contrast-high .kibis-home .em-events-list > .kibis-event { background: #000 !important; color: #fff !important; }
.home.page-id-2939.kibis-contrast-light .kibis-home .em-events-list > .kibis-event { background: #fff !important; color: #111 !important; }
.home.page-id-2939.kibis-contrast-light .kibis-home :is(.kibis-event-date, .kibis-event-title a, .kibis-event-title a:visited, .kibis-event-meta, .kibis-event-meta *, .kibis-event-time, .kibis-event-location) { color: #111 !important; }
html.kibis-grayscale { filter: grayscale(1); }
html[data-kibis-font-scale] :is(h1, h2, h3, h4, h5, h6, p, a, button, label, td, th) { max-width: 100% !important; overflow-wrap: anywhere !important; white-space: normal !important; }
html[data-kibis-font-scale] :is(.wp-block-group, .wp-block-column, .directorist-listing-single, .directorist-card, .em-event, .em-event-content) { min-width: 0; }

@media (max-width: 1024px) { .kibis-header__actions { gap: 8px; } .kibis-accessibility__trigger { font-size: .875rem; } }
@media (max-width: 767px) { .kibis-header__inner { flex-wrap: wrap !important; gap: 8px; } .kibis-header__actions { flex: 1 1 100%; justify-content: flex-end; position: relative; } .kibis-primary-nav--classic { position: static; } .kibis-primary-nav--classic .kibis-primary-menu { left: 0; min-width: 0; right: 0; top: calc(100% + 12px); width: 100%; } .kibis-accessibility__trigger { min-height: 40px; } .kibis-accessibility__panel { max-height: calc(100vh - 30px); overflow-y: auto; position: fixed; right: 15px; top: 15px; width: calc(100vw - 30px); } }
@media (prefers-reduced-motion: reduce) { .kibis-accessibility *, .kibis-accessibility *::before, .kibis-accessibility *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
