/* =====================================================
           GRÖSSEN
           ===================================================== */

        :root {
            --avh-header-height: 76px;
            --avh-header-live-height: 76px;
        }


        html.avh-header-no-smooth {
            scroll-behavior: auto !important;
        }


        html.avh-header-pinned {
            scroll-padding-top:
                var(--avh-header-live-height);
        }


        /* =====================================================
           GLOBALER PLATZHALTER
           ===================================================== */

        .avh-global-header-space {
            display: block;

            flex:
                0
                0
                auto;

            width: 100%;
            height: 0;

            min-height: 0;

            margin: 0;
            padding: 0;

            border: 0;

            overflow: hidden;

            background: rgba(var(--avh-rgb-base-gray), 0);

            pointer-events: none;

            transition: none !important;
        }


        html.avh-header-pinned
        .avh-global-header-space {
            height:
                var(--avh-header-live-height);
        }


        /* =====================================================
           ALTEN ELEMENTOR-SHORTCODE AUSBLENDEN
           ===================================================== */

        .avh-header-legacy-widget,
        .avh-header-legacy-host {

            display: none !important;

            width: 0 !important;
            height: 0 !important;

            min-width: 0 !important;
            min-height: 0 !important;

            margin: 0 !important;
            padding: 0 !important;
        }


        /* =====================================================
           BASIS
           ===================================================== */

        .avh-header,
        .avh-header *,
        .avh-header *::before,
        .avh-header *::after {
            box-sizing: border-box;
        }


        .avh-header {

            position: fixed;

            top: 0;
            left: 0;
            right: 0;

            width: 100%;
            height: 0;

            margin: 0;
            padding: 0;

            z-index: 999999;

            font-family:
                Verdana,
                Geneva,
                sans-serif !important;

            pointer-events: none;
        }


        .avh-header.is-visible,
        .avh-header.is-menu-open {
            pointer-events: auto;
        }


        body.admin-bar
        .avh-header {
            top: 32px;
        }


        /* =====================================================
           HEADER-BAR
           ===================================================== */

        .avh-header-bar {

            position: relative;
            z-index: 100002;

            display: grid;

            grid-template-columns:
                46px
                minmax(0, 1fr)
                46px;

            align-items: center;

            width: 100%;

            height:
                var(--avh-header-height);

            margin: 0;

            padding:
                14px
                20px;

            background:
                var(--avh-base-warm-white);

            border-bottom:
                0;

            box-shadow:
                0
                8px
                22px
                rgba(var(--avh-rgb-base-gray), 0.10);

            opacity: 0;

            transform:
                translate3d(
                    0,
                    calc(-100% - 14px),
                    0
                );

            transition:

                transform
                560ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                ),

                opacity
                240ms
                ease,

                background-color
                350ms
                ease,

                border-color
                350ms
                ease;

            backface-visibility: hidden;
        }


        .avh-header.is-visible
        .avh-header-bar,

        .avh-header.is-menu-open
        .avh-header-bar,

        .avh-header.is-elementor-preview
        .avh-header-bar {

            opacity: 1;

            transform:
                translate3d(
                    0,
                    0,
                    0
                );
        }


        /*
         * KLARE TRENnLINIE AN DER HEADER-UNTERKANTE
         *
         * Kein Verlauf, keine helle Reflexkante und kein weißer Pixelrand.
         * Die Linie ist vollständig einfarbig und sitzt exakt am unteren Rand.
         */

        .avh-header-bar::after {

            content:
                "";

            position:
                absolute;

            left:
                0;

            right:
                0;

            bottom:
                0;

            z-index:
                5;

            width:
                100%;

            height:
                4px;

            pointer-events:
                none;

            background:
                var(--avh-base-gray);

            box-shadow:
                0
                3px
                8px
                rgba(var(--avh-rgb-base-gray), 0.12);

            opacity:
                1;

        }


        /*
         * Im geöffneten Menü bleibt dieselbe einfarbige Linie bestehen.
         */

        .avh-header.is-menu-open
        .avh-header-bar::after {

            background:
                var(--avh-base-gray);

            box-shadow:
                0
                4px
                10px
                rgba(var(--avh-rgb-base-gray), 0.24);

        }


        .avh-header.is-elementor-preview {
            pointer-events: auto;
        }


        html.avh-header-elementor-preview
        .avh-global-header-space {

            height:
                var(--avh-header-live-height);
        }


        .avh-header.is-menu-open
        .avh-header-bar {

            background:
                var(--avh-base-gray);

            box-shadow:
                0
                8px
                20px
                rgba(var(--avh-rgb-base-gray), 0.10);
        }


        /* =====================================================
           LOGO LINKS
           ===================================================== */

        .avh-header-logo {

            grid-column: 1;

            position: relative;

            display: flex;

            align-items: center;
            justify-content: flex-start;

            width: 54px;
            height: 54px;

            min-width: 54px;

            margin: 0;
            padding: 0;

            overflow: visible;

            border: 0;
            outline: none;

            background: rgba(var(--avh-rgb-base-gray), 0);

            text-decoration: none;

            cursor: pointer;

            z-index: 2;
        }


        .avh-header-logo img {

            display: block;

            width: 52px;
            height: 52px;

            max-width: none;

            object-fit: contain;
            object-position: left center;

            margin: 0;
            padding: 0;

            border: 0;

            transform:
                translate3d(
                    0,
                    0,
                    0
                );

            filter: none;

            opacity: 1;

            transition:

                transform
                280ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                ),

                filter
                350ms
                ease,

                opacity
                250ms
                ease;
        }


        /*
         * Auf dem dunklen Menü wird das Logo weiß,
         * damit es weiterhin sichtbar bleibt.
         */

        .avh-header.is-menu-open
        .avh-header-logo img {

            filter:
                brightness(0)
                invert(1);
        }


        @media
        (hover: hover)
        and
        (pointer: fine) {

            .avh-header-logo:hover img {

                transform:
                    translate3d(
                        0,
                        -1px,
                        0
                    )
                    scale(1.04);
            }

        }


        .avh-header-logo:focus-visible {

            outline:
                2px solid
                var(--avh-base-gray);

            outline-offset:
                4px;
        }


        /* =====================================================
           SEITENTITEL
           ===================================================== */

        body
        .avh-header
        .avh-page-title {

            grid-column: 2;

            min-width: 0;

            margin: 0;

            padding:
                0
                10px;

            overflow: hidden;

            color:
                var(--avh-base-gray);

            font-family:
                Verdana,
                Geneva,
                sans-serif !important;

            font-size:
                18px !important;

            font-weight:
                700 !important;

            line-height:
                1.25 !important;

            letter-spacing:
                0.025em !important;

            text-align:
                center;

            text-transform:
                uppercase;

            text-overflow:
                ellipsis;

            white-space:
                nowrap;

            transition:
                color
                350ms
                ease;
        }


        .avh-header.is-menu-open
        .avh-page-title {

            color:
                var(--avh-base-warm-white);
        }


        /* =====================================================
           BURGER
           ===================================================== */

        .avh-burger {

            grid-column: 3;

            position: relative;

            display: flex;

            flex-direction: column;

            align-items: stretch;
            justify-content: center;

            width: 46px;
            height: 46px;

            gap: 6px;

            margin: 0;

            padding:
                10px;

            border: 0;
            border-radius: 0;

            outline: none;

            background:
                rgba(var(--avh-rgb-base-gray), 0);

            cursor: pointer;

            appearance: none;
            -webkit-appearance: none;
        }


        .avh-burger:hover,
        .avh-burger:focus,
        .avh-burger:active {

            background:
                rgba(var(--avh-rgb-base-gray), 0);

            outline:
                none;
        }


        .avh-burger span {

            display: block;

            flex:
                0
                0
                2px;

            width: 100%;
            height: 2px;

            min-height: 2px;
            max-height: 2px;

            margin: 0;
            padding: 0;

            border: 0;
            border-radius: 0;

            background:
                var(--avh-base-gray);

            opacity: 1;

            transform-origin:
                center;

            transition:

                transform
                350ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                ),

                opacity
                180ms
                ease,

                background-color
                350ms
                ease;
        }


        .avh-header.is-menu-open
        .avh-burger span {

            background:
                var(--avh-base-warm-white);
        }


        .avh-header.is-menu-open
        .avh-burger
        span:nth-child(1) {

            transform:
                translateY(8px)
                rotate(45deg);
        }


        .avh-header.is-menu-open
        .avh-burger
        span:nth-child(2) {

            opacity: 0;
        }


        .avh-header.is-menu-open
        .avh-burger
        span:nth-child(3) {

            transform:
                translateY(-8px)
                rotate(-45deg);
        }


        /* =====================================================
           FULLSCREEN-MENÜ
           ===================================================== */

        .avh-menu-overlay {

            position: fixed;

            inset: 0;

            z-index: 100001;

            width: 100%;

            height: 100vh;
            height: 100dvh;

            overflow-x: hidden;
            overflow-y: auto;

            background:
                var(--avh-base-gray);

            color:
                var(--avh-base-warm-white);

            opacity: 0;

            visibility:
                hidden;

            pointer-events:
                none;

            transform:
                translate3d(
                    0,
                    -18px,
                    0
                );

            transition:

                opacity
                350ms
                ease,

                transform
                600ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                ),

                visibility
                350ms
                ease;

            -webkit-overflow-scrolling:
                touch;
        }


        .avh-header.is-menu-open
        .avh-menu-overlay {

            opacity: 1;

            visibility:
                visible;

            pointer-events:
                auto;

            transform:
                translate3d(
                    0,
                    0,
                    0
                );
        }


        /* =====================================================
           MENÜ-INHALT
           ===================================================== */

        .avh-menu-inner {

            width: 100%;

            max-width:
                1240px;

            min-height:
                100%;

            margin:
                0 auto;

            padding:
                112px
                20px
                40px;
        }


        .avh-menu {

            display: flex;

            flex-direction:
                column;

            align-items:
                flex-start;

            width:
                100%;

            margin: 0;

            text-align:
                left;
        }


        /* =====================================================
           MENÜPUNKTE
           ===================================================== */

        body
        .avh-header
        .avh-menu-link {

            position: relative;

            display:
                inline-flex;

            align-items:
                center;

            justify-content:
                flex-start;

            width:
                auto;

            max-width:
                100%;

            margin: 0;

            padding:
                6px
                12px
                6px
                0;

            color:
                rgba(var(--avh-rgb-base-warm-white), 0.72) !important;

            background:
                rgba(var(--avh-rgb-base-gray), 0);

            border: 0;

            border-left:
                3px solid
                rgba(var(--avh-rgb-base-gray), 0);

            border-radius:
                0;

            font-family:
                Verdana,
                Geneva,
                sans-serif !important;

            font-size:
                36px !important;

            font-weight:
                400 !important;

            line-height:
                1.18 !important;

            letter-spacing:
                -0.025em !important;

            text-align:
                left;

            text-decoration:
                none !important;

            transition:

                color
                250ms
                ease,

                background-color
                250ms
                ease,

                border-color
                250ms
                ease,

                opacity
                180ms
                ease,

                padding-left
                350ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                );
        }


        @media
        (hover: hover)
        and
        (pointer: fine) {

            body
            .avh-header
            .avh-menu-link:hover {

                color:
                    var(--avh-base-warm-white) !important;

                padding-left:
                    14px;
            }
        }


        /*
         * AKTIVER MENÜPUNKT
         *
         * Der Menü-Hintergrund ist global Grau. Deshalb erhält der aktuell
         * ausgewählte Menüpunkt einen Verlauf aus der globalen Warmweiß-Farbe.
         * Links ist die Fläche klar sichtbar und läuft nach rechts weich aus.
         * Die Schrift wechselt innerhalb dieser Fläche auf das globale Grau.
         */

        body
        .avh-header
        .avh-menu-link.is-active,

        body
        .avh-header
        .avh-menu-link[aria-current="page"],

        body
        .avh-header
        .avh-menu-link[data-avh-active="true"] {

            color:
                var(--avh-base-gray) !important;

            background:
                linear-gradient(
                    90deg,
                    var(--avh-base-warm-white) 0%,
                    rgba(var(--avh-rgb-base-warm-white), 0.88) 58%,
                    rgba(var(--avh-rgb-base-warm-white), 0.34) 82%,
                    rgba(var(--avh-rgb-base-warm-white), 0) 100%
                ) !important;

            border-left-color:
                var(--avh-base-warm-white) !important;

            padding-left:
                18px !important;

            padding-right:
                44px !important;

            font-weight:
                700 !important;
        }


        @media
        (hover: hover)
        and
        (pointer: fine) {

            body
            .avh-header
            .avh-menu-link.is-active:hover,

            body
            .avh-header
            .avh-menu-link[aria-current="page"]:hover,

            body
            .avh-header
            .avh-menu-link[data-avh-active="true"]:hover {

                color:
                    var(--avh-base-gray) !important;
            }
        }


        /*
         * Fade-out / Fade-in beim Sprachwechsel.
         * Nur die Texte innerhalb des Burger-Menüs werden ausgeblendet.
         * Der restliche Header und die Menüfläche bleiben stabil stehen.
         */

        body
        .avh-header
        .avh-menu.is-language-fading
        .avh-menu-link,

        body
        .avh-header
        .avh-menu.is-language-fading
        .avh-language-toggle span {

            opacity:
                0 !important;
        }


        /* =====================================================
           SPRACHWECHSEL
           ===================================================== */

        body
        .avh-header
        .avh-language-toggle {

            display:
                inline-flex;

            align-items:
                center;

            justify-content:
                flex-start;

            width:
                auto;

            margin:
                18px
                0
                0;

            padding:
                14px
                0
                0;

            border: 0;

            border-top:
                1px solid
                rgba(var(--avh-rgb-base-warm-white), 0.18);

            border-radius:
                0;

            outline:
                none;

            background:
                rgba(var(--avh-rgb-base-gray), 0);

            color:
                rgba(var(--avh-rgb-base-warm-white), 0.82);

            font-family:
                Verdana,
                Geneva,
                sans-serif !important;

            font-size:
                13px !important;

            font-weight:
                700 !important;

            line-height:
                1 !important;

            letter-spacing:
                0.12em !important;

            text-align:
                left;

            cursor:
                pointer;

            appearance:
                none;

            -webkit-appearance:
                none;
        }


        .avh-language-toggle span {

            display:
                inline-block;

            transform-origin:
                center;

            backface-visibility:
                hidden;

            -webkit-backface-visibility:
                hidden;

            transition:

                transform
                500ms
                cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
                ),

                color
                180ms
                ease,

                opacity
                180ms
                ease;
        }


        /*
         * Desktop-Hover-Fix:
         * Der Sprachumschalter darf auf dem dunklen Menü-Hintergrund
         * nicht auf Grau wechseln, da er sonst optisch verschwindet.
         * Button und Text bleiben deshalb auch bei Hover / Tastaturfokus
         * vollständig in Warmweiß sichtbar.
         */

        body
        .avh-header
        .avh-language-toggle:hover,

        body
        .avh-header
        .avh-language-toggle:focus-visible {

            color:
                var(--avh-base-warm-white) !important;

            background:
                rgba(var(--avh-rgb-base-gray), 0) !important;

            opacity:
                1 !important;
        }


        body
        .avh-header
        .avh-language-toggle:hover span,

        body
        .avh-header
        .avh-language-toggle:focus-visible span {

            color:
                var(--avh-base-warm-white) !important;

            opacity:
                1 !important;
        }


        .avh-language-toggle.is-rotating span {

            transform:
                rotateY(
                    180deg
                );
        }


        /* =====================================================
           TABLET
           ===================================================== */

        @media
        (min-width: 768px)
        and
        (max-width: 1199px) {

            :root {

                --avh-header-height:
                    88px;

                --avh-header-live-height:
                    88px;
            }


            .avh-header-bar {

                grid-template-columns:
                    58px
                    minmax(0, 1fr)
                    50px;

                padding:
                    20px
                    40px;
            }


            .avh-header-logo,
            .avh-burger {

                width:
                    58px;

                height:
                    58px;
            }


            .avh-header-logo {

                min-width:
                    58px;
            }


            .avh-header-logo img {

                width:
                    56px;

                height:
                    56px;
            }


            body
            .avh-header
            .avh-page-title {

                font-size:
                    21px !important;
            }


            .avh-menu-inner {

                padding:
                    132px
                    40px
                    50px;
            }


            body
            .avh-header
            .avh-menu-link {

                font-size:
                    30px !important;

                line-height:
                    1.20 !important;
            }

        }


        /* =====================================================
           DESKTOP
           ===================================================== */

        @media
        (min-width: 1200px) {

            :root {

                --avh-header-height:
                    96px;

                --avh-header-live-height:
                    96px;
            }


            .avh-header-bar {

                grid-template-columns:
                    62px
                    minmax(0, 1fr)
                    52px;

                padding:
                    22px
                    64px;
            }


            .avh-header-logo,
            .avh-burger {

                width:
                    62px;

                height:
                    62px;
            }


            .avh-header-logo {

                min-width:
                    62px;
            }


            .avh-header-logo img {

                width:
                    62px;

                height:
                    62px;
            }


            body
            .avh-header
            .avh-page-title {

                font-size:
                    23px !important;
            }


            .avh-menu-inner {

                padding:
                    150px
                    64px
                    60px;
            }


            body
            .avh-header
            .avh-menu-link {

                font-size:
                    36px !important;

                line-height:
                    1.18 !important;
            }

        }


        /* =====================================================
           SMARTPHONE
           ===================================================== */

        @media
        (max-width: 767px) {

            :root {

                --avh-header-height:
                    84px;

                --avh-header-live-height:
                    84px;
            }


            /*
             * Mobile:
             *
             * Logo | Seitentitel | Burger
             *
             * Linke und rechte Spalte sind gleich breit.
             * Dadurch bleibt die Struktur ausgeglichen.
             *
             * Der Seitentitel darf weiterhin auf zwei Zeilen
             * umbrechen und verwendet keine Ellipsis.
             */

            .avh-header-bar {

                grid-template-columns:
                    54px
                    minmax(0, 1fr)
                    46px;

                column-gap:
                    10px;

                padding:
                    12px
                    14px;
            }


            .avh-header-logo {

                grid-column:
                    1;

                justify-self:
                    start;

                width:
                    52px;

                height:
                    52px;

                min-width:
                    52px;
            }


            .avh-header-logo img {

                width:
                    50px;

                height:
                    50px;
            }


            body
            .avh-header
            .avh-page-title {

                grid-column:
                    2;

                align-self:
                    center;

                width:
                    100%;

                min-width:
                    0;

                max-width:
                    100%;

                margin:
                    0;

                padding:
                    0;

                overflow:
                    visible;

                font-size:
                    15px !important;

                line-height:
                    1.22 !important;

                letter-spacing:
                    0.018em !important;

                text-align:
                    left;

                text-overflow:
                    clip;

                white-space:
                    normal;

                overflow-wrap:
                    normal;

                word-break:
                    normal;

                hyphens:
                    none;

                text-wrap:
                    balance;
            }


            .avh-burger {

                grid-column:
                    3;

                justify-self:
                    end;

                width:
                    46px;

                height:
                    46px;
            }


            .avh-menu-inner {

                padding:
                    116px
                    20px
                    36px;
            }


            body
            .avh-header
            .avh-menu-link {

                padding:
                    6px
                    10px
                    6px
                    0;

                font-size:
                    23px !important;

                line-height:
                    1.24 !important;

                letter-spacing:
                    -0.018em !important;
            }


            body
            .avh-header
            .avh-menu-link.is-active,

            body
            .avh-header
            .avh-menu-link[aria-current="page"],

            body
            .avh-header
            .avh-menu-link[data-avh-active="true"] {

                padding-left:
                    13px !important;

                padding-right:
                    13px !important;
            }


            body
            .avh-header
            .avh-language-toggle {

                margin-top:
                    15px;

                font-size:
                    11px !important;
            }


            body.admin-bar
            .avh-header {

                top:
                    46px;
            }

        }


        /* =====================================================
           KLEINE SMARTPHONES
           ===================================================== */

        @media
        (max-width: 390px) {

            .avh-header-bar {

                grid-template-columns:
                    48px
                    minmax(0, 1fr)
                    42px;

                column-gap:
                    8px;

                padding-left:
                    12px;

                padding-right:
                    12px;
            }


            .avh-header-logo {

                width:
                    48px;

                height:
                    48px;

                min-width:
                    48px;
            }


            .avh-header-logo img {

                width:
                    46px;

                height:
                    46px;
            }


            .avh-burger {

                width:
                    42px;

                height:
                    42px;
            }


            body
            .avh-header
            .avh-page-title {

                font-size:
                    14px !important;

                line-height:
                    1.22 !important;

                white-space:
                    normal;

                text-overflow:
                    clip;
            }


            body
            .avh-header
            .avh-menu-link {

                font-size:
                    21px !important;

                line-height:
                    1.25 !important;
            }

        }


        /* =====================================================
           REDUZIERTE BEWEGUNG
           ===================================================== */

        @media
        (prefers-reduced-motion: reduce) {

            .avh-header-bar,
            .avh-menu-overlay,
            .avh-header *,
            .avh-header *::before,
            .avh-header *::after {

                transition-duration:
                    0.01ms !important;

                animation-duration:
                    0.01ms !important;
            }

        }
