@charset "utf-8";
.mainVisual{
	width: 100%;
	height: 100vh;
	position: relative;
}
.videoArea{
	width: 100%;
	height: 100%;
	position: relative;
}
video{
	width: 100%;
	height: 100vh;
	    object-fit: cover;
}

.topTtl{
	position: absolute;
	bottom: 10%;
	left: 5%;
	font-family: montserrat, sans-serif;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.04em;
}

h2{
	font-size: 2.8rem;
	font-weight: 700;
	color: #fff;
    letter-spacing: 0.01em;
	position: relative;
	font-weight: 100;
	display: inline-block;
	margin-bottom: 44px;
}
h2::before{
	content: "";
	display: block;
	position: absolute;
	bottom: -1rem;
	left: 0;
	width: 100%;
	height: 2px;
	background: #fff;;
}
#service , #type , #facility , #company{
	display: block;
	padding-top: 80px;
}
.topTtl img{
	  vertical-align: top;
  max-width: 100%;
  height: 100%;
}
/*----------------------------------------------------------------------
bg
----------------------------------------------------------------------*/
.bg{
	padding: 160px 0 0;	
}
/*----------------------------------------------------------------------
intro
----------------------------------------------------------------------*/
.introTtl{
	font-size: 4rem;
	color: #fff;
	text-align: center;
	margin-bottom: 44px;
		letter-spacing: 0.08em;
}
.introTxt{
	text-align: center;
	color: #fff;
	font-size: 2.2rem;
	line-height: 1.78;
	letter-spacing: 0.08em;
	margin-bottom: 160px;
}
/*----------------------------------------------------------------------
cnt-sec
----------------------------------------------------------------------*/
.cnt-sec{
	color: #fff;
}
.cntArea{
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-bottom: 180px;
}

.cntArea:last-child {
	margin-bottom: 300px;
}
.cntArea .cnt{
	width: 45%;
}
.cntArea .img{
	width: 48%;
}


.cntArea .video {
	width: 48%;
	height: 100%;
}
.cntArea .video video{
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.cnt-enTtl {
	width: 100%;
	max-width: 400px;
	height: 110px;
	text-align: left;
	margin-bottom: 44px;
}

.cntTtl{
	font-family: "游明朝","Yu Mincho","游明朝体","YuMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
	font-weight: 400;
	font-size: 3rem;
	margin-bottom: 22px;
	letter-spacing: 0.08em;
}


.cntTxt{
	font-size: 2rem;
	width: 100%;
	max-width: 85%;
	letter-spacing: 0.08em;
}

/*----------------------------------------------------------------------
cntbtn
----------------------------------------------------------------------*/
.cntBtn{
	display: inline-block;
	position: relative;
	margin-top: 80px;
	margin-left: 90px;
	font-size: 2rem;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
	
}  
.cntBtn::before{
	content: "";
	width: 70px;
	height: 70px;
	display: block;
	border: 1px #fff solid;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(-120% , -50%);
	-webkit-transform: translate(-120% , -50%);
	border-radius: 50%;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
}
.cntBtn::after {
	content: "\2192";
	font-size: 2rem;
	color: #fff;
	position: absolute;
	left: -48%;
	top: 50%;
	transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
   }
.cntBtn:hover::after{
	left: -40%;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
	
}
.cntBtn:hover {
	opacity: .5;
}  

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

.scroll-infinity__wrap {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  overflow: hidden;
}

.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0;
}

.scroll-infinity__list--left {
  animation: infinity-scroll-left 60s infinite linear 0.5s both;
}

.scroll-infinity__item {
  width: 30vw;
}

.scroll-infinity__item>img {
  width: 100%;
}
/*----------------------------------------------------------------------
companyBtnArea
----------------------------------------------------------------------*/
.companyBtnArea ul li{
	border-bottom: 1px #fff solid;
}
.companyBtnArea ul li a{
	width: 100%;
	height: 100%;
	display: block;
	padding: 20px 0;
	position: relative;
	color: #fff !important;
}
.companyBtnArea ul li a:hover{
	opacity: .5;
}
.companyBtnArea ul li:first-child{
	border-top: 1px #fff solid;
}

.companyBtnArea ul li a::after{
	content: "\2192";
	font-size: 2rem;
	color: #fff;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
}
.companyBtnArea ul li:hover a:after{
	right: 0;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
}


@media all and (min-width: 1600px){
.inner{
	width: 100%;
	max-width: 90%;
	padding: 0 2%;
	margin: 0 auto;
}
.topTtl{
	position: absolute;
	bottom: 10%;
	left: 5%;
	font-family: montserrat, sans-serif;
	font-size: 2vw;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.04em;
	opacity: .8;
}
}

@media all and (min-width: 1024px) and  (max-width: 1280px){



}
@media all and (min-width: 767px) and (max-width: 1023px){

}
@media all and (max-width: 821px) {

.mainVisual{
	width: 100%;
	height: 100vh;
	position: relative;
}
.videoArea{
	width: 100%;
	height: 100%;
	position: relative;
}
video{
	width: 100%;
	height: 100vh;
	object-fit: cover;
}

.topTtl{
	position: absolute;
	bottom: 5%;
	left: 5%;
	font-family: montserrat, sans-serif;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.04em;
}

h2{
	font-size: 2.2rem;
	font-weight: 700;
	color: #fff;
    letter-spacing: 0.01em;
	position: relative;
	font-weight: 100;
	display: inline-block;
	margin-bottom: 44px;
}
h2::before{
	content: "";
	display: block;
	position: absolute;
	bottom: -1rem;
	left: 0;
	width: 100%;
	height: 2px;
	background: #fff;;
}
.topVisual{
		width: 100%;
		height: 100vh;
	}
	.topTtl img{
	  vertical-align: top;
	  max-width: 80%;
	  height: 100%;
}
#service , #type , #facility , #company{
	display: block;
	padding-top: 44px;
}
/*----------------------------------------------------------------------
bg
----------------------------------------------------------------------*/
.bg{
	padding: 60px 0 0;	
}
/*----------------------------------------------------------------------
intro
----------------------------------------------------------------------*/
	.intro-sec{
		padding: 0 3%;
	}
.introTtl{
	font-size: 2.4rem;
	color: #fff;
	text-align: center;
	margin-bottom: 22px;
		letter-spacing: 0.08em;
}
.introTxt{
	text-align: justify;
	color: #fff;
	font-size: 1.6rem;
	line-height: 1.78;
	letter-spacing: 0.08em;
	margin-bottom: 22px;
}
/*----------------------------------------------------------------------
cnt-sec
----------------------------------------------------------------------*/
.cnt-sec{
	color: #fff;
}
.cntArea{
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-bottom: 22px;
	flex-direction: column-reverse;
	align-items: flex-start; /* 追加 */
}
	.cntArea-revers{
		flex-direction: column;
	}
.cntArea:last-child {
	margin-bottom: 88px;
}
.cntArea .cnt{
	width: 100%;
}
.cntArea .cnt{
	width: 100%;
	margin-bottom: 22px;
	width: 100%;
	height: auto;
}
	.cnt.img img {
    width: 100%;  /* 親要素の幅にフィット */
    height: auto; /* 縦横比を維持 */
    display: block; /* 余計な余白を防ぐ */
    max-width: 100%; /* 画像が親要素より大きくならないようにする */
}
.cnt-enTtl {
	width: 100%;
	max-width: 70%;
	height: 60px;
	text-align: left;
	margin-bottom: 22px;
}

.cntTtl{
	font-family: "游明朝","Yu Mincho","游明朝体","YuMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
	font-weight: 400;
	font-size: 1.8rem;
	margin-bottom: 22px;
	letter-spacing: 0.08em;
}


.cntTxt{
	font-size: 1.6rem;
	width: 100%;
	max-width: 100%;
	letter-spacing: 0.08em;
}

/*----------------------------------------------------------------------
cntbtn
----------------------------------------------------------------------*/
.cntBtn{
	display: inline-block;
	position: relative;
	margin-top: 50px;
	margin-left: 60px;
	font-size: 2rem;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
	color: #FFF !important;
	
}  
.cntBtn::before{
	content: "";
	width: 44px;
	height: 44px;
	display: block;
	border: 1px #fff solid;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(-120% , -50%);
	-webkit-transform: translate(-120% , -50%);
	border-radius: 50%;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
}
.cntBtn::after {
	content: "\2192";
	font-size: 2rem;
	color: #fff;
	position: absolute;
	left: -32%;
	top: 50%;
	transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
   }
.cntBtn:hover::after{
	left: -32%;
	transition: all .5s ease;
	-webkit-transition: all .5s ease;
	
}
.cntBtn:hover {
	opacity: .5;
} 
.scroll-infinity__item {
  width: 60vw;
}
}
@media all and (max-width: 480px) {

}
