/* Accessibility corrections for the existing Divi frontend. */

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus,
[role="button"]:focus {
    outline: 3px solid #005b63 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px #fbb03b !important;
}

/* Keep the strong focus indicator for keyboard navigation, but do not draw
 * it after an ordinary mouse/pointer click in browsers with :focus-visible.
 * Older browsers ignore this rule and retain the safe visible-focus fallback. */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

html.istb-pointer-navigation a:focus,
html.istb-pointer-navigation button:focus,
html.istb-pointer-navigation input:focus,
html.istb-pointer-navigation select:focus,
html.istb-pointer-navigation textarea:focus,
html.istb-pointer-navigation [tabindex]:focus,
html.istb-pointer-navigation [role="button"]:focus {
    outline: none !important;
    box-shadow: none !important;
}

html.istb-keyboard-navigation a:focus,
html.istb-keyboard-navigation button:focus,
html.istb-keyboard-navigation input:focus,
html.istb-keyboard-navigation select:focus,
html.istb-keyboard-navigation textarea:focus,
html.istb-keyboard-navigation [tabindex]:focus,
html.istb-keyboard-navigation [role="button"]:focus {
    outline: 3px solid #005b63 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px #fbb03b !important;
}

/* Divi and Cookie Notice contain ID-scoped !important focus declarations.
 * Repeat the existing scope ID so the selected input modality wins without
 * weakening the no-script visible-focus fallback above. */
html.istb-pointer-navigation #page-container#page-container *:focus,
html.istb-pointer-navigation #cookie-notice#cookie-notice *:focus {
    outline: none !important;
    box-shadow: none !important;
    transition: none !important;
}

html.istb-keyboard-navigation #page-container#page-container *:focus,
html.istb-keyboard-navigation #cookie-notice#cookie-notice *:focus {
    outline: 3px solid #005b63 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px #fbb03b !important;
    transition: none !important;
}

.istb-skip-link {
    position: fixed;
    z-index: 100000;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.75rem 1rem;
    color: #ffffff !important;
    background: #006589;
    font-weight: 700;
    text-decoration: underline;
    transform: translateY(-200%);
}

.istb-skip-link:focus,
.istb-skip-link:focus-visible {
    color: #ffffff !important;
    transform: translateY(0);
}

#main-content .et_pb_text a:not(.et_pb_button),
#main-content .et_pb_blurb_description a:not(.et_pb_button),
#main-content .et_pb_promo_description a:not(.et_pb_button),
#main-content .et_pb_code a:not(.et_pb_button),
#main-content .et_pb_portfolio_item a:not(.et_pb_button),
#main-content .gform_wrapper a:not(.et_pb_button) {
    color: #006589 !important;
    text-decoration: underline;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.15em;
}

#main-content .bleu,
#main-content .istb-eyebrow,
#main-content .event-eyebrow,
#main-content .event__eyebrow,
#main-content .istb-event-eyebrow {
    color: #006589 !important;
}

body #page-container #main-content a.et_pb_button,
body #page-container #main-content button.et_pb_button,
body #page-container #main-content input[type="submit"].et_pb_button,
body #page-container #main-content .et_pb_bg_layout_light .et_pb_button,
body #page-container #main-content .gform_wrapper input.gform_button[type="submit"],
body #page-container #main-content .gform_wrapper input[type="submit"] {
    color: #ffffff !important;
    background-color: #006589 !important;
    border-color: #006589 !important;
}

#main-content .et_pb_blurb.et_pb_bg_layout_dark,
#main-content .et_pb_promo.et_pb_bg_layout_dark,
#main-content .et_pb_cta.et_pb_bg_layout_dark {
    color: #ffffff !important;
    background-color: #006589 !important;
}

#main-content .et_pb_blurb.et_pb_bg_layout_dark a:not(.et_pb_button),
#main-content .et_pb_promo.et_pb_bg_layout_dark a:not(.et_pb_button),
#main-content .et_pb_cta.et_pb_bg_layout_dark a:not(.et_pb_button) {
    color: #ffffff !important;
}

#cookie-notice,
.cookie-notice {
    color: #004f68 !important;
    background-color: #fbb03b !important;
}

#cookie-notice #cn-notice-text,
#cookie-notice .cn-text-container,
#cookie-notice .cn-button,
.cookie-notice .cn-text-container,
.cookie-notice .cn-button,
.cookie-notice-container a {
    color: #004f68 !important;
}

html body #cookie-notice a.cn-button#cn-accept-cookie,
html body #cookie-notice a.cn-button#cn-more-info {
    color: #004f68 !important;
    background-color: #fbb03b !important;
}

#cookie-notice a,
.cookie-notice a,
.cookie-notice-container a {
    text-decoration: underline;
}

#main-footer,
#footer-info,
#footer-info a,
.et-l--footer,
.et-l--footer .et_pb_section {
    color: #b5b5b5 !important;
    background-color: #171717;
}

#main-footer a,
.et-l--footer a {
    color: #b5b5b5 !important;
}

.gform_wrapper .ginput_counter,
.gform_wrapper .gfield_description.ginput_counter,
.gfield .ginput_counter {
    color: #5f6970 !important;
    background-color: #e7f2f6;
}

.privacy-policy-link,
.privacy-link,
.gform_wrapper a {
    color: #006589 !important;
    text-decoration: underline;
}

.fachberater-filter.is-active,
.fachberater-filter[aria-pressed="true"],
.fachberaterfilter .active,
#main-content a[data-category-slug].active {
    color: #005b63 !important;
    background-color: #f9f9f9 !important;
    border-color: #005b63 !important;
}
