@charset "UTF-8";
/* ©SCHNEID 
Kazumi Nishibayashi */
/* ------------------------------
	メニュー
------------------------------ */
body.fixed {
 overflow: hidden; /* メニューが開いた時にスクロールさせないようにする */
}
#top-head .nav-wrap .nav {
 font-size: clamp(2.2rem, 2.2vw, 2.6rem);
 display: flex;
}
.header .nav .link {
 line-height: 1em;
 text-decoration: none;
 text-align: center;
 white-space: nowrap;
 display: block;
 padding: 0 5px;
 -webkit-transition: .3s;
 transition: .3s;
}
.header .nav .link .s {
 font-size: .9em;
 vertical-align: baseline;
 margin: 0 4px 0 3px;
}
.nav .menu-item {
 width: 100%;
 display: inline-flex;
 -webkit-box-align: center;
 -ms-flex-align: center;
 align-items: center;
 position: relative;
}
#top-head .nav-wrap .nav .menu-item {
 margin: 1.4vh 0;
}
#top-head .nav-wrap {
 left: 0;
 top: 0;
 display: none;
 width: 100%;
 background: transparent;
 transition: background-image 1.5s ease-in-out;
}
#top-head.fixed {
 background: -webkit-linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .2), transparent);
 background: -moz-linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .2), transparent);
 background: -o-linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .2), transparent);
 background: linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .2), transparent);
 height: 90px;
}
#top-head .nav-wrap.open {
 display: -webkit-box;
 display: -ms-flexbox;
 display: -webkit-flex;
 display: flex;
 background: rgba(255, 255, 255, .6);
 -webkit-backdrop-filter: blur(8px);
 backdrop-filter: blur(8px);
 align-items: center;
 height: 100%;
 min-height: 100vh;
 min-height: 100dvh;
}
#top-head .nav-wrap.close {
 display: none;
}
#top-head .nav-wrap.open .nav-wrap-inner {
 animation-name: fadeLightAnime;
 animation-duration: 0.5s;
 animation-fill-mode: forwards;
 opacity: 0;
 width: 60%;
 max-width: 400px;
 min-height: 600px;
 height: 100%;
 padding: 70px 30px 20px;
 display: flex;
 align-items: center;
}
#top-head .nav-wrap.open .nav-wrap-inner .menu.en {
 flex-direction: column;
 align-items: self-start;
}
@keyframes fadeLightAnime {
 from {
  opacity: 0;
  transform: translateX(-100px); /* 左から開始 */
 }
 to {
  opacity: 1;
  transform: translateX(0);
 }
}
.sns li {
 display: inline-block;
 margin-left: 1.2rem;
}
.sns svg {
 width: 28px;
 fill: #000;
}
#top-head .sns.sns-fixed svg {
 transition: .5s;
 filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.8));
 mix-blend-mode: exclusion;
}
#top-head .sns.sns-fixed svg, #header.open .sns.sns-fixed svg {
 fill: #fff;
 filter: none;
}
#top-head .nav-wrap .nav .sns {
 display: none;
}
#top-head .nav-wrap .nav .menu-item .header-x {
 fill: #fff;
 padding: 0 2px;
}
/*--------固定化されたときのCSS-----------*/
#top-head {
 position: fixed;
 top: 0;
 margin-top: 0;
 transition: top 0.6s ease;
 -webkit-transition: top 0.6s ease;
 -moz-transition: top 0.6s ease;
 z-index: 100;
}
#top-head .nav-wrap .nav {
 font-size: clamp(2.4rem, 3vw, 4rem);
 display: flex;
 flex-direction: column;
 justify-content: center;
 margin-top: 5vh;
}
.header {
 justify-content: space-between;
 -webkit-box-align: center;
 -ms-flex-align: center;
 align-items: center;
 width: 100%;
}
#top-head.open .nav-wrap {
 position: fixed;
 overflow-x: hidden;
 overflow-y: auto;
}
#top-head .nav-wrap-inner {
 display: flex;
 transition: all 1000ms;
}
.nav-button {
 z-index: 1001;
 position: absolute;
 left: 0;
 top: 0;
 width: 80px;
 height: 63px;
 display: flex;
 justify-content: center;
 align-items: center;
 cursor: pointer;
 transition: transform 1.2s cubic-bezier(0.3, 0.7, 0.4, 1);
}
.btn-menu__icon {
 position: relative;
 display: block;
 width: 60%;
 height: 1.5px;
 background: #000;
}
.btn-menu__icon:before, .btn-menu__icon:after {
 position: absolute;
 top: 50%;
 display: block;
 width: 100%;
 height: 1.5px;
 content: "";
 background: #000;
 transition: .2s ease transform, .2s ease translate;
}
.btn-menu__icon:before {
 translate: 0 -7.5px;
}
.btn-menu__icon:after {
 translate: 0 6.5px;
}
.nav-button.active .btn-menu__icon {
 background: transparent
}
.nav-button.active .btn-menu__icon:before {
 transform: rotate(135deg);
 translate: 0 0
}
.nav-button.active .btn-menu__icon:after {
 transform: rotate(225deg);
 translate: 0 0
}
#top-head .nav-button {
 display: none;
}
#top-head .sns.sns-fixed {
 position: absolute;
 right: 12px;
 top: 12px;
}
#top-head .sns img {
 width: 26px;
}
@media screen and (min-width: 813px) {
 #top-head .sns.sns-fixed {
  right: 20px;
  top: 20px;
 }
 #top-head .nav-wrap.open .nav-wrap-inner {
  padding-left: 50px;
 }
 #top-head .nav-wrap .nav .menu-item .header-x {
  width: 32px;
 }
}
@media screen and (min-width: 1025px) {
 #top-head .nav-wrap {
  display: flex;
  padding-right: 1.5%;
  padding-left: 1.5%;
  align-items: flex-start;
 }
 #top-head .sns.sns-fixed {
  position: relative;
  top: 5px;
 }
 .nav .menu-item {
  margin-right: 1.4%;
 }
}
@media screen and (max-width: 1024px) {
 #top-head .nav-wrap .nav {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin-bottom: 4rem;
 }
 #top-head .sns.sns-fixed {
  display: none;
 }
 #top-head .nav-button {
  display: flex;
 }
 #top-head .nav-wrap .nav {
  font-size: clamp(2.4rem, 3vw, 4rem);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 5vh;
 }
 #top-head .nav-wrap .nav .menu-item {
  margin: 1.6vh 0;
 }
 #top-head .sns.sns-fixed {
  display: block;
 }
 #top-head .sns.sns-fixed {
  right: 5px;
 }
 #top-head .nav-wrap.open .nav-wrap-inner, #top-head.open .nav-wrap {
  min-width: 100%;
 }
 #top-head .nav-wrap.open .nav-wrap-inner .menu.en {
  align-items: center;
  width: 100%;
  margin-bottom: 100px;
  font-size: 2.4rem;
 }
}
.nav-wrap {
 position: fixed;
 top: 0;
 width: 100%;
 padding: 12px;
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.menu .menu-item a::after {
 position: absolute;
 left: 0;
 content: '';
 width: 100%;
 height: 2px;
 background: #000;
 bottom: -1px;
 transform: scale(0, 1);
 transform-origin: center top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
 transition: transform 0.3s; /*変形の時間*/
}
.menu .menu-item a:hover::after {
 transform: scale(1, 1); /*ホバー後、x軸方向に1（相対値）伸長*/
}
/* メニューテキストの共通スタイル */
.nav-wrap .menu a {
 color: #000;
}
.nav-wrap .menu a:hover {
 color: #000;
}
.nav-wrap .menu .ico svg path {
 fill: #000;
}
.menu .menu-item .link.ico:hover svg path {
 fill: #000;
}
.menu.en {
 font-size: clamp(1.8rem, 2.2vw, 2.2rem);
 display: flex;
 justify-content: center;
 align-items: center;
}
.menu.sns {
 display: inline-flex;
 justify-content: flex-end;
 align-items: center;
 position: absolute;
 top: 12px;
 right: 1%;
}
.menu .menu-item {
 display: inline-flex;
 -webkit-box-align: center;
 -ms-flex-align: center;
 align-items: center;
 position: relative;
 height: 40px;
 min-width: 48px;
 margin: 0 .8em;
 line-height: 1em;
}
.menu.sns .menu-item {
 margin: 0 5px;
 display: flex;
 justify-content: center;
 align-items: center;
 height: 40px;
 min-width: 30px;
}
.menu .menu-item .link.ico {
 text-align: center;
}
.menu .menu-item .link.ico svg {
 width: 70%;
 max-width: 32px;
 filter: none;
 vertical-align: top;
 -webkit-transition: all 300ms;
 transition: all 300ms;
}
.menu .menu-item .link.ico .ico-tiktok {
 width: 68%;
 max-width: 28px;
}
@media screen and (max-width : 1024px) {
 .menu.sns {
  right: 6px;
 }
 .menu .menu-item .link.ico svg {
  max-width: 28px;
 }
 .menu .menu-item .link.ico .ico-tiktok {
  max-width: 24px;
 }
  .menu .menu-item {
  margin: 2rem auto;
 }
}