.header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 40px;
}
.global-nav {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: calc(100vw - 60px);
  height: calc(100vh - 60px);
  background-color: #fff;
  transition: all .6s;
  z-index: 200;
  overflow-y: auto;
  /* メニューが多くなったらスクロールできるように */
  visibility: hidden;
  opacity: 0;
}
.hamburger {
  position: absolute;
  right: 6px;
  top: 14px;
  width: 60px;
  cursor: pointer;
  z-index: 300;
}
.hamburger__line {
  position: absolute;
  left: 18px;
  width: 24px;
  height: 2px;
  background-color: #fff;
  transition: all .6s;
}
.hamburger__line--1 {
  top: 20px;
}
.hamburger__line--2 {
  top: 28px;
}
.hamburger__line--3 {
  top: 36px;
}
.black-bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  background-color: #ffffff;
  opacity: 0;
  visibility: hidden;
  transition: all .6s;
  cursor: pointer;
}
/* 表示された時用のCSS */
.nav-open .global-nav {
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  visibility: visible;
  opacity: 1;
}
.nav-open .black-bg {
  opacity: .2;
  visibility: visible;
}
.nav-open .hamburger__line--1 {
  transform: rotate(45deg);
  top: 28px;
}
.nav-open .hamburger__line--2 {
  width: 0;
  left: 50%;
}
.nav-open .hamburger__line--3 {
  transform: rotate(-45deg);
  top: 28px;
}

.global-nav-inner {
  padding: 50px;
}