/********** Schriftart von GOOGLE Fonts; Name: BebasNeue *********************/
@font-face {
    font-family: 'BebasNeue';
    src: url('./fonts/BebasNeue-Regular.ttf') format('truetype');
}
@font-face {
    font-family: 'ChakraPetch';
    src: url('./fonts/ChakraPetch-Regular.ttf') format('truetype');
}

/********** CSS-Variablen - Auswirkung für die gesamte Webseite **************
 ********** !bitte nur hier ändern! ******************************************/
:root{
    --primary-color:        #e20613;
    --primary-color-t:      #e2061375;
    --secondary-color:      #1d1d1b;
    --secondary-color-t:    #1d1d1b66;
    --accent-color:         #a5a8d3;
    --text-color:           #fff;
    --secondary-text-color: #ccc;
    --border-radius:        20px;
    --fontBebas:            'BebasNeue', sans-serif;
    --fontChakra:           'ChakraPetch', sans-serif;
    --letter-spacing:       0.1rem;
    --transition:           500ms ease-in-out;
    font-size:              16pt;
}

/********** zentrale Formatierungseinstellungen ******************************/
*{
    margin: 0;
    padding: 0;
    line-height: 1;
    box-sizing: border-box;
}
html{
    max-width: 100vw;
    font-family: var(--fontBebas);
    letter-spacing: var(--letter-spacing);
}

/********** Überschriften ****************************************************/
h1,
h2{
    margin: 2rem 0 1rem 0;
    display: flex;
    justify-content: center;
    gap: 1rem;
}
h1{
    font-size: 3rem;
    color: var(--primary-color);
    text-shadow: 0 0 5px var(--accent-color);
}
h1 img{
    height: 3rem;
    width: auto;
    filter: drop-shadow(0 0 3px var(--accent-color));
}
h2{
    font-size: 2rem;
    color: var(--accent-color);
    text-align: center;
}
h3{
    font-size: 1.5rem;
    text-align: center;
}

/********** horizontale Linie ************************************************/
hr{
    margin: 0 auto 2rem auto;
    width: 5rem;
    border: 3px solid var(--primary-color);
    border-radius: var(--border-radius);
}

/********** Textabsätze ******************************************************/
p {
    width: 100%;
    text-align: center;
    margin-bottom: 1rem;
    line-height: 1.5;
}
footer p{
    line-height: 1;
}
section#datenschutz p,
section#datenschutz ul li{
    text-align: justify;
}
p.link{
    display: flex;
    justify-content: center;
    align-items: center;
}
p.quelle{
    font-size: 0.5rem;
}
p.iframes{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
p.iframes iframe{
    border-radius: var(--border-radius);
    width: 100%;
    max-width: 500px;
    height: 500px;
}
p img{
    float: left;
    margin: 0.5rem 2rem 2rem 0;
    width: calc(100vw * 0.15);
    height: auto;
    border-radius: var(--border-radius);
}
p.pWithPic{
    margin-top: 0.5rem;
    text-align: justify;
}
span.textHighlight{
    color: var(--accent-color);
}
video{
    border-radius: var(--border-radius);
    border-color: 1px solid var(--secondary-text-color);
}

/********** Tabellen *********************************************************/
table{
    width: 100%;
    border-radius: var(--border-radius);
    box-shadow: 0 0 5px var(--accent-color);
    border-collapse: collapse;
    overflow: hidden;
}
tr:nth-child(even){
    background-color: var(--secondary-color-t);
}
tr:nth-child(odd){
    background-color: var(--primary-color-t);
}
td{
    padding: 0.5rem 1rem;
}
td.parameter{
    min-width: 33%;
    text-align: left;
    color: var(--accent-color);
}
td.wert{
    min-width: 66%;
    text-align: right;
}
details.tabellen div table{
    flex: 1 1 300px;
    box-shadow: none;
}

/********** Listen ***********************************************************/
ul li,
ol li{
    margin-left: 1rem;
    line-height: 1.5;
}
ol li{
    margin-top: 1rem;
}
ol p{
    text-align: left;
    margin-left: 1rem;
    margin-bottom: 0;
}
ul ul li,
ol ul li{
    margin-left: 2rem;
    margin-top: 0;
}
nav#footer-nav ul li img{
    height: 1rem;
    width: auto;
    filter: drop-shadow(0 0 3px var(--text-color));
}
nav ul{
    display: flex;
    gap: 1rem;
    list-style-type: none;
    text-align: center;
}
nav#footer-nav ul{
    flex-wrap: wrap;
    display: flex;
    justify-content: center;
}
nav#footer-nav ul li{
    display: flex;
    align-items: center;
}
nav#footer-nav ul li:first-of-type{
    margin-right: auto;
    margin-left: 0;
}

/********** Hyperlinks *******************************************************/
a,
a:visited{
    color: var(--secondary-text-color);
    text-align: center;
}
a{
    text-decoration: none;
}
a:hover,
a.active{
    color: var(--text-color);
}
p a,
nav a{
    position: relative;
}
p a::after,
nav a::after,
nav a.active::after{
    content: '';
    height: 2px;
    width: 0;
    background-color: var(--accent-color);
    position: absolute;
    bottom: 0;
    left: 0;
    transition: var(--transition);
}
p a:hover::after,
nav a:hover::after,
nav a.active::after{
    width: 100%;
}
p > svg{
    fill: var(--text-color);
}
#twitch figure a{
    display: flex;
    align-items: center;
    gap: 2rem;
}

/********** Buttons **********************************************************/
button{
    margin-bottom: 0.5rem;
    background-color: var(--primary-color-t);
    border-radius: var(--border-radius);
    border: 1px solid var(--primary-color-t);
    font-family: var(--fontBebas);
    font-size: 1rem;
    letter-spacing: var(--letter-spacing);
    padding: 0.5rem;
    width: 15rem;
    height: 3rem;
}

.form_button{
    margin-top: 1rem;
    font-family: var(--fontBebas);
    font-size: 1rem;
    letter-spacing: var(--letter-spacing);
    padding: 0.5rem;
    width: 15rem;
    max-width: 90%;
    height: 3rem;
}
.form_button{
    border: 1px solid transparent;
    color: var(--secondary-text-color);
}
button:hover,
.form_button:hover{
    background-color: var(--primary-color);
    border-radius: var(--border-radius);
    border: 1px solid var(--secondary-text-color);
    color: var(--text-color);
    transition: var(--transition);
}
.button figure,
#twitch div.teaser figure a img{
    filter: grayscale(1);
}
.button figure:hover,
#twitch div.teaser figure a img:hover,
#twitch div.teaser figure a img:hover{
    filter: grayscale(0);
}
.button figure:hover img{
    border-radius: var(--border-radius);
    transition: var(--transition);
}

/********** Galerie **********************************************************/
.galerie{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 1rem;
}
.galerie figure{
    padding: 1.8rem 0.5rem 0.5rem 0.5rem;
    height: 300px;
    display: flex;
    flex: 0 0 300px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}
.galerie figure a{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}
.galerie figure img{
    flex: 0;
    width: calc(100% - 3rem);
    height: auto;
}
.galerie figure img:hover,
.galerie figure img:focus{
    width: 100%;
    transition: var(--transition);
}
.galerie figure figcaption{
    text-align: center;
    font-size: 1rem;
}

/********** Website Logo *****************************************************/
#logo{
    height: 3rem;
    width: auto;
    background-color: white;
    padding: 0.1rem 0.5rem;
    border-radius: 0 0 var(--border-radius) var(--border-radius);
    box-shadow: 2px 0 5px var(--secondary-color), -2px 0 5px var(--secondary-color);
}
#logo:hover{
    background-color: var(--secondary-color);
}
#logo img{
    display: inline-block;
    margin-top: 0.2rem;
    height: 2.5rem;
    width: auto;
}
#logo:hover img{
    display: none;
}
#logo span{
    display: none;
}
#logo:hover span{
    display: inline-block;
    margin-top: 0.2rem;
    padding: 0.8rem 0.3rem;
}

/********** Formulare ********************************************************/
form{
    display: flex;
    width: 100%;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    gap: 1rem;
}
form input,
form textarea,
form fieldset{
    width: 90%;
    padding: 0.5rem 1rem;
    font-family: var(--fontChakra);
    font-size: 1rem;
    letter-spacing: var(--letter-spacing);
    background-color: var(--primary-color-t);
    border: 0;
    border-radius: var(--border-radius);
    box-shadow: 1px 1px 1px var(--secondary-text-color);
    transition: var(--transition);
    color: var(--text-color);
}
form textarea{
    height: 10rem;
    resize: none;
    line-height: 1.5;
}
form fieldset{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 1rem;
}
form fieldset.captchaField{
    height: 70px;
    display: flex;
    flex-wrap: wrap;
    flex: 1;
}
form fieldset.captchaField input{
    flex: 1 0 250px;
}
form fieldset.captchaField label{
    flex: 0 1 250px;
}
form fieldset input{
    flex: 0 1 5%;
    min-width: 2rem;
}
form fieldset label{
    flex: 0 1 40%;
}
form fieldset input[type="radio"]{
    box-shadow: none;
}
form input:hover,
form textarea:hover,
form input:focus,
form textarea:focus{
    background-color: var(--primary-color);
    box-shadow: 2px 2px 5px var(--secondary-text-color);
    width: 100%;
    transition: var(--transition);
}
form input:focus,
form textarea:focus{
    outline: none;
    box-shadow: 2px 2px 5px var(--text-color);
}
form input::placeholder,
form textarea::placeholder{
    color: var(--secondary-text-color);
}   /* Der Button zum Absenden der Nachricht wird weiter oben im Abschnitt BUTTONS definiert */
form fieldset input:hover,
form fieldset input:focus{
    box-shadow: none;
    transition: none;
}
.radio{
    display: none;
}
.radioLabel{
    margin: 0.2rem 0.4rem;
    padding: 0.2rem 0.4rem;
    cursor: pointer;
    text-align: center;
    border-radius: var(--border-radius);
}
#radioBooking:checked ~ .label-1,
#otherRequest:checked ~ .label-2{
    background-color: var(--accent-color);
    color: var(--secondary-color);
}
fieldset.flipflop{
    padding: 0;
}
fieldset.flipflop label{
    margin: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    flex: 1 50%;
}
#radioBooking ~ .label-1{
    border-radius: var(--border-radius) 0 0 var(--border-radius);
}
#otherRequest ~ .label-2{
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

/********** Details - aufklappbare Bereichen *********************************/
details{
    margin-bottom: 1rem;
    width: 100%;
    outline: none;
    box-shadow: 0 0 5px var(--accent-color);
    border-radius: var(--border-radius);
}
details summary{
    padding: 0.5rem 1rem;
    background-color: var(--primary-color-t);
    border-radius: var(--border-radius);
}
details[open] summary{
    background-color: var(--primary-color);
    border-top-left-radius: var(--border-radius);
    border-top-right-radius: var(--border-radius);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
}
details summary::marker{
    color: var(--secondary-text-color);
}
#datenschutz details p,
#datenschutz details ul{
    width: auto;
    margin: 0.5rem 1rem 1rem 1rem;
}
#datenschutz details h3{
    margin-top: 0.5rem;
}
.grid-container{
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 0.5rem;
    padding: 10px;
    background-color: var(--primary-color-t);
    border-radius: 0 0 var(--border-radius) var(--border-radius);
}
.grid-container div{
    padding: calc(var(--border-radius) / 2);
    display: flex;
    align-items: center;
    background-color: var(--secondary-color-t);
    border-radius: var(--border-radius);
    gap: 0.5rem;
}
.grid-container div button{
    /*order: -1; steht immer an erster Stelle */
    width: 2rem;
    padding: calc(var(--border-radius) / 2);
    background-color: transparent;
    border: 0;
}
.grid-container div button:hover,
.grid-container div button:focus{
    background-color: var(--accent-color);
    border-radius: var(--border-radius);
}
.grid-container div button svg{
    fill: var(--accent-color);
}
.grid-container div button:hover svg,
.grid-container div button:focus svg{
    fill: var(--primary-color);
}
.grid-container div textarea,
.grid-container div textarea:focus{
    margin: 0;
    border: 0;
    width: 7rem;
    height: 1rem;
    align-self: center;
    background-color: transparent;
    color: var(--text-color);
    font-family: var(--fontBebas);
    font-size: 1rem;
    letter-spacing: var(--letter-spacing);
    outline: none;
    resize: none;
    overflow: hidden;
}
.grid-container div p{
    flex: 1;
    min-width: 6rem;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    text-align: left;
}
.grid-container div p img{
    max-width: 6rem;
    height: auto;
    margin: 0 auto;
    display: block;
}

/********** Seitenabschnitte *************************************************/
body{
    min-height: 100vh;
    max-width: 100vw;
    background-color: var(--secondary-color);
    color: var(--text-color);
}
header,
section,
footer{
    padding-left: 1rem;
    padding-right: 1rem;
    display: flex;
    flex-direction: column;
    width: 100%;
}
header,
footer{
    position: fixed;
    z-index: 1000;
}
header{
    top: 0;
    left: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    background-color: var(--primary-color);
    border-bottom-left-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
}
section{
    padding-top: 3rem;
    padding-bottom: 5rem;
    min-height: 100vh;
    align-items: center;
}
section#description{
    display: none;
}
section#about_me{
    background: linear-gradient(to right, var(--secondary-color-t), var(--secondary-color-t)), url(/images/background/REOE_PHANTASY_01.png) no-repeat;
    background-position: right top;
    background-size: cover;
    background-attachment: fixed;
}
section#twitch{
    background: linear-gradient(to right, var(--secondary-color-t), var(--secondary-color-t)), url(/images/background/RechtEckOhneEcken_ohneGeige.png) no-repeat;
    background-position: right bottom;
    background-size: cover;
    background-attachment: fixed;
}
section#vita{
    background: linear-gradient(to right, var(--secondary-color-t), var(--secondary-color-t)), url(/images/background/RechtEckOhneEcken_Hochschauen.png) no-repeat;
    background-position: right bottom;
    background-size: cover;
    background-attachment: fixed;
}
section#contact{
    background: linear-gradient(to right, var(--secondary-color-t), var(--secondary-color-t)), url(/images/background/REOE_PHANTASY_02.png) no-repeat;
    background-position: right bottom;
    background-size: cover;
    background-attachment: fixed;
}
section#reoe_music{
    background: linear-gradient(to right, var(--secondary-color-t), var(--secondary-color-t)), url(/images/background/REOE_PHANTASY_03.png) no-repeat;
    background-position: right center;
    background-size: cover;
    background-attachment: fixed;
}
section > div,
section > h2,
section > p,
section > form,
section > ul,
section > ol,
section > details,
section > table{
    max-width: 1150px;
}
footer{
    padding-top: 1rem;
    padding-bottom: 1rem;
    bottom: 0;
    background-color: var(--primary-color);
    border-top-left-radius: var(--border-radius);
    border-top-right-radius: var(--border-radius);
}
#twitch div.teaser{
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}
#twitch div.teaser figure a{
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
}
#twitch div.teaser p{
    flex: 3;
    text-align: justify;
}

/********** Hamburger Menü  **************************************************/
#toggle_button{
    display: none;
}
label[for="toggle_button"]{
    display: none;
}
label[for="toggle_button"] svg{
    height: 2rem;
    width: 2rem;
    fill: var(--secondary-text-color);
}

/********** Social Media Icons ***********************************************/
ul#socialMediaAside{
    position: absolute;
    left: 0;
    top: 5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    list-style-type: none;
}
ul#socialMediaAside li img{
    height: 48px;
    width: auto;
    opacity: 60%;
}
ul#socialMediaAside li img:hover{
    margin-left: -0.5rem;
    height: 64px;
    width: auto;
    opacity: 100%;
}

/********** Spenden Button ***************************************************/
#donation_button{
    display: none;
}
label[for="donation_button"]{
    position: absolute;
    left: 0;
    bottom: 7rem;
    padding: 2rem 1rem;
    background-color: var(--primary-color);
    border-top-right-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
}
label[for="donation_button"] span{
    display: none;
}
label[for="donation_button"] svg{
    fill: var(--text-color);
}
#donation_button:checked ~ label{
    bottom: 6rem;
    display: flex;
    gap: 2rem;
    padding: 1rem;
    align-items: center;
    transition: var(--transition);
    border: 1px solid var(--accent-color);
    border-left: 0;
}
#donation_button:checked ~ label[for="donation_button"] span{
    display: block;
    margin-bottom: 0;
    margin-left: 1rem;
    line-height: 1.5;
    text-align: center;
}
#donation_button:checked ~ label[for="donation_button"] svg{
    width: 64px;
    height: 32px;
    fill: var(--accent-color);
}

/********** Media Querys für kleine Bildschirme ******************************/
@media(max-width: 1280px){
    section{
        padding-left: 4rem;
    }
    section#about_me{
        background-position: top 20px right -100px;
    }
    section#reoe_music{
        background-position: bottom right -150px;
    }
}

@media(max-width: 1024px){
    .grid-container{
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    section#about_me{
        background-position: top 10px right -180px;
    }
    section#contact{
        background-position: bottom right -750px;
    }
    section#reoe_music{
        background-position: bottom right -850px;
    }
}

@media(max-width: 930px){
    p img{
        width: calc(100vw *0.35);
    }
    nav#main-nav{
        text-align: right;
        position: absolute;
        top: 0;
        right: 0;
        padding: 0.4rem 1rem;
        background-color: var(--primary-color);
        border-radius: 0 0 var(--border-radius) var(--border-radius);
    }
    nav#main-nav ul{
        display: none;
        flex-direction: column;
        align-items: end;
    }
    nav#main-nav ul li:first-of-type{
        margin-top: 1rem;
    }
    nav#main-nav ul li{
        padding: 1rem 0;
        margin-left: 0;
    }
    #toggle_button:checked ~ ul{
        display: flex;
        gap: 0;
    }
    label[for="toggle_button"]{
        display: block;
    }
    details ul li{
        flex: 0 0 25%;
    }
    section#about_me{
        background-position: top 30px right -70px;
    }
    section#vita{
        background-position: bottom right -200px;
    }
    section#contact{
        background-position: bottom right -600px;
    }
    section#reoe_music{
        background-position: bottom right -950px;
    }
    details.tabellen div table{
        flex: 1 1 100%;
    }
}

@media(max-width: 820px){
    section#reoe_music{
        background-position: bottom right -700px;
    }
}

@media(max-width: 430px){
    body,
    .grid-container div textarea,
    .grid-container div input,
    input::placeholder,
    textarea::placeholder,
    fieldset.flipflop label,
    button{
        font-size: 0.75rem;
    }
    h1,
    h2{
        margin: 1rem 0 0.5rem 0;
    }
    h1{
        margin-top: 2rem;
    }
    h2{
        font-size: 1rem;
    }
    h3{
        font-size: 0.75rem;
    }
    hr{
        margin-bottom: 1rem;
    }
    p img{
        width: 100%;
    }
    section{
        padding-top: 2.5rem;
        padding-bottom: 6rem;
    }
    section#about_me{
        background-position: top 20px right -250px;
    }
    section#vita{
        background-position: bottom right -350px;
    }
    section#contact{
        background-position: bottom right -600px;
    }
    section#twitch{
        background-position: bottom right -200px;
    }
    section#reoe_music{
        background-position: bottom right -700px;
    }
    .grid-container div{
        flex-wrap: wrap;
        justify-content: space-between;
    }
    h1 img{
        height: 1.5rem;
    }
    details ul li{
        flex: 0 0 100%;
    }
    .galerie figure img{
        max-width: 250px;
    }
    section#twitch div.teaser figure{
        display: none;
    }
    nav#footer-nav ul{
        display: flex;
        flex-direction: column-reverse;
        align-items: center;
        gap: 0.5rem;
    }
    nav#footer-nav ul li:first-of-type{
        margin-right: 0;
    }
    ul.multiColList ul li{
        flex: 0 0 40%;
    }
    details.tabellen div table{
        flex: 1 1 90%;
    }
    details.tabellen div table tbody tr td img{
        width: 15vw;
        height: auto;
    }
    form fieldset.captchaField input{
        max-width: 100%;
    }
}

@media(max-width: 400px){
    h1 img{
        height: 1.3rem;
    }
    ul#socialMediaAside{
        gap: 1.5rem !important;
    }
    ul#socialMediaAside li img{
        height: 28px !important;
    }
    section div{
        margin-right: 0.5rem;
    }
    section#about_me{
        background-position: right -200px top;
    }
    section#vita{
        background-position: bottom right -400px;
    }
    section#contact{
        background-position: bottom right -575px;
    }
    details.tabellen div table tbody tr td img{
        width: 12vw;
        height: auto;
    }
    label[for="donation_button"]{
        padding: 0.75rem 0.5rem !important;
        bottom: 8rem !important;
    }
}

@media(max-width:375px) and (min-height:821px){
    section#about_me{
        background-position: right -150px top;
    }
    section#contact{
        background-position: bottom right -410px;
    }
    section#twitch{
        background-position: bottom right -100px;
    }
    section#reoe_music{
        background-position: bottom right -550px;
    }
}

@media(max-width:375px) and (max-height:820px){
    section#about_me{
        background-position: right -100px top;
    }
    section#contact{
        background-position: bottom right -525px;
    }
    section#twitch{
        background-position: bottom right -200px;
    }
    section#reoe_music{
        background-position: bottom right -650px;
    }
}

@media(max-height: 930px){
    ul#socialMediaAside li{
        margin-left: 0.5rem;
    }
}

@media(max-height: 768px){
    ul#socialMediaAside{
        top: 4rem;
    }
    ul#socialMediaAside li img{
        height: 32px;
    }
    label[for="donation_button"]{
        padding: 1rem 0.75rem;
        bottom: 8rem;
    }
}

@media(max-height: 640px){
    section#about_me{
        background-position: right -150px top;
    }
    section#contact{
        background-position: bottom right -400px;
    }
}