﻿
/* ============================================
   CSS CUSTOM PROPERTIES - Farben & Layout
   ============================================ */

:root {
    /* Brand & Semantic Colors */
    --color-brand: #67b168;
    --color-brand-hover: #5a9c5a;
    --color-text: #333;
    --color-text-light: #555;
    --color-text-muted: #999;
    --color-white: #fff;
    --color-black: #000;
    --color-border-light: #e5e5e5;
    --color-border-muted: #ccc;

    /* Breakpoints */
    --breakpoint-mobile: 576px;
    --breakpoint-tablet: 768px;
    --breakpoint-desktop: 992px;
    --breakpoint-large-desktop: 1200px;
    --breakpoint-xlarge: 1400px;
    /* Container max-widths */
    --max-width-mobile: 100%;
    --max-width-tablet: 540px;
    --max-width-desktop: 720px;
    --max-width-lg-desktop: 960px;
    --max-width-xlarge: 1140px;
    /* Content max-widths */
    --max-width-content: 800px;
    --max-width-section: 760px;

    /* Button & Link Styles */
    --button-radius: 6px;
    --transition-fast: 0.2s cubic-bezier(0.694, 0.0482, 0.335, 1);
}

/* Mobile First Approach (0px - 576px) */
.container {
    max-width: var(--max-width-mobile);
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* Tablet (576px) */
@media (min-width: 576px) {
    .container {
        max-width: var(--max-width-tablet);
    }
}

/* Tablet Large (768px) */
@media (min-width: 768px) {
    .container {
        max-width: var(--max-width-desktop);
    }
}

/* Desktop (992px) */
@media (min-width: 992px) {
    .container {
        max-width: var(--max-width-lg-desktop);
    }
}

/* Large Desktop (1200px) */
@media (min-width: 1200px) {
    .container {
        max-width: var(--max-width-xlarge);
    }
}

/* Content-spezifische max-widths */
.section__hero-content,
.blogposts,
.pagination,
article {
    max-width: var(--max-width-content);
    margin-left: auto;
    margin-right: auto;
}

.mw-640 {
    max-width: 640px;
}

*, :after, :before {
    box-sizing: border-box;
}

body, html {
    -webkit-font-smoothing: antialiased;
    font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
    display: block
}

.caption {
    margin-top: -10px;
    font-size: 0.8em;
}

audio, canvas, progress, video {
    display: inline-block;
    vertical-align: baseline
}

    audio:not([controls]) {
        display: none;
        height: 0
    }

[hidden], template {
    display: none
}

a {
    background-color: transparent
}

    a:active, a:hover {
        outline: 0
    }

    a:hover {
        color: black;
    }

abbr[title] {
    border-bottom: 1px dotted
}

b, strong, .strong {
    font-weight: 700
}

dfn {
    font-style: italic
}

h1 {
    font-size: 2em;
    margin: .67em 0
}

mark {
    background: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sup {
    top: -.5em
}

sub {
    bottom: -.25em
}

img {
    border: 0
}

svg:not(:root) {
    overflow: hidden
}

figure {
    margin: 1em 40px
}

hr {
    box-sizing: content-box;
    height: 0
}

pre {
    overflow: auto
}

code, kbd, pre, samp {
    font-family: monospace,monospace;
    font-size: 1em
}

button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
    margin: 0
}

button {
    overflow: visible
}

button, select {
    text-transform: none
}

button, html input[type=button], input[type=reset], input[type=submit] {
    -webkit-appearance: button;
    cursor: pointer
}

    button[disabled], html input[disabled] {
        cursor: default
    }

    button::-moz-focus-inner, input::-moz-focus-inner {
        border: 0;
        padding: 0
    }

input {
    line-height: normal
}

    input[type=checkbox], input[type=radio] {
        box-sizing: border-box;
        padding: 0
    }

    input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {
        height: auto
    }

    input[type=search] {
        -webkit-appearance: textfield;
        box-sizing: content-box
    }

        input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
            -webkit-appearance: none
        }

fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}

legend {
    border: 0;
    padding: 0
}

textarea {
    overflow: auto
}

optgroup {
    font-weight: 700
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

td, th {
    padding: 0
}

.container {
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px
}

    .container:after, .container:before {
        content: " ";
        display: table
    }

    .container:after {
        clear: both
    }

.container-fluid {
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px
}

    .container-fluid:after, .container-fluid:before {
        content: " ";
        display: table
    }

    .container-fluid:after {
        clear: both
    }

.row {
    margin-left: -15px;
    margin-right: -15px
}

    .row:after, .row:before {
        content: " ";
        display: table
    }

    .row:after {
        clear: both
    }

.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
    position: relative;
    float:left;
    min-height: 1px;
    padding-left: 15px;
    padding-right: 15px
}

/* Below the lg breakpoint (1200px), .col-lg-12 has no width set (see min-width:1200px block
   further down), so it shrinks to fit its floated content instead of spanning the row -
   this is what threw the footer off-center at smaller viewports (e.g. 800px). */
.col-lg-12 {
    width: 100%
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
    float: left
}

.col-1 {
    width: 8.333333%
}

.col-2 {
    width: 16.666667%
}

.col-3 {
    width: 25%
}

.col-4 {
    width: 33.333333%
}

.col-5 {
    width: 41.666667%
}

.col-6 {
    width: 50%
}

.col-7 {
    width: 58.333333%
}

.col-8 {
    width: 66.666667%
}

.col-9 {
    width: 75%
}

.col-10 {
    width: 83.333333%
}

.col-11 {
    width: 91.666667%
}

.col-12 {
    width: 100%
}















































































fieldset {
    margin: 0;
    min-width: 0
}

fieldset, legend {
    padding: 0;
    border: 0
}

legend {
    display: block;
    width: 100%;
    margin-bottom: 20px;
    font-size: 21px;
    line-height: inherit;
    color: #333;
    border-bottom: 1px solid #e5e5e5
}

label {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 5px;
    font-weight: 700
}

input[type=search] {
    box-sizing: border-box
}

input[type=checkbox], input[type=radio] {
    margin: 4px 0 0;
    margin-top: 1px\9;
    line-height: normal
}

input[type=file] {
    display: block
}

input[type=range] {
    display: block;
    width: 100%
}

select[multiple], select[size] {
    height: auto
}

input[type=checkbox]:focus, input[type=file]:focus, input[type=radio]:focus {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px
}

output {
    padding-top: 7px
}

.form-control, output {
    display: block;
    font-size: 14px;
    line-height: 1.428571;
    color: #555
}

.form-control {
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out
}

    .form-control:focus {
        border-color: #66afe9;
        outline: 0;
        box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)
    }

    .form-control::-moz-placeholder {
        color: #999;
        opacity: 1
    }

    .form-control:-ms-input-placeholder {
        color: #999
    }

    .form-control::-webkit-input-placeholder {
        color: #999
    }

    .form-control::-ms-expand {
        border: 0;
        background-color: transparent
    }

    .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
        background-color: #eee;
        opacity: 1
    }

    .form-control[disabled], fieldset[disabled] .form-control {
        cursor: not-allowed
    }

textarea.form-control {
    height: auto
}

input[type=search] {
    -webkit-appearance: none
}

.form-group {
    margin-bottom: 15px
}

.checkbox, .radio {
    position: relative;
    display: block;
    margin-top: 10px;
    margin-bottom: 10px
}

    .checkbox label, .radio label {
        min-height: 20px;
        padding-left: 20px;
        margin-bottom: 0;
        font-weight: 400;
        cursor: pointer
    }

    .checkbox-inline input[type=checkbox], .checkbox input[type=checkbox], .radio-inline input[type=radio], .radio input[type=radio] {
        position: absolute;
        margin-left: -20px;
        margin-top: 4px\9
    }

    .checkbox + .checkbox, .radio + .radio {
        margin-top: -5px
    }

.checkbox-inline, 

    .checkbox-inline + .checkbox-inline, .radio-inline + 

    .checkbox-inline.disabled, .checkbox.disabled label, .radio-inline.disabled, .radio.disabled label, fieldset[disabled] .checkbox-inline, fieldset[disabled] .checkbox label, fieldset[disabled] .radio-inline, fieldset[disabled] .radio label, fieldset[disabled] input[type=checkbox], fieldset[disabled] input[type=radio], input[type=checkbox].disabled, input[type=checkbox][disabled], input[type=radio].disabled, input[type=radio][disabled] {
        cursor: not-allowed
    }

.form-control-static {
    padding-top: 7px;
    padding-bottom: 7px;
    margin-bottom: 0;
    min-height: 34px
}

    .form-control-static.input-lg, .form-control-static.input-sm, .input-group-lg > .form-control-static.form-control, .input-group-lg > .form-control-static.input-group-addon, .input-group-lg > .input-group-btn > .form-control-static.btn, .input-group-sm > .form-control-static.form-control, .input-group-sm > .form-control-static.input-group-addon, .input-group-sm > .input-group-btn > .form-control-static.btn {
        padding-left: 0;
        padding-right: 0
    }

.input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn, .input-sm {
    height: 30px;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px
}

.input-group-sm > .input-group-btn > select.btn, .input-group-sm > select.form-control, .input-group-sm > select.input-group-addon, select.input-sm {
    height: 30px;
    line-height: 30px
}

.input-group-sm > .input-group-btn > select[multiple].btn, .input-group-sm > .input-group-btn > textarea.btn, .input-group-sm > select[multiple].form-control, .input-group-sm > select[multiple].input-group-addon, .input-group-sm > textarea.form-control, .input-group-sm > textarea.input-group-addon, select[multiple].input-sm, textarea.input-sm {
    height: auto
}

.form-group-sm .form-control {
    height: 30px;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px
}

.form-group-sm select.form-control {
    height: 30px;
    line-height: 30px
}

.form-group-sm select[multiple].form-control, .form-group-sm textarea.form-control {
    height: auto
}

.form-group-sm .form-control-static {
    height: 30px;
    min-height: 32px;
    padding: 6px 10px;
    font-size: 12px;
    line-height: 1.5
}

.input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn, .input-lg {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.333333;
    border-radius: 6px
}

.input-group-lg > .input-group-btn > select.btn, .input-group-lg > select.form-control, .input-group-lg > select.input-group-addon, select.input-lg {
    height: 46px;
    line-height: 46px
}

.input-group-lg > .input-group-btn > select[multiple].btn, .input-group-lg > .input-group-btn > textarea.btn, .input-group-lg > select[multiple].form-control, .input-group-lg > select[multiple].input-group-addon, .input-group-lg > textarea.form-control, .input-group-lg > textarea.input-group-addon, select[multiple].input-lg, textarea.input-lg {
    height: auto
}

.form-group-lg .form-control {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.333333;
    border-radius: 6px
}

.form-group-lg select.form-control {
    height: 46px;
    line-height: 46px
}

.form-group-lg select[multiple].form-control, .form-group-lg textarea.form-control {
    height: auto
}

.form-group-lg .form-control-static {
    height: 46px;
    min-height: 38px;
    padding: 11px 16px;
    font-size: 18px;
    line-height: 1.333333
}

.has-feedback {
    position: relative
}

    .has-feedback .form-control {
        padding-right: 42.5px
    }



.form-group-lg .form-control + .form-control-feedback, .input-group-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, .input-group-lg > .input-group-addon + .form-control-feedback, .input-group-lg > .input-group-btn > .btn + .form-control-feedback, .input-lg + 

.form-group-sm .form-control + .form-control-feedback, .input-group-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, .input-group-sm > .input-group-addon + .form-control-feedback, .input-group-sm > .input-group-btn > .btn + .form-control-feedback, .input-sm + 

.has-success .checkbox, .has-success .checkbox-inline, .has-success.checkbox-inline label, .has-success.checkbox label, .has-success .control-label, .has-success .help-block, .has-success .radio, .has-success .radio-inline, .has-success.radio-inline label, .has-success.radio label {
    color: #3c763d
}

.has-success .form-control {
    border-color: #3c763d;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075)
}

    .has-success .form-control:focus {
        border-color: #2b542c;
        box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #3c763d
    }

.has-success .input-group-addon {
    color: #3c763d;
    border-color: #3c763d;
    background-color: #dff0d8
}

.has-success 

.has-warning .checkbox, .has-warning .checkbox-inline, .has-warning.checkbox-inline label, .has-warning.checkbox label, .has-warning .control-label, .has-warning .help-block, .has-warning .radio, .has-warning .radio-inline, .has-warning.radio-inline label, .has-warning.radio label {
    color: #8a6d3b
}

.has-warning .form-control {
    border-color: #8a6d3b;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075)
}

    .has-warning .form-control:focus {
        border-color: #66512c;
        box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b
    }

.has-warning .input-group-addon {
    color: #8a6d3b;
    border-color: #8a6d3b;
    background-color: #fcf8e3
}

.has-warning 

.has-error .checkbox, .has-error .checkbox-inline, .has-error.checkbox-inline label, .has-error.checkbox label, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.radio-inline label, .has-error.radio label {
    color: #a94442
}

.has-error .form-control {
    border-color: #a94442;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075)
}

    .has-error .form-control:focus {
        border-color: #843534;
        box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483
    }

.has-error .input-group-addon {
    color: #a94442;
    border-color: #a94442;
    background-color: #f2dede
}

.has-error 

.has-feedback label ~ 

.has-feedback label.sr-only ~ 

.help-block {
    display: block;
    margin-top: 5px;
    margin-bottom: 10px;
    color: #737373
}

.form-horizontal .checkbox, .form-horizontal .checkbox-inline, .form-horizontal .radio, .form-horizontal 

.form-horizontal .checkbox, .form-horizontal .radio {
    min-height: 27px
}

.form-horizontal .form-group {
    margin-left: -15px;
    margin-right: -15px
}

    .form-horizontal .form-group:after, .form-horizontal .form-group:before {
        content: " ";
        display: table
    }

    .form-horizontal .form-group:after {
        clear: both
    }

.form-horizontal .has-feedback 



    .input-group[class*=col-] {
        float: none;
        padding-left: 0;
        padding-right: 0
    }

    .input-group .form-control {
        position: relative;
        z-index: 2;
        float: left;
        width: 100%;
        margin-bottom: 0
    }

        .input-group .form-control:focus {
            z-index: 3
        }

    .input-group-addon, .input-group-btn, .input-group .form-control {
        display: table-cell
    }

        .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) {
            border-radius: 0
        }

.input-group-addon, .input-group-btn {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle
}

.input-group-addon {
    padding: 6px 12px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    color: #555;
    text-align: center;
    background-color: #eee;
    border: 1px solid #ccc;
    border-radius: 4px
}

    .input-group-addon.input-sm, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .input-group-addon.btn {
        padding: 5px 10px;
        font-size: 12px;
        border-radius: 3px
    }

    .input-group-addon.input-lg, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .input-group-addon.btn {
        padding: 10px 16px;
        font-size: 18px;
        border-radius: 6px
    }

    .input-group-addon input[type=checkbox], .input-group-addon input[type=radio] {
        margin-top: 0
    }

    .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn-group:not(:last-child) > .btn, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group .form-control:first-child {
        border-bottom-right-radius: 0;
        border-top-right-radius: 0
    }

    .input-group-addon:first-child {
        border-right: 0
    }

    .input-group-addon:last-child, .input-group-btn:first-child > .btn-group:not(:first-child) > .btn, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group .form-control:last-child {
        border-bottom-left-radius: 0;
        border-top-left-radius: 0
    }

    .input-group-addon:last-child {
        border-left: 0
    }

.input-group-btn {
    font-size: 0;
    white-space: nowrap
}

    .input-group-btn, .input-group-btn > .btn {
        position: relative
    }

        .input-group-btn > .btn + .btn {
            margin-left: -1px
        }

        .input-group-btn > .btn:active, .input-group-btn > .btn:focus, .input-group-btn > .btn:hover {
            z-index: 2
        }

        .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group {
            margin-right: -1px
        }

        .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group {
            z-index: 2;
            margin-left: -1px
        }

.label {
    display: inline;
    padding: .2em .6em .3em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: .25em
}

    .label:empty {
        display: none
    }

.btn .label {
    position: relative;
    top: -1px
}

a.label:focus, a.label:hover {
    color: #fff;
    text-decoration: none;
    cursor: pointer
}



    .label-default[href]:focus, .label-default[href]:hover {
        background-color: #5e5e5e
    }



    .label-primary[href]:focus, .label-primary[href]:hover {
        background-color: #286090
    }



    .label-success[href]:focus, .label-success[href]:hover {
        background-color: #449d44
    }



    .label-info[href]:focus, .label-info[href]:hover {
        background-color: #31b0d5
    }



    .label-warning[href]:focus, .label-warning[href]:hover {
        background-color: #ec971f
    }



    .label-danger[href]:focus, .label-danger[href]:hover {
        background-color: #c9302c
    }

/* Typografische Hierarchie: responsive mit clamp() */
h1 {
    font-size: clamp(1.75rem, 6vw, 2.5rem);
    line-height: 1.2;
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    font-weight: 700
}

h2 {
    font-size: clamp(1.4rem, 4vw, 1.8rem);
    line-height: 1.3;
    margin-top: 1.25em;
    margin-bottom: 0.5em;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 700
}

h3 {
    font-size: clamp(1.1rem, 2.5vw, 1.8rem);
    line-height: 1.4;
    margin-top: 1em;
    margin-bottom: 0.5em;
    font-weight: 600
}

/* .heading-sub: correct outline level (h2/h3) for gallery/attachment subheadings, h4 look */
h4, .heading-sub {
    font-size: clamp(1rem, 2vw, 1.5rem);
    line-height: 1.4;
    margin-top: 0.75em;
    margin-bottom: 0.25em;
    font-weight: 600
}

.heading-sub {
    letter-spacing: normal;
    text-transform: none
}

/* Skip link: hidden until focused via keyboard */
.skip-link {
    position: absolute;
    left: 16px;
    top: -100px;
    z-index: 10000;
    padding: 12px 20px;
    background: #fff;
    color: #1a1a1a;
    font-weight: 700;
    text-decoration: underline;
    border: 2px solid currentColor
}

    .skip-link:focus {
        top: 16px
    }

main:focus {
    outline: none
}

h5, h6 {
    font-size: clamp(0.95rem, 1.5vw, 1.2rem);
    line-height: 1.5;
    margin-top: 0.5em;
    margin-bottom: 0.25em;
    font-weight: 600
}

p {
    line-height: 1.6;
    margin-bottom: 1em
}

.nav-link--active {
    border-bottom: 2px solid transparent;
}

.nav-link--disabled, .nav-link--disabled:hover {
    border-color: transparent !important;
    cursor: not-allowed;
}

.montserrat, .nav-link.nav-link--home, h1, h2, h3, h4, h5, h6 {
    font-family: Montserrat,sans-serif
}

.source-sans-pro, body, .nav-link {
    font-family: Source Sans Pro,sans-serif
}

p {
    line-height: 1.6em;
    margin-bottom: 30px
}















    .product-advantage:last-child {
        border-bottom: 1px solid #f2f2f2
    }





    .product-grid__item:hover {
        cursor: pointer
    }





.product-grid__item__name, 

.header {
    padding-top: 25px;
    padding-bottom: 30px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    position: fixed;
    width: 100%;
    z-index: 4;
    top: 0;
    left: 0;
    /*background:gray;
    border-bottom: 1px solid darkgray;*/
}

.header--fixed {
    padding-top: 20px;
    padding-bottom: 20px;
    transition: padding var(--transition-fast)
}

    .header--fixed .nav-bar {
        position: absolute;
        right: 0px;
        top: 50%;
        transform: translate(-5%,-50%)
    }

    .header--fixed .nav-link {
        color: #fff !important
    }

        .header--fixed .nav-link--active, .header--fixed .nav-link:hover {
            border-bottom-color: #fff !important
        }

    .header--fixed .hamburger span, .header--fixed .hamburger span:after, .header--fixed .hamburger span:before {
        background-color: #fff !important
    }

body.frontpage .header:not(.header--fixed) .nav-link--home__text:after {
    background-color: #fff
}

body.frontpage .header:not(.header--fixed) .nav-link {
    color: #fff
}

    body.frontpage .header:not(.header--fixed) .nav-link--active, body.frontpage .header:not(.header--fixed) .nav-link:hover {
        border-bottom-color: #fff
    }

body.frontpage .header:not(.header--fixed) .hamburger span, body.frontpage .header:not(.header--fixed) .hamburger span:after, body.frontpage .header:not(.header--fixed) .hamburger span:before {
    background-color: #fff
}

/* Inner pages: dunkel header mit weiÃŸer Navigation fÃ¼r Kontrast */
body:not(.frontpage) .header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 4
}

body:not(.frontpage) .header .nav-link {
    color: var(--color-white) !important
}

body:not(.frontpage) .header .nav-link--active,
body:not(.frontpage) .header .nav-link:hover {
    border-bottom-color: var(--color-white) !important
}

body:not(.frontpage) .header .hamburger span,
body:not(.frontpage) .header .hamburger span:after,
body:not(.frontpage) .header .hamburger span:before {
    background-color: var(--color-white) !important
}

body:not(.frontpage) .header .nav-link--home {
    color: var(--color-white) !important
}

/* Main-Content: padding-top fÃ¼r fixen Header */

main {
    padding-top: 60px;
}

body.frontpage main {
    padding-top: 0;
}

footer {
    position: relative;
    z-index: 5;
    padding-top: 50px;
    padding-bottom: 50px;
    border-top: 1px solid #e0e0e0;
}

footer .nav-fake {
    display: block;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

footer .nav-link {
    display: inline-block;
    margin: 10px 15px;
    font-size: 14px;
}

footer .nav-link:hover {
}

/* ============================================
   FORM STYLES - Kontaktformular & Inputs
   ============================================ */
.form-group {
    margin-bottom: 20px
}

.form-control {
    display: block;
    width: 100%;
    padding: 12px 15px;
    font-size: 16px;
    line-height: 1.5;
    color: var(--color-text);
    background-color: var(--color-white);
    border: 1.5px solid #d0d0d0;
    border-radius: var(--button-radius);
    transition: var(--transition-fast);
    font-family: inherit
}

.form-control:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05)
}

.form-control::placeholder {
    color: #999
}

textarea.form-control {
    resize: vertical;
    min-height: 120px
}

/* Button in Formularen */
.btn, input[type="submit"] {
    display: inline-flex;
    padding: 12px 40px;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: none;
    border-radius: var(--button-radius);
    cursor: pointer;
    transition: var(--transition-fast);
    color: var(--color-white);
    align-items: center;
    justify-content: center
}

.btn:hover, input[type="submit"]:hover {
    transform: translateY(-2px);
}

/* Alert Messages */
.alert {
    padding: 15px 20px;
    border-radius: var(--button-radius);
    border: none;
    margin-bottom: 20px
}

.alert-success {
    background-color: #d4edda;
    color: #155724;
    border-left: 4px solid #28a745
}

.alert-danger {
    background-color: #f8d7da;
    color: #721c24;
    border-left: 4px solid #dc3545
}

.invalid-feedback {
    color: #dc3545;
    font-size: 14px;
    margin-top: 5px;
    display: block !important
}

.logo {
    padding-left: 20px;
    height: 100%;
    text-align: center;
}

.logo-image {
    max-width: 180px;
    max-height: 100px;
    height: auto;
    margin-left: 20px;
    display: block
}

.nav-bar {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-direction: row;
    flex-direction: row;
    transform: translate(-5%,-0%);
    
}

.nav-bar *
{
    overflow-wrap: break-word;
    box-sizing:content-box !important;
}

.nav-bar--list {
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-align: start;
    align-items: flex-start;
    position: unset !important;
    margin-bottom: 20px;
}

.nav-bar--center, .nav-bar--list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
}

.nav-bar--air-bottom {
    margin-bottom: 40px
}

.nav-link, .nav-link:visited {
    text-decoration: none;
    margin: 10px 15px;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 2px;
    /* border-bottom: 2px solid transparent; */
    transition: var(--transition-fast)
}

.nav-link--air-bottom {
    margin-bottom: 5px
}

a.nav-link.nav-link--black {
    color: #000
}

a.nav-link.nav-link--black:hover {
    border-color: #000
}

.nav-link--black.nav-link--active {
    box-shadow: inset 0 -2px 0 #000;
}

.nav-link--home {
    font-size: 15px;
    font-weight: 900;
    margin-right: 30px;
}

    .nav-link--home:hover {
        box-shadow: none
    }

.nav-link--home__text {
    position: relative
}

    .nav-link--home__text:after {
        position: absolute;
        right: 0;
        display: block;
        /*content: "";*/
        height: 3px;
        width: 200%
    }

.lang-switch {
    display: -ms-inline-flexbox;
    display: inline-flex;
    align-items: center
}

.nav-bar.top-nav {
    position: absolute;
    right: 0px;
}

.nav-bar.top-nav .lang-switch {
    margin-left: 10px;
    padding-left: 15px;
    border-left: 1px solid rgba(255,255,255,.4)
}

.lang-switch .nav-link {
    margin: 10px 5px
}

.mobile-nav .lang-switch {
    border-left: none;
    margin-left: 0;
    padding-left: 0
}

.mobile-nav .nav-bar {
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-align: center;
    align-items: center;
}

.section {
    padding: 40px 20px
}

.section--stroke-bottom {
    border-bottom: 1px solid #f2f2f2
}

.section--full-height {
    min-height: 100vh
}

.section--header {
    min-height: 120px;
    padding-top: 120px;
}

.section--header .section__description {
    margin: 14px 0 0;
    font-size: clamp(17px, 2vw, 20px);
    line-height: 1.4;
    letter-spacing: .5px;
}

.section--header h1, .section--header h2, .section--header h3, .section--header h4, .section--header h5, .section--header h6 {
    color:var(--color-white) !important;
}

.section--content-center {
    -ms-flex-align: center;
    align-items: center;
    text-align: center
}

.section--content-center, .section--content-center-bottom {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center
}

.section--content-center-bottom {
    -ms-flex-align: end;
    align-items: flex-end
}

.section--thick-border {
    border: none;
    padding: 40px 20px
}

body.frontpage .section__hero-content {
    color: #fff
}

.section__hero-content {
    max-width: 760px;
    padding: 0 20px
}

.section__description {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: 60px
}

.background-image-full {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50%
}

.overlay {
    position: relative
}

    .overlay:after {
        content: "";
        z-index: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%
    }

.overlay--dark:after {
    background: linear-gradient(180deg, rgba(37,33,33,0.4) 0%, rgba(37,33,33,0.8) 100%)
}

.overlay--light:after {
    background: hsla(0,0%,88%,.6)
}

.overlay * {
    position: relative;
    z-index: 1
}

/* ============================================
   CARD PATTERN - einheitlich fÃ¼r Blog/News/Galerien
   ============================================ */
.card {
    background: var(--color-white);
    border-radius: var(--button-radius);
    border: 1px solid #e8e8e8;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all var(--transition-fast);
}

.card:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    transform: translateY(-3px);
    border-color: #d8d8d8
}

.button, .button--small {
    display: -ms-inline-flexbox;
    display: inline-flex;
    max-width: 100%;
    padding: 10px 40px;
    text-align: center;
    text-decoration: none;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    border: 2px solid #000;
    border-radius: var(--button-radius);
    outline: none;
    transition: var(--transition-fast)
}

    .button--small:hover, .button:hover {
        opacity: .7
    }

.button--small {
    padding: 8px 40px;
    font-size: 14px
}

.button--border--light {
    background: none;
    border-color: #fff;
    color: #fff
}

    .button--border--light:hover {
        background: #fff;
        color: #000;
        opacity: 1
    }

.button--border--light_solid {
    background: #fff;
    border-color: #fff;
    color: #000
}

    .button--border--light_solid:hover {
        opacity: .7
    }

.button--border--dark {
    background: none;
    border-color: #000;
    color: #000
}

    .button--border--dark:hover {
        background: #000;
        color: #fff;
        opacity: 1
    }

.button--border--dark_solid {
    background: #000;
    border-color: #000;
    color: #fff
}

    .button--border--dark_solid:hover {
        opacity: .7
    }

.button--border {
    background: none
}

    .button--border:hover {
        opacity: 1
    }

.button--border--solid {
    border-color: transparent
}

    .button--border--solid:hover {
        opacity: .7
    }

body .link-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body .link-list__link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

body .link-list__icon {
  margin-right: 10px;
}

.blogposts {
    margin-left: auto;
    margin-right: auto;
    display: grid;
    gap: 25px;
}

.blogpost {
    text-decoration: none;
    color: #000;
    display: block;
    padding: 25px;
    background-color: #fff;
    border-radius: 8px;
    border: 1px solid #f0f0f0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin-bottom: 25px;
}

    .blogpost.blogpost-with-image {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
        flex-direction: column
    }

    .blogpost:last-child {
        margin-bottom: 60px
    }

    .blogpost:hover {
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
        transform: translateY(-4px);
        border-color: #e0e0e0;
    }

.blogpost-image {
    -ms-flex: 1 0 100%;
    flex: 1 0 100%;
    margin-left: 40px;
    border-radius: 50%
}

.blogpost-info {
    -ms-flex: 1 1 auto;
    flex: 1 1 auto
}

.blogpost-meta {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: start;
    justify-content: flex-start;
    /* margin-bottom: 15px; */
    gap: 10px;
}

.blogpost-date {
    display: block;
    opacity: 1;
    margin-right: 0;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.blogpost-cat {
    opacity: 1;
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
}

.blogpost-image {
    height: 160px;
    width: 160px;
    background-size: cover;
    margin-left: auto;
    margin-right: auto;
    margin-top: 15px
}

.blogpost-title {
    font-size: 22px;
    letter-spacing: 1px;
    margin: 0 0 12px;
    font-weight: 700;
    color: #000;
    transition: color 0.3s ease;
}

.blogpost-excerpt {
    font-size: 16px;
    line-height: 1.6;
    opacity: 0.75;
    color: #555;
}

.blogpost-link {
    margin-top: 25px;
    display: -ms-inline-flexbox;
    display: inline-flex;
    padding-bottom: 2px;
    border-bottom: 2px solid rgba(0,0,0,.15);
    color: #000;
    text-decoration: none;
    font-size: 18px
}

    .blogpost-link:hover {
        border-bottom-color: #000
    }

.blogposts-centered {
    text-align: center
}

    .blogposts-centered .blogpost {
        margin: 30px 0;
        padding: 30px 30px 0
    }

        .blogposts-centered .blogpost:hover {
            background: none
        }

        .blogposts-centered .blogpost + .blogpost {
            border-top: 1px solid #e8e8e8
        }

    .blogposts-centered .blogpost-title {
        margin-bottom: 30px
    }

    .blogposts-centered .blogpost-excerpt {
        font-size: 18px
    }

    .blogposts-centered .blogpost-meta {
        -ms-flex-pack: center;
        justify-content: center
    }

    .blogposts-centered .blogpost-title {
        font-size: 30px;
        line-height: 1.3
    }









p



    .testimonial-link:hover {
        color: #000
    }















    .employee-grid__item__contact-item:hover {
        color: #000
    }

label {
    margin-bottom: 10px;
    font-size: 12px;
    text-transform: uppercase
}

.form-group {
    margin-bottom: 25px
}

.form-control {
    border-radius: 0;
    box-shadow: none;
    transition: none;
    padding: 20px 15px
}

    .form-control:focus {
        border-color: #2a7f6f;
        box-shadow: none
    }

.mobile-nav-handler {
    margin-left: auto;
    margin-right: 40px
}

.hamburger {
    position: relative;
    cursor: pointer;
    z-index: 5;
    width: 40px;
    height: 40px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit
}

    .hamburger:focus-visible {
        outline: 3px solid currentColor;
        outline-offset: 4px
    }

    .hamburger span, .hamburger span:after, .hamburger span:before {
        display: block;
        transition-property: all;
        transition-duration: .1s
    }

    .hamburger span {
        margin: 0 auto;
        position: relative
    }

        .hamburger span:after, .hamburger span:before {
            position: absolute;
            content: ''
        }

    .hamburger.lines span, .hamburger.lines span:after, .hamburger.lines span:before {
        width: 20px;
        height: 2px
    }

        .hamburger.lines span:before {
            transform: translateY(-5px)
        }

        .hamburger.lines span:after {
            transform: translateY(5px)
        }

    .hamburger.lines:hover span:before {
        transform: translateY(-7px)
    }

    .hamburger.lines:hover span:after {
        transform: translateY(7px)
    }

    .hamburger.lines:hover.active span:before {
        transform: rotate(45deg)
    }

    .hamburger.lines:hover.active span:after {
        transform: rotate(-45deg)
    }

    .hamburger.lines.active span {
        background-color: transparent !important
    }

        .hamburger.lines.active span:after, .hamburger.lines.active span:before {
            transform: translateY(0)
        }

        .hamburger.lines.active span:before {
            transform: rotate(45deg)
        }

        .hamburger.lines.active span:after {
            transform: rotate(-45deg)
        }

article {
    /*max-width: 700px;*/
    margin: 0 auto
}

    article a, article a:visited {
        text-decoration: none;
    }

        article a:hover, article a:visited:hover {
            text-decoration: none
        }

    article li, article p {
        font-weight: 400;
        font-style: normal;
        font-size: 18px;
        line-height: 1.5
    }

    /* article li {
        padding: 5px 0
    } */

    article ol, article ul {
        margin: 20px;
        padding: 0
    }

    article img {
        max-width: 100%
    }

    article iframe, article img {
        margin: 0 0 20px
    }

.mobile-nav {
    width: 100%;
    z-index: 4;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    display: -ms-flexbox;
    display: flex;
    position: fixed;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-direction: column;
    flex-direction: column;
    opacity: 0;
    height: 0;
    visibility: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--color-brand);
}

.mobile-nav--open {
    opacity: 1;
    height: 100vh;
    visibility: visible;
}

.mobile-nav .nav-link {
    transition: transform .6s cubic-bezier(.23,1,.32,1), color var(--transition-fast);
    transform: translateY(999px);
    opacity: 0;
    font-size: 18px;
    margin: 15px;
    text-align: center;
    color: var(--color-white) !important;
}

    .mobile-nav .nav-link:nth-child(1) {
        transition-delay: 60ms
    }

    .mobile-nav .nav-link:nth-child(2) {
        transition-delay: 80ms
    }

    .mobile-nav .nav-link:nth-child(3) {
        transition-delay: .1s
    }

    .mobile-nav .nav-link:nth-child(4) {
        transition-delay: .12s
    }

    .mobile-nav .nav-link:nth-child(5) {
        transition-delay: .14s
    }

    .mobile-nav .nav-link:nth-child(6) {
        transition-delay: .16s
    }

    .mobile-nav .nav-link:nth-child(7) {
        transition-delay: .18s
    }

    .mobile-nav .nav-link:nth-child(8) {
        transition-delay: .2s
    }

    .mobile-nav .nav-link:nth-child(9) {
        transition-delay: .22s
    }

    .mobile-nav .nav-link:nth-child(10) {
        transition-delay: .24s
    }

    .mobile-nav .nav-link:nth-child(11) {
        transition-delay: .26s
    }

.mobile-nav--open .nav-link {
    transform: translate(0);
    opacity: 1;
}

.mobile-nav .nav-link:hover,
.mobile-nav .nav-link:active,
.mobile-nav .nav-link--active {
    color: var(--color-white) !important;
    border-bottom-color: var(--color-white) !important
}

/* Zusatz im Handy-Menü (Kontakt-Button, Fußlinks): nur Themes, die ihn gestalten, blenden ihn ein */
.mobile-nav__extra {
    display: none
}

.ta-center {
    text-align: center
}

.mw-640 {
    max-width: 640px
}

.ma-h-auto {
    margin-left: auto;
    margin-right: auto
}

.no-air {
    margin: 0
}

.no-scroll {
    overflow: hidden
}

    .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
        float: left
    }

    .col-sm-1 {
        width: 8.333333%
    }

    .col-sm-2 {
        width: 16.666667%
    }

    .col-sm-3 {
        width: 25%
    }

    .col-sm-4 {
        width: 33.333333%
    }

    .col-sm-5 {
        width: 41.666667%
    }

    .col-sm-6 {
        width: 50%
    }

    .col-sm-7 {
        width: 58.333333%
    }

    .col-sm-8 {
        width: 66.666667%
    }

    .col-sm-9 {
        width: 75%
    }

    .col-sm-10 {
        width: 83.333333%
    }

    .col-sm-11 {
        width: 91.666667%
    }

    .col-sm-12 {
        width: 100%
    }

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    .form-inline .form-group {
        display: inline-block;
        margin-bottom: 0;
        vertical-align: middle
    }

    .form-inline .form-control {
        display: inline-block;
        width: auto;
        vertical-align: middle
    }

    .form-inline .form-control-static {
        display: inline-block
    }

    .form-inline 

        .form-inline .input-group .form-control, .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn {
            width: auto
        }

        .form-inline .input-group > .form-control {
            width: 100%
        }

    .form-inline .control-label {
        margin-bottom: 0;
        vertical-align: middle
    }

    .form-inline .checkbox, .form-inline .radio {
        display: inline-block;
        margin-top: 0;
        margin-bottom: 0;
        vertical-align: middle
    }

        .form-inline .checkbox label, .form-inline .radio label {
            padding-left: 0
        }

        .form-inline .checkbox input[type=checkbox], .form-inline .radio input[type=radio] {
            position: relative;
            margin-left: 0
        }

    .form-inline .has-feedback 

    .form-horizontal .control-label {
        text-align: right;
        margin-bottom: 0;
        padding-top: 7px
    }

    .form-horizontal .form-group-lg .control-label {
        padding-top: 11px;
        font-size: 18px
    }

    .form-horizontal .form-group-sm .control-label {
        padding-top: 6px;
        font-size: 12px
    }

    .blogpost {
        padding: 30px;
    }
}

.compat-msg {
    color: #000;
    display: block;
    padding: 30px
}

@media (min-width:992px) {
    .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
        float: left
    }

    .col-md-1 {
        width: 8.333333%
    }

    .col-md-2 {
        width: 16.666667%
    }

    .col-md-3 {
        width: 25%
    }

    .col-md-4 {
        width: 33.333333%
    }

    .col-md-5 {
        width: 41.666667%
    }

    .col-md-6 {
        width: 50%
    }

    .col-md-7 {
        width: 58.333333%
    }

    .col-md-8 {
        width: 66.666667%
    }

    .col-md-9 {
        width: 75%
    }

    .col-md-10 {
        width: 83.333333%
    }

    .col-md-11 {
        width: 91.666667%
    }

    .col-md-12 {
        width: 100%
    }

    .col-md-pull-0 {
        right: auto
    }

    .col-md-pull-1 {
        right: 8.333333%
    }

    .col-md-pull-2 {
        right: 16.666667%
    }

    .col-md-pull-3 {
        right: 25%
    }

    .col-md-pull-4 {
        right: 33.333333%
    }

    .col-md-pull-5 {
        right: 41.666667%
    }

    .col-md-pull-6 {
        right: 50%
    }

    .col-md-pull-7 {
        right: 58.333333%
    }

    .col-md-pull-8 {
        right: 66.666667%
    }

    .col-md-pull-9 {
        right: 75%
    }

    .col-md-pull-10 {
        right: 83.333333%
    }

    .col-md-pull-11 {
        right: 91.666667%
    }

    .col-md-pull-12 {
        right: 100%
    }

    .col-md-push-0 {
        left: auto
    }

    .col-md-push-1 {
        left: 8.333333%
    }

    .col-md-push-2 {
        left: 16.666667%
    }

    .col-md-push-3 {
        left: 25%
    }

    .col-md-push-4 {
        left: 33.333333%
    }

    .col-md-push-5 {
        left: 41.666667%
    }

    .col-md-push-6 {
        left: 50%
    }

    .col-md-push-7 {
        left: 58.333333%
    }

    .col-md-push-8 {
        left: 66.666667%
    }

    .col-md-push-9 {
        left: 75%
    }

    .col-md-push-10 {
        left: 83.333333%
    }

    .col-md-push-11 {
        left: 91.666667%
    }

    .col-md-push-12 {
        left: 100%
    }

    .col-md-offset-0 {
        margin-left: 0
    }

    .col-md-offset-1 {
        margin-left: 8.333333%
    }

    .col-md-offset-2 {
        margin-left: 16.666667%
    }

    .col-md-offset-3 {
        margin-left: 25%
    }

    .col-md-offset-4 {
        margin-left: 33.333333%
    }

    .col-md-offset-5 {
        margin-left: 41.666667%
    }

    .col-md-offset-6 {
        margin-left: 50%
    }

    .col-md-offset-7 {
        margin-left: 58.333333%
    }

    .col-md-offset-8 {
        margin-left: 66.666667%
    }

    .col-md-offset-9 {
        margin-left: 75%
    }

    .col-md-offset-10 {
        margin-left: 83.333333%
    }

    .col-md-offset-11 {
        margin-left: 91.666667%
    }

    .col-md-offset-12 {
        margin-left: 100%
    }

    .button, .button--small {
        padding: 10px 80px
    }

    .blogposts {
        max-width: 800px
    }

    .blogpost {
        padding: 30px;
        margin: 20px 0
    }

        .blogpost.blogpost-with-image {
            -ms-flex-direction: row;
            flex-direction: row
        }

    .blogpost-image {
        height: 160px;
        max-width: 160px;
        margin-top: 0;
        margin-left: 20px
    }
}

@media (min-width:1200px) {
    .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
        float: left
    }

    .col-lg-1 {
        width: 8.333333%
    }

    .col-lg-2 {
        width: 16.666667%
    }

    .col-lg-3 {
        width: 25%
    }

    .col-lg-4 {
        width: 33.333333%
    }

    .col-lg-5 {
        width: 41.666667%
    }

    .col-lg-6 {
        width: 50%
    }

    .col-lg-7 {
        width: 58.333333%
    }

    .col-lg-8 {
        width: 66.666667%
    }

    .col-lg-9 {
        width: 75%
    }

    .col-lg-10 {
        width: 83.333333%
    }

    .col-lg-11 {
        width: 91.666667%
    }

    .col-lg-12 {
        width: 100%
    }

    .col-lg-pull-0 {
        right: auto
    }

    .col-lg-pull-1 {
        right: 8.333333%
    }

    .col-lg-pull-2 {
        right: 16.666667%
    }

    .col-lg-pull-3 {
        right: 25%
    }

    .col-lg-pull-4 {
        right: 33.333333%
    }

    .col-lg-pull-5 {
        right: 41.666667%
    }

    .col-lg-pull-6 {
        right: 50%
    }

    .col-lg-pull-7 {
        right: 58.333333%
    }

    .col-lg-pull-8 {
        right: 66.666667%
    }

    .col-lg-pull-9 {
        right: 75%
    }

    .col-lg-pull-10 {
        right: 83.333333%
    }

    .col-lg-pull-11 {
        right: 91.666667%
    }

    .col-lg-pull-12 {
        right: 100%
    }

    .col-lg-push-0 {
        left: auto
    }

    .col-lg-push-1 {
        left: 8.333333%
    }

    .col-lg-push-2 {
        left: 16.666667%
    }

    .col-lg-push-3 {
        left: 25%
    }

    .col-lg-push-4 {
        left: 33.333333%
    }

    .col-lg-push-5 {
        left: 41.666667%
    }

    .col-lg-push-6 {
        left: 50%
    }

    .col-lg-push-7 {
        left: 58.333333%
    }

    .col-lg-push-8 {
        left: 66.666667%
    }

    .col-lg-push-9 {
        left: 75%
    }

    .col-lg-push-10 {
        left: 83.333333%
    }

    .col-lg-push-11 {
        left: 91.666667%
    }

    .col-lg-push-12 {
        left: 100%
    }

    .col-lg-offset-0 {
        margin-left: 0
    }

    .col-lg-offset-1 {
        margin-left: 8.333333%
    }

    .col-lg-offset-2 {
        margin-left: 16.666667%
    }

    .col-lg-offset-3 {
        margin-left: 25%
    }

    .col-lg-offset-4 {
        margin-left: 33.333333%
    }

    .col-lg-offset-5 {
        margin-left: 41.666667%
    }

    .col-lg-offset-6 {
        margin-left: 50%
    }

    .col-lg-offset-7 {
        margin-left: 58.333333%
    }

    .col-lg-offset-8 {
        margin-left: 66.666667%
    }

    .col-lg-offset-9 {
        margin-left: 75%
    }

    .col-lg-offset-10 {
        margin-left: 83.333333%
    }

    .col-lg-offset-11 {
        margin-left: 91.666667%
    }

    .col-lg-offset-12 {
        margin-left: 100%
    }

    .employee-grid__item, 

    
}

.pagination .nav-bar {
    flex-direction: initial;
}

@media (max-width:1269px) {
    .header .nav-bar {
        display: none
    }

    .mobile-nav .nav-link {
        display: flex;
    }

    .mobile-nav--open .nav-bar {
        max-height: 100%;
        overflow-y: auto;
        padding: 20px 0;
    }
}

@media (min-width: 1270px) {
    .mobile-nav-handler {
        display: none
    }
}

/* Pagination Navigation Styling */
.pagination {
    margin-left: auto;
    margin-right: auto;
    display: block;
    padding: 40px 20px;
    text-align: center;
}

    .pagination .nav-bar {
        position: inherit;
        gap: 8px;
    }

    .pagination .nav-link {
        display: inline-block;
        padding: 10px 14px;
        margin: 5px 4px;
        background-color: #fff;
        border: 1px solid #e0e0e0;
        border-radius: 6px;
        font-size: 13px;
        text-transform: uppercase;
        font-weight: 600;
        letter-spacing: 1px;
        color: #333 !important;
        text-decoration: none;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        cursor: pointer;
    }

        .pagination .nav-link:hover:not(.nav-link--disabled) {
            transform: translateY(-2px);
        }

    .pagination .nav-link--disabled {
        opacity: 0.5;
        cursor: not-allowed;
        background-color: #f5f5f5;
    }

        .pagination .nav-link--disabled:hover {
            background-color: #f5f5f5;
            color: #999 !important;
            border-color: #e0e0e0;
            transform: none;
            box-shadow: none;
        }

/* Responsive Pagination */
@media (min-width: 576px) {
    .pagination .nav-link {
        padding: 11px 16px;
        font-size: 13px;
    }
}

@media (min-width: 768px) {
    .pagination {
        padding: 50px 20px;
    }

        .pagination .nav-link {
            padding: 12px 18px;
            margin: 6px 5px;
        }
}

@media (min-width: 992px) {
    .pagination {
        padding: 60px 20px;
    }

        .pagination .nav-bar {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
        }
}

@media (min-width: 1200px) {
    .pagination {
        max-width: var(--max-width-xlarge);
    }

        .pagination .nav-bar {
            position: relative;
            flex-direction: initial;
        }
}

.nav-fake {
    text-decoration: none;
    margin: 10px 15px;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 2px;
    border-bottom: 2px solid transparent;
}

.video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    margin: 10px 0px;
}

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

.container img {
}

.fileDownload ul {
    list-style: none;
    margin: 20px 0px 50px 0px;
    padding: 0px;
}

    .fileDownload ul li {
        list-style: none;
        margin: 0px 3px;
        padding: 0px;
        font-size: 1.2em;
    }

        .fileDownload ul li a {
            color: black;
        }

            .fileDownload ul li a:hover {
                color: black;
                text-decoration: none;
            }

.border-line {
    border-top: 1px solid black;
    padding: 10px 0px 5px 0px
}
 
.input-validation-error {
    border: 1px solid red !important;
}

/* Farbe vom .invalid-feedback-Container (danger); Abstand, damit der Text nicht am naechsten Label klebt */
.field-validation-error {
    display: block;
    color: inherit;
    margin: 0 0 12px 0;
}

.form-control {
    margin: 10px 0px 0px 0px;
}

.btn {
    margin: 10px 0px 0px 0px;
}

/* Blog Category Tags Styling */
.blogpost-cat a {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid transparent;
}

    .blogpost-cat a:hover {
        transform: translateY(-2px);
    }

/* Blogpost Detail Page Styling */
.blogpost-detail {
    max-width: 840px;
    margin: 0 auto;
}

.blogpost-header {
    margin-bottom: 10px;
    padding-bottom: 40px;
    border-bottom: 1px solid #f0f0f0;
}

.blogpost-title-large {
    font-size: 2.8em;
    font-weight: 700;
    line-height: 1.2;
    margin: 20px 0 15px;
    color: #000;
}

@media (max-width: 768px) {
    .blogpost-title-large {
        font-size: 2em;
    }
}

.blogpost-excerpt-large {
    font-size: 1.3em;
    line-height: 1.6;
    color: #666;
    margin-top: 20px;
    font-style: italic;
}

.blogpost-content {
    margin-bottom: 28px;
    line-height: 1.6;
}

    .blogpost-content img {
        max-width: 100%;
        height: auto;
        margin: 30px 0;
        border-radius: 8px;
    }

    a[data-lightbox="content"] {
        display: block;
        cursor: zoom-in;
    }

    a[data-lightbox="content"]:focus-visible {
        outline: 3px solid currentColor;
        outline-offset: 3px;
    }

/* ============================================
   NEWS: Magazin-Darstellung (Board NewsApp.dc.html)
   Nur aktiv, wenn am Beitrag "Magazin-Darstellung" an ist; Farben/Schrift über --feature-* der Theme-Tokens.
   ============================================ */

.blogpost-content--feature > .umb-block-grid > .umb-block-grid__layout-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 0;
}

.blogpost-content--feature .umb-block-grid__area > .umb-block-grid__layout-container {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
}

.blogpost-content--feature p { margin: 0; color: var(--feature-text); }
.blogpost-content--feature p + p { margin-top: 12px; }

/* Einleitung: erster Absatz des Beitrags */
.blogpost-content--feature > .umb-block-grid > .umb-block-grid__layout-container > .umb-block-grid__layout-item:first-child p:first-child {
    font-size: 20px;
    line-height: 1.6;
}

/* Abschnittsüberschriften und Listen-Blöcke bekommen Abstand nach oben */
.blogpost-content--feature > .umb-block-grid > .umb-block-grid__layout-container > .umb-block-grid__layout-item[data-content-element-type-alias="BlockElement_headline"],
.blogpost-content--feature > .umb-block-grid > .umb-block-grid__layout-container > .umb-block-grid__layout-item[data-content-element-type-alias="blockElementFactList"],
.blogpost-content--feature > .umb-block-grid > .umb-block-grid__layout-container > .umb-block-grid__layout-item[data-content-element-type-alias="blockElementLinkList"] {
    margin-top: 28px;
}

.blogpost-content--feature h2,
.blogpost-content--feature h3 {
    margin: 0;
    font-family: var(--feature-font-heading);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    color: var(--feature-text);
}

.blogpost-content--feature h3 { margin-bottom: 16px; }

.blogpost-content--feature .umb-block-grid__area h2 {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: #000;
}

/* Spalten: Bereiche als Raster, auf dem Handy untereinander */
.blogpost-content--feature .umb-block-grid__area-container {
    display: grid;
    grid-template-columns: repeat(var(--umb-block-grid--area-grid-columns, 12), minmax(0, 1fr));
    gap: 24px;
}

.blogpost-content--feature .umb-block-grid__area {
    grid-column: span var(--umb-block-grid--area-column-span, 12);
    min-width: 0;
}

/* Screenshots in Handy-Optik */
.blogpost-content--feature .umb-block-grid__area a[data-lightbox] { line-height: 0; }

.blogpost-content--feature .umb-block-grid__area img {
    display: block;
    width: 100%;
    max-width: 232px;
    height: auto;
    margin: 0 auto;
    border: 1px solid var(--feature-tint-border);
    border-radius: 20px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
}

/* Drei Spalten: Band mit Bildern und Beschriftung */
.blogpost-content--feature [data-content-element-type-alias="BlockGridLayout_ThreeColumns"] {
    padding: 36px 24px 28px;
    background: var(--feature-tint);
    border: 1px solid var(--feature-tint-border);
    border-radius: 6px;
}

.blogpost-content--feature [data-content-element-type-alias="BlockGridLayout_ThreeColumns"] .umb-block-grid__area p {
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.blogpost-content--feature [data-content-element-type-alias="BlockGridLayout_ThreeColumns"] .umb-block-grid__area strong {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--feature-accent-text);
}

/* Zwei Spalten: Karten */
.blogpost-content--feature [data-content-element-type-alias="BlockGridLayout_TwoColumns"] .umb-block-grid__area {
    padding: 28px;
    border: 1px solid var(--feature-border);
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Artikel (schmal links, breit rechts): Bild neben Text */
.blogpost-content--feature [data-content-element-type-alias="BlockGridLayout_Article"] .umb-block-grid__area-container {
    align-items: center;
    gap: 32px;
}

/* Nummerierte Schritte */
.blogpost-content--feature ol {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: step;
}

.blogpost-content--feature ol > li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    font-size: 17px;
    line-height: 1.5;
    counter-increment: step;
}

.blogpost-content--feature ol > li::before {
    content: counter(step);
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid var(--feature-accent-text);
    border-radius: 50%;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    color: var(--feature-accent-text);
}

.blogpost-content--feature ol > li > p { flex: 1; min-width: 0; margin: 0; font-size: inherit; }

/* Hinweis: Zitat im Textblock (Selektor spezifischer als die Zitat-Regel der Themes für Rich-Text-Blöcke) */
body .blogpost-content.blogpost-content--feature .umb-block-grid__layout-item blockquote {
    position: relative;
    margin: 0;
    padding: 24px 28px 24px 94px;
    background: var(--feature-callout);
    border: 1px solid var(--feature-callout-border);
    border-radius: 6px;
    font-family: inherit;
    font-size: 17px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    color: var(--feature-text);
}

body .blogpost-content.blogpost-content--feature blockquote::before {
    content: "\f189";
    position: absolute;
    top: 24px;
    left: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--feature-accent);
    font-family: "bootstrap-icons";
    font-size: 22px;
    font-style: normal;
    line-height: 1;
    color: var(--feature-text);
}

body .blogpost-content.blogpost-content--feature .umb-block-grid__layout-item blockquote p {
    margin: 0;
    font: inherit;
    color: inherit;
}

body .blogpost-content.blogpost-content--feature .umb-block-grid__layout-item blockquote p + p { margin-top: 6px; }

body .blogpost-content.blogpost-content--feature .umb-block-grid__layout-item blockquote p:first-child {
    margin-bottom: 6px;
    font-family: var(--feature-font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

/* Fakten-Liste: Kacheln */
.blogpost-content--feature .fact-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 16px;
    margin: 0;
}

.blogpost-content--feature .fact-list__item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 22px;
    border: 1px solid var(--feature-border);
    border-left: 4px solid var(--feature-accent);
    border-radius: 6px;
}

.blogpost-content--feature .fact-list__label {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--feature-accent-text);
}

.blogpost-content--feature .fact-list__value {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--feature-text);
}

/* Link-Liste: Zeilen mit Pfeil */
.blogpost-content--feature .link-list { display: flex; flex-direction: column; }

.blogpost-content--feature .link-list li { border-top: 1px solid var(--feature-border); }
.blogpost-content--feature .link-list li:last-child { border-bottom: 1px solid var(--feature-border); }

.blogpost-content--feature .link-list__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 56px;
    font-size: 18px;
    font-weight: 600;
    color: var(--feature-accent-text);
}

.blogpost-content--feature .link-list__link::after { content: "\2192"; }

@media (max-width: 767px) {
    .blogpost-content--feature .umb-block-grid__area-container { grid-template-columns: 1fr; }
    .blogpost-content--feature .umb-block-grid__area { grid-column: auto; }
    body .blogpost-content.blogpost-content--feature .umb-block-grid__layout-item blockquote { padding: 84px 22px 22px; }
}

/* Breadcrumb */
.breadcrumb {
    padding: 15px 0;
}

.breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
}

.breadcrumb__item {
    display: flex;
    align-items: center;
    gap: 6px;
}

    .breadcrumb__item:not(:last-child)::after {
        content: '/';
    }

.breadcrumb__link {
    text-decoration: none;
}

    .breadcrumb__link:hover {
        text-decoration: underline;
    }

.breadcrumb__current {
    font-weight: 600;
}

@media (max-width: 576px) {
    .breadcrumb {
        padding: 10px 0;
    }

    .breadcrumb__list {
        font-size: 12px;
    }
}

/* Untermenue: Seitenleiste ab 769 px; auf dem Handy Leiste (Board Subnavigation.dc.html, Variante A) + Liste.
   Farben/Schrift ueber --subnav-* in theme-*-tokens.css */
.sub-navigation-wrapper {
    width: 100%;
}

.sub-navigation-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 64px;
    box-sizing: border-box !important; /* .nav-bar * setzt content-box !important */
    padding: 10px 12px 10px 16px;
    border: 0;
    border-radius: var(--button-radius);
    background: var(--subnav-bar-bg);
    color: var(--subnav-title);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
}

.sub-navigation-toggle[hidden],
.sub-navigation-content[hidden] {
    display: none;
}

.sub-navigation-toggle:focus-visible {
    outline: 3px solid var(--subnav-focus);
    outline-offset: 2px;
}

.sub-navigation-toggle__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sub-navigation-toggle__label {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--subnav-label);
}

.sub-navigation-toggle__title {
    font-family: var(--subnav-font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--subnav-title);
}

.sub-navigation-toggle__icon {
    flex: none;
    position: relative;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    border: 2px solid var(--subnav-accent);
    border-radius: 50%;
    background: var(--color-white);
    transition: transform .2s ease;
}

    .sub-navigation-toggle__icon::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        width: 8px;
        height: 8px;
        margin: -7px 0 0 -4px;
        border: solid var(--subnav-accent-text);
        border-width: 0 2.5px 2.5px 0;
        transform: rotate(45deg);
    }

.sub-navigation-toggle:hover .sub-navigation-toggle__icon {
    background: var(--subnav-active-bg);
}

.sub-navigation-toggle.is-open .sub-navigation-toggle__icon {
    transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
    .sub-navigation-toggle__icon {
        transition: none;
    }
}

.sub-navigation-content a.nav-link {
    display: block;
    margin: 8px 0;
    padding: 8px 10px;
    border: none;
    border-left: 3px solid transparent;
    transition: all 0.2s ease;
    color: var(--subnav-text);
}

    .sub-navigation-content a.nav-link:hover {
        background-color: var(--subnav-hover-bg);
        border-left-color: var(--subnav-accent);
        padding-left: 15px;
    }

.sub-navigation-content a.nav-link--active {
    border-left-color: var(--subnav-accent);
    color: var(--subnav-title);
    font-weight: 700;
}

/* Handy: Liste unter der Leiste, linksbuendig wie die Seitenleiste */
@media (max-width: 768px) {
    .sub-navigation-wrapper {
        margin-bottom: 20px;
        max-width: 100%;
    }

    .sub-navigation-col .nav-bar {
        transform: none; /* .nav-bar { translate(-5%) } gilt nur der Kopf-Navigation */
    }

    .sub-navigation-content {
        margin-top: 8px;
    }

    .sub-navigation-content a.nav-link {
        display: flex;
        align-items: center;
        min-height: 48px;
        box-sizing: border-box !important;
        margin: 2px 0;
        padding: 10px 14px;
    }

        .sub-navigation-content a.nav-link:hover {
            padding-left: 14px;
        }

    .sub-navigation-content a.nav-link--active {
        background-color: var(--subnav-active-bg);
    }

    .sub-navigation-col,
    .main-content-col {
        width: 100%;
        float: none;
    }
}

.umb-block-grid__layout-container {
    margin: 0px 5px;
}

/* ============================================
   NEWS OVERLAY - Kompakte News-Anzeige auf Startseite
   ============================================ */

.news-overlay-container {
    position: relative;
    margin-top: 0px;
    margin-left: auto;
    margin-right: auto;
    max-width: 1140px;
    padding: 0 15px;
    z-index: 10;
    pointer-events: none;
}

.news-overlay {
    /* background: rgba(255, 255, 255, 0.25); */
    /* border: 2px solid rgba(0, 0, 0, 0.1); */
    border-radius: 8px;
    padding: 10px;
    /* box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15); */
    /* backdrop-filter: blur(10px); */
    pointer-events: auto;
}

.news-overlay__title {
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 25px 0;
    color: #fff;
    letter-spacing: 1px;
}

.news-overlay h1 {
    color: #fff;
}

.blogposts-compact {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin: 0;
}

.blogpost-compact {
    text-decoration: none;
    color: #fff;
    display: block;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--button-radius);
    overflow: hidden;
    transition: all var(--transition-fast);
    backdrop-filter: blur(10px)
}

    .blogpost-compact:hover {
        background-color: rgba(255, 255, 255, 0.18);
        border-color: rgba(255, 255, 255, 0.4);
        transform: translateY(-3px);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2)
    }

        .blogpost-compact:hover .blogpost-compact__title {
        }

.blogpost-compact__date {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.blogpost-compact__title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 10px 0;
    line-height: 1.4;
    color: #fff;
    transition: color 0.3s ease;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blogpost-compact__excerpt {
    font-size: 13px;
    line-height: 1.5;
    color: #fff;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    opacity: 0.8;
}

@media (max-width: 768px) {
    .news-overlay-container {
        margin-top: 0px;
    }

    .news-overlay {
        padding: 20px;
    }

    .news-overlay__title {
        font-size: 20px;
        margin-bottom: 20px;
    }

    .blogposts-compact {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .blogpost-compact {
        padding: 15px;
    }

    .blogpost-compact__title {
        font-size: 15px;
    }

    .blogpost-compact__excerpt {
        font-size: 12px;
    }
}

@media (max-width: 576px) {
    .news-overlay-container {
        margin-top: 0px;
    }

    .news-overlay {
        padding: 15px;
    }

    .news-overlay__title {
        font-size: 18px;
        margin-bottom: 15px;
    }

    .blogpost-compact {
        padding: 12px;
    }

    .blogpost-compact__title {
        font-size: 14px;
    }
}

/* ============================================
   PUSH OPT-IN BANNER
   ============================================ */

.push-optin-banner {
    position: fixed;
    right: 20px;
    bottom: 20px;
    left: 20px;
    z-index: 1200;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    max-width: 400px;
    margin-left: auto;
    padding: 22px 24px;
    border-radius: var(--button-radius);
    animation: push-optin-in 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

.push-optin-banner__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    font-size: 20px;
}

.push-optin-banner__content {
    flex: 1 1 auto;
    min-width: 0;
}

.push-optin-banner__title {
    margin: 0 0 4px;
    font-weight: 700;
    font-size: 16px;
}

.push-optin-banner__text {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.4;
}

.push-optin-banner__error {
    margin: -4px 0 14px;
    padding: 10px 14px;
    font-size: 13px;
}

.push-optin-banner__error[hidden] {
    display: none;
}

.push-optin-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.push-optin-banner__cta,
.push-optin-banner__dismiss {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 22px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: var(--button-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: var(--transition-fast);
}

.push-optin-banner__cta:hover,
.push-optin-banner__dismiss:hover {
    transform: translateY(-2px);
}

@keyframes push-optin-in {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .push-optin-banner {
        animation: none;
    }
}

@media (max-width: 576px) {
    .push-optin-banner {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
        padding: 18px 20px;
    }
}

/* ============================================
   PWA: Installations-/Update-Hinweis, installierte App
   (Board App.dc.html; Farben in theme-*-components.css)
   ============================================ */

/* Die Hinweise nutzen die Klassen des Push-Hinweises; display:flex dort würde [hidden] sonst überstimmen */
.pwa-banner[hidden],
.pwa-update[hidden] {
    display: none;
}

.pwa-steps {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 8px 0 14px;
    padding: 0;
    list-style: none;
    font-size: 14px;
    line-height: 1.4;
}

.pwa-steps li {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pwa-steps__num {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 2px solid currentColor;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.pwa-update {
    position: fixed;
    right: 20px;
    bottom: 20px;
    left: 20px;
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    max-width: 400px;
    margin-left: auto;
    padding: 12px 16px;
    border-radius: var(--button-radius);
    animation: push-optin-in 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

.pwa-update__text {
    font-size: 16px;
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .pwa-update {
        animation: none;
    }
}

@media (max-width: 576px) {
    .pwa-update {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
    }
}

/* Installierte App: Inhalt unter Statusleiste und Home-Indikator (iOS, viewport-fit=cover).
   Auf Android und im Browser sind die Insets 0, die Regeln wirken dort nicht. */
@media (display-mode: standalone) {
    body {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
    }

    body::before,
    body::after {
        content: "";
        position: fixed;
        right: 0;
        left: 0;
        z-index: 1100;
        pointer-events: none;
    }

    body::before {
        top: 0;
        height: env(safe-area-inset-top);
        background: var(--pwa-top-color, transparent);
    }

    body::after {
        bottom: 0;
        height: env(safe-area-inset-bottom);
        background: var(--pwa-bottom-color, transparent);
    }
}



/* ==========================================================================
   EVENTS: Termin-Leiste und Termin-Detail (Struktur; Skin in theme-*-components.css)
   ========================================================================== */
.event-intro__body { max-width: var(--max-width-content, 800px); margin: 0 auto; text-align: center; }
.event-intro__body p { margin-left: auto; margin-right: auto; font-size: 18px; line-height: 1.6; text-wrap: pretty; }
.event-intro__body p + p { font-size: 16px; }
.event-intro__body em { font-style: normal; }

.event-strip { border-top: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light); }
.event-strip__inner { display: flex; align-items: center; gap: 10px; }
.event-strip__list {
  flex: 1; min-width: 0; display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 28px 6px 22px; list-style: none;
  overflow-x: auto; scroll-behavior: smooth; scrollbar-width: thin; -webkit-overflow-scrolling: touch;
}
.event-strip__item { flex: none; }
.event-strip__year {
  flex: none; align-self: stretch; display: flex; align-items: flex-start; padding: 30px 4px 0 10px;
  font-size: 15px; font-weight: 700; line-height: 1;
}
.event-strip__link { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 112px; text-decoration: none; }
.event-strip__circle {
  box-sizing: border-box; width: 84px; height: 84px; border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 1px; border: 2px solid transparent; transition: all .25s ease;
}
.event-strip__day { font-size: 28px; font-weight: 700; line-height: 1; }
.event-strip__day--long { font-size: 18px; }
.event-strip__month { font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: 1px; }
.event-strip__month--long { font-size: 12px; }
.event-strip__name {
  width: 100%; font-size: 14px; font-weight: 600; line-height: 1.3; text-align: center;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: break-word; hyphens: auto;
}
.event-strip__flag { font-size: 13px; font-weight: 700; line-height: 1.3; }
.event-strip__arrow {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; cursor: pointer;
}
.event-strip__arrow[hidden] { display: none; }
.event-strip__arrow:disabled { cursor: default; opacity: .4; }
.event-strip__link:focus-visible { outline: none; }
.event-strip__link:focus-visible .event-strip__circle { outline: 3px solid currentColor; outline-offset: 4px; }

.event-notice { max-width: 800px; margin: 0 auto 28px; padding: 14px 18px; border-radius: 6px; font-size: 16px; line-height: 1.5; }

.event-empty { max-width: 640px; margin: 0 auto 40px; text-align: center; }
.event-empty__title { margin: 0 0 12px; font-size: clamp(22px, 3vw, 28px); font-weight: 700; line-height: 1.25; text-transform: none; letter-spacing: 0; }
.event-empty__text { margin: 0 0 20px; font-size: 18px; line-height: 1.6; text-wrap: pretty; }
.event-empty__link { display: inline-block; padding: 10px 24px; border-radius: 6px; font-size: 16px; font-weight: 700; text-decoration: none; }

.event-subscribe {
  box-sizing: border-box; max-width: 800px; margin: 48px auto 0; padding: 24px; border-radius: 6px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
}
.event-subscribe__text { flex: 1 1 280px; min-width: 0; }
.event-subscribe__title { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.3; text-transform: none; letter-spacing: 0; }
.event-subscribe__hint { margin: 6px 0 0; font-size: 16px; line-height: 1.5; text-wrap: pretty; }
.event-subscribe__link {
  flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 6px;
  font-size: 16px; font-weight: 700; line-height: 1.3; text-decoration: none; transition: all .2s ease;
}

.event-detail { max-width: 800px; margin: 0 auto; }
.event-detail__head { display: flex; align-items: center; gap: 24px; margin-bottom: 28px; }
.event-detail__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.event-detail__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.event-detail__chip { padding: 5px 14px; border-radius: 9999px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.event-detail__chip--action { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; transition: all .25s ease; }
.event-detail__date { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.4; }
.event-detail__title { margin: 0; font-size: clamp(24px, 3.6vw, 38px); font-weight: 700; line-height: 1.2; text-transform: none; letter-spacing: 0; text-wrap: balance; overflow-wrap: break-word; hyphens: auto; }
.event-detail__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 40px; }
.event-detail__nav {
  padding: 10px 24px; border-radius: 6px; font-size: 15px; font-weight: 700; line-height: 1.4; text-decoration: none;
}
.event-detail__head .news-date-circle__month { font-size: 14px; letter-spacing: 1px; }
.event-detail__head .news-date-circle__month--long { font-size: 12px; }

@media (max-width: 575px) {
  .event-strip__arrow { display: none; }
  .event-subscribe { padding: 20px; }
  .event-subscribe__link { width: 100%; justify-content: center; }
}


/* ==========================================================================
   NEWS: Übersicht (Karten) und Detail (Struktur; Skin in theme-*-components.css)
   ========================================================================== */
.news-list { display: flex; flex-direction: column; gap: 24px; max-width: 840px; margin: 0 auto; }
.news-card {
  display: flex; align-items: flex-start; gap: 24px; padding: 28px; border-radius: 6px; text-decoration: none; transition: all .25s ease;
}
.news-card:hover { transform: translateY(-3px); }
.news-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.news-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.news-card__date { font-size: 13px; font-weight: 600; letter-spacing: 1px; }
.news-card__title { font-size: clamp(20px, 2.6vw, 26px); font-weight: 700; line-height: 1.25; text-wrap: balance; }
.news-card__text { font-size: 16px; line-height: 1.6; text-wrap: pretty; }
.news-card__more { margin-top: 4px; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.news-chip { padding: 4px 12px; border-radius: 9999px; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .5px; text-transform: uppercase; }
.news-date-circle {
  flex: none; box-sizing: border-box; width: 84px; height: 84px; border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 1px; border: 2px solid transparent;
}
.news-date-circle__day { font-size: 28px; font-weight: 700; line-height: 1; }
.news-date-circle__day--long { font-size: 17px; }
.news-date-circle__month--long { font-size: 10px; }
.news-date-circle__month { font-size: 12px; font-weight: 600; line-height: 1.2; letter-spacing: 1.5px; }

.news-back { display: inline-block; margin-bottom: 28px; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; }
.news-detail__head { display: flex; align-items: center; gap: 24px; margin-bottom: 28px; }
.news-detail__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.news-detail__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.news-detail__date { font-size: 14px; font-weight: 600; letter-spacing: 1px; }
.news-detail__title { margin: 0; font-size: clamp(24px, 3.6vw, 38px); font-weight: 700; line-height: 1.2; text-transform: none; letter-spacing: 0; text-wrap: balance; }
.news-pager { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 20px; padding-top: 32px; }
.news-pager__link { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 6px; padding: 18px 22px; border-radius: 6px; text-decoration: none; transition: all .25s ease; }
.news-pager__link--older { text-align: right; align-items: flex-end; }
.news-pager__dir { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.news-pager__title { font-size: 16px; font-weight: 700; line-height: 1.3; }

@media (max-width: 575px) {
  .news-card { flex-direction: column; padding: 22px; gap: 16px; }
  .news-detail__head, .event-detail__head { gap: 16px; }
  .news-detail__head .news-date-circle, .event-detail__head .news-date-circle { width: 64px; height: 64px; }
  .news-detail__head .news-date-circle__day, .event-detail__head .news-date-circle__day { font-size: 22px; }
  .event-detail__head .news-date-circle__day--long { font-size: 14px; }
}


/* NEWS: kompakte Karten auf der Startseite (Hero) */
.news-overlay { max-width: 820px; margin: 0 auto; padding: 10px 0; }
.news-overlay__heading { margin: 0 0 28px; text-align: center; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.2; text-transform: none; letter-spacing: 0; }
.news-compact { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 20px; text-align: left; }
.news-compact__card { display: flex; align-items: flex-start; gap: 18px; padding: 22px; border-radius: 6px; text-decoration: none; transition: all .25s ease; }
.news-compact__card:hover { transform: translateY(-3px); }
.news-compact__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.news-compact__title { font-size: 17px; font-weight: 700; line-height: 1.3; text-wrap: balance; }
.news-compact__text { font-size: 15px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-date-circle--small { width: 64px; height: 64px; }
.news-date-circle--small .news-date-circle__day { font-size: 21px; }
.news-date-circle--small .news-date-circle__month { font-size: 10px; }


/* ==========================================================================
   KOMMENTARE unter Blogbeiträgen (Board Kommentare.dc.html; Skin in theme-*-components.css)
   ========================================================================== */
.comments { display: flex; flex-direction: column; gap: 24px; margin-top: 48px; padding-top: 32px; }
.comments__title { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 24px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.comments__count { padding: 2px 10px; }
.comments__empty { margin: 0; font-size: 16px; line-height: 1.6; }
.comments__list, .comments__replies { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.comments__list { gap: 20px; }
.comments__replies { gap: 16px; margin: 14px 0 0 24px; padding-left: 30px; border-left: 2px solid transparent; }
.comment__inner { display: flex; gap: 16px; align-items: flex-start; }
.comment__avatar {
  flex: none; box-sizing: border-box; width: 48px; height: 48px; border-radius: 50%; border: 2px solid transparent;
  display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; line-height: 1;
}
.comment--reply .comment__inner { gap: 14px; }
.comment--reply .comment__avatar { width: 40px; height: 40px; font-size: 14px; }
.comment__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.comment__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.comment__author { font-size: 16px; font-weight: 700; line-height: 1.3; }
.comment__badge { align-self: center; padding: 2px 10px; border-radius: 9999px; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .5px; text-transform: uppercase; }
.comment__date { font-size: 14px; font-weight: 600; letter-spacing: 1px; }
.comment__text { margin: 0; font-size: 16px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; text-wrap: pretty; }
.comment__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; }
.comment__like {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none;
  cursor: pointer; font-size: 14px; font-weight: 700; line-height: 1.4;
}
.comment__like .reaction-icon { width: 18px; height: 18px; }
.comment__like:disabled { cursor: default; }
.comment__reply {
  display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 700; line-height: 1.4;
  letter-spacing: 2px; text-transform: uppercase; text-decoration: none;
}
.comments__success { display: flex; gap: 12px; align-items: flex-start; margin: 0; }

.comment-form { display: flex; flex-direction: column; gap: 20px; padding: 28px; border-radius: 6px; }
.comment-form--inline { margin: 16px 0 0 64px; }
.comment-form__head { display: flex; flex-direction: column; gap: 6px; }
.comment-form__title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.comment-form__hint, .comment-form__note { margin: 0; font-size: 14px; line-height: 1.5; }
.comment-form__note--end { align-self: flex-end; }
.comment-form__form { display: flex; flex-direction: column; gap: 20px; }
.comment-form__form .invalid-feedback:empty { display: none !important; }
.comment-form__replying {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px;
  padding: 10px 14px; border-radius: 6px; font-size: 16px; line-height: 1.5;
}
.comment-form__replying[hidden] { display: none; }
.comment-form__cancel { padding: 4px 0; font-size: 14px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; }
.comment-form__row { display: flex; flex-wrap: wrap; gap: 20px; }
.comment-form__row > .comment-form__field { flex: 1 1 240px; }
.comment-form__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.comment-form__field .form-label { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; text-transform: uppercase; }
.comment-form__captcha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 20px; }
.comment-form__captcha > .comment-form__field { flex: 1 1 200px; }
.comment-form__captcha-image { flex: none; width: 180px; height: 60px; }
.comment-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; }
.comment-form__consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; }
.comment-form__consent label { margin: 0; font-weight: 400; text-transform: none; letter-spacing: 0; }
.comment-form__honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* REAKTIONEN auf den Beitrag (Board Reaktionen.dc.html) */
.reactions { display: flex; flex-direction: column; gap: 14px; margin-top: 40px; padding: 24px; border-radius: 6px; }
.reactions__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.reactions__title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.reactions__total, .reactions__hint, .reactions__error { margin: 0; font-size: 14px; line-height: 1.5; }
.reactions__total { font-weight: 600; }
.reactions__list { display: flex; flex-wrap: wrap; gap: 10px; }
.reaction {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; box-sizing: border-box; padding: 0 16px;
  border-radius: 9999px; border: 1px solid transparent; cursor: pointer; font-size: 14px; font-weight: 600; line-height: 1.4;
  transition: all .2s ease;
}
.reaction:disabled { cursor: default; }
.reaction__count { min-width: 10px; font-weight: 700; }
.reaction-icon { flex: none; fill: none; stroke: currentColor; }

@media (max-width: 575px) {
  .reactions { padding: 20px; }
  .comments__replies { margin-left: 8px; padding-left: 16px; }
  .comment-form--inline { margin-left: 0; }
  .comment-form { padding: 20px; }
}

@media (max-width: 575px) {
  .news-compact__card { padding: 16px; gap: 14px; }
}

.blogposts-empty { text-align: center; padding: 2rem; }
.blogposts-empty__icon { font-size: 2.5rem; color: #666; }

/* ============================================
   RESPONSIVE & TOUCH TARGETS
   ============================================ */

/* Long URLs in editor content must not push the page sideways */
main { overflow-wrap: break-word; }
main p, main li { text-wrap: pretty; }

.contact-map { display: block; width: 100%; max-width: 100%; }

.pagination .nav-bar { flex-wrap: wrap; justify-content: center; }
.pagination .nav-link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

.hamburger { min-width: 44px; min-height: 44px; }

/* 44px hit area without moving anything: vertical padding offset by negative margin */
.breadcrumb__link,
footer .nav-link,
.contact-map__link { padding-block: 13px; margin-block: -13px; }
.contact-map__link { display: inline-block; padding-block: 14px; margin-block: -14px; }
.event-detail__nav { min-height: 44px; }
.news-back { padding-block: 13px; margin-top: -13px; margin-bottom: 15px; }
.sub-navigation-content a.nav-link { padding-top: 13px; padding-bottom: 13px; }
.event-detail__chip--action { position: relative; }
.event-detail__chip--action::after { content: ""; position: absolute; inset: -6px 0; }

/* ==========================================================================
   Chronik (Blocks blockElementChronicleOverview / blockElementChronicleChapter)
   Struktur; Farben und Schriften im Theme
   ========================================================================== */
.chronicle-overview,
.chronicle-chapter { scroll-margin-top: 100px; margin-bottom: 56px; }

.chronicle-overview__marks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
    row-gap: 28px;
}
.chronicle-overview__mark { display: flex; flex-direction: column; gap: 8px; padding-right: 12px; }
.chronicle-overview__dot { box-sizing: border-box; width: 20px; height: 20px; border-radius: 50%; }
.chronicle-overview__link { display: flex; flex-direction: column; gap: 2px; text-decoration: none; }

.chronicle-chapter { display: flex; flex-direction: column; gap: 18px; }
.chronicle-chapter--highlight { padding: 32px; }
.chronicle-chapter__period,
.chronicle-chapter__back { align-self: flex-start; }
.chronicle-chapter__title,
.chronicle-chapter__lead { margin: 0; }

.chronicle-chapter__more > summary,
.chronicle-section__summary { list-style: none; cursor: pointer; }
.chronicle-chapter__more > summary::-webkit-details-marker,
.chronicle-section__summary::-webkit-details-marker { display: none; }
.chronicle-chapter__more-toggle { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
.chronicle-chapter__more:not([open]) .chronicle-chapter__more-label--open,
.chronicle-chapter__more[open] .chronicle-chapter__more-label--closed { display: none; }
.chronicle-chapter__body { margin-top: 18px; }

.chronicle-chapter__toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.chronicle-chapter__toggle-all { min-height: 44px; padding: 8px 4px; border: 0; background: transparent; cursor: pointer; }
.chronicle-chapter__toggle-all[hidden] { display: none; }

.chronicle-section__summary { display: flex; align-items: center; gap: 16px; min-height: 56px; padding: 16px 4px; }
.chronicle-section__heading { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.chronicle-section__icon { flex: none; position: relative; box-sizing: border-box; width: 36px; height: 36px; border-radius: 50%; }
.chronicle-section__icon::before,
.chronicle-section__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; background: currentColor; }
.chronicle-section__icon::after { transform: rotate(90deg); transition: transform .2s ease; }
.chronicle-section[open] .chronicle-section__icon::after { transform: rotate(0deg); }
.chronicle-section__text { padding: 0 4px 24px; }

/* Submenue: Kapitel als Unterpunkte; auf dem Desktop bleibt die Spalte beim Scrollen stehen */
.sub-navigation-chapters { margin: 0 0 8px; padding: 4px 0 8px 13px; }
.sub-navigation-chapters__list { list-style: none; margin: 0; padding: 0; }
.sub-navigation-chapters__link { display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; text-decoration: none; }
.sub-navigation-chapters__meta { margin: 0; padding: 8px 10px 0; }
@media (min-width: 769px) {
    .sub-navigation-col--sticky { position: sticky; top: 100px; }
    .sub-navigation-col--sticky .sub-navigation-content a.nav-link--active { margin-bottom: 0; }
}

/* ---- Cookie-Einwilligung (Board Consent.dc.html); Farben über --consent-* in :root, Themes überschreiben auf body ---- */
:root {
    --consent-primary: var(--color-brand);
    --consent-primary-hover: var(--color-brand-hover);
    --consent-on-primary: var(--color-text);
    --consent-accent-text: #2f6b30;
    --consent-accent-text-hover: #1f4a20;
    --consent-surface: #fff;
    --consent-tint: #f6f2e7;
    --consent-hover-tint: #f0f8f4;
    --consent-border: var(--color-border-light);
    --consent-switch-off: #767676;
}
.consent-banner { position: fixed; z-index: 1090; left: 50%; bottom: 20px; transform: translateX(-50%); box-sizing: border-box; width: calc(100% - 40px); max-width: 760px; padding: 24px 28px; display: flex; flex-direction: column; gap: 16px; background: var(--consent-surface); border: 1px solid var(--consent-border); border-radius: var(--button-radius); box-shadow: 0 8px 28px rgba(0, 0, 0, .18); color: var(--color-text); }
.consent-banner[hidden], .consent-fab[hidden], .consent-placeholder[hidden] { display: none; }
.consent-banner__title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.consent-banner__text { margin: 0; font-size: 16px; line-height: 1.6; }
.consent-banner__text a, .consent-placeholder__text a, .consent-dialog__policy { color: var(--consent-accent-text); text-decoration: underline; }
.consent-actions, .consent-dialog__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.consent-button { min-height: 44px; padding: 12px 28px; border: 2px solid var(--consent-primary); border-radius: var(--button-radius); cursor: pointer; font-size: 16px; font-weight: 700; line-height: 1.4; letter-spacing: 2px; text-transform: uppercase; }
.consent-button--primary { background: var(--consent-primary); color: var(--consent-on-primary); transition: background var(--transition-fast); }
.consent-button--primary:hover { background: var(--consent-primary-hover); border-color: var(--consent-primary-hover); }
.consent-button--outline { background: var(--consent-surface); color: var(--color-text); }
.consent-button--outline:hover { background: var(--consent-hover-tint); }
.consent-button--link { min-height: 44px; padding: 8px 4px; border: 0; background: none; color: var(--consent-accent-text); font-size: 14px; }
.consent-button--link:hover { color: var(--consent-accent-text-hover); text-decoration: underline; }
.consent-banner button:focus-visible, .consent-dialog button:focus-visible, .consent-dialog a:focus-visible, .consent-fab:focus-visible, .consent-placeholder button:focus-visible, .consent-banner a:focus-visible { outline: 3px solid var(--consent-accent-text); outline-offset: 2px; }

.consent-dialog { box-sizing: border-box; width: calc(100% - 32px); max-width: 600px; max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: var(--button-radius); background: var(--consent-surface); color: var(--color-text); box-shadow: 0 12px 40px rgba(0, 0, 0, .3); overflow: auto; }
.consent-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.consent-dialog__form { display: flex; flex-direction: column; margin: 0; }
.consent-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 28px 8px; }
.consent-dialog__title { margin: 0 0 6px; font-size: 20px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.consent-dialog__intro { margin: 0; font-size: 14px; line-height: 1.5; color: var(--color-text-light); }
.consent-dialog__close { flex: none; width: 44px; height: 44px; margin: -6px -10px 0 0; padding: 0; border: 0; border-radius: var(--button-radius); background: none; color: var(--color-text); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.consent-dialog__close:hover { background: var(--consent-hover-tint); }
.consent-categories { list-style: none; margin: 0; padding: 8px 28px; }
.consent-category { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid var(--consent-border); }
.consent-category__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.consent-category__title { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--color-black); }
.consent-category__text { font-size: 14px; line-height: 1.5; color: var(--color-text-light); }
.consent-category__control { flex: none; display: flex; align-items: center; gap: 10px; padding-top: 2px; }
.consent-category__state { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--color-text-light); }
.consent-switch { position: relative; flex: none; width: 52px; height: 30px; padding: 0; border: 0; border-radius: 9999px; background: var(--consent-switch-off); cursor: pointer; transition: background var(--transition-fast); }
.consent-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: left .15s ease; }
.consent-switch[aria-checked="true"] { background: var(--consent-accent-text); }
.consent-switch[aria-checked="true"]::after { left: 25px; }
.consent-switch:disabled { opacity: .55; cursor: not-allowed; }
.consent-dialog__foot { padding: 20px 28px 24px; border-top: 1px solid var(--consent-border); background: var(--consent-tint); }
.consent-dialog__policy { margin-left: auto; font-size: 14px; }

.consent-fab { position: fixed; z-index: 1080; left: 16px; bottom: 16px; min-width: 48px; height: 48px; padding: 0; border: 2px solid var(--consent-primary); border-radius: 9999px; background: var(--consent-surface); color: var(--consent-accent-text); box-shadow: 0 4px 14px rgba(0, 0, 0, .18); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; overflow: hidden; }
.consent-fab svg { flex: none; }
.consent-fab__label { display: none; font-size: 14px; font-weight: 700; letter-spacing: 1px; color: var(--color-text); white-space: nowrap; }
.consent-fab:hover, .consent-fab:focus-visible { padding: 0 20px 0 12px; background: var(--consent-hover-tint); }
.consent-fab:hover .consent-fab__label, .consent-fab:focus-visible .consent-fab__label { display: inline; }

.consent-footer-link { padding: 0; border: 0; background: none; cursor: pointer; font: inherit; }
.consent-placeholder { box-sizing: border-box; min-height: 350px; padding: 32px 28px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; background: var(--consent-tint); border: 1px solid var(--consent-border); border-radius: var(--button-radius); color: var(--color-text); }
.consent-placeholder__icon { color: var(--consent-accent-text); }
.consent-placeholder__text { margin: 0; font-size: 16px; line-height: 1.6; }

@media (max-width: 576px) {
    .consent-banner { bottom: 12px; width: calc(100% - 24px); padding: 20px; }
    .consent-banner .consent-button--primary, .consent-banner .consent-button--outline { flex: 1 1 100%; }
    .consent-dialog__head, .consent-dialog__foot { padding-left: 20px; padding-right: 20px; }
    .consent-categories { padding: 8px 20px; }
    .consent-category { flex-direction: column; gap: 12px; }
    .consent-dialog__foot .consent-button { flex: 1 1 100%; }
    .consent-dialog__policy { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .consent-switch, .consent-switch::after, .consent-button--primary { transition: none; }
}

/* Fußbereich: Trenner und Copyright-Zeile (Darstellung je Theme; Standard: Trenner sichtbar, Copyright ausgeblendet) */
.footer__copyright {
    display: none
}
/* Fußbereich: Marke und Link-Gruppe (Darstellung je Theme; Standard: Marke aus, Gruppe ohne eigene Box) */
.footer__brand {
    display: none
}
.footer__nav {
    display: contents
}
