:root {
    --very-small-width:500px;
    --smaller-width:850px;
    --content-width:1160px;
    --extended-width:1400px;
    --full-width:100%;
}

@media only screen and (max-width: 1400px){
    :root {
        --extended-width:100%;
    }
}

@media only screen and (max-width: 1250px){
    :root {
        --content-width:100%;
    }
}

@media only screen and (max-width: 850px){
    :root {
        --smaller-width:100%;
    }
}

@media only screen and (max-width: 500px){
    :root {
        --very-small-width:100%;
    }
}

body,html {
    padding: 0;
    margin: 0;
    font-size: 20px;
    line-height: 1.6;
    overflow-x: hidden;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;

    & li {
        margin: 4px 0;
        padding: 0 0 0 1.2em;
        position: relative;

        &::before {
            content:"";
            position:absolute;
            width: 0.65em;
            height: 0.65em;
            left: 0;
            top: 0.55em;
            border-radius: 0;
            background: var(--_link-text-color);
        }
    }
}

nav ul, ul.no-style {
    list-style: none;
    margin: 0;
    padding: 0;
}

nav ul li::before, ul.no-style li::before {
    display: none;
}

nav ul li, ul.no-style li {
    padding: unset;
    margin: unset;
}

.icon.bubbled {
    width: 50px;
    height: 50px;
    border-radius: 50px;
    border: 3px solid;
    display: flex;
    justify-content: center;
    align-items: center
}

.icon.bubbled svg {
    width: 25px;
    height: 25px;
}

.icon.small {
    width: 40px;
    height: 40px;
}

.icon.small svg {
    width: 20px;
    height: 20px;
}

.nowrap{
    white-space: nowrap;
}
.ao_overlay > .ao_overlay_shadow {
    background: var(--debug)
}

.ao_overlay > .ao_overlay_content > .ao_overlay_closer:before,
.ao_overlay > .ao_overlay_content > .ao_overlay_closer:after {
    background: var(--debug)
}

iframe.maps {
    width: 100%;
    aspect-ratio: 16/9;
}

h1 {
    font-size: 2.75em;
    line-height: normal;
}

h2 {
    font-size: 2.2em;
    line-height: 1.3
}

h3 {
    font-size: 1.6em;
    line-height: 1.3
}

h4 {
    font-size: 1.3em;
    line-height: 1.3;
}

h5 {
    font-size: 1.1em;
    line-height: 1.5;
    margin:1em 0;
}

h1,h2,h3,h4,h5 {
    hyphens: none;
}

.small {
    font-size: 0.9em;
    line-height: 1.3;
}

header {
    color: var(--dark-blue);
    font-size: 16px;
    line-height: 1.2;
    will-change: padding;
    transition: 0.5s padding;
    position: relative;
    z-index: 10;





    & .headerlogos{
        display:flex;
        align-items: center;
        gap:40px;
    }
    & > input#navigation-opener,
    & > label,
    & > .mainnav-control {
        display: none;
    }

    & .ao_basics_col.logo.mobile {
        display: none
    }

    & a {
        color: var(--dark-blue);
        text-decoration: none;

        &.active {
            color: var(--blue);
        }
    }

    & .ao_basics_col.logo {
        width: auto;
        position: relative;
        display: block;

        & svg{
            width: 71.2px;
            height: 71px;
            transition: 0.5s all;
            display: block;
        }
    }

    & #mainnav {
        padding:20px 0;
        text-align: center;
        justify-content: space-between;

        & #language_menu {
            display: flex;

            & #language_menu_opener {
                display: flex;
                flex-wrap: nowrap;
                gap: 5px;
                align-items: center;
                padding: 5px 10px;
            }

            & svg {
                width: 27px;
                height: 27px;
                color:var(--blue);
            }

            & .language_menu_outer {
                transition: 0.5s opacity;

                & a {
                    padding: 5px 20px;
                    display: flex;
                    gap: 5px;
                    width: 100%;
                    box-sizing: border-box;

                    & > span {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        width: 5px;
                    }
                }
            }

            & #language_menu_outer {
                position: absolute;
                top: 78px;
                right: 0;
                transform: translateY(-5000px);
                opacity: 0;
                background: var(--white);

                & #language_menu_inner {
                    width: 100%;

                    & a {

                        &:hover {
                            background: var(--blue);
                            color: #fff;
                            font-weight: inherit;
                        }
                    }

                    & .active > a > span {
                        &::before {
                            content: "";
                            border-radius: 50%;
                            background: var(--dark-blue);
                            width: 5px;
                            height: 5px;
                        }
                    }
                }
            }

            &:hover #language_menu_outer {
                opacity: 1;
                transform: none;
            }
        }




        & #companydata{
            color: var(--dark-blue);
            display: flex;
            align-items: center;
            gap: 10px;

            & .pipe{
                width: 2px;
                background: var(--dark-blue);
                height: 2em;
            }
        }

        & div.menu {
            display: none;
        }

        & div.ao_basics_col {
            & > div {
                position: relative;
                cursor: pointer;
                margin: 12px -10px 0;
            }

            & > a {
                position: relative;
                display: block;

                &::before {
                    content: "";
                    position: absolute;
                    bottom: -12px;
                    left: 50%;
                    right: 50%;
                    height: 6px;
                    background: var(--debug);
                    transition: 0.3s left, 0.3s right;
                }
            }

            &:hover {
                & > a {
                    &::before {
                        left:-10px;
                        right: -10px;
                    }
                }
            }
        }
    }
}




#mood {
    position: relative;
}


#mood .stoerer{
    position: absolute;
    top: 280px;
    background: #ffffffde;
    padding: 35px 45px;
    color: var(--debug);
    max-width: 300px;
    box-sizing: border-box;
}

#mainnav-desktop{
    display: flex;
    gap: 40px;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    height: 60px;
    background: var(--white);
    border-bottom:1px solid var(--grey);

    & a{
        text-decoration: none;
        color:var(--dark-blue);
        &.ao_btn{
            color: var(--white);
            padding:5px 35px;
            &:hover{
                color:var(--white);
            }
        }
        &.active{
            font-weight:bold;
            color:var(--blue);
        }
        &:hover{
            color:var(--blue);
        }
    }
}


.ce-gallery figure.image {
    position: relative;
}

.ce-gallery figure.image::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

.ce-gallery figure.image > a {
    position: relative;
    z-index: 1
}

.ce-gallery figure.clickable::after {
    display: none;
}
#breadcrumb-wrapper p{font-size: 0.7em;}
#breadcrumb{
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 30px 0 17px;
    color: var(--blue);
    font-size: 16px;
    line-height: 1;
    display: flex;
    align-items: center;
}
#breadcrumb a{
    color: var(--blue);
    text-decoration: none
}
#breadcrumb .icon-chevron-right{font-size: 0.7em;}

.in{
    animation: k 1s forwards;
}

.out{
    animation: k 1s forwards;
    animation-direction: reverse;
}

@keyframes fadeIn {
    0% {
        transform: translateX(0px);
    ;opacity: 1;
    }

    100% {
        transform: translateX(-200px);
        opacity: 0;
    }
}

.fadeIn .fader{
    opacity:0;
    transform:translate(-20000px);
    transition-property: opacity, transform;
    transition-duration: 0.5s, 0s;
    transition-delay: 0s, 0.5s;
}

.fadeIn:hover .fader{
    opacity:1;
    transform:none;
    transition-delay: 0s, 0s;
}

footer {
    font-size: 1em;
    background: var(--white);
    position: relative;
    text-align: center;
    padding: 80px;

    & > a {

        &.logo {
            display: block;

            & svg {
                display: block;
                margin:0 auto;
                max-width: 508px;
                height: auto !important;
                width:100% !important;
                aspect-ratio: 508/62;
            }
        }

        color: var(--dark-grey);
        text-decoration: none;
        display: inline-block;
    }

    & .legalnav{
        margin:80px 0 70px;
    }
}

.scrolled header::before {
    height: 0;
}

@media only screen and (max-width: 1250px){
    header {
        position: relative;
        top: 0;
        right: 0;
        margin: 0;
        z-index: 100;
        width: auto;
        -webkit-user-select: none;
        user-select: none;
        padding: 20px 40px 20px;
        background: var(--white);
        display: flex;
        justify-content: space-between;
        align-items: center;

        & > input#navigation-opener {
            display: block;
            width: 47px;
            height: 42px;
            position: absolute;
            top: 22px;
            right: 10px;
            cursor: pointer;
            opacity: 0;
            z-index: 2;
            -webkit-touch-callout: none;

            &:checked {

                & ~ #mainnav-control > span.mainnav-control {
                    opacity: 1;
                    transform: rotate(45deg) translate(4px,-4px);

                    &:nth-last-child(2) {
                        opacity: 0;
                        transform: rotate(0) scale(.2,.2)
                    }

                    &:nth-last-child(1) {
                        transform: rotate(-45deg) translate(2px,2px)
                    }
                }

                & ~ #navs {
                    transition: transform .5s cubic-bezier(.77,.2,.05,1);
                    transform: translate(0,90px);
                }
            }
        }

        & > label {
            font-size: 0;
            line-height: 0;
            position: absolute
        }

        & span.mainnav-control {
            display: block;
            width: 33px;
            height: 4px;
            margin: 0 0 5px auto;
            position: relative;
            background: var(--dark-grey);
            border-radius: 3px;
            z-index: 1;
            transform-origin: 4px 0;
            transition: transform .5s cubic-bezier(.77,.2,.05,1),background .5s cubic-bezier(.77,.2,.05,1),opacity .55s ease;

            &:nth-last-child(1) {
                margin:0;
            }
        }

        & .ao_basics_col.logo.mobile {
            display: block;
            & svg{
                width: 51px;
                height: 50px;
            }
        }

        & .ao_basics_col.logo.desktop {
            display: none
        }

        &  > #navs {
            top: 0;
            position: absolute;
            right: 0;
            width: 100%;
            max-width: 500px;
            background:#fff;
            padding: 20px 0 20px 0;
            box-sizing: border-box;
            -webkit-font-smoothing: antialiased;
            box-shadow: 0 0 10px 0 #00000030;
            transition: transform .5s cubic-bezier(.04,.52,.45,1.01);
            transform: translate(0,-110%);
            max-height: 100vh;
            overflow-y: auto;

            & > #mainnav {
                display: block;
                padding:0;

                #language_menu {
                    position: relative;
                    justify-content: center;
                    align-items: center;
                    margin-bottom: 10px;
                    flex-direction: column;

                    & .language_menu_outer {
                        max-height: 0;
                        transition: max-height 0.5s,padding 0.5s;
                        padding: 0;
                        overflow: hidden;
                    }

                    &:hover .language_menu_outer {
                        max-height: 120px;
                    }

                    & #language_menu_outer {
                        transform: none;
                        opacity: 1;
                        position: relative;
                        top: unset;
                        right: unset;
                        width: 100%;
                        padding: 0;
                    }
                    & .language_menu_inner {
                        padding: 0;
                        box-sizing: border-box;
                        background: var(--soft-grey);
                        box-shadow: inset 0 0 11px -7px rgb(0 0 0 / 70%);

                        & .active{
                            font-weight: bold;
                        }

                        & a {
                            background: none;
                            padding: 10px;
                            justify-content: center;


                            &:hover {
                                background: var(--blue);
                                color: var(--white);
                            }
                        }
                    }
                }


                & #companydata {
                    flex-direction: column;
                    margin-bottom:20px;
                    & .pipe{
                        display: none;
                    }
                }

                & .menu  {
                    flex-direction: column;
                    top:auto;
                    display: flex;
                    padding: 0 20px;
                    gap:0;
                    &  a {
                        color: var(--dark-grey);
                        padding:10px;
                        &.ao_btn{
                            color: var(--white);
                            padding:5px 35px;
                            margin: 10px auto 0;
                            &:hover{
                                color:var(--white);
                                background:var(--_button-hover-bg-color);
                            }
                        }

                        &::before{display:none}
                        &:hover{
                            background:var(--blue);
                            color: var(--white);
                        }
                    }
                }
            }
        }
    }

    #mainnav-desktop{display:none}

    footer {
        padding: 80px 40px;
    }

}

@media only screen and (max-width: 900px){
    footer > div .ao_basics_col {
        max-width:46%
    }
}

@media only screen and (max-width: 650px){
    footer > div > .ao_basics_grid.bg-white {
        flex-wrap: wrap
    }

    body,html {
        font-size: 16px;
    }
}

@media only screen and (max-width: 600px){
    #breadcrumb{
        padding: 30px 0 17px;
    }

    footer {
        padding:80px 20px;
    }
}

@media only screen and (max-width: 550px){
    header {
        padding: 20px;
    }
    footer > div .ao_basics_col {
        max-width:100%
    }
}

@media only screen and (max-width: 420px){


    header > input#navigation-opener{
        right:10px;
    }

    header > input#navigation-opener:checked~#navs {
        transition: transform .5s cubic-bezier(.77,.2,.05,1);
        transform: translate(0,88px);
    }
}

a[href^="https://www.arts-others.de"] {
    background: red;
    border: 3px solid red;
}
