:root {
    --blue: #669bbc;
    --red: #a12727;
    --background: #fdf0d5;
    --dark: #003049;
  }
  
* {
    box-sizing: border-box;
    hyphens: auto;
  }

  body {
    margin: 0;
    font-family: 'Gelica', sans-serif;
    background-color: var(--background);
    color: var(--background);
    cursor: url('img/cursor.png') 16 16, auto;
  }
  



  dialog[open] {
    cursor: auto;
}
  
  .main {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }
  
  .title {
    text-align: center;
    padding: 60px 20px;
  }

    h1 {
      font-family: "eight", sans-serif;
    font-size: 80px;
    color: var(--blue);
    margin: 0;
    font-weight: 800;
  }

  h1:hover {
    color: var(--red);
  }

  
  .list {
    background-color: var(--blue);
    padding: 40px;
    display: flex;
    width: 100%;
    justify-content: center;
  }
  
  .list-city {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
  }
  
  .list-button {
    background-color: var(--background);
    padding: 10px 20px;
    border-radius: 10px;
    color: var(--blue);
    font-weight: bold;
    cursor: pointer;
  }

  .list-button:hover {
    background-color: var(--red);
    color: var(--background);
  }
  
  .map {
    position: relative;
    width: 100%;
    height: auto;
  }

  .map-background {
    width: 100%;
    height: auto;
    display: block;
  }
  
  .map-button-1 {
    width: 150px;
    height: 150px;
    background-color: var(--dark);
    border-radius: 50%;
    color: var(--background);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    cursor: pointer;
  }

  .map-button-2 {
    width: 190px;
    height: 190px;
    background-color: var(--dark);
    border-radius: 50%;
    color: var(--background);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    cursor: pointer;
  }

  .map-button-3 {
    width: 240px;
    height: 240px;
    background-color: var(--dark);
    border-radius: 50%;
    color: var(--background);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    cursor: pointer;
  }

  .map-button-1:hover,
  .map-button-2:hover,
  .map-button-3:hover {
    background-color: var(--red);
    color: var(--background);
  }
  
  .footer {
    background-color: var(--blue);
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    text-align: center;
  }

  .footer-text {
    color: var(--background);
    font-weight: bold;
    font-size: 16px;
    margin: 0;
  }
  
  dialog {
    padding: 0;
    border: none;
    background: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    z-index: 1000; /* falls nötig */
  }

  dialog:focus {
    outline: none;
  }
  
  .popup-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(113, 113, 113, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
  }
  
  .overlay-content {
    background-color: var(--blue);
    border: 8px solid var(--red);
    border-radius: 12px;
    padding: 24px;
    max-width: 90%;
    color: var(--background);
  }
  
  .overlay-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
  }
  
  .city-name {
    font-size: 36px;
    font-weight: bold;
  }
  
  .close-button {
    width: 32px;
    height: 32px;
    cursor: pointer;
  }
  
  .overlay-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  
  .image {
    width: 100%;
    max-width: 400px;
    border-radius: 10px;
  }
  
  .data div {
    background-color: var(--dark);
    padding: 10px;
    border-radius: 8px;
  }
  
  .data b {
    color: var(--background);
  }
  
  .data {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

.brienz{
  top: 10vw;
  left: 27vw;
  position: absolute;
}

.interlaken{
  top: 43vw;
  left: 80vw;
  position: absolute;
}

.thun{
  top: 72vw;
  left: 14vw;
  position: absolute;
}

.bern{
  top: 94vw;
  left: 79vw;
  position: absolute;
}

.hagneck{
  top: 130vw;
  left: 10vw;
  position: absolute;
}

.biel{
  top: 164vw;
  left: 64vw;
  position: absolute;
}

.olten{
  top: 200vw;
  left: 8vw;
  position: absolute;
}

.brugg{
  top: 235vw;
  left: 70vw;
  position: absolute;
}

@media (max-width: 768px) {
  body {
    font-size: 8px;
    min-width: 360px;
  }

  .main {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .list {
    background-color: var(--blue);
    padding: 40px;
    width: 100%;
  }

  .map {
    position: relative;
    width: 100%;
    height: auto;
  }

  .map-background {
    width: 100%;
    height: auto;
    display: block;
  }

  .footer {
    width: 100%;
  }

  .map-button-1 {
      width: 50px;
      height: 50px;
    }
  
    .map-button-2 {
      width: 80px;
      height: 80px;
    }
  
    .map-button-3 {
      width: 100px;
      height: 100px;
    }

    .interlaken{
      top: 43vw;
      left: 70vw;
      position: absolute;
    }

    .bern{
      top: 90vw;
      left: 68vw;
      position: absolute;
    }
}


/* Overlay Styles */


p {
  color: var(--background);
}

.overlay {
  max-width: 800px;
  margin: 40px auto;
  background-color: var(--blue);
  border: 8px solid var(--red);
  border-radius: 12px;
  padding: 24px;
}

.overlay-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;

}

h2 {
  font-size: 36px;
  margin: 0;
  text-align: left;
}

.overlay-box {
  display: flex;
  flex-direction: row;
  gap: 50px;
  justify-content: space-between;
  text-align: right;
}

.image-city {
  width: 100%;
  max-width: 400px;
  border-radius: 10px;
  object-fit: cover;
}

.infobox-content {
display: flex;
flex: 1;
flex-direction: column;
gap: 8px;
align-items: flex-end;
}


.infobox-wrapper {
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
background-color: var(--dark);
color: var(--background);
padding: 10px;
border-radius: 8px;
}

.close-icon {
width: 32px;
height: 32px;
cursor: pointer;}



/* Mobile Anpassungen */
@media (max-width: 360px) {
  .overlay {
      margin: 16px 8px;
      padding: 12px;
  }

  h2 {
      font-size: 24px;
  }

  .overlay-title {
      flex-direction: row;
      align-items: flex-start;
  }

  .image-city {
      border-radius: 20px;
      padding: 8px;
      object-fit: cover;
  }
  .overlay-box {
      flex-direction: column;
      gap: 5px;
  }

  .infobox-content {
      align-items: center; /* Rechts ausrichten */
      padding: 8px;
  }

  .infobox-wrapper {
      flex-direction: row;
      align-items: flex-start; /* Stellt sicher, dass der Inhalt vertikal bleibt */
      justify-content: space-between;
      text-align: right;
  }

  .close-icon {
      width: 28px;
      height: 28px;
  }
}

@media (max-width: 768px) {

  .image-city {
      border-radius: 20px;
      padding: 8px;
      object-fit: cover;
      width: ;
  }
  .overlay-box {
      flex-direction: column;
      gap: 5px;
  }
}