body {
  padding: 0;
  margin: 0;
  font-family: 'Roboto Slab', serif;
}
.flex {
  display: flex;
}

.top-bar {
  align-items: center;
  justify-content: space-between;
  padding: 0.2vw 1vw 0.2vw 1vw;
  background-color: #607d8b;
  color: #fff;
  font-size: 1.2vw;
  font-weight: 200;
}

.top-bar span {
  white-space: nowrap;
}

.social-networks-wrapper {
  flex-wrap: nowrap;
  align-items: center;
}

.mail-button {
  text-decoration: none;
  padding: 2px;
  border: 1px solid #ff9800;
  border-radius: 2px;
  color: #ff9800;
}

.social-icon {
  height: 3vw;
  margin-left: 1vw;
}

.header {
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 1vw 0 1vw;
  background-color: rgba(255, 255, 255, 0.7);
}

.bg-flag {
  background: url(./header-assets/background_flag.png) no-repeat;
  background-size: cover;
  background-position-x: center;
  background-position-y: 30%;
}

.header-image {
  height: 13vw;
}

.vision-2040-div {
  height: 100%;
  align-items: flex-end;
  justify-content: flex-end;
}

.vision-2040 {
  height: 100%;
}

.coat-of-arms {
  height: 80%;
}

.coat-of-arms-div {
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  color: black;
}

.header-vision {
  display: none;
  margin: 0;
  font-size: 1.05vw;
  font-weight: 200;
}

.republic {
  display: block;
  margin: 0;
  font-size: 1.2vw;
}

.header-title {
  font-size: 3.5vw;
  flex-direction: column;
  font-weight: 700;
  margin-bottom: -5px;
}

.flag-band {
  margin: 0;
  border: 1vh;
  border-style:solid;
}

.flag-band-black {
  border-color: #000;
  background-color:#000;
}

.flag-band-yellow {
  border-color: yellow;
    background-color:yellow;

}

.flag-band-red {
  border-color: red;
    background-color:red;

}

@media screen and (min-width: 450px) {
  .header-title {
    padding: 0 0 0 3vw;
  }
}

@media screen and (min-width: 560px) {
  .header-vision {
    display: block;
    padding-left: 3vw;
  }

  .header-title {
    padding: 0 0 0 3vw;
  }

  .title-span {
    margin-right: 1vw;
  }

  .header-text {
    flex-grow: 1;
    flex-direction: column;
    justify-content: baseline;
  }
}

@media screen and (min-width: 760px) {
  .top-bar {
    font-size: 1vw;
  }

  .social-icon {
    height: 1.5vw;
    margin-left: 0.5vw;
  }

  .mail-button {
    padding: 4px;
  }

  .header-image {
    height: 10vw;
  }

  .vision-2040 {
    height: 80%;
  }

  .header-title {
    flex-direction: row;
  }

  .republic {
    font-size: 1vw;
  }
}

@media screen and (min-width: 1024px) {
  .header-image {
    height: 7vw;
  }

  .top-bar {
    font-size: 0.8vw;
  }

  .republic {
    font-size: 0.8vw;
  }
}
