/*
Theme Name: Hello Elementor Child
Theme URI: https://example.com
Description: Child Theme für Hello Elementor
Author: Mattheis. Werbeagentur GmbH
Author URI:https://www.mattheis-berlin.de/
Template: hello-elementor
Version: 1.0
Text Domain: hello-elementor-child
*/

/*------------------------------- Variables ------------------------------*/
:root {
    /* Color */
        --red: #CB4F50;
        --dark-blue: #002563;
        --grey: #EAEAEA;
        --link-color: #002563;
        --link-color-hover: #CB4F50;
        --link-color-light: #FF737F;
        --link-color-light-hover: #fff;

        --color-focus: darkorange;

        --button-color-bg: var(--dark-blue);
        --button-color-bg-hover: var(--red);
        --button-color-font: #fff;
        --button-color-font-hover: #fff;
        --button-border-radius: 20px;

        --font: 'Helvetica', sans-serif;
        --font-size-base: 20px;

    /* Transitions */
        --transition-duration-sticky-header: .3s;
        --transition-timing-function-sticky-header: ease-in;
        --transition-buttons: all .2s ease-in-out;

    /* Header */
        --header-height: 160px;
        --logo-row-height: 110px;
        --navi-row-height: 50px;
        --admin-bar-height: 46px;
        --padding-header: .25rem var(--padding-sides);

    /* Layout */
        --padding-sides: 1rem;

        --row-gap-vertical: 3rem;
        --econ-row-gap: 2rem;
        --econ-column-gap: 2rem;
        --econ-column-gap: 20px;
        --title-image-margin-bottom: 1rem;
        --inner-container-padding: 1.25rem;
}
@media screen and (min-width: 768px){
    :root {
        --header-height: 190px;
        --navi-row-height: 80px;
        --padding-sides: 2rem;
        --padding-header: .5rem var(--padding-sides);
        --row-gap-vertical: 4rem;
        --title-image-margin-bottom: 2rem;
        --inner-container-padding: 1rem;
    }
}
@media screen and (min-width: 783px){
    :root {
        --admin-bar-height: 32px;
    }
}
@media screen and (min-width: 1024px){
    :root {
        --padding-sides: 3rem;
        --row-gap-vertical: 5rem;
        --econ-row-gap: 40px;
        --econ-column-gap: 27px;
    }
}
@media screen and (min-width: 1366px){
    :root {
        --font-size-base: 22px;
        --row-gap-vertical: 7rem;
        --inner-container-padding: 1.25rem;
    }
}
@media screen and (min-width: 1600px){
    :root {
        --font-size-base: 24px;
        --row-gap-vertical: 9rem;
    }
}



/*------------------------------- General ------------------------------*/


* {
    font-family: 'Helvetica', sans-serif;
    font-family: var(--font);
    color: #000;
    line-height: 1.4;
    font-size: var(--font-size-base, 20px);
    font-size: 1em;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    -moz-hyphens: auto;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: break-word;
}

html {
    font-size: var(--font-size-base, 20px);
}
html body {
    font-size: 1rem;
    background-color: #fff;
}
/* @media screen and (min-width: 768px){
    html body {
        font-size: 1.1rem;
    }
}
@media screen and (min-width: 1024px){
    html body {
        font-size: 1.2rem;
    }
} */

.noscroll {
    overflow: hidden;
}

.no-display, .visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
}

.noBreak {
    white-space: nowrap;
}
@media screen and (min-width: 1200px){
    .noBreakDesktop {
        white-space: nowrap;
    }
}


/*----- Scrollbar -----*/
    body::-webkit-scrollbar {
        width: 8px;
    }
    body::-webkit-scrollbar-track {
        background: #fff;
    }
    body::-webkit-scrollbar-thumb {
        background: var(--dark-blue);
        border-radius: 4px;
    }
    body::-webkit-scrollbar-thumb:hover {
        background: var(--red);
    }


/*----- Skip to Content Button -----*/
    #skip-to-content {
        position: fixed;
        top: -1000px;
        left: -1000px;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px);
        clip-path: inset(50%);
        white-space: nowrap;
        z-index: -1;
    }
    #skip-to-content:focus {
        position: fixed;
        top: 10px;
        left: 10px;
        width: auto;
        height: auto;
        overflow: visible;
        clip: auto;
        clip-path: none;
        white-space: normal;
        z-index: 1000;
        background-color: var(--dark-blue);
        color: #fff;
        padding: 10px;
        border: 2px solid #fff;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0,0,0,.5);
        z-index: 1000;
    }
    body.admin-bar #skip-to-content:focus {
        top: 56px;
    }
    @media screen and (min-width: 783px){
        body.admin-bar #skip-to-content:focus {
            top: 42px;
        }
    }





/*------------------------------- Fonts ------------------------------*/

    /*----- Heading Styles -----*/
        body :is(h1, h2, h3, h4, h5, h6), 
        body :is(.entry-content, .comment-content, .entry-header, .elementor) :is(h1, h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title) {
            font-family: var(--font);
            font-weight: 700;
            line-height: 1.3;
            color: var(--dark-blue);
            margin-top: 0;
        }
        body :is(h3, h4, h5, h6), 
        body :is(.entry-content, .comment-content, .entry-header, .elementor) :is(h3, h4, h5, h6) {
            font-weight: 400 !important;
        }
        /* body .headline-grey :is(h1, h2, h3, h4, h5, h6), 
        body :is(.entry-content, .comment-content, .entry-header, .elementor) .headline-grey :is(h1, h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title) {
            color: var(--dark-grey);
        } */


    /*----- Font Colors -----*/
        .text-white.elementor-element *, 
        body .text-white.elementor-element :is(h1, h2, h3, h4, h5, h6), body :is(.entry-content, .comment-content, .entry-header, .elementor) .text-white.elementor-element :is(h1, h2, h3, h4, h5, h6, .elementor-widget-heading .elementor-heading-title) {
            color: #fff;
        }


    /*----- Font Sizes -----*/

        /*--- Heading Sizes ---*/
        body h1 {
            font-size: 1.7rem;
        }
        body h2 {
            font-size: 1.5rem;
        }
        body h3 {
            font-size: 1.4rem;
        }
        body h4 {
            font-size: 1.3rem;
        }
        body h5 {
            font-size: 1.15rem;
        }
        body h6 {
            font-size: 1rem;
        }
        @media screen and (min-width: 800px){
            /*--- Heading Sizes ---*/
            body h1 {
                font-size: 2rem;
            }
            body h2 {
                font-size: 1.7rem;
            }
            /* body h3 {
                font-size: 1.46rem;
            }
            body h4 {
                font-size: 1.3rem;
            }
            body h5 {
                font-size: 1.15rem;
            }
            body h6 {
                font-size: 1rem;
            } */
        }
        @media screen and (min-width: 1366px){
            /*--- Heading Sizes ---*/
            body h1 {
                font-size: 2.3rem;
            }
            body h2 {
                font-size: 1.88rem;
            }
            body h3 {
                font-size: 1.46rem;
            }
            body h4 {
                font-size: 1.3rem;
            }
            body h5 {
                font-size: 1.15rem;
            }
            body h6 {
                font-size: 1rem;
            }
        }



/*------------------------------- Buttons ------------------------------*/

    .vc_row .vc_btn3-container {
        margin: 0;
    }

    .elementor-button .elementor-button-content-wrapper {
        gap: .5rem;
    }

/*----- General Button Styles -----*/
    /* Button, Submit */button, input[type="submit"], input[type="button"], 
    /* Header Search */body .elementor-widget-search .e-search .e-search-submit, 
    /* Ninja Forms */body .nf-form-content button, body .nf-form-content input[type=button], body .nf-form-content input[type=submit], 
    /* WPForms */body div.wpforms-container-full .wpforms-form :is(button, button[type=submit], input[type=submit]), 
    /* Header Search */.after-header form input.search-submit[type="submit"], 
    /* WP Bakery Page Builder */.vc_btn3-container .vc_general.vc_btn3, .vc_btn3-container .vc_btn3, 
    /* Elementor */ .elementor .elementor-widget-button a.elementor-button, 
    /* Elementor Post Grid Archive */ body .elementor-widget-archive-posts .elementor-post__read-more,
    /* Newsletter */ #mlb2-6023083.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button[type="submit"] {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background: var(--button-color-bg);
        color: var(--button-color-font);
        fill: var(--button-color-font);
        font-size: 1em;
        line-height: 1.2;
        height: auto;
        text-align: center;
        /* text-transform: uppercase; */
        text-decoration: none;
        /* letter-spacing: 0.15em; */
        padding: 12px 20px;
        border: none;
        border-radius: var(--button-border-radius);
        display: inline-flex;
        justify-content: center;
        align-items: center;
        transition: var(--transition-buttons);
    }
    /* Hover, Focus, Active */
        /* Button */
        button:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Header Search */
        body .elementor-widget-search .e-search .e-search-submit:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Input Submit */
        input[type="submit"]:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Input Button */
        input[type="button"]:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Ninja Forms */
        body .nf-form-content button:is(:hover, :focus, :focus-within, :focus-visible), 
        body .nf-form-content input[type=button]:is(:hover, :focus, :focus-within, :focus-visible), 
        body .nf-form-content input[type=submit]:is(:hover, :focus, :focus-within, :focus-visible), 
        /* WPForms */
        body div.wpforms-container-full .wpforms-form :is(button, button[type=submit], input[type=submit]):is(:hover, :focus, :focus-within, :focus-visible), 
        /* Search Form Header */
        .after-header form input.search-submit[type="submit"]:is(:hover, :focus, :focus-within), 
        /* WP Bakery Page Builder */
        .vc_btn3-container .vc_btn3:is(:hover, :focus, :focus-within, :focus-visible), 
        .vc_btn3-container .vc_general.vc_btn3:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Elementor */
        .elementor .elementor-widget-button a.elementor-button:is(:hover, :focus, :focus-within, :focus-visible), 
        /* Elementor Post Grid Archive */ body .elementor-widget-archive-posts .elementor-post__read-more:is(:hover, :focus, :focus-within, :focus-visible) {
            color: var(--button-color-font-hover);
            fill: var(--button-color-font-hover);
            background: var(--button-color-bg-hover);
        }

    /* Child Elements (Icons) */
    /* Button, Submit */button *, input[type="submit"] *, input[type="button"] *, 
    /* Header Search */body .elementor-widget-search .e-search .e-search-submit *, 
    /* Ninja Forms */body .nf-form-content button *, body .nf-form-content input[type=button] *, body .nf-form-content input[type=submit] *, 
    /* WPForms */body div.wpforms-container-full .wpforms-form :is(button, button[type=submit], input[type=submit]) *, 
    /* Header Search */.after-header form input.search-submit[type="submit"] *, 
    /* WP Bakery Page Builder */.vc_btn3-container .vc_general.vc_btn3 *, .vc_btn3-container .vc_btn3 *, 
    /* Elementor */ .elementor .elementor-widget-button a.elementor-button *, 
    /* Elementor Post Grid Archive */ body .elementor-widget-archive-posts .elementor-post__read-more * {
            color: inherit;
            fill: inherit;
        }
        /* .elementor .elementor-widget-button a.elementor-button .elementor-button-icon {
            margin-top: 2px;
        } */


        
    /*--- Arrow Icons ---*/
        i.icon:is(.icon-Arrow-right, .icon-Arrow-left) {
            font-size: .6em;
            /* margin-top: 4px; */
        }



    /*-- Button as Link (no padding) ---*/
        .elementor .elementor-widget-button.btn-link a.elementor-button {
            padding: 0;
        }

    /*--- Button Light ---*/
        /* Elementor */ .elementor .elementor-widget-button.button-light a.elementor-button {
            background: #fff;
            color: var(--dark-blue);
            fill: var(--dark-blue);
        }
        .elementor .elementor-widget-button.btn-link i.icon:is(.icon-Arrow-right, .icon-Arrow-left) {
            margin-top: -4px;
        }
        /* Hover */
            /* Elementor */ .elementor .elementor-widget-button.button-light a.elementor-button:is(:hover, :focus, :focus-within, :focus-visible) {
                color: #fff;
                fill: #fff;
                background: var(--red);
            }


    /*--- Button grey ---*/
        /* Elementor */ .elementor .elementor-widget-button.button-grey a.elementor-button {
            background: #E0E0E0;
            color: #000;
            fill: #000;
        }
        /* Hover */
            /* Elementor */ .elementor .elementor-widget-button.button-grey a.elementor-button:is(:hover, :focus, :focus-within, :focus-visible) {
                background: var(--dark-blue);
                color: #fff;
                fill: #fff;
            }

    /*--- Buttons Red (.text-white) ---*/
        /* Elementor */ .elementor .text-white .elementor-widget-button :is(a.elementor-button, button, input[type="submit"], input[type="button"]), 
        body .elementor-widget-search .e-search .e-search-submit {
            color: #fff;
            fill: #fff;
            background: var(--red);
        }
        /* Hover */
            /* Elementor */ .elementor .text-white .elementor-widget-button :is(a.elementor-button, button, input[type="submit"], input[type="button"]):is(:hover, :focus, :focus-within, :focus-visible), 
        body .elementor-widget-search .e-search .e-search-submit:is(:hover, :focus, :focus-within, :focus-visible) {
                background: #fff;
                color: var(--dark-blue);
                fill: var(--dark-blue);
            }



/*----------------- Divider -----------------*/
    /* .elementor-widget-divider .elementor-divider {
        max-width: 285px;
    } */
    .elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider .elementor-divider-separator {
        border-color: var(--red);
        border-width: 2px;
    }




/*------------------------------- Header ------------------------------*/


    header.elementor-location-header {
        position: fixed;
        z-index: 999;
        top: 0;
        left: 0;
        width: 100%;
        height: var(--header-height);
        background: #fff;
        font-size: 1em;
    }
    @media screen and (min-width: 1366px){
        header.elementor-location-header {
            font-size: .95em;
        }
    }
    @media screen and (min-width: 1600px){
        header.elementor-location-header {
            font-size: .875em;
        }
    }
    .site-search {
        box-shadow: 0px 0px 12px 0px rgba(255,255,255,.5);
    }
    header.elementor-location-header > .elementor-element {
        position: relative;
        z-index: 2;
    }
    body.admin-bar header.elementor-location-header {
        top: var(--admin-bar-height);
    }
    header.elementor-location-header + * {
        margin-top: var(--header-height);
    }


    header.elementor-location-header > .elementor-element {
        padding: .5rem 1rem;
        padding: var(--padding-header, .25rem 1rem);
    }

    /*---------- Top Row (white) ----------*/
        header.elementor-location-header > .elementor-element:first-child {
            height: var(--logo-row-height);
        }
        header.elementor-location-header > .elementor-element:first-child > .elementor-element > .e-con-inner {
            justify-content: center;
            max-width: none;
        }

        /*--- Contact Links Icons ---*/
            header.elementor-location-header .elementor-icon-list-items {
                gap: 1rem;
            }
            header.elementor-location-header .elementor-icon-list-items .elementor-icon-list-icon i.icon {
                font-size: 1.2em;
            }
            header.elementor-location-header .elementor-icon-list-items .elementor-icon-list-text {
                padding-left: .375rem;
            }

        /*--- Logo Header ---*/
            header.elementor-location-header .logo-header, 
            header.elementor-location-header .logo-header * {
                height: 100%;
            }
            header.elementor-location-header .logo-header img {
                /* width: 190px;
                height: auto;
                height: 86px; */
                height: 100%;
                width: auto;
                max-width: none;
            }


    /*---------- Bottom Row (blue) ----------*/
        header.elementor-location-header > .elementor-element:nth-child(2) {
            height: var(--navi-row-height);
            align-items: center;
            /* box-sizing: content-box; */
        }

        /*--- Buttons ---*/
            header.elementor-location-header .navigation-header.elementor-element .elementor-widget-button {
                /* height: 2.2rem;
                width: 2.2rem; */
                padding: .2rem;
                height: calc(var(--navi-row-height) - .5rem);
                width: calc(var(--navi-row-height) - .5rem);
            }
            header.elementor-location-header .navigation-header.elementor-element .elementor-widget-button a {
                padding: 0;
                height: 1.8rem;
                width: 1.8rem;
                border-radius: 4px !important;
                font-size: 1.4em;
            }
            header.elementor-location-header .navigation-header.elementor-element .elementor-widget-button svg {
                height: 1.5rem;
                width: 1.5rem;
            }
            header.elementor-location-header .navigation-header.elementor-element .elementor-widget-button a * {
                font-size: 100%;
            }

            /*--- Toggle Menu Button ---*/
            header.elementor-location-header .navigation-header.elementor-element .elementor-menu-toggle, 
            header.elementor-location-header .navigation-header.elementor-element .elementor-menu-toggle svg {
                padding: 0;
                /* font-size: 1.5rem; */
                /* height: 2.2rem;
                width: 2.2rem; */
                height: calc(var(--navi-row-height) - .5rem);
                width: calc(var(--navi-row-height) - .5rem);
            }
            header.elementor-location-header .navigation-header.elementor-element .elementor-menu-toggle:is(:hover, :focus) {
                background: var(--red);
            }




    /*---------- Navigation ----------*/
        header.elementor-location-header ul li a {
            font-weight: 700;
        }
        header.elementor-location-header :is(.elementor-nav-menu--dropdown a) {
            color: #fff;
            fill: #fff;
            background-color: var(--dark-blue);
        }
        header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu--layout-horizontal :is(ul.elementor-nav-menu--dropdown a) {
            border-color: transparent;
        }
        header.elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu--layout-horizontal :is(
            ul.elementor-nav-menu--dropdown a:focus, 
            ul.elementor-nav-menu--dropdown a:hover) {
            border-color: var(--red);
        }
        header.elementor-location-header :is(.elementor-nav-menu--dropdown a) * {
            color: inherit;
            fill: inherit;
        }
        /* Hover */
            header.elementor-location-header :is(
                .elementor-nav-menu--dropdown .elementor-item.elementor-item-active, 
                .elementor-nav-menu--dropdown .elementor-item.highlighted, 
                .elementor-nav-menu--dropdown .elementor-item:focus, 
                .elementor-nav-menu--dropdown .elementor-item:hover, 
                .elementor-sub-item.elementor-item-active, 
                .elementor-sub-item.highlighted, 
                .elementor-sub-item:focus, 
                .elementor-sub-item:hover) {
                color: #fff;
                fill: #fff;
                background-color: var(--red);
            }
        /* Hover First Layer Desktop */
            header.elementor-location-header nav.elementor-nav-menu--main.elementor-nav-menu--layout-horizontal > ul > li > a.elementor-item:hover {
                color: var(--red) !important;
            }
            header.elementor-location-header nav.elementor-nav-menu--main.elementor-nav-menu--layout-horizontal li:not(.current-menu-item) > .elementor-item:after {
                opacity: 0 !important;
            }

        /*----- Sub Menu ----*/
            body .elementor-nav-menu--dropdown {
                font-size: 1em;
            }

            a.elementor-item.has-submenu .sub-arrow i {
                color: #fff;
                transition: transform .3s ease-in-out;
            }
            a.has-submenu.highlighted .sub-arrow i {
                transform: rotate(180deg);
            }



    /*---------- Mobile Menu ----------*/
        header.elementor-location-header .navigation-header.elementor-element {
            flex-direction: row;
            justify-content: flex-end;
        }
        header.elementor-location-header .mobile-button {
            display: none;
        }
        body .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
            font-size: 1em;
        }
        body nav.elementor-nav-menu--dropdown:not(.elementor-nav-menu--layout-horizontal) :is(
            ul.elementor-nav-menu--dropdown a, 
            ul.elementor-nav-menu--dropdown a:focus, 
            ul.elementor-nav-menu--dropdown a:hover) {
            border-color: var(--red);
        }
        body nav.elementor-nav-menu--dropdown:not(.elementor-nav-menu--layout-horizontal) :is(
            ul.elementor-nav-menu--dropdown a:focus, 
            ul.elementor-nav-menu--dropdown a:hover) {
            border-color: #fff;
        }
        @media screen and (max-width: 767px){
            header.elementor-location-header .navigation-header.elementor-element {
                display: flex;
                justify-content: flex-start;
                align-items: center;
                flex-direction: row-reverse;
                gap: 1rem;
            }
            header.elementor-location-header .logo-header + .elementor-element {
                display: none;
            }
            /* Navi */
            header.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
                position: absolute;
                top: 100%;
                width: calc(100vw - 2.5rem);
                right: 0;
                background-color: var(--dark-blue);
            }
            header.elementor-location-header .mobile-button {
                display: block;
            }
        }
        @media screen and (max-width: 400px){
            header.elementor-location-header .navigation-header.elementor-element {
                justify-content: space-between;
                gap: .5rem;
            }
        }




    /*---------- Search Header ----------*/
        
        /*----- Search Button -----*/
            /* .elementor .search-button.elementor-widget-button a.elementor-button, .search-button.elementor-widget-button .elementor-widget-button :is(.elementor-button, .elementor-button *) {
                background: transparent;
                color: #fff;
                fill: #fff;
                padding-left: 8px;
                padding-right: 8px;
            } */
             .elementor .search-button.elementor-widget-button {
                display: flex;
                align-items: center;
                justify-content: center;
             }

        /*----- Search Popup -----*/
            header .site-search.elementor-element {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                width: 100vw;
                height: 100vh;
                /* padding: 1.5rem; */
                background: rgba(255,255,255,.9);
                z-index: 1000;
                justify-content: center;
                align-items: center;
                visibility: visible !important;

                display: flex;
                position: relative;
                z-index: 1;
                top: unset;
                height: auto !important;
                background: var(--dark-blue);
                transform: translateY(-100%);
                transition: transform .3s ease-in-out;
            }
            header .site-search.elementor-element * {
                visibility: visible !important;
                color: #fff;
            }
            header .site-search.elementor-element.visible {
                /* display: flex;
                height: 100%; */
                transform: translateY(0);
            }

            /* Input */
                body .elementor-location-header .elementor-widget-search .e-search {
                    max-width: 600px;
                    float: right;
                }
                /* body .elementor-location-header .elementor-widget-search .e-search-input-wrapper {
                    max-width: 400px;
                } */
                body .elementor-location-header .elementor-widget-search .e-search input.e-search-input {
                    background-color: var(--dark-blue);
                    color: #fff;
                    border: 1px solid #fff;
                }
                /* Placeholder */
                body .elementor-location-header .elementor-widget-search .e-search input.e-search-input::placeholder {
                    color: rgba(255,255,255,.7);
                }

            /* Button */
                body .elementor-location-header .elementor-widget-search .e-search .e-search-submit {
                    background-color: var(--red);
                }
                body .elementor-location-header .elementor-widget-search .e-search .e-search-submit:is(:hover, :focus) {
                    background-color: #fff;
                    color: var(--dark-blue);
                }

            /* Admin Bar */
                /* body.admin-bar header .site-search.elementor-element {
                    top: 46px;
                    height: calc(100vh - 46px);
                }
                @media screen and (min-width: 783px){
                    body.admin-bar header .site-search.elementor-element {
                        top: 32px;
                        height: calc(100vh - 32px);
                    }
                } */

            /* Close Search */
                header .site-search.elementor-element .close-search {
                    position: absolute;
                    top: .5rem;
                    left: unset;
                    right: .5rem;
                    padding: 8px;
                    display: none !important;
                }
                header .site-search.elementor-element .close-search .elementor-button-icon {
                    display: flex;
                    align-items: center;
                }






/*------------------------------- To Top Button ------------------------------*/

    .totop-button.elementor-widget-button {
        position: fixed;
        bottom: -5rem;
        right: 1rem;
        z-index: 1000;
        transition: bottom .3s linear;
    }
    .totop-button.elementor-widget-button.vsbl {
        bottom: 1rem;
    }
    .elementor .totop-button.elementor-widget-button a.elementor-button {
        background: var(--dark-blue);
        color: #fff;
        fill: #fff;
        width: 3rem;
        height: 3rem;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        box-shadow: 0 0 10px rgba(255,255,255,.9);
        transition: var(--transition-buttons);
    }






/*------------------------------- Footer ------------------------------*/

    :root {
        --padding-footer: 40px 1rem;
    }
    @media screen and (min-width: 768px){
        :root {
            --padding-footer: 40px 2rem;
        }
    }
    @media screen and (min-width: 1024px){
        :root {
            --padding-footer: 40px 3rem;
        }
    }

    footer.elementor-location-footer {
        margin-top: var(--row-gap-vertical, 3rem);
        padding: var(--padding-footer, 40px 1rem);
        background-color: var(--dark-blue);
    }
    footer.elementor-location-footer .elementor-element.e-con .elementor-element *, 
    footer.elementor-location-footer .elementor-element.e-con .elementor-element :is(h1, h2, h3, h4, h5, h6, p, a, li, span, div) {
        color: #fff;
    }

    /*----- Links & Menu -----*/
        @media screen and (max-width: 767px){
            footer.elementor-location-footer .footer-links-container.elementor-element {
                gap: 2rem;
            }
        }
        @media screen and (min-width: 768px) and (max-width: 1024px){
            footer.elementor-location-footer .footer-links-container.elementor-element {
                flex-direction: column;
            }
        }

        footer.elementor-location-footer .elementor-widget-text-editor a {
            text-decoration: none;
        }
        footer.elementor-location-footer .elementor-widget-text-editor a:is(:hover, :focus) {
            text-decoration: none;
        }

        /*----- Menu -----*/
            footer.elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu {
                display: flex;
                flex-direction: column;
            }
            footer.elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu li a {
                padding: .5rem 0;
            }






/*------------------------------- Forms - Contact Forms - Ninja Forms ------------------------------*/

        /* Checkbox */
            .nf-field .field-wrap.checkbox-wrap {
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                justify-content: flex-start;
                gap: .25rem;
            }
            .nf-field .field-wrap.checkbox-wrap .nf-field-description {
                width: 100%;
                clear: both;
            }
             .nf-field .field-wrap.checkbox-wrap .nf-field-element {
                position: absolute;
                top: 0;
                left: 0;
            }






/*------------------------------- Page Layout - Elementor ------------------------------*/

        /*--- Rows: Gaps Between ---*/
            :is(.elementor.elementor-location-single .elementor, .elementor.elementor-location-archive, body.error404 .elementor.elementor-location-single) > .elementor-element:has(+ .elementor-element) {
                margin-bottom: var(--row-gap-vertical, 3rem);
            }
            :is(.elementor.elementor-location-single .elementor, .elementor.elementor-location-archive, body.error404 .elementor.elementor-location-single) > .elementor-element:first-child:not(.title-image) {
                padding-top: 2rem;
            }
            :is(.elementor.elementor-location-single .elementor, .elementor.elementor-location-archive, body.error404 .elementor.elementor-location-single) > .elementor-element {
                padding-left: var(--padding-sides);
                padding-right: var(--padding-sides);
                /* padding-top: var(--econ-column-gap, 40px);
                padding-bottom: var(--econ-column-gap, 40px); */
                padding-top: 0;
                padding-bottom: 0;
            }
            :is(.elementor.elementor-location-single .elementor, .elementor.elementor-location-archive, body.error404 .elementor.elementor-location-single) .elementor-element.text-white {
                padding-top: 2rem;
                padding-bottom: 2rem;
            }

        /*--- Containers: Inner Gaps ---*/
            body .e-con, 
            body .e-con > .e-con-inner {
                row-gap: var(--econ-row-gap, 40px);
                column-gap: var(--econ-column-gap, 40px);
            }
            body .e-con > .e-con-inner {
                padding-top: 0;
                padding-bottom: 0;
            }

        /*--- Divider / Separator ---*/
            .elementor/* .elementor-location-single */ :is(.e-con, .e-con > .e-con-inner) > .elementor-element.elementor-widget-divider > .elementor-divider {
                padding: 0;
            }

        /*--- Accordion / Akkordeon ---*/
            .elementor-widget-n-accordion .e-n-accordion {
                display: flex;
                flex-direction: column;
                gap: 1rem;
            }
            .elementor-widget-n-accordion .e-n-accordion summary.e-n-accordion-item-title {
                border-radius: var(--button-border-radius);
                background: var(--button-color-bg);
                color: var(--button-color-font);
                fill: var(--button-color-font);
                align-items: flex-start;
            }
            .elementor-widget-n-accordion .e-n-accordion summary.e-n-accordion-item-title *, 
            .elementor-widget-n-accordion .e-n-accordion summary.e-n-accordion-item-title .e-n-accordion-item-title-icon span > svg {
                color: inherit;
                fill: inherit;
            }
            /* Hover + Expanded */
                .elementor-widget-n-accordion .e-n-accordion summary.e-n-accordion-item-title[aria-expanded="true"], 
                .elementor-widget-n-accordion .e-n-accordion details.e-n-accordion-item:is(:hover, :focus) summary.e-n-accordion-item-title {
                    background: var(--red);
                    color: var(--button-color-font);
                    fill: var(--button-color-font);
                }

        /*--- Image Box (Image + Text) ---*/
            .elementor-image-box-wrapper .elementor-image-box-img img {
                margin-left: auto;
                margin-right: auto;
            }

        /*--- Search ---*/
            body .elementor-widget-search .e-search-input-wrapper/*  input[type="search"] */ {
               max-width: 400px;
            }

        /*--- Headlines ---*/
            body .elementor-widget-heading .elementor-heading-title {
                font-family: var(--font);
            }

        /*--- Text Editor ---*/
            body .elementor-widget-text-editor {
                font-family: var(--font);
            }
            .elementor-widget-text-editor > *:not(:last-child) {
                margin-bottom: 1rem;
            }
            .elementor-widget-text-editor > *:last-child {
                margin-bottom: 0;
            }
            .elementor .elementor-widget-text-editor :is(ul, ol) {
                padding-left: 28px;
            }
            /* Links */
                .elementor .elementor-widget-text-editor a {
                    text-decoration: underline;
                    color: var(--link-color);
                }
                .elementor .elementor-widget-text-editor a:is(:hover, :focus) {
                    text-decoration: underline;
                    color: var(--link-color-hover);
                }
            /* Links Light */
                .elementor .text-white .elementor-widget-text-editor a {
                    color: var(--link-color-light);
                }
                .elementor .text-white .elementor-widget-text-editor a:is(:hover, :focus) {
                    color: var(--link-color-light-hover);
                }


        /*--- Title Image ---*/
            .elementor.elementor-location-single .elementor .title-image.elementor-element:has(+ .elementor-element) {
                width: 100%;
                max-width: 100%;
                height: auto;
                max-height: 700px;
                aspect-ratio: 3/2;
                margin-bottom: var(--title-image-margin-bottom, 1rem);
                margin-top: 0 !important;
            }
            @media screen and (min-width: 768px){
                .elementor .title-image.elementor-element {
                    aspect-ratio: 2/1;
                }
            }
            @media screen and (min-width: 1024px){
                .elementor .title-image.elementor-element {
                    aspect-ratio: 2.5/1;
                }
            }
            @media screen and (min-width: 1366px){
                .elementor .title-image.elementor-element {
                    aspect-ratio: 96/35;
                }
            }


        /*--- Big Numbers ---*/
            .big-number {
                font-size: 2.5em;
            }
            @media screen and (min-width: 1366px ){
                .big-number {
                    font-size: 3em;
                }
            }


        /*--- Icons ---*/
            .elementor-widget-icon .elementor-icon {
                font-size: 3em;
            }
            .elementor-widget-icon .elementor-icon * {
                font-size: 1em;
            }

            /* Tiles Home */
            .tiles-wrapper > .e-con-inner > .elementor-element {
                padding: 1rem;
                padding: var(--inner-container-padding, 1rem);
            }
            .tiles-wrapper .e-con-inner > .elementor-element {
                gap: 1rem;
            }
            .tiles-wrapper .elementor-widget-icon {
                aspect-ratio: 1/1;
                width: 100%;
                max-width: 12rem;
                height: auto;
                max-height: 7rem;
                display: flex;
                justify-content: center;
                align-items: center;
                margin: 0 auto;
            }
            .tiles-wrapper .elementor-widget-icon .elementor-icon * {
                color: inherit;
            }
            .tiles-wrapper .elementor-widget-icon .elementor-icon i {
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .tiles-wrapper .elementor-widget-icon .elementor-icon i.icon:before {
                font-size: clamp(2rem, 50vw, 7rem);
            }
            @media screen and (min-width: 768px){
                .tiles-wrapper .elementor-widget-icon {
                    max-height: 6rem;
                }
                .tiles-wrapper .elementor-widget-icon .elementor-icon i.icon:before {
                    font-size: clamp(2rem, 12vw, 5rem);
                }
            }


        .no-column-gap {
            column-gap: 0 !important;
        }

        /*--- 2 Columns ---*/
            .elementor.elementor-location-single .two-cols-layout {
                column-gap: 0 !important;
                row-gap: 0 !important;
                padding-left: 0 !important;
                padding-right: 0 !important;
            }
            .elementor.elementor-location-single .two-cols-layout > .elementor-element {
                padding: 40px var(--padding-sides) 40px 30px;
                align-items: flex-start;
            }
            .elementor.elementor-location-single .two-cols-layout > .elementor-element:first-child {
                padding: 40px 30px 40px var(--padding-sides);
                align-items: flex-end;
            }
            .elementor.elementor-location-single .two-cols-layout > .elementor-element > .elementor-element {
                width: 100%;
                max-width: 685px;
                /* float: left; */
            }
            /* Image Column Mobile */
            @media screen and (max-width: 767px){
                .elementor.elementor-location-single .two-cols-layout > .elementor-element:not(:has( > .elementor-element )) {
                    aspect-ratio: 3/2;
                    aspect-ratio: 2/1;
                }
                .elementor.elementor-location-single .two-cols-layout:not(:has( > .elementor-element:first-child > .elementor-element )) {
                    flex-direction: column-reverse;
                }
            }

        /*--- Overlapping Section Top ---*/
        @media screen and (min-width: 768px){
            body:not(.elementor-editor-active) .elementor-element:has(+ .overlap-top.elementor-element) > .elementor-element {
                padding-bottom: calc(var(--row-gap-vertical, 3rem) * 1.5) !important;
            }
            body:not(.elementor-editor-active) .overlap-top.elementor-element {
                margin-top: calc(var(--row-gap-vertical, 3rem) * 2 * -1) !important;
            }
        }

        /*--- Tiles in Overlapping Section Top ---*/
            .tiles-wrapper > .e-con-inner > .elementor-element {
                border-radius: var(--button-border-radius);
                background: #FFF;
                box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.20);
            }






/*------------------------------- Contact ------------------------------*/

        /*--- Contact Persons List ---*/
            .contacts-list > .elementor-element.e-con {
                align-items: stretch;
                padding: 1.25rem;
                gap: 1.25rem;
            }
            @media screen and (max-width: 767px){
                .contacts-list > .elementor-element.e-con {
                    max-width: calc(326px + 2.5rem);
                    margin: 0 auto;
                }
            }

            /* Image */
                .contacts-list > .elementor-element.e-con > .elementor-element:first-child {
                    aspect-ratio: 1/1;
                    max-width: 326px;
                }
                .contacts-list > .elementor-element.e-con > .elementor-element:first-child * {
                    height: 100%;
                }
                .contacts-list > .elementor-element.e-con > .elementor-element:first-child img {
                    width: auto;
                    aspect-ratio: 1/1;
                    height: 100%;
                    object-fit: cover;
                    border-radius: var(--button-border-radius);
                }

            /* Text */
                .contacts-list > .elementor-element.e-con > .elementor-element:nth-child(2) {
                    justify-content: space-between;
                }
                .contacts-list > .elementor-element.e-con > .elementor-element:nth-child(2) > .e-con {
                    gap: .25rem !important;
                }






/*------------------------------- Referenzen ------------------------------*/

    body.single-referenz .elementor.elementor-location-single .elementor > .elementor-element:first-child {
        margin-bottom: 0;
    }

    /* Box Data */
        .box-data-ref.elementor-element {
            width: clamp(260px,60%,685px);
            position: absolute;
            top: unset;
            bottom: 0;
            padding: 1.5rem;
        }
        @media screen and (max-width: 768px){
            .box-data-ref.elementor-element {
                width: clamp(260px,75%,685px);
                position: relative;
                padding: 1rem;
                margin-top: -6rem;
            }
        }
        @media screen and (max-width: 400px){
            .box-data-ref.elementor-element {
                margin-top: -4rem;
            }
        }





            