/* =========================
SP Header
========================= */

.gw-header{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:100;
}

.gw-header__inner{
  max-width:390px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.gw-header__logo{
  display:none;
}

.gw-header__inner--menu-only{
  justify-content:flex-end;
}

.gw-header__menu{
  position:absolute;
  right:20px;
  top:10px;

  width:40px;
  height:50px;

  background:none;
  border:none;
  padding:0;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.gw-header__menu img{
  display:block;
  width:50px;
  height:50px;
}

.gw-header__nav{
  display:none;
}

.gw-header__nav-list{
  display:block;
}

/* =========================
Hamburger menu
========================= */

.gw-menu{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background:#FCF8F8;
  z-index:200;
  display:none;
}

.gw-menu.active{
  display:block;
}

.gw-menu__inner{
  max-width:390px;
  margin:0 auto;
  padding:18px 28px 48px;
  box-sizing:border-box;
}

/* top */

.gw-menu__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
}

/* logo */

.gw-menu__logo{
  display:block;
  width:89px;
  height:auto;
}

/* close */

.gw-menu__close{
  width:48px;
  height:48px;
  background:#39446D;
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:20px;
  line-height:1;
  box-shadow:0 6px 16px rgba(0,0,0,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* list */

.gw-menu__list{
  list-style:none;
  padding:0;
  margin:30px 0 36px;
}

.gw-menu__item{
  margin:0 0 18px;
}

.gw-menu__link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  text-decoration:none;
  color:#1D135F;
}

.gw-menu__texts{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.gw-menu__sub{
  font-family:"Noto Sans JP", sans-serif;
  font-weight:500;
  font-size:13px;
  line-height:1.2;
  color:#5E698F;
}

.gw-menu__main{
  font-family:"Noto Sans JP", sans-serif;
  font-weight:700;
  font-size:18px;
  line-height:1.2;
  color:#1D135F;
}

.gw-menu__arrow{
  font-family:"Noto Sans JP", sans-serif;
  font-weight:400;
  font-size:28px;
  line-height:1;
  color:#39446D;
  flex-shrink:0;
  margin-left:16px;
}

/* contact button */

.gw-menu__contact{
  width:200px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  background:#39446D;
  color:#fff;
  border-radius:8px;
  text-decoration:none;
  font-family:"Noto Sans JP", sans-serif;
  font-weight:700;
  font-size:16px;
  line-height:1;
  box-shadow:0 8px 20px rgba(0,0,0,0.2);
}

.gw-menu__contact-arrow{
  font-size:24px;
  line-height:1;
}



/* =========================
PC Header
========================= */

@media screen and (min-width: 1024px){

  .gw-header{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    z-index:100;
  }

  .gw-header__inner{
    width:100%;
    max-width:none;
    margin:0 auto;
    padding:24px 48px 0 32px;
    box-sizing:border-box;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
  }

  .gw-header__logo{
    display:block;
    flex-shrink:0;
    transform:translateY(-20px);
  }

  .gw-header__logo img{
    width:113px;
    height:auto;
  }

  .gw-header__nav{
    display:block;
    margin-left:auto;
  }

  .gw-header__nav-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    gap:40px;
  }

  .gw-header__nav-link{
    text-decoration:none;
    color:#1D135F;
    font-family:"Noto Sans JP", sans-serif;
    font-weight:900;
    font-size:20px;
    line-height:1;
    letter-spacing:0;
    white-space:nowrap;
  }

  .gw-header__menu{
    display:none;
  }

  .gw-header__inner--menu-only{
    justify-content:space-between;
  }

}