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

img {
    max-width: 100%;
}

#nav-toggle,
[for="nav-toggle"] {
    display: none;
}

@media (width < 768px) {
    [for="nav-toggle"] {
        color: #fff;
        cursor: pointer;
        display: block;
        position: fixed;
        right: 30px;
        top: 20px;
        z-index: 101;
        span {
            &:first-of-type {
                font-size: 32px;
            }
            &:last-of-type {
                font-size: 24px;
                display: none;
            }
        }
    }
    #nav-toggle:checked + [for="nav-toggle"] span {
        &:first-of-type {
            display: none;
        }
        &:last-of-type {
            display: inline-block;
        }
    }
}

body {
    font-family: Arial, sans-serif;
    font-size: 14px;
    line-height: 21px;
    background: #fff url(../images/pagetile.gif);
}

img {
    border: 0;
}

img.portrait {
    float: right;
    margin: 0 0 16px 16px;
}

.bc-team img.portrait {
    border: 2px solid #eee;
}

#wrapper {
    border: 5px solid #bcd;
    background-color: #9bb4cc;
    max-width: 960px;
    margin: 30px auto;
    margin-bottom: 200px;
    padding: 0;
    @media (width < 1000px) {
        margin: 30px;
    }
    @media (width < 768px) {
        margin: 10px;
    }
}

body.page--index #wrapper {
    max-width: 900px;
}

body.page--index #imprint {
    display: none;
}

body.page--index {
    #center {
        gap: 0;
        #content {
            position: relative;
            p {
                margin: 0;
                a {
                    img {
                        float: left;
                    }
                }
            }
            h1#splash {
                padding: 8px;
                margin: 0 auto !important;
                text-align: center;
                color: #000;
                position: absolute;
                top: 45%;
                width: 100%;
                z-index: 100;
                strong {
                    a {
                        font-size: 24px;
                        font-weight: normal;
                        opacity: 0.75;
                        background-color: #fffc;
                        color: #000;
                        line-height: 1.6;
                        max-width: 500px;
                        padding: 5px 20px;
                        &:hover {
                            background-color: #0003;
                        }
                    }
                }
            }
            nav {
                top: 105%;
                position: absolute;
                text-align: center;
                width: 100%;
                ul {
                    display: flex;
                    justify-content: center;
                    gap: 10px;
                    list-style-type: none;
                    width: auto;
                    @media (width < 800px) {
                        display: none;
                    }
                    li {
                        a {
                            background-color: #fff9;
                            border-radius: 5px;
                            padding: 5px 10px;
                        }
                    }
                }
            }
        }
    }
}

#center {
    /*	background-color: #6D8DA7;*/
    /*	background: #eee url(../images/tile.gif); */
    display: grid;
    margin: 0 auto;
    gap: 30px;
    grid-template-columns: 300px 350px 230px;
    grid-template-areas:
        "nav content margin"
        ".   imprint imprint";
    @media (width < 1000px) {
        grid-template-columns: 300px 350px;
        grid-template-areas:
            "nav margin"
            "nav content"
            ".   imprint";
        width: 660px;
    }
    @media (width < 768px) {
        grid-template-columns: 320px;
        grid-template-areas:
            "margin"
            "content"
            "imprint";
        width: 320px;
    }
    @media (width < 390px) {
        grid-template-columns: 300px;
        grid-template-areas:
            "margin"
            "content"
            "imprint";
        width: 300px;
    }
}

body.page--index {
    #center {
        grid-template-columns: 1fr;
        grid-template-areas:
            "content"
            "imprint";
        width: 100% !important;
    }
    #margin,
    #navigation {
        display: none;
    }
}

#navigation {
    padding: 30px 0;
    width: 300px;
    grid-area: nav;
}

#navigation ul {
    padding-left: 38px;
    list-style-type: none;
    line-height: 22px;
}

#navigation a {
    color: #666;
    text-decoration: none;
}

#navigation a:hover {
    color: #fff;
    background-color: #000;
}

#navigation a.a,
#navigation a.a:hover {
    color: #000;
    background-color: transparent;
}

#navigation {
    position: relative;
    label {
        position: fixed;
        right: 20px;
        top: 20px;
    }
    @media (height > 740px) and (width >= 1000px) {
        & > img {
            position: sticky;
            top: 67px;
        }
    }
    @media (width < 768px) {
        display: block !important;
        height: 242px;
        /*overflow: hidden;*/
        position: fixed;
        right: -320px;
        top: 10px;
        transition: right 0.15s ease-in-out;
        z-index: 100;
    }
}
@media (width < 768px) {
    input#nav-toggle:checked ~ #wrapper #navigation {
        right: 0;
        &:after {
            background-color: #fff2;
            backdrop-filter: blur(2px) saturate(1.3);
            content: "";
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            top: 0;
            z-index: -1;
        }
    }
}

#content {
    padding: 62px 0 32px 0;
    padding-bottom: 38px;
    color: #222;
    grid-area: content;
}

body.page--index #content {
    max-width: 900px;
    max-height: 600px;
    margin: 0;
    padding: 0;
}

#content h1 {
    display: block;
    font-size: 20px;
    font-weight: normal;
    color: #000; /*#19538b;*/
    margin-bottom: 16px;
}

#content h2 {
    font-size: 16px;
    font-weight: bold;
    padding: 8px 0 0 0;
}

#content h3 {
    font-size: 16px;
    font-weight: normal;
    padding: 0 0 8px 0;
}

#content p {
    padding-bottom: 12px;
}

#content a {
    color: #19538b;
    text-decoration: none;
}

#content a:not(.finq) {
    background-color: #fff6;
    border-radius: 3px;
    padding: 0 2px;
}

#content ul li a:not(.finq) {
    display: block;
    margin-bottom: 2px;
}

#content a:hover {
    color: #fff;
    background-color: #19538b;
}

#content ul {
    list-style-type: square;
    margin-bottom: 16px;
}

#content li {
    margin-left: 16px;
}

#content hr {
    color: #bdd6ee;
    background-color: #bdd6ee;
    height: 1px;
    border: 1px;
    padding: 0px;
    margin: 24px 0;
}

#content .nolinkli {
    color: #666;
}

#margin {
    /*padding-left: 30px;*/
    /*margin-right: 30px;*/
    margin-top: 32px;
    grid-area: margin;
    position: relative;
    @media (width < 1000px) {
        margin-right: 0;
        text-align: right;
    }
}

@media (height > 300px) and (width >= 1000px) {
    #logo-picture {
        position: sticky;
        top: 70px;
    }
}

#margin a img.logo {
    padding-bottom: 8px;
    margin-bottom: 24px;
    border-bottom: 1px solid #bdd6ee;
}

#margin a:hover img.logo {
    border-bottom: 1px solid #fff;
}

#margin hr {
    color: #fff;
    background-color: #fff;
    height: 1px;
    border: 1px;
    padding: 0px;
    margin: 0;
    margin-bottom: 24px;
}

#margin img {
    border: 5px solid #bcd;
    margin-bottom: 20px;
}

#margin img.logo {
    border: 0;
    text-align: right;
    margin: 0;
}

#margin .names {
    margin-left: 148px;
    font-size: 9px;
    line-height: 10px;
    color: #fff;
    margin-bottom: 30px;
}

#bottom {
    height: 90px;
    border-top: 1px solid #ccc;
}

#address {
    float: right;
    width: 124px;
}

#address h2 {
    font-weight: normal;
    font-size: 11px;
    line-height: 15px;
}

.clearer {
    clear: both;
}

#codeinfo {
    color: #999;
    padding-top: 38px;
    padding-left: 38px;
    font-size: 12px;
    line-height: 12px;
}

#codeinfo a {
    color: #999;
}

#bi-leistungsspektrum #content div.info {
    color: #456;
    background-color: #9bb4cc;
    text-decoration: none;
    cursor: pointer;
}

#bi-leistungsspektrum #content div.info:hover {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}

#imprint {
    color: #19538b;
    font-size: 11px;
    grid-area: imprint;
}

#imprint h1 {
    display: inline;
    font-size: 11px;
    font-weight: normal;
}

h1 {
    text-wrap: balance;
}

details {
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
    &[open] {
        &:after {
            background-color: #fff2;
            /*border: 3px solid #fff3;*/
            border-radius: 10px;
            bottom: 0;
            content: "";
            left: -10px;
            pointer-events: none;
            position: absolute;
            right: -10px;
            top: -10px;
            z-index: -1;
        }
    }
    summary {
        cursor: pointer;
        display: block;
        font-weight: bold;
        position: relative;
        user-select: none;
        &:after {
            color: #19538b;
            color: #fff;
            content: "+";
            display: block;
            font-size: 21px;
            font-weight: normal;
            opacity: 0.33;
            position: absolute;
            right: 0;
            top: 0;
            transition:
                opacity 0.3s ease-in-out,
                transform 0.3s ease-in-out;
        }
        h2 {
            padding-top: 0 !important;
        }
    }
}

details[open] summary:after {
    opacity: 1;
    transform: rotate(225deg) scale(2);
}
