/* base */
html {
  scroll-padding-top: 90px;
  scroll-behavior: smooth;
}

body {
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: 0.1em;
  color: #000000;
  font-family:  'Noto Sans JP','Roboto',"ヒラギノ角ゴシック", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", "Yu Gothic", YuGothic, "メイリオ", Meiryo, '源ノ角ゴシック JP', sans-serif;
  font-weight: bold;
}

/* ヘッダー */
.header_wrapper {
  position:fixed;
  top:0;
  left:0;
  width: 100%;
  z-index: 100;
  height: 90px;
  background-color: #FFFFFF;
}
.header_inner {
  max-width: 1340px;
  padding-left: 50px;
  padding-right: 50px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  box-sizing: content-box;
}
.header_logo {
  width: 6.0%;
}
.header_logo > a:hover { 
  opacity: 0.6;
}
.header_gnav_list {
  display: flex;
  align-items: center;
}
.header_gnav_item:last-child {
  font-family: 'Noto Sans JP';
  font-size: 18px;
  font-weight: 700;
} 
.header_gnav_item:not(:last-child) {
  margin-right: 40px;
  font-size: 18px;
  font-weight: 700;
}
.header_gnav_item:hover {
  opacity: 0.7;
}
.header_gnav_btn {
  display: none;
  cursor: pointer;
}


/* フッター */
.footer_wrapper {
  background-color: #FFFFFF;
}
.footer_inner {
  max-width: 1252px;
  margin: 0 auto;
  padding-left: 94px;
  padding-right: 94px;
  padding-top: 50px;
  border-top: solid 0.5px #666666;
}

.footer_contents_wrapper {
  display: flex;
  justify-content: space-between;
  padding-top: 80px;
  padding-bottom: 40px;
  border-bottom: solid 0.5px #666666;
}

.footer_content{
  width: 30%;
}

.footer_title{
  margin-bottom: 20px;
}

.footer_title > h3{
  font-size: 24px;
  font-weight: 800;
}

/*
.facebook_content{
  background-color: #D9D9D9;
}

.instagram_content{
  background-color: #D9D9D9;
}
*/
.sponsor{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 150px; /* 適宜、一定の高さを指定する */
  object-fit: cover;
  margin: 5px;
  border-bottom: solid 0.5px #666666;
}

.copyright {
  padding: 40px 0;
  margin: 0 auto;
  text-align: center;
}
.copyright > small {
  font-size: 14px;
  color: #666666;
  font-weight: 400;
  letter-spacing: 0.1em;
}

/*.coming{
  color: white;
  text-align: center;
  padding-top: 200px;
  padding-bottom: 200px;
}*/

/* 共有パーツ */

/* cvボタン */
.cv_btn {
  width:250px;
  height: 55px;
  border: solid 2px #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  position: relative;
}
.cv_btn a {
  display: block;
  width: 100%;
  line-height: 55px;
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: 18px;
  letter-spacing: 0.1em;
  border-radius: 30px;
}
.cv_btn a::after {
  content: "";
  width: 6.04px;
  height: 10.19px;
  display: block;
  border-right: solid 2px #000000;
  border-radius: 30px;
  position: absolute;
  top: 50%;
  left: 91.2%;
  transform: translate(-50%, -50%);
}
.cv_btn a:hover {
  background-color: #000;
  color: #fff;
  transition: all 300ms linear;
}
.cv_btn a:hover::after {
  content: "";
  width: 6.04px;
  height: 10.19px;
  display: block;
  border-right: solid 2px #FFFFFF;
  border-radius: 30px;
  position: absolute;
  top: 50%;
  left: 91.2%;
  transform: translate(-50%, -50%);
}

.contact_cv_btn {
  margin: 78px auto;
}
.contact_cv_btn{
  width:250px;
  height: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  position: relative;
}
.contact_cv_btn input {
  color: #000000;
  font-family: 'Noto Sans JP';
  font-size: 18px;
  letter-spacing: 0.1em;
  width: 100%;
  height: 100%;
  border: solid 2px #000000;
  border-radius: 30px;
  background-color: #FFFFFF;
}
.contact_cv_btn::after {
  content: "";
  width: 6.04px;
  height: 10.19px;
  display: block;
  border-right: solid 2px #000000;
  border-radius: 30px;
  position: absolute;
  top: 50%;
  left: 91.2%;
  transform: translate(-50%, -50%);
}
.contact_cv_btn input:hover {
  background-color: #000;
  color: #fff;
  transition: all 300ms linear;
}
.contact_cv_btn:hover::after {
  content: "";
  width: 6.04px;
  height: 10.19px;
  display: block;
  border-right: solid 2px #FFFFFF;
  border-radius: 30px;
  position: absolute;
  top: 50%;
  left: 91.2%;
  transform: translate(-50%, -50%);
}

.contact_cv_btn input {
  transition: all 300ms linear;
}

/* 各セクション */
.inner {
  max-width: 1252px;
  margin: 0 auto;
  padding-left: 94px;
  padding-right: 94px;
  box-sizing: content-box;
  position: relative;
}


/* btm_cv */
.btm_cv_wrapper{
  background-image: url(../img/top/Btm_img.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -99;
  margin-bottom: 110px;
}

.btm_cv_inner{
  padding-bottom: 110px;
}

.btm_cv_contents_wrapper{
  padding-bottom: 480px;
}


/* セクションタイトル */
.section_title h3{
  font-size: 48px;
  letter-spacing: 10%;
}

.section_title::after {
  content:"";
  display: block;
  width: 200px;
  height:4px;
  background-color: #333333;
  margin-top: 5px;
}


/* sp-menu */
/* .sp-menu{
  width:100vw;
  height:100vh; 
  position: fixed;      
  top: 0;      
  left: 0;
  transition: all .5s;       
  z-index: 2;
  background-color: #333333;  
  display:none;   
} */

.sp-menu {
	height: 100vh;
	left: 0;
	position: fixed;
	top: 0;
	transform: translateX(100%);
	transition: transform .5s;
	width: 100vw;
	z-index: 2; /*キービジュアルと.btn_triggerとの重なりの前後関係を調整*/
  background-color: #FFFFFF;  
  overflow: hidden;
  opacity: 0;
}
.sp-menu.slide-In {
	transform: translateX(0);
  transition: transform .5s;
}

.sp-menu_inner{
  padding-left: 20px;
  padding-right: 20px;
}

.header_logo_sp {
  width: 16.9%;
  padding-top: 7px;
}
.header_logo_sp > a:hover { 
  opacity: 0.6;
}

.header_gnav_sp_inner{
  padding-left: 20px;
  padding-right: 20px;
}
.header_gnav_sp {
  padding-top:47px;
}
.header_gnav_item_sp{
  margin-bottom:32px;
}

.header_gnav_item_sp > a {
  font-size:18px;
  color: #000000;
  letter-spacing: 1px;;
}

#close_btn{
  display: none;
  width: 20px;
  height: 21px;
  position: relative;
  z-index: 3;
  cursor: pointer;
}
.header_close_btn{
  position: absolute;
    left: 0;
    top: calc(50% - 2px);
    width: 100%;
    height: 3px;
    background-color: #000000;
}

.m_top{
  transform:rotate(-45deg);
  background-color: black;
}

.m_bottom{
  transform:rotate(45deg);
  background-color: black;
}

.noscroll{
  overflow: hidden;
}

/*1.フェードインアニメーションの指定*/
.scrollanime{
  opacity: 0;
} /*一瞬表示されるのを防ぐ*/
.fadeInDown {
    animation-name: fadeInDown;
    animation-duration: .4s;
    animation-fill-mode: forwards;
}
@keyframes fadeInDown {
    0% {
        opacity: 0;         
    }
    100% {
    opacity: 1;
    transform: translate(0);
    }
}
/*2.上下の動きを指定*/
.updown {transform: translateY(-100px);}
.downup {transform: translateY(100px);}
/*3.左右の動きを指定*/
.sect02{overflow: hidden;} /*横スクロールバーを隠す*/
.slide-right {transform: translateX(200px);}
.slide-left {transform: translateX(-200px);}



/*Topに戻る*/
.back-to-top {
  display: none;
  position: fixed;
  right: 2.5%;
  bottom: 2.5%;
  color: #fff;
  padding: 2rem;
  border-radius: 50%;
  display: inline-block;
  text-decoration: none;
  z-index:2;
}

.back-to-top::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  width: 70px;
  height: 70px;
  background-color: #333;
  border-radius: 50%;
  z-index: -1;
}

