@font-face {
  font-family: 'Noto Sans JP', sans-serif;
  src: url("https://fonts.googleapis.com/css?family=Noto+Sans+JP&display=swap");
}

.opacity {
  opacity: 0.4;
  -moz-opacity: 0.4;
  filter: alpha(opacity=40);
  -ms-filter: "alpha(opacity=40)";
}

.navi-default {
  width: 100%;
  position: relative;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  z-index: 1000;
}

.navi-static {
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
}

.navi-static .navi-checkbox:checked ~ .navi-menu {
  position: absolute;
}

.navi-fixed {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.navi-fixed-bottom {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 1000;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.navi-hamburger span, .navi-hamburger span::before, .navi-hamburger span::after {
  display: block;
  height: 2px;
  width: 26px;
  -webkit-transition: 0.6s ease;
  transition: 0.6s ease;
}

.navi-checkbox:checked ~ .navi-menu li .navi-hamburger span {
  background-color: transparent;
}

.navi-checkbox:checked ~ .navi-menu li .navi-hamburger span::before, .navi-checkbox:checked ~ .navi-menu li .navi-hamburger span::after {
  margin-top: 0;
}

.navi-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 80px;
}

.navi-menu-left .navi-navigation,
.navi-menu-left .navi-header {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.navi-menu-right .navi-hamburger {
  margin-left: auto;
}

.navi-brand {
  font-size: 1.6em;
  padding: 5px 15px;
}

.navi-menu {
  min-height: 80px;
  -webkit-transition: 0.6s ease;
  transition: 0.6s ease;
  width: 100%;
}

.navi-navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.navi-menu a,
.navi-item a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  display: block;
}

.navi-item {
  height: 80px;
}

.navi-item a {
  margin: 5px 15px;
}

.navi-hamburger {
  padding: 22px 10px 5px;
  position: relative;
  cursor: pointer;
  background: #008BDF;
  margin-right: 15px;
  height: 45px;
  border-radius: 5px;
}

.navi-hamburger span::before, .navi-hamburger span::after {
  content: '';
  position: absolute;
}

.navi-hamburger span::before {
  margin-top: -8px;
}

.navi-hamburger span::after {
  margin-top: 8px;
}

.navi-checkbox {
  display: none;
}

.navi-checkbox:not(:checked) ~ .navi-menu {
  overflow: hidden;
  height: 80px;
}

.navi-checkbox:checked ~ .navi-menu {
  -webkit-transition: height 0.6s ease;
  transition: height 0.6s ease;
  height: 100vh;
  overflow: auto;
}

.dropdown {
  position: relative;
  height: auto;
  min-height: 80px;
}

.dropdown:hover > ul {
  position: relative;
  display: block;
  min-width: 100%;
}

.dropdown > a::after {
  position: absolute;
  content: '';
  right: 10px;
  top: 36px;
  border-width: 5px 5px 0;
  border-color: transparent;
  border-style: solid;
}

.dropdown > ul {
  display: block;
  overflow-x: hidden;
  list-style: none;
  padding: 0;
}

.dropdown > ul .navi-item {
  min-width: 100%;
  height: 40px;
  padding: 5px 10px 5px 40px;
}

.dropdown > ul .navi-item a {
  min-height: 40px;
  line-height: 40px;
  padding: 0;
}

@media screen and (min-width: 768px) {
  .navi-navigation {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row;
            flex-flow: row;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-right: 20px;
  }
  .navi-hamburger {
    display: none;
  }
  .navi-checkbox:not(:checked) ~ .navi-menu {
    overflow: visible;
  }
  .navi-checkbox:checked ~ .navi-menu {
    height: 80px;
  }
  .navi-menu .navi-item {
    border-top: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .navi-menu-right .navi-header {
    margin-right: auto;
  }
  .dropdown {
    height: 80px;
  }
  .dropdown:hover > ul {
    position: absolute;
    left: 0;
    top: 80px;
    padding: 0;
  }
  .dropdown > ul {
    display: none;
  }
  .dropdown > ul .navi-item {
    padding: 5px 10px;
  }
  .dropdown > ul .navi-item a {
    white-space: nowrap;
  }
}

@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, .navi-navigation {
    -ms-flex-pack: start;
        justify-content: flex-start;
  }
  /* IE11 */
}

.navi-checkbox:checked + .navi-menu .navi-hamburger-doublespin span::before {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
}

.navi-checkbox:checked + .navi-menu .navi-hamburger-doublespin span::after {
  -webkit-transform: rotate(-225deg);
          transform: rotate(-225deg);
}

.navi-checkbox:checked + .navi-menu .navi-hamburger-spin span::before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.navi-checkbox:checked + .navi-menu .navi-hamburger-spin span::after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.navi-menu-dark,
.navi-menu-dark .dropdown ul {
  background-color: #212121;
  color: #fff;
}

.navi-menu-dark .active,
.navi-menu-dark .navi-item:hover {
  background-color: #424242;
}

.navi-menu-dark .navi-hamburger span,
.navi-menu-dark .navi-hamburger span::before,
.navi-menu-dark .navi-hamburger span::after {
  background-color: #fff;
}

.navi-menu-light,
.navi-menu-light .dropdown ul {
  background-color: #e0e0e0;
  color: #212121;
}

.navi-menu-light .active,
.navi-menu-light .navi-item:hover {
  background-color: #bdbdbd;
}

.navi-menu-light .navi-hamburger span,
.navi-menu-light .navi-hamburger span::before,
.navi-menu-light .navi-hamburger span::after {
  background-color: #212121;
}

.navi-menu-material-base,
.navi-menu-material-base .dropdown ul {
  background-color: #FFF;
  color: #707070;
}

.navi-menu-material-base .navi-hamburger span,
.navi-menu-material-base .navi-hamburger span::before,
.navi-menu-material-base .navi-hamburger span::after {
  background-color: #FFF;
}
