/* Responsive
   ============================================ */
.sp {
  display: none;
}

/* Component
   ============================================ */

header {
  position: sticky;
  top: 0;
  padding: 20px 0;
  background-color: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
  z-index: 5;
}

header nav {
  width: 60%;
  margin-left: auto;
}

header .global-menu.flex-box {
  justify-content: flex-end;
}

header .global-menu li {
  display: inline-block;
}

header .global-menu li a {
  position: relative;
  display: inline-block;
}

header .global-menu li:not(.sns) a::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #505050;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: transform 0.3s;
}

header .global-menu li:not(.sns) a:hover::after {
  transform: scale(1, 1);
}

header .global-menu li+li {
  margin-left: 3vw;
}

header .global-menu li i {
  padding: 5px;
  font-size: 1.5em;
  transition: 0.3s;
}

header .global-menu li.sns+li.sns {
  margin-left: 1vw;
}

header .global-menu li.sns a:hover i {
  opacity: 0.7;
}

/* ページトップボタン */
a.page-top {
  position: fixed;
  right: 5vw;
  bottom: 5vh;
  z-index: 10;
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #555;
  opacity: 0.8;
  transition: 0.3s;
  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
}

a.page-top::before {
  content: "";
  position: relative;
  top: 21px;
  left: 50%;
  transform: translateX(-50%) rotate(-45deg);
  display: block;
  width: 15px;
  height: 15px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
}

a.page-top:hover {
  opacity: 1;
}

a.page-top.is-not-visible {
  opacity: 0;
  pointer-events: none;
}

/* Layout
   ============================================ */

.inner {
  max-width: 1000px;
  width: 100%;
  margin: auto;
}

.flex-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

.flex-box.left-4col::before {
  content: "";
  display: block;
  width: 20%;
  order: 1;
}

.flex-box.left-4col::after {
  content: "";
  display: block;
  width: 20%;
}


/* ============================================
   タブレット
   ============================================ */

@media screen and (max-width: 1000px) {

  /* Responsive
   ============================================ */
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  /* Component
     ============================================ */

  header {
    padding: 15px 0;
    border-bottom: 1px solid #ccc;
  }

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

  .hamburger-menu,
  .hamburger-menu span {
    display: block;
    transition: 0.4s;
    box-sizing: border-box;
  }

  .hamburger-menu {
    position: relative;
    width: 30px;
    height: 35px;
    margin-right: 5px;
  }

  .hamburger-menu span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #505050;
    border-radius: 4px;
  }

  .hamburger-menu span:nth-of-type(1) {
    top: 4px;
  }

  .hamburger-menu span:nth-of-type(2) {
    top: 15px;
  }

  .hamburger-menu span:nth-of-type(3) {
    top: 26px;
  }

  .hamburger-menu.is-active span:nth-of-type(1) {
    transform: translateY(11px) rotate(-45deg);
  }

  .hamburger-menu.is-active span:nth-of-type(2) {
    opacity: 0;
  }

  .hamburger-menu.is-active span:nth-of-type(3) {
    transform: translateY(-11px) rotate(45deg);
  }

  .hamburger-menu+.global-menu {
    position: absolute;
    top: 66px;
    left: 0;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: 0.5s;
  }

  .hamburger-menu.is-active+.global-menu {
    max-height: 50vh;
  }

  .hamburger-menu+.global-menu li {
    width: 100%;
    margin-left: 0;
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid #ccc;
  }

  header .global-menu li a {
    width: 100%;
    height: 100%;
    padding: 15px 20px;
  }

  header .global-menu li.sns+li.sns {
    margin-left: 0;
  }

  header .global-menu li.sns a,
  header .global-menu li.sns+li.sns a {
    margin-left: 0;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  header .global-menu li.sns a {
    display: flex;
    align-items: center;
  }

  header .global-menu li i {
    margin-right: 5px;
    padding: 0;
  }


  /* Layout
     ============================================ */

  .inner {
    width: 92%;
  }
}