/* Dynamische Wetter-Hintergründe für den Container, abgestimmt auf 4K-Hochformat-Infoscreens */

.weather-slide-grid-vertical.sunny {
  background: linear-gradient(to bottom, #FFE259, #FFA751); /* Sonnengelb zu warmem Orange */
}

.weather-slide-grid-vertical.cloudy {
  background: linear-gradient(to bottom, #B0BEC5, #78909C); /* Weiches Grau-Blau für Bewölkung */
}

.weather-slide-grid-vertical.rainy {
  background: linear-gradient(to bottom, #37474F, #263238); /* Dunkelgrau-Blau für Regen */
}

.weather-slide-grid-vertical.storm {
  background: linear-gradient(to bottom, #1C1C1C, #000000); /* Fast schwarz für Gewitter */
}

.weather-slide-grid-vertical.snow {
  background: linear-gradient(to bottom, #E0F7FA, #B3E5FC); /* Eisiges Hellblau für Schnee */
}

.weather-slide-grid-vertical.clear-night {
  background: linear-gradient(to bottom, #0D47A1, #311B92); /* Dunkelblau-Violett für Nacht */
}

/* Erweiterte Wetterzustände */

.weather-slide-grid-vertical.hazy {
  background: linear-gradient(to bottom, #CFD8DC, #B0BEC5); /* Sanftes Grau für Dunst */
}

.weather-slide-grid-vertical.foggy {
  background: linear-gradient(to bottom, #ECEFF1, #CFD8DC); /* Sehr helles Grau für Nebel */
}

.weather-slide-grid-vertical.wind {
  background: linear-gradient(to bottom, #B2EBF2, #4DD0E1); /* Helles Türkis für Wind */
}

.weather-slide-grid-vertical.hot {
  background: linear-gradient(to bottom, #FF6E40, #FF3D00); /* Kräftiges Orange-Rot für Hitze */
}

.weather-slide-grid-vertical.cold {
  background: linear-gradient(to bottom, #00BCD4, #00838F); /* Kühles Blau für Kälte */
}



/* Der Container für die Wetterdaten */
.weather-slide-grid-vertical {
  width: 100vw;              /* Volle Breite des Viewports */
  display: flex;             /* Ermöglicht Zentrierung mit Flexbox */
  flex-direction: column;    /* Inhalte untereinander (vertikal) anordnen */
  justify-content: center;   /* Vertikale Zentrierung */
  align-items: center;       /* Horizontale Zentrierung */
  gap: 1vh;
  color: #ffffff;
  /* padding: 5vh 3vw; Optional, falls du etwas Innenabstand brauchst */
  box-sizing: border-box;    /* Padding zur Gesamtgröße zählen */
}


.title {
  font-size: 3.5rem;
  font-weight: 800;
  text-align: center;
  margin-top: 2.0vh;
}

.city {
  font-size: 10rem;
  font-weight: 900;
  letter-spacing: 2px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
  text-align: center;
}

.datetime {
  font-size: 4rem;
  text-align: center;
  margin-top: 0.5vh;
    font-weight: 800;
  letter-spacing: 1px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
  text-align: center;
}

.weather-section {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.main-icon {
  width: 20vmin;
  height: 20vmin;
  margin: 0.8rem auto;
}

.temp {
  font-size: 7rem;
  font-weight: 800;
  color: #08444c;
  text-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
  transition: color 0.5s ease;
}

.description {
  font-size: 3rem;
  color: #e0f7fa;
  text-align: center;
  margin-top: 0.5rem;
}

.additional-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  justify-items: center;
  align-items: center;
  gap: 3rem;
  font-size: 2rem;
  background: rgba(255, 255, 255, 0.1);
  padding: 4rem;
  border-radius: 2rem;
  box-shadow: 0px 0px 60px rgba(0, 0, 0, 0.4);
  text-align: center;
}

.additional-info > div:first-child {
  grid-column: 1 / -1;
}

.forecast-container {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
  margin-top: 1.0vh;
}

.forecast-block {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 2rem;
  padding: 1.5rem;
  min-width: 180px;
  min-height: 360px;
  text-align: center;
  font-size: 1.4rem;
  box-shadow: 0px 6px 25px rgba(0, 0, 0, 0.5);
  transition: transform 0.3s ease-in-out;
}

.forecast-block:hover {
  transform: scale(1.05);
}

.loading {
  font-size: 2.5rem;
  color: #ffffff;
  text-align: center;
  margin-top: 20vh;
}

.hidden {
  display: none;
}

/* Dynamischer Sonnenbogen */
.sunny-arc {
  position: absolute;
  top: 20%;
  left: 20%;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.7) 40%, rgba(255, 255, 255, 0) 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: sunnyArcAnimation 86400s linear infinite; /* 24h realistisch */
}

.sun-arc {
  position: relative;
  width: 100%;
  height: 30px;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 15px;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.sun-position {
  position: absolute;
  width: 40px;
  height: 40px;
  background-color: #ffeb3b;
  border-radius: 50%;
  top: -10px;
  left: 0;
  transition: left 1s ease-in-out;
}

@keyframes sunnyArcAnimation {
  0% {
    transform: translateX(-50%) rotate(0deg);
  }
  100% {
    transform: translateX(-50%) rotate(360deg);
  }
}

#miniChart {
  max-width: 95%;
  height: auto;
  margin: 10px auto;
  display: block;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0px 6px 16px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  transition: all 0.3s ease-in-out;
}


/* LAPTOP */

@media screen and (max-height: 800px) and (min-width: 1024px) {
  .title {
    font-size: 4.5rem;
    margin-top: 5vh;
  }

  .city {
    font-size: 5.5rem;
  }

  .datetime {
    font-size: 2.8rem;
    margin-top: 1vh;
  }

  .main-icon {
    width: 15vmin;
    height: 15vmin;
    margin: 2rem auto;
  }

  .temp {
    font-size: 6.5rem;
  }

  .description {
    font-size: 2.5rem;
  }

  .forecast-container {
    gap: 1.5rem;
    margin-top: 2vh;
  }

  .forecast-block {
    font-size: 2.2rem;
    min-width: 180px;
    min-height: 250px;
    padding: 1.5rem;
  }

  .additional-info {
    font-size: 2.2rem;
    gap: 2rem;
    padding: 2rem;
  }

  .sunny-arc {
    width: 200px;
    height: 200px;
    bottom: 8%;
  }

  .sun-position {
    width: 30px;
    height: 30px;
  }

  #miniChart {
    margin: 20px auto;
    padding: 15px;
    border-radius: 15px;
  }

  .loading {
    font-size: 3.5rem;
    margin-top: 15vh;
  }
}


/* INFOSCREEN */

@media screen and (orientation: portrait) and (min-width: 2000px) and (min-height: 3500px) {
  .weather-slide-grid-vertical {
    padding: 2.5vh 1.5vw;
    gap: 1vh;
  }

  .title {
    font-size: 4rem;
    margin-top: 2.5vh;
  }

  .city {
    font-size: 5rem;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.5);
  }

  .datetime {
    font-size: 5rem;
    margin-top: 1vh;
  }

  .main-icon {
    width: 12.5vmin;
    height: 12.5vmin;
    margin: 2rem auto;
  }

  .temp {
    font-size: 7rem;
    text-shadow: 0px 5px 12px rgba(0, 0, 0, 0.6);
    color: #08444c;
    
  }

  .description {
    font-size: 2.5rem;
    margin-top: 1rem;
  }

  .additional-info {
    font-size: 2rem;
    gap: 2rem;
    padding: 2.5rem;
    border-radius: 1.5rem;
  }

  .forecast-container {
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    margin-top: 2.5vh;
  }

  .forecast-block {
    font-size: 2rem;
    min-width: 600px;
    min-height: 400px;
    padding: 1.5rem;
  }

  #miniChart {
    max-width: 90%;
    padding: 15px;
    border-radius: 30px;
    margin: 30px auto;
  }

  .sunny-arc {
    width: 400px;
    height: 400px;
    bottom: 8%;
  }

  .sun-position {
    width: 50px;
    height: 50px;
  }

  .loading {
    font-size: 3rem;
    margin-top: 12.5vh;
  }
}
