#page-header {
  background-color: var(--md-sys-color-primary-container);
  color: var(--md-sys-color-on-primary-container);

  display: flex;
  justify-content: space-between;

  /* 
    Without align-items, items (e.g. logo or button) would align to 
    their top edges by default -> looks ugly because they are 
    of different heights
  */
  align-items: center;

  padding: 1rem 2rem 1rem 2rem;


  /* For classy "Sticky Header" */
  position: sticky;
  top: 0;
  transition: top 0.3s;
  /* 
    So that headers are always displayed in the foreground 
    and are not overlapped by images, for example. 
  */
  z-index: 99;
}


#page-header-nav {
  flex-grow: 1;
  display: flex;
  justify-content: flex-end;
  align-items: center;

  /* 
      Use of start instead of left for better accessibility for different
      kinds of languages that are not read e. g. from left-to-right
  */
  text-align: end;

  /* This transition is for Burger Menu */
  transition: all 0.3s ease-in-out;
}

#page-header-nav-list {
  list-style: none;
  display: flex;
  justify-content: flex-end;

  /* 
    Without align-items, items (e.g. logo or button) would align to 
    their top edges by default -> looks ugly because they are 
    of different heights
  */
  align-items: center;
}




/* 
  ========================================================================
  ============================= Header Logo ==============================
  ======================================================================== 
*/
/* Header Logo in text form -> If pure text is to be used instead of an image! */
#header-logo-text {
  font-family: "Whisper", cursive;
  font-weight: 700;
  font-style: normal;
  font-size: 2.5rem;
  white-space: nowrap;
  color: var(--md-sys-color-on-primary-container);
  text-decoration: none;
}

#header-logo-image {
  height: 66px;
}

/* 
  ========================================================================
  =========================== Hamburger Menu =============================
  ======================================================================== 
*/
#hamburger-nav {
  display: none;
  cursor: pointer;
}

.bar-nav {
  height: 2px;
  width: 27px;
  background-color: var(--md-sys-color-on-primary-container);
  margin: 5px 0 0 0;
  opacity: 0.8;
  transition: all 0.3s ease-in-out;
}

/* 
  First bar should not have a margin, otherwise height alignment with other elements 
  in the nav does not match or is visible to users -> different height. Looks ugly. 
*/
#bar-nav-first {
  margin: 0;
}

.page-header-nav--open {
  transform: translate(0) !important;
}


/* Bar classes for hamburger menu animation when user clicks on it */
.hamburger-nav--open .bar-nav:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.hamburger-nav--open .bar-nav:nth-child(2) {
  opacity: 0;
}

.hamburger-nav--open .bar-nav:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


@media (max-width: 1440px) {
  #header-logo-image {
    height: 50px;
  }
}


@media (max-width: 906px) {
  #header-logo-image {
    height: 40px;
  }
  
  #page-header-nav {
    display: flex;
    align-items: center;
    justify-content: center;

    position: fixed;
    top: 50px;
    left: 0px;
    width: 100%;
    padding: 10px 0 10px 0;

    background-color: var(--md-sys-color-primary-container);

    /* Navbar appears with JavaScript */
    transform: translateX(-100%);
  }

  #page-header-nav-list {
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 0px;
    row-gap: 30px;
  }

  #hamburger-nav {
    display: inline-block;
  }
}

@media (max-width: 375px) {
  #header-logo-image {
    height: 32px;
  }

  #page-header-nav {
    top: 40px;
  }
}