@font-face {
    font-family: 'sans-reg';
    src: url('../media/fonts/IBMPlexSans-Regular.ttf') format('ttf');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'sans-bld';
    src: url('../media/fonts/IBMPlexSans-SemiBold.ttf') format('ttf');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'ibm-serif-bld-ital';
    src: url('../media/fonts/IBMPlexSerif-SemiBoldItalic.ttf') format('ttf');
    font-weight: bold;
    font-style: italic;
}

:root {
    --title-size: 2.5vw;
    --title-box-size: 30vh;
    --headline-size: 1vw;
    --text-size: 1vw;
    --full-margin: 60px;
    --half-margin: 30px;
    --col-w: calc((100vw - 7 * var(--full-margin))/7);

    --gold: #E0BE77;
    --grey: #715643;
}

@media (max-width: 1200px) {
    :root {
        --title-size: calc(2.5vw * 1.2);
        --headline-size: calc(1vw * 1.2);
        --text-size: calc(1vw * 1.2);
    }
}


* {
    margin: 0;
    padding: 0;
}

/*GENERAL STYLES*/

body {
    background-color: #fff;
    color: var(--grey);
    overflow: hidden;
    font-family: "sans-rgl", sans-serif;
}



li {
    list-style-type: none;
    font-size: var(--text-size);
}

a {
    color: var(--grey);
    text-decoration: none;
}

h1 {
    font-size: calc(var(--title-size) * 2);
    line-height: calc(var(--title-size) * 1.9);
    color: var(--gold);
    margin-bottom: 2vh;
}

h2 {
    font-size: var(--title-size);
}

h3 {
    font-size: var(--headline-size);
}

p {
    font-size: var(--text-size);
}

img {
    width: 100%;
    margin: var(--half-margin) auto;
    border-radius: var(--half-margin);
}

.img-50 {
    width: 50%;
    display: block;
}

.sp-main {
    display: flex;
    flex-flow: row;
}

.sp-double-container {
    width: calc(4 * var(--full-margin) + 4 * var(--col-w));
    height: 100vh;

    background-image: url(../media/image/mandala_light.png);
    background-repeat: no-repeat;
    background-size: 110%;
    background-position: 180% center;
    background-origin: content-box;
}

.sp-double-columns {
    display: flex;
    flex-flow: row;
}

.sp-selector {
    width: calc(2 * var(--full-margin) + 2 * var(--col-w) - 2 * var(--half-margin));
    height: calc(100vh - var(--full-margin) - var(--title-box-size));
    padding: var(--half-margin);
}

.sp-contact {
    width: calc(2 * var(--full-margin) + 2 * var(--col-w) - 2 * var(--half-margin));
    height: calc(100vh - var(--full-margin) - var(--title-box-size));
    padding: var(--half-margin);
    display: flex;
    /*align-items: flex-end;*/
    flex-flow: column;
    justify-content: space-between;
}

.sp-infos {
    width: calc(3 * var(--full-margin) + 3 * var(--col-w));
    height: calc(100vh - var(--full-margin));
    padding: var(--half-margin);

    overflow-y: scroll;
    scrollbar-width: none;
    -ms-overflow-style: none;

    background-image: url(../media/image/background_mandala_light.jpg);
    background-position: center, center;
}

.sp-infos::-webkit-scrollbar {
    display: none;
}

.impressum-ds-mobile {
    display: none;
}




/*-----*/
.sp-flex-container {
    height: calc(100vh - var(--title-box-size) - var(--full-margin));
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.sp-top-block {
    /*height: calc(var(--title-box-size) - var(--full-margin));*/
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    font-family: "ibm-serif-bld-ital", serif;
    font-style: italic;
    line-height: var(--title-size);
}

.sp-double-title {
    height: calc(var(--title-box-size) - var(--full-margin));
    font-family: "ibm-serif-bld-ital", serif;
    font-style: italic;
    padding: var(--half-margin);
}

.sp-double-title p {
    font-size: calc(var(--text-size) * 2);
}

.sp-top-block p {
    font-family: "ibm-serif-bld-ital", serif;
    font-style: italic;
    line-height: var(--text-size);
}

.sp-selector-subheadline {
    margin-top: 5vh;
}

.sp-selector-links a {
    font-weight: bold;
    opacity: 0.4;
}

.sp-selector-links ul li a.active {
    opacity: 1;
}


.sp-infos-block {
    margin-top: 5vh;
    margin-bottom: 10vh;
}

h3 {
    margin-bottom: 1vh;
}

.sp-footnote h2 {
    font-size: calc(var(--headline-size) * 1.5);
}

#sect-16 li {
    list-style-type: disc;
    margin-left: 25px;
}

/*
.sp-footnote h3 {
    color: var(--gold);
}
*/

.sp-adress-flex {
    display: flex;
    justify-content: space-between;
}


@media (max-width: 800px) {
    :root {
        --title-size: 40px;
        --headline-size: 20px;
        --text-size: 16px;
    }

    h1 {
        font-size: calc(var(--title-size) * 1.5);
        line-height: normal;
    }

    body {
        overflow: auto;
    }

    .sp-main {
        display: flex;
        flex-flow: column;
    }

    .sp-double-container {
        height: auto;
        width: 100%;
        background-size: 200%;
        background-position: center center;
    }

    .sp-double-title {
        height: auto;
    }

    .sp-double-columns {
        flex-flow: column;
        height: auto;
    }

    .sp-selector {
        width: calc(100vw - var(--full-margin));
        height: auto;
        padding: var(--half-margin);
    }

    .sp-contact {
        width: calc(100vw - var(--full-margin));
        height: auto;
        padding: var(--half-margin);
    }

    .impressum-ds {
        display: none;
    }

    .impressum-ds-mobile {
        display: block;
        padding: var(--half-margin);
    }

    .impressum-ds-mobile ul {
        display: flex;
        justify-content: space-between;
    }

    .sp-infos {
        width: calc(100vw - var(--full-margin));
        height: auto;
        padding: var(--half-margin);


        background-position: center, center;
    }

    .sp-infos::-webkit-scrollbar {
        display: none;
    }

    .sp-flex-container {
        height: 400px;
    }

    .sp-selector .sp-flex-container {
        height: auto;
    }

    .sp-selector .sp-flex-container div {
        margin: 20px 0;
    }

    .sp-adress {
        width: calc(100vw - var(--full-margin));
        height: auto;
        padding: var(--half-margin);

        background-repeat: no-repeat;
        background-position: center;
        background-position-y: -220px;
        background-size: 500px;

    }

    .sp-selector-links a {
        opacity: 1;
    }

    .sp-top-block {
        height: auto;
    }
}