:root {
    /* Farben */
    --dunkel_grun: #8D9752;
    --hell_grun: #D8D67C;
    --dunkel_grau: #2B2B37;
    --beige: #F1EBDC;
    --lila: #AD8ED0;
    --dunkel_lila: #9581B5;
    --red: #FF8569;

    /*fonts */
    --titel: "Barriecito";
    --text: "Geist Mono";

    /* fonts size */
    --Mobile-Lead: 18px;
    --Mobile-Sublead: 16px;
    --Mobile-Text: 16px;
    --Mobile-Hinweis: 16px;
    --Mobile-Button-Text: 16px;

    --Desktop-Lead: 25px;
    --Desktop-Sublead: 22px;
    --Desktop-Text: 20px;
    --Desktop-Hinweis: 18px;
    --Desktop-Button-Text: 20px;
}

body {

    background-color: var(--hell_grun);
    height: 100vh;
    margin: 0px;
    cursor: url('IMG/Cursor3.png') 4 4, auto;
}

h2 {
    font-family: var(--text);
    font-size: var(--Desktop-Lead);
    color: var(--lila);
    line-height: 0px;

}

h3 {
    font-family: var(--text);
    font-size: var(--Desktop-Sublead);
    color: var(--lila);
    font-weight: 500;
}

text {
    font-family: var(--text);
    font-size: var(--Desktop-Text);
    color: var(--dunkel_grau);
}

p {
    font-family: var(--text);
    font-size: var(--Desktop-Hinweis);
    color: var(--dunkel_grun);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 120%;
    margin: 5px;
}

.logo {
    position: absolute;
    top: 70px;
    left: 70px;
    display: block;

}

.logo img {
    height: 110px;
    display: block;
    margin-bottom: 20px;
    /* Abstand zur Box */
}

.map-container {
    position: absolute;
    top: -50px;
    right: -200px;
    display: block;

}

.map-container img {
    width: 600px;
    height: auto;
    display: block;
}

/* Parkhäuser */
.parkhaus_mittel {
    height: 50px;
    z-index: 100;
}

.parkhaus_gross {
    height: 70px;
    z-index: 100;
}

.parkhaus_klein {
    height: 35px;
    z-index: 100;
}

#storchen {
    position: relative;
    top: 350px;
    left: 215px;
    z-index: 98;
}

#bad_bahnhof {
    position: relative;
    top: 280px;
    left: 350px;
}

#europe {
    position: relative;
    top: 300px;
    left: 190px;
}

#aeschen {
    position: relative;
    top: 450px;
    left: 160px;
    z-index: 101;
}

#anfos {
    position: relative;
    top: 430px;
    left: 90px;
    ;
}

#sued {
    position: relative;
    top: 520px;
    left: -15px;
    z-index: 103;
}

#elisabethen {
    position: relative;
    top: 440px;
    left: -80px;
}

#messe {
    position: relative;
    top: 305px;
    left: 5px;
}

#claramatte {
    position: relative;
    top: 280px;
    left: -120px;
    z-index: 99;
}

#steinen {
    position: relative;
    top: 410px;
    left: -240px;
    z-index: 99;
}

#post {
    position: relative;
    top: 490px;
    left: -200px;
    z-index: 101;
}

#centralbahn {
    position: relative;
    top: 480px;
    left: -280px;
    z-index: 100;
}

#kunstmuseum {
    position: relative;
    top: 390px;
    left: -350px;
    z-index: 98;
}

#city {
    position: relative;
    top: 310px;
    left: -500px;
    z-index: 97;
}

#rebgasse {
    position: relative;
    top: 338px;
    left: -445px;
    z-index: 101;
}

#clarahuus {
    position: relative;
    top: 310px;
    left: -540px;
    z-index: 100;
}

.info-container {
    position: absolute;
    top: 225px;
    left: 110px;
    width: 450px;
    text-align: center;
    padding: 20px;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: var(--beige);
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    z-index: 2;
}

.hinweis_text {
    position: absolute;
    bottom: 130px;
    right: 620px;
    font-weight: bold;
}

.hinweis_pfeil {
    position: absolute;
    bottom: 180px;
    right: 500px;
    rotate: -20deg;
}

.hinweis_pfeil img {
    width: 100px;
    height: auto;
    display: block;
}


.cls-fuellstand {
    fill: #d9d66e;
}

.cls-kontur {
    fill: #2b2b37;
}

.cls-p {
    fill: #ad8ed0;
}

.gefuellt .cls-fuellstand {
    fill: var(--red);
}

/* switch */

.switch_container {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    left: 45px;
    top: 90%;
    width: 30vw;
}

.switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
    rotate: 180deg;
    top: 0;
    left: 0;
}

.infos {
    position: relative;
    top: 0;
    left: 0;
    font-weight: bold;
}

.liste {
    position: relative;
    top: 0;
    left: 0;
    order: 3;
    font-weight: bold;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--hell_grun);
    -webkit-transition: .4s;
    transition: .4s;
}

.slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: var(--beige);
    -webkit-transition: .4s;
    transition: .4s;
}

input:checked+.slider {
    background-color: var(--dunkel_grun);
}

input:focus+.slider {
    box-shadow: 0 0 1px var(--dunkel_grun);
}

input:checked+.slider:before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
    border-radius: 34px;
}

.slider.round:before {
    border-radius: 50%;
}


.hidden {
    display: none;
}

body.geschalten {
    background-color: var(--beige);
}

body.geschalten .hinweis_text,
body.geschalten .hinweis_pfeil {
    display: none;
}

body.geschalten .info-container {
    display: block;
    background-color: var(--hell_grun);
}

.parkhaus:hover {
    animation: bounce 2s infinite;
}

@keyframes bounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }

    40% {
        transform: translateY(-30px);
    }

    60% {
        transform: translateY(-15px);
    }
}

ol {
    font-family: var(--text);
    color: var(--dunkel_grun);
    line-height: 500%;
    padding: auto 70px auto 70px;
}


#close {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    font-size: 20px;
    font-weight: bold;
    color: var(--dunkel_grun);
}

.chart_container {
    padding-top: 10px;
}


@media (max-width: 1025px) {

body {
    height: 100vw;
}


h2 {
    font-size: var(--Mobile-Lead);
}

h3 {
    font-size: var(--Mobile-Sublead);
}

text {
    font-size: var(--Mobile-Text);
}

p {
    font-size: var(--Mobile-Hinweis);
}

.logo {
    position: static;
    display: block;
    margin: 50px auto 10px auto;
    text-align: center;
}

.logo img {
    display: block;
    height: 70px;
    margin: 0 auto; 
}

.map-container {
    position: relative;
    display: block;
    /* margin: 0px auto 40px auto; */
    text-align: center;
    width: 100vw;
    top: 0;
    left: 0;
}

.map-container img {
    width: 80%;
    height: auto;
    display: block;
    margin: 0 auto; 

}

/* Parkhäuser */
.parkhaus_mittel {
    height: 35px;
    z-index: 100;
    /* display: none; */
}

.parkhaus_gross {
    height: 50px;
    z-index: 100;
    /* display: none; */

}

.parkhaus_klein {
    height: 27px;
    z-index: 100;
    /* display: none; */

}


#storchen {
    position: absolute;
    top: 39%;
    left: 39%;
    z-index: 98;
}

#bad_bahnhof {
    position: absolute;
    top: 29%;
    left: 63%;
}

#europe {
    position: absolute;
    top: 32%;
    left: 48%;
}

#aeschen {
    position: absolute;
    top: 51%;
    left: 51%;
    z-index: 101;
}

#anfos {
    position: absolute;
    top: 49%;
    left: 48%;
    ;
}

#sued {
    position: absolute;
    top: 59%;
    left: 39%;
    z-index: 103;
}

#elisabethen {
    position: absolute;
    top: 50%;
    left: 38%;
}

#messe {
    position: absolute;
    top: 30%;
    left: 56%;
}

#claramatte {
    position: absolute;
    top: 26%;
    left: 45%;
    z-index: 99;
}

#steinen {
    position: absolute;
    top: 44%;
    left: 35%;
    z-index: 99;
}

#post {
    position: absolute;
    top: 54%;
    left: 46%;
    z-index: 101;
}

#centralbahn {
    position: absolute;
    top: 56%;
    left: 42%;
    z-index: 100;
}

#kunstmuseum {
    position: absolute;
    top: 45%;
    left: 42%;
    z-index: 98;
}

#city {
    position: absolute;
    top: 35%;
    left: 31%;
    z-index: 97;
}

#rebgasse {
    position: absolute;
    top: 38%;
    left: 48%;
    z-index: 101;
}

#clarahuus {
    position: absolute;
    top: 35%;
    left: 45%;
    z-index: 100;
}

.info-container {
    position: absolute;
    top: 35%;                /* Abstand nach oben (anpassbar) */
    left: 50%;                /* Startpunkt in der Mitte des Viewports */
    transform: translateX(-50%); /* verschiebt um die halbe Breite zur perfekten Zentrierung */
    text-align: center;
    width: 85%;              /* passt sich dem Inhalt an */
    margin: 0;
    z-index: 105;
  }

.hinweis_text {
    display: none;
}

.hinweis_pfeil {
    display: none;
}

.switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
    rotate: 180deg;
    top: 0;
    left: 0;
}

.infos {
    position: relative;
    top: 0;
    left: 0;
}

.liste {
    position: relative;
    top: 0;
    left: 0;
    order: 3;
}

.switch_container {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    margin: 40px auto;
    width: 50vw;
    left: 0%;
    top: 0%;
}

.hidden {
    display: none;
}

.chart_container {
    padding-top: 15px;
}

ol {
    padding: 0;
    margin-left: 50px;
    line-height: 400%;
}

}