@charset "UTF-8";

/*--------------------
 header
---------------------*/
#header {
  width:100%;
  height:auto;
  position:fixed;
  left:0;
  top:0;
  z-index: 100;
  opacity:0;
  transition:opacity 0.5s var(--ease);
  display: flex;
  justify-content: space-between;
}
.loaded #header {
  opacity:1;
}
#header .header_inner {
  width:100%;
  padding-inline:calc(0.5*var(--outergap));
  height:120px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#header .header_inner .logo {
  width:min(30%,194px);
  position:relative;
}
#header .logo img {
  width:100%;
  height:auto;
}
.hamburger {
  width:48px;
  height:48px;
  background-color: var(--txt_black);
  border-radius: 50%;
  position:absolute;
  right:calc(0.5*var(--outergap));
  z-index: 100;
}
.hamburger.-active .hamburger__line::before {
  top: 0;
  transform: rotate(45deg);
}
.hamburger.-active .hamburger__line::after {
  top: 0;
  transform: rotate(-45deg);
}
.hamburger__line {
  display: block;
  height: 1px;
  position: absolute;
  top: 23px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  background-color: transparent;
  transition: .4s var(--easeout);
}
.hamburger__line:before,
.hamburger__line:after {
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
  background-color: white;
  transition: inherit;
}
.hamburger__line:before {
  top: -4px;
}
.hamburger__line:after {
  top: 4px;
}
.header__nav-area {
  position: fixed;
  top: 0;
  left:0;
  z-index: 0;
  height: 100vh;
  width: 100%;
  visibility: hidden;
  background-color: rgb(0 0 0 / 0.75);
  opacity:0;
  transition: all 0.4s var(--easeout);
}
.header__nav-area.-active {
  left: 0;
  z-index: 99;
  opacity:1;
  visibility: visible;
}

.gnav{
  position:relative;
  left:-100%;
  width:50%;
  height:100%;
  background-color: var(--yellow);
  padding:var(--size100) min(10%,var(--size60)) var(--size60);
  transition: all 0.4s var(--easeout);
}
.header__nav-area.-active .gnav {
  left: 0;
}
.gnav ul {
  display: flex;
  flex-direction: column;
  list-style: none;
  gap:var(--size32);
  padding:var(--size20) 0;
}
.gnav ul li  {
  font-family: var(--fontEn);
  font-size:1.25em;
  position:relative;
}
.gnav ul li:after {
  content:"";
  width:0;
  height:2px;
  background-color: var(--txt_black);
  transition: all 0.4s var(--easeout);
  display: block;
}
.gnav ul li:hover:after {
  width:100%;
}
.gnav ul li > a {
  display: flex;
  align-items: flex-end;
  gap:var(--size20);
}
.gnav ul li > a .ja {
  font-weight:500;
  font-size:0.6em;
}

@media (max-width: 768px) {
#header .header_inner {
  height:80px;
}
}