html, body {
  max-width: 100vw;
  overflow-x: clip;
}

html {
  height: calc(100% - 3.5rem);
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  padding-bottom: 3.5rem;
  min-height: 100%;
  position: relative;
}

#header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  background-color: white;
  height: 3.5rem;
  width: calc(100vw);
  top: 0;
  margin-top: 0.2rem;
  border-bottom: 0.0625rem solid #0b649b;
}

.header a {
  color: inherit;
  text-decoration: inherit;
}

.header a:hover {
  cursor: pointer;
}

#header-left-container {
  float: left;
  display: flex;
  align-items: center;
  cursor: pointer;
}

#header-logo {
  padding-left: 0.75rem;
  height: 2.5rem;
}

#header-left {
  padding-left: 0;
  font-size: 2rem;
  font-weight: bold;
  font-family: Georgia, 'Times New Roman', Times, serif;
  white-space: nowrap;
  color: #0b649b;
}

#header-right-container {
  float: right;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

#menu-display {
  display: none;
}

#menu-dropdown {
  margin: 0 1.5rem;
}

.bar {
  width: 2rem;
  height: 0.4rem;
  background-color: gray;
  margin: 0.25rem 0.5rem;
  transition: 0.2s;
}

#menu-list-vert {
  display: none;
}

.expand #menu-icon {
  cursor: pointer;
  position: absolute;
  right: 1.5rem;
  top: 0.6rem;
}

.expand #bar-top {
  transform: translate(0, 0.65rem) rotate(-45deg);
}

.expand #bar-mid {
  opacity: 0;
}

.expand #bar-low {
  transform: translate(0, -0.65rem) rotate(45deg);
}

.expand #menu-list-vert {
  display: block;
  position: absolute;
  right: 0.5rem;
  top: 3.5rem;
  border: 0.125rem solid #0b649b;
}

.expand .menu-dropdown-link {
  display: flex;
  align-items: center;
  border-bottom: 0.125rem solid #0b649b;
  padding: 0.5rem 1rem;
  width: 75vw;
  max-width: 16rem;
  height: 3rem;
  font-size: 1.25rem;
  -webkit-text-stroke-width: 0.04rem;
  -webkit-text-stroke-color: black;
  background-color: white;
}

.expand #dropdown-end {
  border-bottom: none;
}

.expand a.menu-dropdown-link:hover {
  -webkit-text-stroke-width: 0.04rem;
  -webkit-text-stroke-color: black;
  background-color: gainsboro;
}

#sub-header-container {
  display: table;
  position: static;
  background-color: #dcf0ff;
  height: 2.5rem;
  width: calc(100vw);
}

.sub-header {
  display: table-cell;
  vertical-align: middle;
  font-weight: bold;
  font-size: large;
  font-family: Arial, Helvetica, sans-serif;
  white-space: nowrap;
}

#sub-header-page {
  display: table-cell;
  text-align: left;
  padding-left: 1rem;
}

#sub-header-slogan {
  display: none;
}

#content {
  padding: 1rem 2rem;
  font-family: Arial, Helvetica, sans-serif;
  min-width: 240px;
}

#footer-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #0b649b;
  height: 3.5rem;
  width: calc(100vw);
  position: absolute;
  bottom: 0;
}

li + li {
  margin-top: 0.25rem;
}

@media screen and (max-width: 379px) {
  #header-left {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 768px) {
  #menu-dropdown {
    display: none;
  }

  #menu-display {
    display: block;
  }

  #menu-list-horz {
    display: flex;
    height: 3.5rem;
    align-items: center;
    padding-right: 1rem;
  }

  .menu-display-link {
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-size: 1rem;
    padding: 1rem 0rem 0.5rem 0rem;
    margin: 0 0.5rem;
    text-align: center;
    word-wrap: break-word;
    white-space: pre-wrap;
  }

  .header .menu-display-link {
    color: #002D62;
  }

  a.menu-display-link:hover {
    -webkit-text-stroke-width: 0.03rem;
    box-shadow: 
      inset 0.75rem -0.1rem white,
      inset -0.75rem -0.1rem white,
      inset 0rem -0.2rem darkblue;
  }

  .active-page {
    -webkit-text-stroke-width: 0.06rem;
    box-shadow: 
      inset 0rem -0.1rem white,
      inset -0rem -0.1rem white,
      inset 0rem -0.4rem darkblue;
  }

  a.active-page:hover {
    -webkit-text-stroke-width: 0.06rem;
    box-shadow: 
      inset 0rem -0.1rem white,
      inset -0rem -0.1rem white,
      inset 0rem -0.4rem darkblue;
  }

  #sub-header-page {
    display: none;
  }

  #sub-header-slogan {
    display: table-cell;
    text-align: center;
    padding-left: 0rem;
  }

}

@media screen and (min-width: 1200px) {
  .menu-display-link {
    font-size: 1.2rem;
    margin-left: 0.75rem;
  }

  a.menu-display-link:hover {
    -webkit-text-stroke-width: 0.05rem;
  }
}

@media screen and (min-width: 1600px) {
  #content {
    display: grid;
    justify-content: center;
  }

  .menu-display-link {
    font-size: 1.4rem;
    margin-left: 1rem;
    margin-bottom: 0.5rem;
  }

  a.menu-display-link:hover {
    -webkit-text-stroke-width: 0.07rem;
  }
}