/* Fonts, Colors, Variables */
:root {
    /* Color Scheme */
    --color-1redLight: #d49e9d;
    --color-2redDark:#791916;
    --color-3blueLight:#86a6e2;
    --color-4blueDark: #003497;
    --color-5darkBrown: #2f201d;
}

@font-face {
    font-family: "TitleFont1";
    src: url("/../fonts/Rosaline.woff2") format("woff2");
}

@font-face {
    font-family: "CG-Extralight";
    src: url("/../fonts/ClashGrotesk-Extralight.woff2") format("woff2");
}

@font-face {
    font-family: "CG-Light";
    src: url("/../fonts/ClashGrotesk-Light.woff2") format("woff2");
}

@font-face {
    font-family: "CG-Medium";
    src: url("/../fonts/ClashGrotesk-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "TextFont";
    src: url("/../fonts/TravelingTypewriter.woff2") format("woff2");
}

@font-face {
    font-family: "CG-Semibold";
    src: url("/../fonts/ClashGrotesk-Semibold.woff2") format("woff2");
}


/* General settings */

html, body {
    overflow-x: hidden;
}

body {
    background-color: white;
    width: 100%;
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.mainContainer {
    width: 100%;
    margin: 0 auto;
    margin-top: 50px;
    z-index: 1;
}

.widthLimit {
    max-width: 1800px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

p {
    font-family: "CG-Regular";
}

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

h1 {
    font-family: "CG-semiBold";
    font-size: 70px;
}

h2 {
    font-family: "TitleFont1";
    font-size: 12vw;
    margin-left: 4%;
}

h3 {
    font-family: "TitleFont1";
    font-size: 10vw;
    margin-left: 4%;
}

/* Menu */

/* Closed Menu */
.menu {
    width: 100%;
    position: fixed;
    z-index: 10;
    left: 50%;
    transform: translateX(-50%);
}


.menuCube {
    background-color: rgb(255,255,255);
    border-style: solid;
    width: 56px;
    height: 55px;
    position: absolute;
    top: 20px;
    left: 15px;
    transition: transform 0.2s ease, width 0.2s ease, height 0.2s ease, background-color 0.3s ease, translate 0.2s ease;
    z-index: 9;
    transform: scale(1.00);
}

.menuCube:hover {
    background-color: rgb(255,255,255);
}

.menuSelector:has(#menuButton:hover) .menuCube {
    background-color: rgb(255,255,255);
}

#menuButton {
    width: 60px;
    height: 60px;
    position: absolute;
    top: 20px;
    left: 15px; 
    cursor: pointer;
    z-index: 10;
}

.menuLines {
    width: 45px;
    height: 4px;
    background-color: black;
    position: absolute;
}

#menuLine1 {
    top: 15px;
    left: 8px;
    transition: transform 0.4s ease, translate 0.4s ease;
}

#menuLine2 {
    top: 28px;
    left: 8px;
    opacity: 1;
    transition: opacity 0.2s ease;
}

#menuLine3 {
    top: 41px;
    left: 8px;
    transition: transform 0.4s ease, translate 0.4s ease;
}

.menuCube:hover #menuLine1, .menuCube:hover #menuLine3 {
    transform: scaleX(1.1);
}

.menuSelector:has(#menuButton:hover) #menuLine1, .menuSelector:has(#menuButton:hover) #menuLine3 {
  transform: scaleX(1.1);
}

.menuContent {
    position: absolute;
    display: none;
    flex-direction: column;
    align-items: center;
    top: 80px;
    left: 15px;
    gap: 10px;
    font-size: 40px;
    z-index: 11;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.menuContent a {
    font-family: "CG-SemiBold";
    color: var(--color-5darkBrown);
    transform: scale(1);
    transition: transform 0.2s ease, opacity 0.5s ease;
}

.menuContent a:hover {
    transform: scale(1.05);
    opacity: 0.7;
}

#languageSelector {
    position: absolute;
    display: none;
    top: 380px;
    left: 30px;
    right: auto;
    gap: 10px;
    font-family: "CG-Light";
    color: var(--color-5darkBrown);
    font-size: 20px;
    text-underline-offset: 0px;
    z-index: 11;
    opacity: 0;
    transition: opacity 0.2s ease;
}

#languageSelector p {
    margin: 0;
}

/* Open Menu */
.menuCube.menuShow {
    translate: 0px 0px;
    max-width: 90%;
    height: 400px;
    background-color: rgb(255,255,255, 1.0);
}

.menuContent.menuShow {
    opacity: 1;
}

#languageSelector.menuShow {
    opacity: 0.7;
}

#languageSelector:hover {
    opacity: 1;
}

#menuLine1.menuShow {
    transform: rotate(45deg);
    translate: 0 12.5px;
}

#menuLine2.menuShow {
    opacity: 0;
}

#menuLine3.menuShow {
    transform: rotate(-45deg);
    translate: 0 -12.5px;
}


/* Logo Design */
.logoHeader {
    position: fixed;
    right: 20px;
    top: 20px;
    max-width: 35%;
    overflow: hidden;
    border: none;
    padding: 2px;
    background-color: none;
    z-index: 9;
}

.logoHeader img {
    width: 136px;
    max-height: 100%;
    max-width: 100%;
}

/* Footer Design */
footer {
    width: 100%;
    height: 250px;
    border-top: solid;
    background-color: var(--color-1redLight);
    margin-top: auto;
    position: relative;
    z-index: 9;
    overflow: hidden;
}


.footerIcons {
    padding-top: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    bottom: 0;
}

.footerIcons img {
    width: 50px;
    transition: transform 0.2s ease-in-out;
}

.footerIcons img:hover {
    transform: scale(1.08);
}

.footerLogos {
    padding-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
}

.footerLogos img {
    width: 90px;
}

.footerLogos p {
    text-align: center;
}





/* Elements of the pages */

.titleAndMore {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: 10px; 
}

.titleAndMore h2, .titleAndMore h3 {
    width: 100%;
    text-align: left;
}

.titleAndMore.withButton {
    justify-content: space-between;
}

.titleAndMore.withButton h2 {
    width: auto;
    text-align: left;
}

.button {
    border-style: solid;
    padding: 0.5%;
    transition: transform 0.3s ease, background-color 0.3s ease;
    transform: scale(1);
    display: inline-block;
    width: fit-content;
}

.button:hover {
    transform: scale(1.02);
    background-color: #ebf3ff;
}

.liveConcert {
    background-color: white;
    color: var(--color-4blueDark);
    margin: 0 auto;
    margin-top: 50px;
    width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
}

.liveConcert h2 {
    font-family: "TitleFont1";
    font-size: 12vw;
    margin-top: 0;
    margin-bottom: 20px;
    overflow: hidden;
}



.titleAnimation span {
    display: inline-block;
    transform: translateY(100%);
    opacity: 0;
}

.titleAnimation span.show {
    transform: translateY(0);
    opacity: 1;
    transition: transform 0.5s ease, opacity 0.5s ease;
}

.liveConcertList {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    align-items: stretch;
}

.cubeAnimation {
    background-color: white;
    padding: 20px;
    border-style: solid;
    transition: transform 1s ease, background-color 1s ease;
    transform: scale(1);
}

.cubeAnimation.shrink {
    transform: scale(0.85);
}

a.cubeAnimation:hover {
    transform: scale(1.02);
}

.liveConcertElement {
    border-color: var(--color-4blueDark);
    width: 100%;
}


.liveConcertElement div {
    font-family: 'Times New Roman', Times, serif;
}

.liveConcertElement h3 {
    font-family: "TitleFont1";
    margin-top: 2vw;
    margin-bottom: 2vw;
}

.liveConcertElement p {
    font-family: 'Times New Roman', Times, serif;
}

.cubeList {
    margin-top: 0;
}

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

.contact {
    background-color: white;
    color: var(--color-2redDark);
    margin: 0 auto;
    margin-top: 50px;
    width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
}

.contact h2 {
    font-family: "TitleFont1";
    font-size: 12vw;
    margin-top: 0;
    margin-bottom: 20px;
    overflow: hidden;
}

.contactList {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    align-items: stretch;
}

.contactElement {
    border-color: var(--color-2redDark);
    width: 100%;
}

.contactElement h3 {
    font-family: "TitleFont1";
    margin-top: 2vw;
    margin-bottom: 2vw;
}

.contactElement p, .contactElement a {
    font-family: 'Times New Roman', Times, serif;
}



.redSection {
    color: var(--color-2redDark);
}

.redSection .button:hover {
    background-color: #ffefef;
}

.redSection .cubeList, .blueSection .cubeList {
    margin-left: 10%;
    margin-right: 10%
}

.redSection .cubeList h3, .blueSection .cubeList h3 {
    font-size: 8vw;
    margin-top: 2vw;
    margin-bottom: 2vw;
}

.redSection .cubeList h4, .blueSection .cubeList h4 {
    font-size: 4vw;
    margin-top: 0vw;
    margin-bottom: 2vw;
}

.redSection .cubeList .button {
    background-color: var(--color-2redDark);
    padding: 5px;
    color: white;
}

.blueSection {
    color: var(--color-4blueDark);
}


.inlineContainer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.horizontalLine {
    width: 80%;
    height: 1px;
    background-color: var(--color-2redDark);
    border: none;
}

.BioDossier {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0px; 
    margin: 0 auto 60px;
    margin-top: 60px;
    margin-bottom: 60px;
    padding-bottom: 40px;
    border: solid;
    width: 70%;
    max-width: 600px;
}

.BioDossierColumn {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}


.archiveWrapper {
    margin-top: 100px;
    margin-bottom: 100px; /* Großer Abstand zum Footer */
    width: 100%;
}

.archiveSection {
    cursor: pointer;
    overflow: hidden;
}

.archiveHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#archiveHeaderH3 {
    margin: 0;
    font-family: "TitleFont1";
}

#archiveArrow {
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    font-size: 2vw;
    font-family: "CG-Medium";
}

#archiveContent {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out;
}

.archiveTableContainer {
    padding-top: 20px;
}

.archiveTable {
    width: 100%;
    border-collapse: collapse;
    font-family: "CG-Regular";
}

.archiveTable tr {
    border-top: 1px solid var(--color-2redDark);
}

.archiveTable td {
    padding: 15px 0;
    vertical-align: top;
    font-size: 2vw;
}

.col-date {
    width: 25%;
    padding-right: 20px !important;
    white-space: nowrap;
}

.archiveYear {
    padding: 15px 0;
    vertical-align: top;
    font-size: 8vw;
}



/* Stile for a small screen */
@media (max-width: 768px) {
    /* ----------MENU-------- */


    .menuCube.menuShow {
        width: 250px;
    }

    .menuContent {
        width: 250px;
    }

    .logoHeader {
        display: none;
    }

    .imgFullScreenWrapper {
        position: relative;
        width: 100%;
        height: 100vh;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .imgFullScreen {
        width: 100%;
        height: 120%;
        object-fit: cover;
        will-change: transform;
        transition: transform 0.1s ease-out;
    }

    .imgFullScreenNoAnimation {
        width: 100%;
        object-fit: cover;
    }

    #homeMainTitle {
        position: relative;
        width: 100%;
        overflow: hidden;
        padding: 0;
        margin: 0;
    }

    #homeMainTitle Section {
        display: block;
        width: 350%;
        height: auto;
        margin: 0;
        padding: 0;
        position: relative;
        top: 0px;
        left: -150%; 
    }

    #homeMainTitle h1 {
        position: absolute;
        top: 10%;
        left: 5%;
        font-family: "CG-SemiBold";
        color: white;
        font-size: 17vw;
        text-align: left;
        white-space: nowrap;
    }

    .titleAndMore {
        display: block;
    }


    

    .titleAndMore h2 {
        font-size: 21vw;
        margin-left: 5%;
    }

    .titleAndMore a {
        font-size: 7vw;
        margin-left: 5%;
    }

    .cubeList {
        margin-left: 5%;
    }


    .cubeList .cubeAnimation {
        margin-bottom: 30px;
    }

    .cubeList .typeDate {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .cubeList .typeDate .type {
        left: 0;
    }

    .cubeList .typeDate .date {
        right: 0;
    }

    .cubeList .flex {
        display: block;
        gap: 20px;
        justify-content: center;
        align-items: center;
        margin-bottom: 20px;
    }

    .cubeList p {
        font-family: 'Times New Roman', Times, serif;
        font-size: 5vw;
        margin-top: 0;
    }

    .cubeList img {
        max-width: 100%;
    }

    .cubeList .cubeListText {
        display: block;
        flex-direction: column;
        justify-content: center;
        height: 100%;
        margin-top: 10px;
    }

    .cubeList .cubeListText a {
        margin-top: 10px;
    }

    .cubeList .button {
        font-size: 8vw;
    }

    #educationTitle {
        margin-top: 60px;
    }

    .easyListElement {
        margin-left: 15%;
        max-width: 70%;
    }

    .easyList h4 {
        font-size: 6vw;
        margin: 0;
    }

    .easyList p {
        font-size: 4vw;
    }

    .easyList {
        margin-top: 20px;
    }

    .button {
        font-size: 6vw;
    }

    .liveConcertList {
        width: 90%;
    }

    .liveConcertElement div {
        font-size: 6vw;
        width: 100%;
    }

    .liveConcertElement h3 {
        font-size: 10vw;
    }

    .liveConcertElement p {
        font-size: 5vw;
    }

    .liveConcertElement p small, .liveConcertElement p u {
        font-size: 4vw;
    }

    .contactList {
        width: 90%;
    }

    .contactElement h3 {
        font-size: 10vw;
    }

    .contactElement a, .contactElement p  {
        font-size: 5vw;
    }

    .BioDossier {
        width: 90%;
    }

    .BioDossier h3 {
        font-size: 10vw;
        margin-left: 0;
        margin-bottom: 0;
    }

    .BioDossier a {
        margin-top: 10px;
        font-size: 8vw;
        min-width: 20%;
        text-decoration: underline;
    }

    

    .archiveWrapper {
        margin-top: 30px;
        margin-bottom: 80px;
    }

    #archiveHeaderH3 {
        font-size: 10vw;
    }

    #archiveArrow {
        font-size: 6vw;
    }

    .archiveTable td {
        font-size: 4vw;
        padding: 10px 0;
    }

    .col-date {
        width: 30%;
        padding-right: 15px !important;
    }

    #archiveYear {
        font-size: 5vw;
    }
}





/* Stile for Desktop */
@media (min-width: 769px) {

    /* ----------MENU-------- */
    .menuCube.menuShow {
        width: 350px;
    }

    .menuContent {
        width: 350px;
    }

    /* img full screen animation*/

    .imgFullScreenWrapper {
        position: relative;
        height: 100vh; /* Volle Viewport-Höhe */
        width: 100%;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #homeMainTitle {
        position: relative;
        width: 100%;
        margin-bottom: 0;
    }

    #homeMainTitle img {
        display: block;
        height: 100%;
        height: auto;
        margin: 0;
        padding: 0;
        position: relative;
        top: -50px;
    }

    #homeMainTitle h1 {
        position: absolute;
        top: 40%;
        left: 5%;
        color: white;
        font-size: 7.5vw;
        text-align: left;
        white-space: nowrap;
    }

    .cubeList .cubeAnimation {
        margin-bottom: 30px;
    }

    .cubeList .typeDate {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .cubeList .typeDate .type {
        left: 0;
    }

    .cubeList .typeDate .date {
        right: 0;
    }

    .cubeList .flex {
        display: flex;
        gap: 20px;
        justify-content: left;
        align-items: center;
        margin-bottom: 20px;
    }

    .cubeList p {
        font-family: 'Times New Roman', Times, serif;
        font-size: 2vw;
        margin-top: 0;
    }

    .cubeList img {
        max-width: 30%;
        padding: 5px;
    }

    .cubeList .cubeListText {
        display: flex;
        flex-direction: column;
        gap: 10px;
        justify-content: center;
        height: 100%;
    }

    .cubeList .button {
        font-size: 2vw;
    }

    #educationList h3 {
        font-size: 3vw;
        margin-top: 2vw;
        margin-bottom: 0;
        margin-left: 0%;
    }

    #educationTitle {
        font-size: 5vw;
        margin-bottom: 0;
    }

    .easyListElement {
        margin-left: 15%;
    }

    .easyList h4 {
        font-size: 3vw;
        margin: 0;
    }

    .easyList p {
        font-size: 2vw;
    }

    .easyList {
        margin-top: 20px;
    }

    .liveConcertList {
        gap: 6%;
    }

    .liveConcertElement {
        width: 40%;
    }

    .liveConcertElement div {
        font-size: 3vw;
    }

    .liveConcertElement h3 {
        font-size: 4vw;
        margin-top: 2vw;
        margin-bottom: 2vw;
    }

    .liveConcertElement p {
        font-size: 2vw;
    }

    .liveConcertElement p small, u {
        font-size: 1.5vw;
    }


    .contactList {
        gap: 6%;
    }

    .contactElement {
        width: 40%;
    }

    .contactElement h3 {
        font-size: 4vw;
        margin-top: 2vw;
        margin-bottom: 2vw;
    }

    .contactElement p, .contactElement a  {
        font-size: 2vw;
    }

    .button {
        font-size: 4vw;
    }


    .BioDossier h3 {
        font-size: 3vw;
        margin-left: 0;
        margin-bottom: 0;
    }

    .BioDossier a {
        margin-top: 10px;
        font-size: 2vw;
        min-width: 20%;
        text-decoration: underline;
    }

    #archiveHeaderH3 {
        font-size: 4vw;
    }

    #archiveYear {
        padding: 15px 0;
        vertical-align: top;
        font-size: 3vw;
    }
}