/* --- メインメニュー --- */
header{
  position: fixed;
  z-index: 9997;
  width: 100%;
  top: 0;
  left: 0;
}

header.active{
  height: 100vh;
  overflow-y: scroll;
  background-color: var(--primary_color);
}

.header__wrapper{
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  transition: all 200ms cubic-bezier(0.77, 0, 0.175, 1);
}

@media screen and (max-width: 979px) {
  .header__wrapper{
    height: 70px;
  }
}

.header__body{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: inherit;
  height: inherit;
  background: transparent;
  background-color: rgba(249, 247, 243, 0.9);
}

@media screen and (max-width: 979px) { 
  .header__body{
    padding: 0;
    height: 70px;
    justify-content: center;
    position: relative;
  }

  .header__body.active{
    background-color: transparent;
  }

}

.headerimage{
  width: 100%;
  height: 350px;
  opacity: 0.5;
  overflow: hidden;
}

@media screen and (max-width: 979px) {
  .headerimage{
    height: 150px;
  }
}

.headerimage__body{
  width: 100%;
  height: inherit;
}

.headerimage img{
  width: 100%;
  height: inherit;
  min-height: auto;
  object-fit: cover;
  object-position: 0 0;
}

@media screen and (max-width: 979px) {
  .headerimage img{
  }
}
	
/* --- サイトロゴ（トップページ以外） --- */
.sitetitle--nonfrontpage{
  height: inherit;
}

.sitetitle--nonfrontpage a{
  display: block;
  padding: 30px 20px;
  height: inherit;
  box-sizing: border-box;
}

.sitetitle--nonfrontpage img{
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 979px) {
  .sitetitle--nonfrontpage a{
    padding: 15px 0;
  }
}

.sitetitle--hamburger{
  display: none;
  position: absolute;
  padding: 15px 0;
  height: 70px;
  box-sizing: border-box;
  z-index: 9999;
}

.sitetitle--hamburger.active{
  display: block;
}

.sitetitlehamburgernonfrontpage a{
  display: block;
  padding: 30px 20px;
  height: inherit;
  box-sizing: border-box;
}

.sitetitle--hamburger img{
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 979px) {
  .sitetitle--hamburger a{
    padding: 15px 0;
  }
}

/* --- メインメニュー --- */
.global-nav{
  height: inherit;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.global-nav > ul{
  display: flex;
  list-style: none;
}

.global-nav > ul > li{
  padding: 0 50px;
  border-right: 1px solid rgb(209, 209, 209);
  box-sizing: border-box;
}

.global-nav li:last-child{
  border-right: none;
}

.global-nav > ul > li > a{
  position: relative;
  text-decoration: none;
  font-weight: 500;
}

.global-nav > ul > li > a > span{
  display: block;
  font-size: 10px;
  text-align: center;
}

.global-nav > ul > li > a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -3px;               /*アンダーラインがaタグの下端から現れる*/
  width: 100%;
  height: 1px;
  background: #000000;
  transform: scale(0, 1);     /*アンダーラインの縮尺比率。ホバー前はx方向に0*/
  transform-origin: left top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の左端*/
  transition: transform 0.3s; /*変形の時間*/
}
  
.global-nav > ul > li > a:hover::after {
  transform: scale(1, 1);     /*ホバー後、x軸方向に1（相対値）伸長*/
}

@media screen and (max-width: 1199px) {
  .global-nav > ul > li{
    padding: 0 40px;
    font-size: 80%;
  }
}


@media screen and (max-width: 979px) { 
  .global-nav{
    position: relative;
  }

  .global-nav {
    display: none;
    position: absolute;
    right: 0;
    left: 0;
    top: 0;
    width: 100%;
    /* transform: translateX(-100%); ハンバーガーメニューを隠す位置 */
    transition: ease 0s;
  }

  .global-nav ul{
    display: flex;
    flex-flow: column;
    padding: 100px 10px 50px 10px;
    position: relative;
  }

  .global-nav > ul > li{
    padding: 18px 10px;
    border-top: 1px solid #fff;
    border-right: transparent;
    color: #fff;
  }

  .global-nav > ul > li > a{
    display: block;
    position: relative;
    font-size: 16px;
    width: 100%;
    height: 100%;
  }

  .global-nav li a::after {
    display: none;
  }

  .global-nav > ul > li:last-child{
    border-bottom: 1px solid #fff;
  }

  .global-nav > ul > li > a > span{
    display: inline;
    margin-left: 10px;
    font-size: 10px;
    text-align: left;
  }

  .nav__icon{
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    display: inline-block;
    width: 25px;
    height: 25px;
    background: var(--primary_color);
    border: 2px solid #fff;
    border-radius: 100%;
    vertical-align: -0.25em;
  }
  
  .nav__icon::after{
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transition: 0.3s ease-out;
  transition: 0.3s ease-out;
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: translate(-65%, -50%) rotate(-45deg);
  transform: translate(-65%, -50%) rotate(-45deg);
  }

}

/* --- ハンバーガーメニュー --- */
.sidenav__hamburger {
  position: absolute;
  top: 0;
  right: 0;
  width: 48px;
  height: 100%;
  z-index: 9999;
}

.hamburger {
  background-color: transparent;
  border-color: transparent;
}

@media screen and (min-width: 980px) {
  .hamburger {
    display: none;
  }
}

.hamburger span {
  width: 100%;
  height: 2px;
  background-color: #000;
  position: relative;
  transition: ease .4s;
  display: block;
}

.hamburger span:nth-child(1) {
  top: -4px;
}

.hamburger span:nth-child(2) {
  top: -4px;
  margin: 8px 0;
}

.hamburger span:nth-child(3) {
  top: -4px;
}

.hamburger span:nth-child(4) {
  top: -4px;
  margin-top: 1px;
  height: 0px;
}

.hamburger span:nth-child(4)::after {
  content: "MENU";
  font-size: 10px;
  font-weight: 500;
}

/* --- ハンバーガーメニュークリック後のスタイル --- */
.global-nav.active {
  display: block;
  /* transform: translateX(0); */
  transition: ease .4s;
}

.hamburger.active{
  /* background-color: #fff; */
}

.hamburger.active span:nth-child(1) {
  top: 8px;
  transform: rotate(45deg);
  background-color: #fff;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  top: -12px;
  transform: rotate(-45deg);
  background-color: #fff;
}

.hamburger.active span:nth-child(4)::after {
  content: "CLOSE";
  font-size: 9px;
  color: #fff;
}

@keyframes fuwaMenu {
  from {
    display: block;
    opacity: 1;
    transform: translateY(0px);
  }
  to {
    display: none;
    opacity: 0;
    transform: translateY(-150px);
  }
}

@keyframes fuwaMenu_fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fuwaMenu_fadeout {
  from {
    display: block;
    opacity: 1;
  }
  to {
    display: none;
    opacity: 0;
  }
}

/* --- サイトロゴ --- */
.sitetitle--frontpage{
  width: 200px;
  height: 180px;
  background-color: #c6d3d5;
}

.sitetitle--frontpage.scroll-nav{
  display: none;
  /* animation: fuwaMenu_fadeout 0.3s linear 0s; */
}

@media screen and (max-width: 1199px) {
  .sitetitle--frontpage{
    width: 140px;
    height: 120px;
  }  
}

.sitetitle--frontpage a{
  width: inherit;
  height: inherit;
}

.sitetitle--frontpage > a > picture{
  width: inherit;
  height: inherit;
  display: flex;
  align-items: center;
}

.sitetitle--frontpage > a > picture > img{
  padding: 10px;
  width: inherit;
  aspect-ratio: 241 / 184;
  box-sizing: border-box;
}

@media screen and (max-width: 979px) {
  .sitetitle--frontpage{
    width: auto;
    height: inherit;
    background-color: transparent;
  }

  .sitetitle--frontpage > a > picture{
    display: block;
    padding: 15px 0;
    box-sizing: border-box;
  }

  .sitetitle--frontpage > a > picture > img{
    padding: 0;
    aspect-ratio: auto;
    width: 100%;
    height: 100%;
  }
}

/* --- サイトロゴ（トップページ以外） --- */
.sitetitle--wide{
  display: none;
  height: inherit;
}

.sitetitle--wide.scroll-nav{
  display: block;
  animation: fuwaMenu_fadein 0.3s linear 0s;
}

@media screen and (max-width: 979px) {
  .sitetitle--wide.scroll-nav{
		animation: none;
		transform: none;
		transition: unset;
  }
}

.sitetitle--wide a{
  display: block;
  padding: 30px 20px;
  height: inherit;
  box-sizing: border-box;
}

.sitetitle--wide img{
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 979px) {
  .sitetitle--wide a{
    padding: 15px 0;
  }
}