@charset "UTF-8";
/****************************************
contents
*****************************************/
main{ overflow: hidden;}

a:hover{text-decoration:none}

.hero{
	margin-bottom: 60px;
	max-height: 760px;
	overflow: hidden;
	position:relative;
}

.hero__img{
	height: auto;
	width: 100%;
}

.site-logo{
    line-height: 1.6;
    font-size: clamp(.8rem, 0.9rem , 1rem);
    font-weight: 700;
    display: flex;
    align-items: center;
}
.site-logo img{
	max-width:80px;
}

.brandlogo{width: 20vw;}
.hero_catch{
	white-space: nowrap;
	text-shadow: 2px 2px 10px #FFF, -2px 2px 10px #FFFF, 2px -2px 10px #FFF, -2px -2px 10px #FFF;
	line-height:1.5
}


.hero_logo{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
    margin: auto;
}

.h1title{
    white-space: nowrap;
    margin: 0 14px 5px;
}

.sec{
	margin-bottom:66px;
	position: relative;

}

.bg01 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 50vh 0vw 50vh 83vh;
    border-color: transparent transparent transparent #F2F2F2;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.bg02 {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 50vh 83vh 50vh 0;
    border-color: transparent #F2F2F2 transparent transparent;
    overflow: hidden;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}


.text-center,
.page-title{
	text-align: center;
}

.page-title__title{
	color: #333;
	font-size: 36px;
	font-weight: 700;
	margin-bottom: 40px;
}

.footlogo{max-width:185px;width:100%}



.midashi-under {
  position: relative;
  display: block;
  padding-bottom: 20px;

}
.midashi-under:after {
  content: '';
  position: absolute;
  bottom: 15px;
  display: inline-block;
  width: 60px;
  height: 3px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: black;
  border-radius: 2px;
}


/****************************************
chapter01
*****************************************/
.animation-box:nth-child(odd){
	background: #eee;
}

.animation-box{
	padding: 120px;
	transition:.5s;
}

.animation-box.active{
	background: #666;
	color: #fff;
}

/****************************************
chapter02
*****************************************/
.img-container{
	overflow: hidden;
	position: relative;
}


.img-container__img{
	display: block;
	opacity: 0;
	opacity: 1;
	position: relative;
	transition:all .5s .3s ease; 
	z-index: 0;
}

.img-container:before{
	background: #333;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	transform: translateX(-100%);
	transition:all .8s 0s ease; 
	width: 100%;
	z-index: 1;		
}


.text-container{
	padding:0 60px;
}

.text-container__title{
	color: #333;
	display: inline-block;
	font-weight: 700;
	overflow: hidden;
	position: relative;
	z-index: 0;
	letter-spacing: 2px;
}

.text-container__title:before{
	background: #333;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	transform: translateX(-100%);
	transition:all .8s .3s ease; 
	width: 101%;
	z-index: 1;
}

.text-container__title__inner{
	display: inline-block;
	opacity: 0;
	transition: all .8s .8s ease;
}

.text-container__text{
	left: -50px;
	opacity: 0;
	position: relative;
	transition: all .5s .8s ease;
}

/*アニメーションするプロパティを設定します*/
.img-container.active img{
	opacity: 1;
}


.img-container.active:before{
	transform: translateX(100%);	
}

.text-container.active .text-container__title:before{
	transform: translateX(100%);
}

.text-container.active .text-container__title__inner{
	opacity: 1;
}

.text-container.active .text-container__text{
	left: 0;
	opacity: 1;
}

.text-grad {
  background: linear-gradient(110deg, #ffd800, #ff0000 45%, #ffd800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: rgba(255,255,255,0.0);
  color: #ff0000;
}

#gallery{
	line-height:0;
}

.company{line-height:1.6;font-size:90%;}

.c-name a{color:#FFF}


.ullist{
	list-style: disc;
	margin-left: 1.3em;
    font-size: .89rem;
}
.ullist li{
	list-style: disc;
}

#gmap{
	line-height: 0;
}


/*IEで未対応の場合は以下で背景を非表示に*/
@media all and (-ms-high-contrast:none){
  .text-grad {
    background: none;
  }
}

.fa{
	font-weight: 900 !important;
}

.fs1{
    font-size: clamp(1.4rem, 1.4rem + 0.91vw, 1.5rem);
}
.fs2{
    font-size: clamp(2.0rem, 2.0rem + 0.91vw, 5.0rem);
}

.footer-nav__item__link{
	position:fixed;
	right:15px;
	bottom:15px;
	font-size: 39px;
	line-height: 0;
	cursor: pointer;
}




@media screen and (max-width:768px){
	.text-container{
		padding:0 15px;
	}




	.site-header:before{
	    content: '';
	    position: absolute;
	    top: 0;
	    left: 0;
	    border-top: 6vw solid #000;
	    border-right: 4vw solid transparent;
	}

	.site-header.flex{
		display: block;
	}
	.lg-disp{display:none;}

	/*画面幅100%*/
	.gnav {
	  width: 100vw;
	  position: relative;
	  left: 50%;
	  right: 50%;
	  margin-left: -50vw;
	  margin-right: -50vw;
	}
	.gnav__menu{
		display: flex;
    	flex-wrap: wrap;
		margin-top: 10px;
		margin-bottom: 10px;

	}

	.gnav__menu__item{
		margin:0;
		flex: 1;
		text-align:center;
		display:block;
	}


	.gnav__menu__item__link{
		padding:2px 4px;
		display:block;
		font-size: 14px;
		line-height: 1.1;
	}

	ul.gnav__menu li:nth-child(n+2){
		border-left: solid 1px #DDDDDD;
	}


}
.sp_br{
	display:none;
}

@media screen and (max-width: 599px){
	.br_none {
	    display: none!important;
	}
	.sp_br{
	    display: block!important;
	}
	.site-logo{
		display: block;
		text-align:center;
		line-height: 1;
	}
	.site-header{
	    padding:5px 0;
	}

	.site-header:before {
	    border-top: 12vw solid #000;
	    border-right: 6vw solid transparent;
	}

	.h1title {
	    position: relative;
	    top: -6px;
	}
}