/*** Navigation & Links ***/

a { color: var(--bodytext);text-decoration: underline; }
a:hover { color: var(--txt-nav-hover); } 
a:focus-visible { outline: 2px solid var(--bodytext);outline-offset: 4px;}

a:has(img):focus-visible { outline: none; opacity: 0.5}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a { color: var(--bodydark);text-decoration: none; }

#to-content { 
    display: block;
    content: ''; 
    background: url(../images/icons/PES_Pfeil.svg) var(--body) no-repeat center;
    background-size: 55%;
    flex: 0 0 2.99.75rem;
    width: 2.99.75rem;
    height: 2.99.75rem;
    margin-bottom: var(--fontsize-xl);
    border-radius: 50%;
    z-index: 50000;
}

footer a { color: var(--footer-nav);font-style: normal;text-decoration: none;}
footer a:hover { color: var(--footer-nav-hover); }

nav ul.main-menu {
    font-family: var(--highlight-font);
    text-transform: none; 
    letter-spacing: var(--letterspacing);
}

nav ul.main-menu li { 
    position: relative;
    padding: 0;
    margin: 0;
    white-space: nowrap;
    }

nav ul.main-menu li a { 
    display: block;
    font-size: var(--fontsize-m);
    color: var(--txt-nav);
    line-height: 1;
    font-style: normal;
    font-weight: 300;
    }

body:not(.home) nav ul.main-menu li.current-menu-item > a,
body.blog nav ul.main-menu li.blog-home > a,
nav ul.main-menu li.current-menu-parent > a,
nav ul.main-menu li.current-menu-item > a.active-link  { 
    -webkit-text-decoration: underline var(--bodytext) solid 1px; 
            text-decoration: underline var(--bodytext) solid 1px;
    text-underline-offset: 0.5em;
    }

nav ul.main-menu li.current-menu-item .sub-menu li > a,
nav ul.main-menu li.current-menu-item:has(~ li > a.active-link) > a { text-decoration: none; }

nav ul.main-menu a { color: var(--txt-nav);text-decoration: none; }
nav ul.main-menu a:hover { opacity: 1; }

li.social a { background-color: var(--bodytext);width: 1.6rem;height: 1.6rem;overflow: hidden;}

li.linkedin a { -webkit-mask: url(../images/icons/Icon_Linkedin.svg) no-repeat; mask: url(../images/icons/Icon_Linkedin.svg) no-repeat;-webkit-mask-position: center;mask-position: center;-webkit-mask-size: cover;mask-size: cover;}
li.facebook a { -webkit-mask: url(../images/icons/Icon_Facebook.svg) no-repeat; mask: url(../images/icons/Icon_Facebook.svg) no-repeat;-webkit-mask-position: center;mask-position: center;-webkit-mask-size: cover;mask-size: cover;}
li.xing a { -webkit-mask: url(../images/icons/Icon_Xing.svg) no-repeat; mask: url(../images/icons/Icon_Xing.svg) no-repeat;-webkit-mask-position: center;mask-position: center;-webkit-mask-size: cover;mask-size: cover;}

.pagination { width: 100%; }
.pagination .page-numbers { 
    display: -webkit-box; 
    display: -ms-flexbox; 
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    list-style-type: none;
}

.pagination .page-numbers li {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #eee; 
    width: calc(var(--fontsize-m) * 2);
    height:  calc(var(--fontsize-m) * 2);
    border-radius: calc(var(--borderradius) * 0.2);
    margin: 0 calc(var(--fontsize-m) * 0.4);
    opacity: 1;
}

.pagination .page-numbers li:has(.current) {
  background: var(--accent01); 
  opacity: 1;
}

.pagination .page-numbers li a { text-decoration: none; }

.pagination .page-numbers li::marker { content:'';} 
    

nav li button,
#sections-menu li button,
#footer-menu li button { display: none}

footer p,
footer li { text-align: center;margin: 0; }
footer a:focus-visible { outline: 2px solid var(--body);outline-offset: 4px;}

footer .footer-menu { display: block;}
footer .footer-menu li a {text-underline-offset: 0.25em;}
footer .contact-bottom li a { text-decoration: none;}


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

            /* ** Navigation ** */


           html.stop-scroll .nav_responsive { 
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            }

            html.stop-scroll .nav_responsive::before { 
            display: block; 
            content: ''; 
            position: absolute;
            top: 0; 
            left: 0; 
            background: var(--overlay-dark);
            width: 100vw; height: 100%;
            z-index: 50005;
           }

            #hamb {
                display: block;
                position: absolute;
                top: 2.5rem;
                right: 1rem;
                width: 32px;
                height: 32px;
                -webkit-transform: translateY(-50%);
                -ms-transform: translateY(-50%);
                transform: translateY(-50%);
                background: none;
                padding: 0;
                margin-top: 0;
                border:none;
                border-radius: 0;
                z-index: 80000;
                -moz-appearance: none;
                -webkit-appearance: none;
                -ms-appearance: none;
                appearance: none;
           }
       
            nav.responsive {
                position:absolute;
                top: 0; 
                right: -100vw;
                display: block;
                background: var(--bg-nav-mobile);
                width: 80vw;
                max-width: 22.5rem;
                min-height: 100vh;
                max-height: 600vh;
                height: 0;
                padding: 1rem;
                padding-top: 1.25rem;
                overflow: hidden;
                opacity: 0;
                z-index: 80000;
            }

            nav.responsive.visible {
                right:0;
                opacity: 1;
            }

            nav.responsive .main-menu { padding-top: var(--fontsize-xxl);text-align: right;}

            nav.responsive .main-menu li { position: relative;text-align: right;margin-bottom: 0;}
            nav.responsive .main-menu li a { 
            position: relative;
            display: inline-block;
            font-size: var(--fontsize-m);
            color: var(--txt-nav-mobile);
            margin-bottom: 1em;
            margin-left: 1rem;
            z-index: 80000;
            }

            nav.responsive .main-menu li li a { margin-bottom: 1em;}
            nav.responsive .main-menu li li li a {  padding-right: 1.5rem; margin-bottom: 0.5em;}

            nav.responsive li.menu-item-has-children button.checkbox { 
                display: block;
                position: absolute;
                top: calc(var(--fontsize-m) - 1.75ch);
                right: 0;
                display: block;
                background: var(--bodytext);
                width: 3ch;
                height: 3ch;
                -webkit-mask: url(../images/icons/PES_Pfeil.svg) no-repeat;
                        mask: url(../images/icons/PES_Pfeil.svg) no-repeat;
                -webkit-mask-position: center;
                        mask-position: center;
                -webkit-mask-size: var(--fontsize-xs);
                        mask-size: var(--fontsize-xs);
                font-size: var(--fontsize-m);
                color: var(--transparent);
                -webkit-transition: all 0.5s ease-in-out;
                -o-transition: all 0.5s ease-in-out;
                transition: all 0.5s ease-in-out;
                -webkit-transform: rotate(0);
                    -ms-transform: rotate(0);
                        transform: rotate(0);
                -webkit-transform-origin: center;
                    -ms-transform-origin: center;
                        transform-origin: center;
                outline: none;
                padding: 0;
                margin: 0;
                opacity: 1;
                border:none;
                -moz-appearance: none;
                -webkit-appearance: none;
                -ms-appearance: none;
                appearance: none;
                z-index: 800002;            }

            nav.responsive li.menu-item-has-children button.checkbox.checked { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg);}
            nav.responsive li:not(.menu-item-has-children) button.checkbox {display: none !important;}

            nav.responsive li ul.sub-menu {
                display: block;
                -webkit-transform: scaleY(0);
                    -ms-transform: scaleY(0);
                        transform: scaleY(0);
                -webkit-transform-origin: top center;
                    -ms-transform-origin: top center;
                        transform-origin: top center;
                height: 0;
                opacity: 0;
                padding-top: 0; 
                padding-bottom: 0;
            }

            nav.responsive li button.checkbox.checked + ul.sub-menu,
            nav.responsive li ul.sub-menu li button.checkbox.checked + ul.sub-menu { 
                -webkit-transform: scaleY(100%); 
                    -ms-transform: scaleY(100%); 
                        transform: scaleY(100%);
                height: auto;
                opacity: 1;
                padding-top: 0; 
                padding-bottom: 2em;
            }
       
            nav.responsive li.social { display: inline-block;}
            nav.responsive li.social a { margin: 1em 0;margin-left: 1.5em;}

       
           /* Hamburger Icon */
       
           .hamb {
               position: absolute;
               top: 2.5rem; 
               right: 1rem;
               width: 32px;
               height: 32px;
               -webkit-transform: translateY(-50%);
                   -ms-transform: translateY(-50%);
                       transform: translateY(-50%);
               cursor: pointer;
           }


           #hamb + .hamb:has(+ nav.responsive.visible) { z-index: 80001;}
           #hamb:has(+ .hamb + nav.responsive.visible) { z-index: 80002;}

           .hamb span.hambwrapper {
            display: block;
            position: relative;
            width: 32px;
            height: 32px;
            padding: 4px 2px;
           }

           #hamb:hover { background: var(--transparent) !important;}
            #hamb:focus,
            button.checkbox:focus { outline: none !important;} 
      
           .line { 
               display: block; 
               position: absolute; 
               right: 0;
               height: 2px; 
               width: 32px; 
               background:var(--bodytext);
               border-radius: 2px;
               -webkit-transition: 0.5s;
               -o-transition: 0.5s;
               transition: 0.5s; 
               -webkit-transform-origin: center; 
                   -ms-transform-origin: center; 
                       transform-origin: center; 
            }

            #top.shrink .line,
            #top:has(+ header.noimg) .line { background:var(--bodytext); }
       
           #hamb + .hamb:has(+ nav.responsive.visible) .line { 
               background:var(--bodytext);
               -webkit-box-shadow: none;
               box-shadow: none;
           }
       
           .line:nth-child(1) { top: 6px; }
           .line:nth-child(2) { top: 15px; }
           .line:nth-child(3) { top: 23px; }
       
           #hamb + .hamb:has(+ nav.responsive.visible) .line:nth-child(1) { -webkit-transform: translateY(8px) rotate(-45deg); -ms-transform: translateY(8px) rotate(-45deg); transform: translateY(8px) rotate(-45deg); }
           #hamb + .hamb:has(+ nav.responsive.visible) .line:nth-child(2) { opacity:0; }
           #hamb + .hamb:has(+ nav.responsive.visible) .line:nth-child(3) { -webkit-transform: translateY(-9px) rotate(45deg); -ms-transform: translateY(-9px) rotate(45deg); transform: translateY(-9px) rotate(45deg); }  
           
            #hamb:focus-visible,
            button.checkbox:focus-visible,
            nav.responsive li.menu-item-has-children button.checkbox:focus-visible,
            nav.responsive li.menu-item-has-children button.checkbox.checked:focus-visible{ outline: 2px solid var(--bodytext) !important;-webkit-mask-size: var(--fontsize-l);mask-size: var(--fontsize-l);}

                     
        }

        @media screen and (min-width: 1300px) {

            #hamb,
            .hamb { display: none; }

            nav ul.main-menu { 
                display: -webkit-box; 
                display: -ms-flexbox; 
                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                -webkit-box-pack: end;
                    -ms-flex-pack: end;
                        justify-content: flex-end;
                -webkit-box-align: stretch;
                    -ms-flex-align: stretch;
                        align-items: stretch;
                margin-left: auto;
                height: calc(3.5rem + 2rem + 2rem);
            }

            nav ul.main-menu li { display: -webkit-box; display: -ms-flexbox; display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center; margin-left: 1.25em;}
            #top:not(.shrink, :has(+ header.noimg)) nav ul.main-menu li a { color: var(--bodytext);}
			
			#top.shrink nav ul.main-menu {height: calc((3.5rem + 2rem + 2rem * 0.4))}

            nav ul.main-menu li .sub-menu { 
                display: -webkit-box; 
                display: -ms-flexbox; 
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                -webkit-box-align: stretch;
                    -ms-flex-align: stretch;
                        align-items: stretch;
                -webkit-box-pack: start;
                    -ms-flex-pack: start;
                        justify-content: flex-start;
                position: absolute; 
                top: 70%; 
                left: -1em;
                height: 0;
                padding-top: 0.5em;
                margin-top: 0;
                -webkit-transform: scaleY(0);
                    -ms-transform: scaleY(0);
                        transform: scaleY(0);
                -webkit-transform-origin: top;
                    -ms-transform-origin: top;
                        transform-origin: top;
                transition:all 0s linear;
                opacity: 0;
            }

            nav ul.main-menu li:hover > .sub-menu,
            nav ul.main-menu li:has(a:focus) > .sub-menu { height: auto;opacity: 1;-webkit-transform: scaleY(100%);-ms-transform: scaleY(100%);transform: scaleY(100%); }
            nav ul.main-menu li:last-of-type:hover > .sub-menu { right: -0.5em; left: auto; }

            #top.shrink nav ul.main-menu li:hover .sub-menu,
            #top.shrink nav ul.main-menu li:has(a:focus) > .sub-menu,
            #top:has(+ header.noimg) nav ul.main-menu li:hover .sub-menu,
            #top:has(+ header.noimg) nav ul.main-menu li:has(a:focus) > .sub-menu { height: auto;background: var(--body); }

            #top:not(.shrink, :has(+ header.noimg)) nav ul.main-menu li.current-menu-item > a { text-decoration-color: var(--body);}

            #top:not(.shrink, :has(+ header.noimg)) nav ul.main-menu li.current-menu-item .sub-menu li > a { text-decoration: none; }


            nav ul.main-menu li > .sub-menu li { margin: 0;}
            nav ul.main-menu li > .sub-menu li a { padding: 0.5em 1em 1em 1em;}
            nav ul.main-menu li > .sub-menu li:last-of-type a { padding-bottom: 1.5em;}

            footer p,
            footer .contact-bottom li,
            footer .footer-menu li { text-align: left;}

            #to-top { 
                position: fixed; 
                right: 2rem; 
                bottom: 50vh;
                display: block;
                background-color: var(--bodytext);
                width: 2rem;
                height: 2rem;
                -webkit-mask: url(../images/icons/PES_Pfeil.svg) no-repeat;
                        mask: url(../images/icons/PES_Pfeil.svg) no-repeat;
                -webkit-mask-position: center;
                        mask-position: center;
                -webkit-mask-size: 75%;
                        mask-size: 75%;
                -webkit-transform: rotate(-90deg);
                    -ms-transform: rotate(-90deg);
                        transform: rotate(-90deg);
                opacity: 0;
                z-index: 50000;
            }
            
            #to-top:hover { background-size: 100%; }

            #to-top.show { opacity: 1;}
            body:not(.page-template-default) #to-top.show { opacity: 1;}
            #to-top.near-footer {bottom: var(--fontsize-xxl);background-color: var(--body);opacity: 1;} 
            #to-top:hover { background-size: 100%; }
            #to-top:focus { outline: none; }


        }

        @media screen and (min-width: 1280px) {

            #to-top.near-footer { bottom: 3.99.75rem;} 

        }
        @media screen and (min-width: 1280px) {}
        @media screen and (min-width: 1920px) {}
        @media screen and (max-width: 781px) {}