/*Imports*/

@font-face {
    font-family: 'DynaPuff';
    font-weight: 400;
    src: url(assets/fonts/DynaPuff-SemiBold.ttf);
}

@font-face {
    font-family: 'TikTokSans';
    font-weight: 400;
    src: url(assets/fonts/TikTokSans-Regular.ttf);
}

/*Clean*/

* {
    box-sizing: border-box;
    font-family: 'TikTokSans';
    line-height: 1.6;
    font-weight: 400;
    text-decoration: none;
    color: #1a1a1a;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    transition: all 0.5s;
}

head {
    display: none;
}

body, html {
    border: 0;
    padding: 0;
    margin: 0;
    justify-content: center;
    width: 100%;
    scroll-behavior: smooth;
    overflow-x: hidden;
}

/*Fonts*/

html, a, p {
    font-size: 13px;
}

h1.hl {
    font-size: 22px;
}

h2, h3, h4, h5, h6, .hl, .menu-item span {
    font-family: 'DynaPuff';
    font-size: 17px;
    line-height: 1.2;
    width: 100%;
}

.sl, #menu .current {
    font-family: 'TikTokSans';
    font-size: 17px;
    width: 100%;
    margin-top: 10px;
}

.branding {
    font-size: 17px;
    display: none;
}

a.button {
    font-family: 'DynaPuff';
    font-size: 16px;
    color: #1a1a1a;
    padding: 10px 20px;
    border-radius: 50px;
    background-color: #e1e5a3;
}

a.button:hover {
    background-color: #f2f2f2;
    transform: rotate(1deg);
}

@media only screen and (min-width: 1200px){

    html, a, p {
        font-size: 18px;
    }

    #intro-sec .hl {
        font-size: 70px;
        width: 100%;
    }

    h1.hl, .content-bg .solo-txt .hl {
        font-size: 45px;
    }

    h2, h3, h2.hl, h3.hl {
        font-size: 40px;
    }

    .sl {
        font-size: 24px;
    }

    .branding {
        font-size: 20px;
        display: block
    }

    .content-bg .solo-txt p, #menu-icon p {
        font-size: 19px;
    }

}

/*Farbswitch - aktuell Green als Fallback*/

#shuffel-icon, .green #shuffel-icon, .blue #shuffel-icon {
    background-image: url(assets/shuffel-icon.svg);
}

.orange #shuffel-icon, .pink #shuffel-icon, .lightblue #shuffel-icon {
    background-image: url(assets/shuffel-icon-green.svg);
}

.yellow #shuffel-icon {
    background-image: url(assets/shuffel-icon-blue.svg);
}

.green #menu .current, .green #intro-sec .hl, .green .content-bg .hl, .green #menu-icon, 
#menu .current, #intro-sec .hl, .content-bg .hl, #menu-icon {
    color: #e1e5a3;
}

.green #intro-sec p, .green .content-bg p, #intro-sec p, .content-bg p {
    color: #f2f2f2;
}

.green #menu-icon .icon-wrap .menu-icon-path, .green #menu-icon:hover p, .green .more-cta:hover p, .green .textlink:hover,
#menu-icon .icon-wrap .menu-icon-path, #menu-icon:hover p, .more-cta:hover p, .textlink:hover {
    border-color: #295e54;
}

.green .list-wrapper a.item p, .green .sl, .sl, .orange .content-bg .hl, .orange #intro-sec .hl, .orange .list-wrapper a.item p, .pink .content-bg .hl, .pink #intro-sec .hl, .pink .list-wrapper a.item p, .lightblue .content-bg .hl, .lightblue #intro-sec .hl, .lightblue .list-wrapper a.item p  {
    color: #295e54;
}

.green #intro-sec, .green .content-bg, .green .menu-bg-col,
#intro-sec, .content-bg {
    background-color: #295e54;
}

.orange #intro-sec p, .orange .content-bg p, .yellow #intro-sec p, .yellow .content-bg p, .pink #intro-sec p, .pink .content-bg p, .lightblue #intro-sec p, .lightblue .content-bg p{
    color: #1a1a1a;
}

.orange .textlink:hover {
    border-color: #295e54;
}

.orange #intro-sec, .orange .content-bg {
    background-color: #f9d7bb;
}

.orange a.button, .pink a.button, .lightblue a.button {
    background-color: #295e54;
    color: #f2f2f2;
}

.orange a.button:hover, .yellow a.button:hover, .pink a.button:hover, .lightblue a.button:hover {
    background-color: #1a1a1a;
}

.blue #intro-sec p, .blue .content-bg p, .blue #menu-icon, .yellow a.button {
    color: #fff;
}

.blue .content-bg .hl, .blue #intro-sec .hl {
    color: #f2f2f2;
}

.blue .textlink:hover {
    border-color: #6f7bbf;
}

.blue .list-wrapper a.item p, .yellow .list-wrapper a.item p, .yellow .content-bg .hl, .yellow #intro-sec .hl  {
    color: #6f7bbf;
}

.blue #intro-sec, .blue .content-bg, .yellow a.button {
    background-color: #6f7bbf;
}

.yellow #intro-sec, .yellow .content-bg {
    background-color: #e1e5a3;
}

.lightblue #intro-sec, .lightblue .content-bg {
    background-color: #b6dadd;
}

.pink #intro-sec, .pink .content-bg {
    background-color: #e7d9ed;
}


.green #logo {
    background-image: url('assets/green-tsdes-logo.svg');
}
.blue #logo {
    background-image: url('assets/blue-tsdes-logo.svg');
}
.orange #logo {
    background-image: url('assets/orange-tsdes-logo.svg');
}
.yellow #logo {
    background-image: url('assets/yellow-tsdes-logo.svg');
}
.pink #logo {
    background-image: url('assets/pink-tsdes-logo.svg');
}
.lightblue #logo {
    background-image: url('assets/lightblue-tsdes-logo.svg');
}


/*Animations*/

@keyframes softfade {
    0% {
        opacity: 0;
    }
    20% {
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

@keyframes appear {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}



/*Layout M*/

#intro-sec, .content-clean, .content-bg  {
    justify-content: center;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.content-clean, .content-bg  {
    margin-bottom: 50px;
}

#intro-sec  {
    margin-bottom: 40px;
}

.content-clean.no-space {
    margin-bottom: 0;
}
 
#intro-sec .content, footer, .txt-div, .solo-txt {
    width: 100%;
    max-width: 1440px;
}

#intro-sec {
    position: relative;
    z-index: 4;
    padding-top: 70px;
    padding-bottom: 50px;
}

#start {
    padding-top: 20px;
}


#intro-sec .content {
    justify-content: center;
    align-content: space-between;
    align-items: flex-start;
}

#menu-icon {
    position: absolute;
    top: 40px;
    right: 20px;
    gap: 10px;
    cursor: pointer;
}

#menu-icon svg {
    width: 30px;
}

#logo {
    width: 160px;
    height: 160px;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

#intro-sec .content .cnt {
    gap: 20px;
    width: 100%;
    flex-direction: column;
    text-align: center;
    align-items: center;
}

#intro-sec .content .cnt .hl {
    width: auto;
}

.more-cta {
    gap: 10px;
    justify-content: center;
}

.more-cta svg {
    width: 20px;
}

.content-bg .more-cta svg {
    width: 30px;
}


.txt-div, .txt-div .txt, .solo-txt {
    gap: 20px;
}

.txt-div .img {
    width: 100vw;
    height: 500px;
    object-fit: cover;
    background-color: #ccc;
    margin-left: -20px;
    margin-right: -20px;
}

.content-bg {
    padding-top: 50px;
    padding-bottom: 50px;
}

.content-bg .solo-txt {
    justify-content: center;
    text-align: center;
}

.content-bg .solo-txt .hl {
    width: auto;
}

.content-bg .column {
    padding: 20px 0;
    gap: 20px;
}

.btn {
    margin-bottom: 30px;
    flex-direction: column;
    gap: 5px;
}

.btn svg {
    opacity: 1;
    width: 150px;
    transition: all 0.5s;
}

.list-wrapper {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 20px;
    min-width: 35%;
}

.list-wrapper .item {
    gap: 10px;
}

.list-wrapper .item span {
    padding: 0 10px 0 5px;
    border-bottom: 1px dotted #aaa;
}

footer {
    padding: 20px 20px;
    border-top: 1px solid #1a1a1a;
    flex-direction: column;
    gap: 20px;
}

.legals {
    gap: 10px;
}

.to-top-btn {
    background-color: #f5f5f5;
    background-image: url(assets/to-top.svg);
    background-size: 30px 30px;
    background-position: center;
    background-repeat: no-repeat;
    width: 40px;
    height: 40px;
    position: fixed;
    z-index: 3;
    right: 5px;
    bottom: 60px;
    transform: rotate(0);
}

    .menu-bg-col {
    position: absolute; }

#shuffel-icon {
    position: absolute;
    background-size: contain;
    right: 20px;
    top: 20px;
    width: 20px;
    height: 20px;
}


/*Layout D*/

@media only screen and (min-width: 1200px){

    #shuffel-icon {
    right: 40px;
    top: 40px;
    width: 30px;
    height: 30px;
    cursor: pointer;
}

#shuffel-icon:hover {
    transform: rotate(10deg);
}

    #intro-sec, .content-clean, .content-bg  {
        padding-left: 40px;
        padding-right: 40px;
        flex-wrap: nowrap;
    }

    .legals .active {
        text-decoration: underline;
    }

    .content-clean, .content-bg  {
    margin-bottom: 140px;
}

a.button {
    font-size: 19px;
}

#intro-sec  {
    margin-bottom: 120px;
}

    
    #intro-sec {
        padding-top: 10vh;
        padding-bottom: 90px;
        height: 100vh;
    }

    #impressum #intro-sec, #datenschutz #intro-sec {
        height: 70vh;
    }


    #intro-sec .content {
        justify-content: space-between;
    }

    #intro-sec .content .cnt {
    align-items: flex-start;
}

    #menu-icon {
        position: relative;
        top: 0;
        right: 0;
    }



    .menu-bg-col {
    right: 40px;
    bottom: 140px;
    width: calc(40% - 40px);
    height: calc(100% - 300px);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

    #logo {
        width: 160px;
        height: 160px;
        background-position: center;
        background-size: contain;
    }

    #intro-sec .content .cnt {
        justify-content: flex-start;
        text-align: left;
        gap: 50px;
        padding-right: 30vw;
    }

    #intro-sec .more-cta {
    justify-content: flex-start;
}

    #about #intro-sec .content .cnt, #neues #intro-sec .content .cnt, #design #intro-sec .content .cnt, #impressum #intro-sec .content .cnt, #datenschutz #intro-sec .content .cnt {
        padding-right: calc(100% - 900px);
    }

    #intro-sec .content .more-cta {
        width: 100%;
    }

    .txt-div, .txt-div .txt {
        gap: 30px;
        justify-content: space-between;
        align-content: flex-start;
    }

    .txt-div .txt {
        width: 680px;
    }

    .txt-div .img {
        width: calc(100% - 700px);
        max-width: 550px;
        height: 580px;
        object-fit: cover;
        margin-left: 0;
        margin-right: -40px;
    }

    .solo-txt {
        max-width: 750px;
        gap: 50px;
    }

    .content-bg {
        padding-bottom: 90px;
        padding-top: 90px;
    }

    .content-bg .column {
        margin-top: -90px;
        margin-bottom: -90px;
        padding: 90px 50px;
        max-width: 800px;
        gap: 50px;
    }

    .content-bg .column.col-l {
        border-right: 5px solid #fff;
    }
    .content-bg .column.col-r {
        border-left: 5px solid #fff;
    }

    footer {
        justify-content: space-between;
        align-items: center;
        padding-left: 0;
        padding-right: 0;
        flex-direction: row;
    }

    .btn svg {
        opacity: 0;
        width: 200px;
    }

    .btn:hover svg, .btn.on svg {
        opacity: 1;
        transform: rotate(0deg);
    }

    .btn.on:hover svg {
        transform: rotate(3deg);
    }

    .btn.on:hover svg path {
        fill: #333;
    }

    .to-top-btn:hover {
    transform: rotate(10deg);
    }

    .mobile {
        display: none;
    }

    a {
        cursor: pointer;
    }

    #home #kontakt .txt-div.div-r {
    padding-left: calc(12% + 40px);
}

#home #kontakt img {
    width: 12%;
    position: absolute;
    margin-left: calc(-12% - 40px);
}


}

/*Mobile Hideaways*/

@media only screen and (max-width: 1199px) {
    .desktop {
        display: none;
    }
    #menu .current {
        font-size: 15px;
    }
}