@charset "utf-8";

input#navcheck {
  position: fixed;
  opacity: 0;
  display: none;
}

.menu_visuallyhidden {
  position: absolute;
  /*! width: 1px; */
  /*! height: 1px; */
  /*! padding: 0px; */
  /*! border: none; */
  /*! overflow: hidden; */
  /*! clip: rect(0, 0, 0, 0); */
  white-space: nowrap;
}

label#label_navcheck {
  position: absolute;
  margin: 0px;
  padding: 0px;
  border: none;
  outline: none;
  background-color: #333333;
  cursor: pointer;
  left: 0;
  right: auto;
  top: auto;
  bottom: 0;
  width: 180px;
  height: 180px;
  z-index: 1000;
  overflow: hidden;
}
label#label_navcheck .label_navcheck_background {
  position: absolute;
  width: 300%;
  height: 100%;
  top: 0;
  left: -300%;
  z-index: 999;
  background: url("../img/background_gradation.png") no-repeat center center;
  background-size: cover;
}


label#label_navcheck:before,
label#label_navcheck:after {
  /*! content: ""; */
  /*! position: absolute; */
  /*! display: block; */
  /*! width: 26%; */
  /*! height: 2%; */
  /*! background-color: #ffffff; */
  /*! left: 37%; */
  /*! transition: all 0.4s linear; */
  /*! z-index: 1000; */
}
label#label_navcheck:before {
  top: 44%;
}
label#label_navcheck:after {
  top: 54%;
}

#navcheck:checked + label#label_navcheck {
  background-color: rgba(0, 0, 0, 0);
}
#navcheck:checked + label#label_navcheck:before,
#navcheck:checked + label#label_navcheck:after {
  top: 50%;
}

#navcheck:checked + label#label_navcheck:before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

#navcheck:checked + label#label_navcheck:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#menu_container {
  position: fixed;
  display: table;
  box-sizing: content-box;
  overflow: hidden;
  z-index: 995;
  top: 0px;
  width: 100%;
  height: 100%;
  background-color: #333333;
  background-size: cover;
  transform: translate(-100%, 0);
  transition: transform 1.1s cubic-bezier(0.19, 1, 0.22, 1);
}

#navcheck:checked ~ #menu_container {
  transform: translate(0, 0);
}

#menu_container:before {
  content: "";
  position: absolute;
  z-index: 996;
  width: 100%;
  height: 100%;
  background: url("../img/background_gradation.png") no-repeat center center;
  background-size: cover;
  opacity: 1;
  transition: opacity 3s ease-out;
}
#navcheck:checked ~ #menu_container:before {
  opacity: 0;
}

#menu_container #nav {
  position: relative;
  display: table-cell;
  vertical-align: middle;
  z-index: 997;
  padding-left: 240px;
}
#menu_container #nav li {
  position: relative;
  padding: 10px 10px 10px 10px;
  margin: 25px auto;
  overflow: hidden;
}
#menu_container #nav li:after {
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0.8;
  background: url("../img/background_gradation.png") no-repeat center center;
  background-size: cover;
}




#navcheck:checked ~ #menu_container #nav li:after {
  animation-name: fade_slide_animation;
  animation-duration: 1s;
  animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  animation-fill-mode: forwards;
}
#navcheck:checked ~ #menu_container #nav li:nth-child(1):after {
  animation-delay: 0.3s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(2):after {
  animation-delay: 0.4s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(3):after {
  animation-delay: 0.5s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(4):after {
  animation-delay: 0.6s;
}
#navcheck:checked ~ #menu_container #nav li:nth-child(5):after {
  animation-delay: 0.7s;
}

#menu_container #nav li a {
  position: relative;
  opacity: 0;
  color: #999999;
  font-size: 60px;
  letter-spacing: 0.1em;
}
#menu_container #nav li a:hover {
  background: url("../img/background_gradation.png");
  background-size: cover;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
#navcheck:checked ~ #menu_container #nav li a {
  animation-name: fade_slide_inner_animation;
  animation-duration: 0.95s;
  animation-timing-function: ease;
  animation-fill-mode: forwards;
}

#navcheck:checked ~ #menu_container #nav li:nth-child(1) a {
  animation-delay: 0.3s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(2) a {
  animation-delay: 0.4s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(3) a {
  animation-delay: 0.5s;
}  
#navcheck:checked ~ #menu_container #nav li:nth-child(4) a {
  animation-delay: 0.6s;
}
#navcheck:checked ~ #menu_container #nav li:nth-child(5) a {
  animation-delay: 0.7s;
}


#menu_container #menu_note {
  visibility: hidden;
  position: relative;
  display: table-cell;
  vertical-align: middle;
  z-index: 998;
  width: 400px;
  text-align: right;
  padding: 0 20px 0 0;
}
#menu_container #menu_note .menu_note_text {
  color: #ffffff;
}
#menu_container #menu_note .link_button_container_menu_note {
  margin-top: 10px;
}
#menu_container #menu_note .link_button_container_menu_note .link_button {
  margin: 0 0 0 auto;
}




/* responsive */
@media (max-width: 768px) {
  label#label_navcheck {
    left: auto;
    right: 0;
    top: 0;
    bottom: auto;
    width: 70px;
    height: 70px;
  }
  
  #menu_container {
    display: block;
    transform: translate(0, -100%);
  }
  
  #menu_container #nav {
    display: block;
    vertical-align: top;
    width: 80%;
    left: 10%;
    padding-top: 100px;
    padding-left: 0;
  }
  #menu_container #nav li {
    padding: 5px 5px 5px 5px;
    margin: 15px auto;
  }
  #menu_container #nav li a {
    font-size: 36px;
  }
  #menu_container #menu_note {
    display: block;
    vertical-align: top;
    width: 80%;
    text-align: left;
    left: 10%;
    top: 50px;
    padding: 0 0 0 5px;
  }
  #menu_container #menu_note .link_button_container_menu_note .link_button {
    margin: auto auto auto 0;
  }
}
