* {
  animation: fadeIn 1s ease-in-out;
  text-align: center;
}

html,
body {
  height: 100%;
  margin: 0;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

body {
  color: white;
  font-family: "RobotoCondensedBlack", sans-serif;
  font-style: oblique;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

input,
textarea {
  color: rgb(85, 85, 85);
  font-family: "RobotoCondensedBlack", sans-serif;
  font-style: oblique;
  font-size: 18px;
  background: white;
  border: #ffffff;
}

button {
  font-family: "RobotoCondensedBlack", sans-serif;
  font-style: oblique;
  padding: 14px 20px;
  font-weight: 600;
  background-color: white;
  border: hsla(0, 0%, 100%, 1);
  border-radius: 0px 22px 22px 0px !important;
}

input {
  font-size: 14px;

  font-family: "RobotoCondensedBlack", sans-serif;
  font-style: oblique;
  font-weight: 600;
  opacity: 100%;
  border-radius: 22px 0px 0px 22px !important;
}

.randomButton {
  border-radius: 22px 0px 0px 22px !important;
}

.shuffleButton {
  border-radius: 0px 22px 22px 0px !important;
}

button:hover {
  opacity: 95%;
}

.search {
  display: inline-flex;
}

/* Search bar */
#weatherSearch {
  padding: 10px;
  width: 100%;
}

.MainWeatherAppBox {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  margin-top: 45px;
}

.main-weather-app {
  padding: 70px 50px;
  width: 100%;
  max-width: 475px;
  background-image: linear-gradient(#57baff, #043e67);
  border-radius: 10px;
  height: 100%;
  max-height: 650px;
  display: flex;
  flex-direction: column;
}

.weatherIcons {
  height: 70px;
  margin-top: 20px;
}

#weatherAppBoxes {
  margin-top: 5px;
}

.row {
  display: flex;
}

.column {
  width: 33.3%;
}

h1,
h2 {
  padding: 0px;
  margin: 0px;
}

.searchIcon {
  width: 100%;
}

.gradientBackgroundStart {
  background: linear-gradient(300deg, #0058c5, #ffd16e, #00b7bd);
  background-size: 200% 200%;
  animation: gradient-animation 12s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundSnow {
  background: linear-gradient(300deg, #ffffff, #f7ffff, #dbdddd);
  background-size: 200% 200%;
  animation: gradient-animation 12s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundClouds {
  background: linear-gradient(300deg, #fbff8a, #b6c2c4);
  background-size: 200% 200%;
  animation: gradient-animation 8s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundDrizzle {
  background: linear-gradient(300deg, #b7c6ff, #9cb0ff, #708eff);
  background-size: 200% 200%;
  animation: gradient-animation 18s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundRain {
  background: linear-gradient(300deg, #9cb0ff, #708eff, #0036ff);
  background-size: 200% 200%;
  animation: gradient-animation 18s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundAtmosphere {
  background: linear-gradient(300deg, #000e40, #b7b7b7);
  background-size: 200% 200%;
  animation: gradient-animation 12s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundClear {
  background: linear-gradient(300deg, #ffd000, #fff6a9);
  background-size: 200% 200%;
  animation: gradient-animation 12s ease infinite;
}
3 @keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.gradientBackgroundThunderstorm {
  background: linear-gradient(300deg, blue, #000319, #000c67);
  background-size: 200% 200%;
  animation: gradient-animation 18s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.footer p {
  color: #282828;
  font-weight: 600;
  opacity: 70%;
  font-size: 14px;

  bottom: 0;
  width: 100%;
}

.randomButton {
  width: 100%;
  height: 52px;
  border: 2px solid white;
  color: rgb(110, 110, 110);
  font-family: "RobotoCondensedBlack", sans-serif;
  font-style: oblique;
  font-weight: 600;
}

.shuffleIcon {
  width: auto;
  height: 16px;
}

.shuffleBox {
  margin-top: 10px;
  display: inline-flex;
}

.shuffleButton {
  border: 1px solid white;
}

.searchIcon {
  width: 22px;
}

.checkRandomCity {
  margin-top: 20px !important;
}

.footer {
  position: relative;
  text-align: center;
  width: 100%;
  bottom: 0;
  margin-top: 40px;
  padding-bottom: 10px;
}

.search {
  margin-top: 20px !important;
}

.cityTemp {
  margin-top: 10px !important;
}

.footer h1 {
  display: none;
}

html,
body {
  overflow-y: hidden;
}

@media screen and (max-width: 720px) {
  .main-weather-app {
    width: 100%;
    padding: 44px;
    height: 100%;
    margin: 20px;
    padding-bottom: 64px;
  }

  .MainWeatherAppBox {
    height: 100%;
    margin: 20px 8px;
  }

  .footer {
    position: relative;
    bottom: 0;
    width: 100%;
    text-align: center;
    padding: 0px 0px 20px 0px;
  }

  .footer p {
    margin-bottom: 10px;
  }

  .searchIcon {
    width: 20px;
  }

  .weatherIcons {
    margin-top: 20px;
    margin-bottom: 10px;
  }

  .cityTemp {
    margin-top: 25px !important;
  }

  .errorMessage {
    font-size: 14px;
  }
}

.cityTemp,
.cityFeelsLike,
.cityType,
.cityMax {
  color: #053864;
  font-weight: 600;
}

#weatherAppBoxes p {
  font-weight: 600;
}

#weatherAppBoxes .row {
  margin-bottom: 5px;
}

@media screen and (max-width: 600px) {
  .footer {
    position: fixed;
  }
}

/* Surface duo only */
@media screen and (width: 540px) and (height: 720px) {
  .footer {
    position: relative;
    padding: 0 0 15px 0;
  }
}

@media screen and (max-width: 376px) {
  .MainWeatherAppBox {
    height: 100%;
    margin: 30px 8px 20px 8px;
  }

  .main-weather-app {
    width: 100%;
    padding: 44px;
    height: 72vh;
    margin: 0px 20px 0px 20px;
    padding-bottom: 64px;
  }

  .search {
    margin-top: 18px !important;
  }

  #weatherAppBoxes {
    margin-top: 5px;
  }

  .checkRandomCity {
    margin-top: 10px !important;
  }

  .shuffleBox {
    margin-top: 0px !important;
  }

  .cityTemp {
    margin-top: 10px !important;
  }

  .footer p {
    padding: 0px !important;
    margin-bottom: 10px !important;
    font-size: 10px;
    margin: 0px;
  }

  .footer {
    position: relative;
    padding: 2px 0px 0px 0px;
  }
}

@media screen and (max-width: 361px) {
  #weatherAppBoxes {
    margin-top: 16px;
  }
}

@media (max-height: 635px) {
  /* CSS rules for screens shorter than 635px */
  .weatherIcons {
    display: none;
  }

  .main-weather-app {
    padding: 40px 90px 50px 90px;
  }

  .footer {
    position: relative;
    text-align: center;
    width: 100%;
    bottom: 0;
    margin-top: 30px;
    padding-bottom: 5px;
  }
}

@media (max-height: 530px) {
  /* CSS rules for screens shorter than 635px */
  .checkRandomCity,
  .shuffleBox {
    display: none;
  }
}

@media (max-height: 415px) {
  /* CSS rules for screens shorter than 635px */

  h2,
  h3,
  p {
    font-size: 14px !important;
  }

  h1 {
    font-size: 20px !important;
  }

  button {
    padding: 5px 20px;
  }
}

@media (max-height: 320px) {
  /* CSS rules for screens shorter than 635px */

  .MainWeatherAppBox {
    display: none;
  }

  .footer p {
    display: none;
  }
  .footer h1 {
    display: block;
  }
}
