@charset "utf-8";
/* CSS Document */
/*====================
 - 1280px〜：大型PC
 - 960px〜1279px：小型PC
 - 600px〜959px：タブレット
 - 480px〜599px：スマートフォン横
 - 〜479px：スマートフォン縦
====================*/

/*---front-------------------------------------------------------*/
.home main{
	margin-bottom: 12rem;
}
@media screen and (min-width:899px) {
	.home main{
		margin-bottom: 16rem;
	}
}

/*** hero ***/
.home section.hero {
	position: relative;
	margin-top: 0;
	padding-top:0;
}
.hero .hero_slider {
	margin-inline: auto;
	overflow: hidden; /* 画像がはみ出ないようにする */
}
.hero .hero_slider img {
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: 50% 50%;
    overflow: hidden;
}
.hero .hero_slider li {
	width: 100%;
}
@keyframes zoomUp {
	0% {
		transform: scale(1);
	}
	100% {
	  transform: scale(1.1); /* 拡大率 */
	}
}
/*.add-animation {
	animation: zoomUp 10s linear 0s normal both;
}*/
.catch {
	position: absolute;
	line-height: 1.8;
	font-size: clamp(2rem, 3.8vw, 3.6rem);
	letter-spacing: .2rem;
	z-index: 2;
	bottom: 14vh;
	right: 2vw;
	color: #fefefe;
	/*text-shadow: 0px 0px 20px #555;*/
}
@media screen and (min-width:1000px) {
	.catch {
	  letter-spacing: .2rem;
	}
}
/***** home_common ******/
.home_content{
	margin-bottom: 200px;
}

/*** home_about ***/
#home_about::before{
	content: '';
	position: absolute;
	width: 70vw;
	height: 50vh;
	bottom: 3vh;
	right: 0;
	background: url('../img/pentagon_gray.svg') no-repeat;
}
#home_about .home_about_wrap{
	position: relative;
}
#home_about .img_wrap{
	position: relative;
}
#home_about .text_area a{
	margin-top: 3.2rem;
}
@media screen and (min-width:1024px){
	#home_about::before{
		width: 60vw;
		height: 50vh;
		bottom: 3vh;
		right: 0;
	}
}
@media screen and (max-width:799px){
	#home_about::before{
		width: 92vw;
		height: 50vh;
		bottom: 3vh;
		right: 0;
	}
	#home_about .text_area{
		width: 90%;
		margin: 0 auto;
	}
	#home_about .text_area{
		margin-bottom: 4rem;
	}
	#home_about .text_area a{
		margin: 3.2rem auto 0;
	}
	#home_about .home_about_right{
		width: 95%;
		margin: 0 0 4rem auto;
	}
}
@media screen and (min-width:800px){
	#home_about .home_about_wrap{
		display: grid;
		grid-template-columns: 15% repeat(2, 35%) 15%;
		grid-template-rows: 40% repeat(3, 3%) 40%;
		grid-column-gap: 0px;
		grid-row-gap: 0px;
	}
	#home_about .text_area01 { grid-area: 1 / 2 / 2 / 3; }
	#home_about .home_about_right {
		 grid-area: 1 / 3 / 4 / 5;
		 width: 84%;
		 margin: 0 0 0 auto;
	}
	#home_about .home_about_left {
		grid-area: 3 / 1 / 6 / 3;
		width: 76%;
		margin-top: 8rem;
	}
	#home_about .text_area02 {
		grid-area: 5 / 3 / 6 / 4;
		
	}
	#home_about .text_area02 .text_box{
		bottom: 0;
		position: absolute;
		width: 32vw;
	}
	h2 .jp{
		font-size: clamp(2.4rem,3.2vw,4.8rem);
	}
}

/*** home_service ***/
main section#home_link{
	margin-top: 120px;
}
#home_link .banner_wrap,#home_link .sns_banner{
	display: flex;
	flex-wrap:wrap;
	justify-content: space-between;
	margin-top: 3.6rem;
	margin-bottom: 3.6rem;
}
.home_banner,.sns_banner li{
	overflow: hidden;
    position: relative;
    width: 48%;
	margin: 2% 0;
}
.home_banner a{
	display: block;
    position: relative;
    width: 100%;
	height: clamp(28rem,24vw,40rem);
    padding: 22% 0;
    transition: .3s;
}
.home_banner a:before{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: cover;
    content: '';
    transition: .3s;
}
.home_banner a:after{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: '';
    transition: .3s;
	background: #000;
    opacity: 0.5;
}
.home_banner a .text_box{
	position: absolute;
    left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
    color: #fff;
	z-index: 2;
}
.home_banner a h2{
	margin-bottom: 0;
}
.home_banner a h2 .jp{
	font-size: clamp(2.4rem,3.6vw,3.6rem);
}
.home_banner a h2 .en::before{
	background-color: #fefefe;
	top: calc(18% - .1vw);
}
.home_company a .btn::before{
	content: '';
	position: absolute;
	width: 10rem;
	height: .2rem;
	background-color: #fefefe;
}
.home_company a::before{
	background: url("../img/link_company.webp") no-repeat 50% 50%/cover;
}
.home_recruit a::before{
	background: url("../img/link_recruit.webp") no-repeat 50% 50%/cover;
}
.home_banner a:hover:before{
  transform:scale(1.1,1.1);
  transition:.6s all;	
}
.home_banner a:hover:after{
	opacity: 0.2;
}
.sns_banner li a{
	display: grid;
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	border: 1px solid #bcbcbc;
    padding: 1.6vw;
	font-size: clamp(2.4rem,2.8vw,4rem);
	font-weight: 500;
}
.sns_banner li a span{
	text-align: center;
}
@media screen and (max-width:699px) {
	#home_link .wrap,#home_link .sns_banner{
		display: block;
	}
	.home_banner,.sns_banner li{
		width: 100%;
	}
}

.home .list_wrap .list_item{
    position: relative;
    cursor: pointer;
	overflow: hidden;
	transition: 0.3s; 
}
.home .list_wrap .list_item a{
	height: 100%;
}
.home .list_wrap .list_item a:before{
	width: 100%;
    height: 100%;
    content: "";
    opacity: 0.8;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, transparent), color-stop(40%, transparent), to(#000));
    background: -webkit-linear-gradient(top, transparent 20%, transparent 40%, #000 100%);
    background: linear-gradient(to bottom, transparent 20%, transparent 40%, #000 100%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
.home .list_img img{
	width: 100%;
	height: 446px;
	object-fit: cover;
}
.home .list_wrap .list_item .list_title{
	position: absolute;
    bottom: 0;
    left: 2rem;
	right: 2rem;
    color: #fff;
	z-index: 2;
	width: fit-content;
}
.home .list_wrap .list_item .list_title h3{
	transition: transform 0.3s; 
}
.home .list_wrap .list_item .list_title h3::before {
    position: absolute;
    left: 0;
    bottom: 0;
    background: #ffffff;
    content: "";
    width: 100%;
    height: 1px;
    z-index: 2;
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
    -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.32, 0.94, 0.6, 1);
    transition: -webkit-transform 0.6s cubic-bezier(0.32, 0.94, 0.6, 1);
    transition: transform 0.6s cubic-bezier(0.32, 0.94, 0.6, 1);
    transition: transform 0.6s cubic-bezier(0.32, 0.94, 0.6, 1), -webkit-transform 0.6s cubic-bezier(0.32, 0.94, 0.6, 1);
	transform: scale(0, 1);  
	transition: 0.3s; 
}
.home .list_wrap .list_item:hover .list_title h3::before{
	transform: scale(1, 1);
}