@charset "UTF-8";

.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
}

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  display: table;
  padding: 0 40px;
  background-color: #fff;
  z-index: 100;
  transition: 0.3s ease-in-out;
}

header a {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

header a img {
  transition: 0.3s ease-in-out;
}

.base {
  display: table-cell;
  vertical-align: middle;
}

.nav {
  display: table-cell;
  vertical-align: middle;
  width: 80%;
  text-align: right;
}

header li {
  display: inline-block;
  margin-right: 3%;
}

header li:last-child {
  margin-right: 0;
}

header .link-nav {
  display: table-cell;
  vertical-align: middle;
  width: 80%;
  padding-right: 90px;
  text-align: right;
}

header .link-nav a {
  text-align: center;
  color: #fff;
  font-weight: bold;
  font-size: 2.4rem;
  width: 200px;
  padding: 15px 0;
  opacity: 1 !important;
  position: relative;
}

header .link-nav a span {
  position: relative;
  letter-spacing: 0.1em;
  z-index: 3;
}

header .link-nav a:before,
header .link-nav a:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  display: inline-block;
  top: 0;
  left: 0;
  transition: 0.3s ease-in-out;
}

header .link-nav a:before {
  background: linear-gradient(220deg, #7dd3f9, #00a0e9);
  z-index: 1;
}

header .link-nav a:after {
  background: linear-gradient(-220deg, #7dd3f9, #00a0e9);
  z-index: 2;
}

header .link-nav a:hover:after {
  opacity: 0;
}

.header-menu .icon {
  position: absolute;
  right: 120px;
  top: 50%;
  transform: translate(0, -50%);
}

.header-menu .icon img {
  width: 90px;
  height: auto;
  transition: 0.3s;
}

.header-menu .menu-btn {
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translate(0, -50%);
  width: 50px;
  height: 26px;
  background-color: transparent;
  text-align: center;
  cursor: pointer;
  z-index: 10000;
}

.header-menu .menu-btn span,
.header-menu .menu-btn span:before,
.header-menu .menu-btn span:after {
  height: 2px;
  width: 50px;
  background-color: #000;
  position: relative;
  display: inline-block;
  transition: 0.3s;
  left: 0;
  top: 0px;
}

.header-menu .menu-btn.close-btn span {
  top: 30px;
}

.header-menu .menu-btn span:before {
  content: "";
  top: -4px;
}

.header-menu .menu-btn span:after {
  content: "";
  top: -18px;
}

.header-menu .menu-btn.close-btn span,
.header-menu .menu-btn.close-btn span:after {
  width: 40px;
  transform: rotate(45deg);
  top: 10px;
  background-color: #fff;
}

.header-menu .menu-btn.close-btn span:before {
  display: none;
}

.header-menu .menu-btn.close-btn span:after {
  transform: rotate(90deg);
  top: -16px;
}

.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(-90deg, rgba(125, 211, 249, 0.8), rgba(0, 160, 233, 1));
  z-index: 1000;
  padding: 20vh 200px 0 200px;
  text-align: left;
  overflow-y: scroll;
  transition: 0.3s ease-in-out;
}

.nav.open {}

.nav.close {
  position: absolute;
  z-index: -1;
  opacity: 0;
  padding: 0;
  top: -100vh;
}

.nav ul {
  float: left;
  width: 50vw;
}

.nav li {
  width: 100%;
  margin-right: 0;
  margin-bottom: 30px;
}

.nav li:last-child {
  margin-bottom: 0;
}

.nav li a {
  color: #fff;
  position: relative;
}

.nav li a:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background-color: #fff;
  transition: 0.3s ease-in-out;
}

.nav li a:hover:after {
  width: 100%;
}

.nav li a .en {
  display: inline-block;
  font-size: 4rem;
  margin-right: 40px;
}

.nav li p.sub {
  display: flex;
  width: 100%;
  padding: 15px 20px;
  color: #fff;
}

header nav .gnav {
  opacity: 0;
  transform: translateY(40px);
  transition: 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}

header nav .address {
  opacity: 0;
  transform: translateY(-40px);
  transition: 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
  position: absolute;
  right: 10vw;
  top: 50vh;
}

header nav .address dl {
  margin-bottom: 30px;
  color: #fff;
}

header nav .address dt {
  font-size: 3rem;
  font-weight: bold;
}

header nav .address dd {}

/* Jquery */
header.change {
  height: 60px;
}

header.change h1 img {
  max-width: 80%;
}

header.change .link-nav a {
  font-size: 1.6rem;
  width: 140px;
  padding: 8px 0;
}

header nav .gnav li:nth-of-type(3) > a {
  pointer-events: none;
}

header nav.open .gnav {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.5s;
  padding-bottom: 100px;
}

header nav.close .gnav {
  transition-delay: 0;
}

header.change .link-nav {
  padding-right: 80px;
}

header.change .link-nav li {
  margin-right: 15px;
}

header.change .header-menu .menu-btn span,
header.change .header-menu .menu-btn span:before,
header.change .header-menu .menu-btn span:after {
  width: 30px;
}

header.change .header-menu .menu-btn.close-btn span {
  top: 30px;
}

header.change .header-menu .menu-btn span:before {
  top: -5px;
}

header.change .header-menu .menu-btn span:after {
  top: -19px;
}

header.change .header-menu .menu-btn.close-btn span,
header.change .header-menu .menu-btn.close-btn span:after {
  top: 10px;
}

header.change .header-menu .menu-btn.close-btn span:after {
  top: -16px;
}

header nav.open .address {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.5s;
}

header.change .header-menu .icon img {
  width: 50px;
}


/* ====================================================================================
         SP時
  ==================================================================================== */
@media screen and (max-width: 768px) {

  header {
    padding: 0 20px;
    height: 50px !important;
  }

  .base .header-menu h1 a img {
    max-width: 110px !important;
  }

  .header-menu .icon {
    right: 65px;
  }

  .header-menu .icon img {
    width: 35px !important;
  }

  .header-menu .menu-btn {
    right: 20px;
    width: 30px;
    height: 22px;
  }

  .header-menu .menu-btn.close-btn span {
    top: 30px;
  }

  .header-menu .menu-btn span:before {
    top: -2px;
  }

  .header-menu .menu-btn span:after {
    top: -12px;
  }

  .header-menu .menu-btn span,
  .header-menu .menu-btn span:before,
  .header-menu .menu-btn span:after {
    width: 30px;
  }

  .header-menu .menu-btn.close-btn span,
  .header-menu .menu-btn.close-btn span:after {
    width: 30px;
    top: 15px;
  }

  .header-menu .menu-btn.close-btn span:after {
    top: -12px;
  }

  .nav {
    padding: 80px 20px;
  }

  .nav ul {
    float: none;
    width: 100%;
  }

  .nav li {
    margin-bottom: 20px;
  }

  .nav li a .en {
    display: block;
    font-size: 2.6rem;
    margin-right: 0;
    margin-bottom: 5px;
  }

  header nav .address {
    display: none;
  }

  /* Jquery */
  header.change .header-menu .menu-btn span:before {
    top: -2px;
  }

  header.change .header-menu .menu-btn span:after {
    top: -12px;
  }

  header.change .header-menu .menu-btn.close-btn span:after {
    top: -12px;
  }

  /* low header */
  header .link-nav {
    display: none;
  }

}



/* ====================================================================================
         ipad
  ==================================================================================== */

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) {
  .header-menu .menu-btn span:before {
    top: -7px;
  }

  .header-menu .menu-btn span:after {
    top: -22px;
  }

  .header-menu .menu-btn.close-btn span:after {
    top: -17px;
  }
}

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) {
  header .link-nav {
    display: none;
  }
}
