
:root {
    --fontgrey: #757575;
    --fontdarkgrey: #292929;
    --bggrey: #efefef;
    --bgdarkgrey: #a1a1a1;
    --bgdarkgrey2: #535353;
    --color1: #64c4d8;        /* dekorativ */
    --color1-dark: #345C97;   /* accessible */
    --color2: #002540;
}

html, body {
    font-family: 'Open Sans', sans-serif;
}

h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
    font-family: 'Merriweather', sans-serif;
}

h1, .h1 {
    margin-bottom: 1.5rem;
}
h2, .h2 {
    margin-bottom: 1.3rem;
    font-size: 1.6rem;
}
h3, .h3 {
    margin-bottom: 1.1rem;
    font-size: 1.3rem;
}

h2.akkheader, h3.akkheader {
    margin-bottom: 0;
}

.fontbig {
    font-size: 1.6rem;
}

a {
    color: var(--fontdarkgrey);
    text-decoration: underline;
}



a.withicon:after {
    font-family: bootstrap-icons !important;
    display: inline-block;
    content: "\F1C5";
    content: "\F1C5" / ""; /* Alternativtext leer: dekorativ */
    margin-left: 0.3rem;
    font-size: 0.8rem;
    color: var(--color1);
    font-weight: bold;
}

::marker {
    color: var(--color1);
}

.breadcrumb-item.active {
    color: var(--color1-dark);
}

textarea:focus-visible,
a:focus-visible,
input:focus-visible,
button:focus-visible,
.btn:focus-visible,
.btnrte:focus-visible,
.nav-link:focus-visible,
.dropdown-item:focus-visible {
    outline: 3px solid var(--color1-dark);
    outline-offset: 3px;
    box-shadow: 0 0 0 2px #fff;
    border-radius: 2px;
}

.navbar-nav .dropdown-menu {
    position: static;
}


.video-embed {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 0;
    height: 0;
    overflow: hidden;
}

.video-embed iframe, .video-embed video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.navbar-nav .dropdown-menu {
    border-radius: 0;
}

.dropdown-submenu {
    position: relative;
}

.dropdown-submenu > .dropdown-item {
    position: relative;
    padding-right: 2.75rem;
}

.dropdown-submenu > .dropdown-item::after {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.2rem;
    transform: rotate(-90deg);
}

.dropdown-submenu > .dropdown-menu {
    margin: 0;
}

.dropdown-item:hover {
    background-color: var(--color1);
    color: var(--fontdarkgrey);
}

/* Aktiver Eintrag im Hauptmenü: dunkles Seitenblau statt Bootstrap-Blau */
#mainnav .nav-link.active,
#mainnav .dropdown-item.active,
#mainnav .dropdown-item:active {
    background-color: var(--color2);
    color: #fff;
}

@media (min-width: 1200px) {
    .navbar-nav .dropdown-menu {
        position: absolute;
    }

    .dropdown-submenu > .dropdown-menu {
        top: 0;
        left: 100%;
        min-width: 16rem;
    }

    .dropdown-submenu:hover > .dropdown-menu,
    .dropdown-submenu:focus-within > .dropdown-menu {
        display: block;
    }
}

@media (max-width: 1199.98px) {
    .dropdown-submenu > .dropdown-menu {
        padding-left: 1rem;
    }

    .dropdown-submenu > .dropdown-item::after {
        transform: none;
    }
}


ul.ce-bullets li, .bggrey ul:not(.pagination, .list-unstyled, .toolsmenu) li {
    list-style: none;
    margin-bottom: 0.5rem;
    margin-left: 1.2rem;
}

ul.ce-bullets li:before, .bggrey ul:not(.pagination, .ce-uploads, .list-unstyled, .toolsmenu) li:before {
    font-family: bootstrap-icons !important;
    content: "\F633";
    content: "\F633" / ""; /* Alternativtext leer: dekorativ */
    margin-right: 0.4rem;
    font-size: 1rem;
    color: var(--color1);
    font-weight: bold;
    margin-left: -1.4rem;
}

nav a {
    text-decoration: none;
}

a:hover {
    color: var(--color2);
}

a.btnrte:hover {
    background-color: white;
    color: var(--color1-dark);
    border: 5px solid var(--color1-dark);
}

.fontnav {
    font-family: 'Titillium Web', sans-serif;
}

.fontheader {
    font-family: 'Merriweather', sans-serif;
}

.bggrey {
    background-color: var(--bggrey);
}

.bgtuerkis {
    background-color: var(--color1);
}

.bgwhite {
   background-color: white;
}

.iconcontainer {
    position: relative;
}

.col-tool a {
    text-decoration: none;
}

.linkicon {
    color:#FFF;
    position: absolute;
    right: 20px;
    bottom: 20px;
}

.linkicon svg {
    width: 1.8rem;
    height: 1.8rem;
}

img.iconpause {
    width: 2rem !important;
}

.clicklink {
    cursor: pointer;
}

button#searchbtn {
    border: 0;
    background: transparent;
}

#searcharea input {
    border:0;
    border-bottom:1px solid var(--fontgrey);
    color: var(--fontgrey);
    width:80%;
}

#searcharea input::placeholder {
    color: var(--color1-dark);
    opacity: 1;
}

#searcharea input::-webkit-input-placeholder {
    color: var(--color1-dark);
}

#searcharea input::-moz-placeholder {
    color: var(--color1-dark);
    opacity: 1;
}

#searcharea input:-ms-input-placeholder {
    color: var(--color1-dark);
}

ul.ce-uploads {
    padding-left: 0;
}

.ce-uploads li {
    border-bottom: 1px solid var(--color1);
    margin-bottom: 0.7rem;
    padding: 0.7rem 0.5rem;
    list-style: none;
}

.bi-search {
    fill: var(--color1-dark);
    height: 24px;
    width: 24px;
}

.bi-pause-btn::before, .bi-play-btn::before {
    vertical-align: -0.35em;
    font-size: 24px;
}


.klaro .cookie-modal .cm-list-description, .klaro .context-notice .cm-list-description, .klaro .cookie-notice .cm-list-description {
    color: var(--fontdarkgrey) !important;
}

.klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-service span.cm-opt-out, .klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-service span.cm-required, .klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-purpose span.cm-opt-out, .klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-purpose span.cm-required, .klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-service span.cm-opt-out, .klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-service span.cm-required, .klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-purpose span.cm-opt-out, .klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-purpose span.cm-required {
    color: var(--fontdarkgrey) !important;
}



.bi-download::before {
    font-size: 1.5rem;
    font-weight: bold !important;
    margin-right: 1rem;
}

.bi-chevron-down, .bi-chevron-right {
    color: var(--color1);

}
.bi-chevron-down::before, .bi-chevron-right::before {
    font-size: 2rem;
    margin-right: 2rem;
}

h3 .bi-chevron-down::before, h3 .bi-chevron-right::before {
    font-size: 1.3rem;
    margin-right: 0.5rem;
}

.border-bottom {
    border-bottom: 2px solid var(--color1) !important;
}

.akkordeon {
    margin-left: 3.5rem;
    margin-right: 3.5rem;
}

.accordion-button {
    font-size: inherit;
    background-color: var(--bggrey);
    color: var(--color2);
}

#forderungenAccordion .accordion-button {
    font-size: inherit;
    background-color: var(--color1-dark);
    color: white;
}

.accordion-button:focus {
    z-index: 3;
    border-color: inherit;
    box-shadow: none;
}

/* Fokus sichtbar (Bericht #40): Bootstrap entfernt sonst den Rahmen */
.accordion-button:focus-visible,
button.akkheader:focus-visible {
    outline: 3px solid var(--color1-dark) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff !important;
}
.accordion-button:not(.collapsed):focus-visible,
.frame-accordion-funding .accordion-button:focus-visible,
.accordion-funding .accordion-button:focus-visible,
#forderungenAccordion .accordion-button:focus-visible {
    outline: 3px solid var(--color2) !important;
    outline-offset: 2px;
    box-shadow: inset 0 0 0 3px #fff !important;
}

.accordion-button:not(.collapsed) {
    box-shadow: none;
    background-color: var(--color1-dark);
    color: white;
}

.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    transform: rotate(-180deg);
}

#forderungenAccordion .accordion-button::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

#forderungenAccordion .accordion-body {
    background-color: var(--color1);
}

/* Optional accordion design selected through the content element's frame field.
   Both class variants are supported because project-specific Fluid layouts may
   output frame_class either raw or with TYPO3's standard "frame-" prefix. */
.frame-accordion-funding .accordion-item,
.accordion-funding .accordion-item {
    margin-bottom: 1rem !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden;
    border: 1px solid var(--color1-dark) !important;
    border-radius: 0.25rem;
}

.frame-accordion-funding .accordion-header,
.accordion-funding .accordion-header {
    margin-bottom: 0;
}

.frame-accordion-funding .accordion-button,
.accordion-funding .accordion-button {
    background-color: var(--color1-dark) !important;
    color: white !important;
    padding: 1rem 1.25rem;
    border: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.25;
}

.frame-accordion-funding .accordion-button::after,
.accordion-funding .accordion-button::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.frame-accordion-funding .accordion-body,
.accordion-funding .accordion-body {
    background-color: var(--color1) !important;
    color: var(--color2);
    margin-top: 0 !important;
    padding: 1.5rem !important;
    border: 0 !important;
}

.frame-accordion-funding .accordion-body > :last-child,
.accordion-funding .accordion-body > :last-child {
    margin-bottom: 0;
}

.frame-accordion-funding .accordion-body .frame,
.frame-accordion-funding .accordion-body .frame-inner,
.accordion-funding .accordion-body .frame,
.accordion-funding .accordion-body .frame-inner {
    background-color: transparent !important;
}

.akkordeon h2, .akkordeon h3 {
    cursor: pointer;
}



.akktext {
    margin-top: 2rem;
}

.accordion-item {
    border: 0;
}

.section-bg {
    background-color: var(--bggrey);
}

.btn-primary {
    border-radius: 0;
    background-color: var(--color2);
    color: white;
    border:0;
}

.btn-primary:hover {
    background-color: var(--fontdarkgrey);
    color: white;
}

.btn-check:focus+.btn-primary, .btn-primary:focus {
    color: #fff;
    background-color: var(--fontdarkgrey);
    border-color: var(--fontdarkgrey);
    box-shadow: 0 0 0 0.25rem rgb(100 196 216 / 50%);
}

.page-link:focus {
    z-index: 3;
    color: var(--fontdarkgrey);
    background-color: white;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgb(100 196 216 / 50%);
}




#mainnav .nav-item {
    text-transform: uppercase;
}

#mainnav .nav-item > .nav-link:hover {
    background-color: var(--color1-dark);
    color:white !important;
}

#mainnav .navbar-nav .nav-item > .nav-link {
    font-size:1.5rem;
    color: var(--fontdarkgrey);
    font-family: 'Titillium Web', sans-serif;
}


#mainnav .navbar-nav .nav-item:first-child .nav-link {
    /*padding-left: 0;*/
}
#mainnav .navbar-nav {
    margin-left: -1rem;
}


.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-toggler {
    color: rgba(0,0,0,.55);
    border-color: rgba(0,0,0,.1);
}

.sliderouter {
    margin-bottom:2rem;
}

.carousel.slide:not(.content) {
    background-image:linear-gradient(90deg, var(--color1) 25%, white 25%);
    padding:24px;
    padding-right:0;
}

.carousel.slide.content .carousel-inner {
    padding-left:5rem;
    padding-right:5rem;
}

.carousel.slide.content .carousel-control-prev {
    justify-content: left;
    padding-left: 1rem;
    color: var(--color1-dark); /* Kontrast >= 3:1 (Bericht #29) */
    opacity: 1;
    width:inherit;
    background-color: var(--bggrey);
}

.carousel.slide.content .carousel-control-next {
    justify-content: right;
    padding-right: 1rem;
    color: var(--color1-dark);
    opacity: 1;
    width:inherit;
    background-color: var(--bggrey);
}

.carousel.slide.content .bi::before {
 font-size:3rem;
}

.carousel.slide.content .bi-chevron-right::before {
    margin-right: 0;
}

.carousel.slide.content .playpause .bi::before {
    font-size: 2rem;
    color: var(--color1-dark);
}


.headerimage figure.image {
    margin:0;
}

.headerimage img.img-fluid  {
    width: 100%;
}


.breadcrumb-item+.breadcrumb-item::before {
    color: var(--fontdarkgrey);
    content: "|";
    content: "|" / ""; /* Alternativtext leer: dekorativ */
}


.carousel-indicators [data-bs-target] {
    background-color: var(--fontdarkgrey);
    width:50px;
    height:10px;
}

.carousel-indicators {
    margin-bottom: 0;
    bottom:-40px;
}

.carousel-caption {
    top: 20%;
}

.carousel.slide:not(.content) .carousel-item:not(.gallery) {
    max-height: 500px;
}

.carousel.slide.content img {
    width: 100%;
    height: auto;
}

.newsbox .item .btn-wrap {
    position: absolute;
    bottom: 0.5rem;
}

.newsbox .item {
    position: relative;
    border: 1px solid var(--color1);

}

.news-list-textblock {
    margin-bottom: 4rem;
}

.news-img-wrap {
    height: 250px;
    background-color: var(--color1);
}

.news-img-wrap img {
    max-height: 100%;
    width: auto;
}

.page-link {
    color: var(--fontdarkgrey);
}

.page-item.active .page-link {
    color: #fff;
    background-color: var(--color2);
    border-color: var(--color2);
}

legend {
    font-size: 1.2rem;
    margin-top: 3rem;
    margin-bottom: 2rem;
    font-family: 'Merriweather', sans-serif;
    border-bottom: 1px solid var(--color1);
}

.powermail_fieldwrap.layout2, .powermail_fieldset.layout2 .powermail_fieldwrap {
    width: 100%;
}

.col-single-events {
    padding: 1.5rem 1.5rem;
}

.col-single-events:nth-child(even) {
    background-color: var(--bggrey);
}

.datecol {
    min-width:5rem;
}

.section-navigation {
    margin: -1rem 0 2.5rem;
}

/* Bereichsseiten verwenden die separate Navigation unter dem Header. */
.navbar-nav > .section-navigation-root > .dropdown-menu {
    display: none !important;
}

/* Bereichswurzeln können auch auf der zweiten Hauptmenüebene liegen. */
.navbar-nav .dropdown-menu > .section-navigation-root > .dropdown-menu {
    display: none !important;
}

.section-navigation__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
    border-bottom: 2px solid var(--color2);
}

.section-navigation__item {
    margin: 0 0 -2px;
    min-width: 0;
}

.section-navigation__link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    height: 100%;
    padding: .75rem 1.2rem;
    border: 2px solid #d8e0e5;
    border-bottom-color: var(--color2);
    background: #fff;
    color: var(--color2);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-decoration: none;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

@media (min-width: 1200px) {
    .section-navigation__list {
        grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    }
}

.section-navigation__link:hover,
.section-navigation__link:focus-visible {
    border-color: var(--color1-dark);
    border-bottom-color: var(--color2);
    background: #eef7f8;
    color: var(--color2);
    box-shadow: 0 .2rem .65rem rgb(0 37 64 / 12%);
    text-decoration: none;
}

.section-navigation__item.is-active .section-navigation__link,
.section-navigation__item.is-current .section-navigation__link {
    border-color: var(--color2);
    background: var(--color2);
    color: #fff;
}

@media (max-width: 767px) {
    .section-navigation {
        margin: -.75rem 0 2rem;
    }

    .section-navigation__list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        border-bottom: 0;
    }

    .section-navigation__item {
        margin: 0;
    }

    .section-navigation__link {
        height: 100%;
        min-height: 3.5rem;
        padding: .7rem .8rem;
        border-bottom-color: #d8e0e5;
        font-size: .95rem;
    }
}

@media (max-width: 420px) {
    .section-navigation__list {
        grid-template-columns: 1fr;
    }
}

.btnrte {
    display: inline-block;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
    border-radius: 0;
    background-color: var(--color2);
    color: white;
    border: 5px solid var(--color2);
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
}

#language_menu a, #language_menu,
.language-menu a, .language-menu {
    text-transform: uppercase;
    text-decoration: none;
    font-size: 1.2rem;
}

.col-tool.active .tools-text {
    color:var(--color2);

}
.toolsmenu.layout2 .col-tool.active img {
    filter: invert(98%) sepia(3%) saturate(14%) hue-rotate(268deg) brightness(108%) contrast(97%);

}

.toolsmenu-mobile .col-tool > div {
    border: 1px solid #d8e0e5;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.toolsmenu-mobile .col-tool a {
    display: flex;
    min-height: 8.5rem;
    height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--color2);
    font-weight: 600;
}

.toolsmenu-mobile .icon-tools {
    width: auto;
    max-width: 4.75rem;
    max-height: 4.75rem;
}

.toolsmenu-mobile .tools-text {
    margin-top: .65rem !important;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.toolsmenu-mobile .col-tool:not(.active) a:hover {
    color: var(--color2);
}

.toolsmenu-mobile .col-tool:not(.active) > div:hover {
    border-color: var(--color1-dark);
    box-shadow: 0 .25rem .75rem rgb(0 37 64 / 12%);
    transform: translateY(-2px);
}

.toolsmenu-mobile .col-tool.active > div {
    background-color: var(--color1);
    border-color: var(--color1);
}

.headerimage {
    position: relative;
}

.headerimage .textblock {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    color: var(--color2);
    line-height: 1.15;
}

.headerimage .textblock .headerimage-title {
    max-width: 760px;
    margin: 0;
    color: var(--color2);
    font-size: clamp(1.6rem, 4vw, 3.8rem);
    line-height: 1.15;
    hyphens: auto;
    overflow-wrap: break-word;
}

.headerimage .textblock .headerimage-subtitle {
    max-width: 760px;
    margin: .35rem 0 0;
    color: var(--color2);
    font-size: clamp(1.15rem, 2.2vw, 2rem);
    font-weight: 400;
    line-height: 1.2;
    hyphens: auto;
    overflow-wrap: break-word;
}

@media (max-width: 768px) {
    .headerimage .textblock {
        top: auto;
        bottom: 1rem;
        transform: none;
    }

    .headerimage .textblock .headerimage-title {
        max-width: 90%;
        font-size: clamp(1.45rem, 7vw, 1.8rem);
        line-height: 1.15;
    }


    .headerimage .textblock .headerimage-subtitle {
        max-width: 90%;
        font-size: clamp(1.05rem, 4vw, 1.35rem);
    }
}

@media (max-width: 576px) {
    .headerimage {
        margin-bottom: 1.5rem;
    }

    .headerimage .textblock {
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        background: #fff;
        padding: 1rem 0;
    }

    .headerimage .textblock .headerimage-title {
        max-width: 100%;
        font-size: 1.6rem;
    }


    .headerimage .textblock .headerimage-subtitle {
        max-width: 100%;
        margin-top: .25rem;
        font-size: 1.15rem;
    }
}

@media (max-width: 991px) {
    .headerimage .textblock {
        top: auto;
        bottom: 1rem;
        transform: none;
    }
}
@media (max-width: 600px) {

    .h1, h1 {
        font-size: calc(1rem + 1.5vw);
    }

    .akkordeon {
        margin-left: 0;
        margin-right: 0;
    }

    .toolsmenu-mobile .col-tool a {
        min-height: 7.5rem;
        font-size: .95rem;
    }

    .toolsmenu-mobile .icon-tools {
        max-width: 4rem;
        max-height: 4rem;
    }
}
@media (min-width: 768px) {
    .mt-md-7 {
        margin-top: 7rem;
    }
    .sliderouter {
        margin-bottom: 4rem;
    }

}


/* =====================================================================
   Barrierefreiheit (Nachbesserung lt. Prüfbericht 18.06.2026)
   ===================================================================== */

/* Reflow 320 px: Logo darf nicht breiter als der Container werden (#15) */
.logo img {
    max-width: 100%;
    height: auto;
}

/* Headerbild: Titel optisch unverändert, h1 oder p je nach Seite.
   Heller Hintergrund sichert den Kontrast unabhängig vom Bild (#23). */
.headerimage .headerimage-text {
    display: inline-block;
    max-width: 100%;
    padding: .5rem 1rem;
    background-color: rgba(255, 255, 255, .6);
}
.headerimage .textblock .headerimage-title {
    font-family: 'Merriweather', sans-serif;
    font-weight: 500;
}

/* Hauptmenü: Fokus auch bei programmatischem Fokus (z. B. nach ESC) sichtbar (#13) */
#mainnav .nav-link:focus,
#mainnav .dropdown-item:focus {
    outline: 3px solid var(--color1-dark);
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff;
}
#mainnav .nav-link:focus:not(:focus-visible),
#mainnav .dropdown-item:focus:not(:focus-visible) {
    outline: 0;
    box-shadow: none;
}
/* Nach Esc setzt das Skript den Fokus zurück auf den Button: immer sichtbar (#13) */
#mainnav .navbar-nav .dropdown-toggle:focus {
    outline: 3px solid var(--color1-dark);
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff;
}

/* Hauptmenü: Punkte mit Unterseiten sind Buttons (öffnen nur das Untermenü) */
#mainnav button.nav-link,
#mainnav button.dropdown-item {
    border: 0;
    background: transparent;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    text-align: left;
}
#mainnav button.nav-link {
    color: inherit;
}

/* Schnelllinks im Kopf */
.header-quicklinks li {
    margin: 0;
}

/* Akkordeon-Überschriften der Container (Publications / Gridelements 4) */
button.akkheader {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
}
.akkheader-wrap {
    margin-bottom: 0;
}

/* Bilder-Karussell: Pause-Button und Fokus (#30 #31 #32) */
.os-carousel-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: .25rem;
    border: 2px solid var(--color1-dark);
    background: #fff;
}
.carousel.slide.content .carousel-control-prev:focus-visible,
.carousel.slide.content .carousel-control-next:focus-visible,
.os-carousel-toggle:focus-visible {
    outline: 3px solid var(--color2);
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff;
}

/* Formularfelder: Rahmen >= 3:1 (#26) */
.form-control,
.form-select,
.form-check-input {
    border-color: #6b7280;
}

/* Download-Links umbrechen statt abschneiden (#61) */
.ce-uploads-fileName {
    overflow-wrap: anywhere;
}
.ce-uploads-meta {
    margin-left: .25rem;
    white-space: nowrap;
}

/* Footer-Logos */
.footer-logos {
    margin-left: 0;
    margin-right: 0;
}
.footer-logo-bmwet {
    padding: 13px 13px 13px 25px;
}

/* Video-Transkript */
.video-transcript summary {
    cursor: pointer;
    color: var(--color1-dark);
    text-decoration: underline;
}
.video-transcript summary:focus-visible {
    outline: 3px solid var(--color1-dark);
    outline-offset: 2px;
}
.video-transcript__body {
    padding: 1rem;
    background: var(--bggrey);
}

/* Lightbox (lightbox.js) */
dialog.os-lightbox {
    max-width: min(96vw, 1400px);
    max-height: 96vh;
    padding: 1rem;
    border: 0;
}
dialog.os-lightbox::backdrop {
    background: rgba(0, 0, 0, .8);
}
dialog.os-lightbox img {
    display: block;
    max-width: 100%;
    max-height: 75vh;
    height: auto;
    margin: 0 auto;
}
.os-lightbox__bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: space-between;
    margin-top: .75rem;
}
.os-lightbox__close {
    margin-left: auto;
}

/* Cookie-Dialog (Klaro): Kontraste und Fokus (#4 #5) */
.klaro .cookie-modal p.purposes,
.klaro .cookie-modal .cm-modal .cm-body p.purposes {
    color: #595959 !important;
}
.klaro .cookie-modal .cm-list-input + .cm-list-label .slider {
    box-shadow: inset 0 0 0 2px #6b7280;
}
.klaro .cookie-modal .cm-list-input:not(:checked) + .cm-list-label .slider {
    background-color: #fff;
}
.klaro .cookie-modal .cm-list-input:focus-visible + .cm-list-label .slider,
.klaro .cookie-modal .cm-list-input:focus + .cm-list-label .slider {
    outline: 3px solid var(--color2);
    outline-offset: 2px;
}
.klaro .cookie-modal .cm-btn:focus-visible,
.klaro .cookie-modal a:focus-visible,
.klaro .cookie-modal button:focus-visible {
    outline: 3px solid var(--color2) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff !important;
}
.klaro .cookie-modal .cm-cookie-details {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .15rem .75rem;
    margin: .5rem 0;
}
.klaro .cookie-modal .cm-cookie-details dt {
    font-weight: 700;
}
.klaro .cookie-modal .cm-cookie-details dd {
    margin: 0;
}

/* News/Events-Teaser: Überschrift statt div */
.newsbox .item .header {
    margin-bottom: .5rem;
}
.newsbox .teaser-text p {
    margin-bottom: 0;
}

/* Sprachauswahl im aufklappbaren Menü (< 1200 px) */
.language-menu--mobile {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding-left: 1rem;
}
.language-menu--mobile a,
.language-menu--mobile span[aria-current] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    min-width: 44px;
}
