@charset "UTF-8";

/* mv
---------------------------------------------------------- */
.mv {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100vh;
	background: #efefef;
}
.mv::before,
.mv::after {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	transition: .5s;
	z-index: 2;
}
.mv::before {
	/*background: url(../img/common/bg_dot.png) repeat left top / 7.5px;*/
}
.mv::after {
	/*background: #000;
	opacity: .25;*/
}
.mv video {
	-o-object-fit: cover;
	object-fit: cover;
	position: absolute;
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 1;
}

@media screen and (max-width: 768px) {
	.mv {
		height: auto;
	}
	.mv video {
		position: static;
		height: auto;
	}
}


/* content01
---------------------------------------------------------- */
article .content01_inr {
	overflow: inherit;
	width: 80%;
	margin: 0;
}

@media screen and (max-width: 768px) {
	article .content01_inr {
		width: 82.6%;
	}
}

/* ----------------------
  about
---------------------- */
.about {
	position: relative;
	width: 100%;
	padding: 200px 0 0;
}
.about::before,
.about::after {
	position: absolute;
	content: "";
	right: 0;
	width: 2px;
}
.about::before,
.about::after {
	position: absolute;
	right: 0;
	content: "";
	display: block;
	width: 2px;
	background: #a2a2a2;
	z-index: 0;
}
.about::before {
	top: 0;
	height: 71px;
}
.about::after {
	bottom: -164px;
	height: calc(100% - 26.2vw - 77px + 164px);
}
.about p {
	line-height: 2;
	color: #545454;
}
.about_ttl {
	position: absolute;
	top: 77px;
	right: 0;
	transform: translateX(65%);
}
.about_ttl .en {
	font-size: 6.25vw;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
.about_txt {
	width: 58.8%;
	margin: 0 auto 100px;
}

.about_img {
	column-gap: 120px;
	margin-bottom: 120px;
}
.about_img__inr {
	width: 58%;
}
.about_img__inr ._img {
	width: 100%;
}
.about_img__inr ._txt {
	width: 54.5%;
	margin: 160px auto 80px 35%;
}
.about_img__figure {
	width: 37.7%;
	margin: 213px -57px 0 0;
	z-index: 1;
}

@media screen and (max-width: 768px) {
	.about {
		padding: 42px 0 0;
	}
	.about::before {
		top: 0;
		height: 46px;
	}
	.about::after {
		bottom: -85px;
		height: calc(100% - 195px);
	}
	
	.about_ttl {
		top: 50px;
	}
	.about_ttl .en {
		font-size: 5.6rem;
	}
	.about_txt {
		padding: 0 50px 0 20px;
		width: 100%;
		margin: 0 0 32px;
	}
	
	.about_img {
		gap: 40px 0;
		margin-bottom: 40px;
	}
	.about_img__figure._1st {
		order: 1;
		align-self: flex-start;
		width: 83.8%;
		margin: 0;
	}
	.about_img__figure._2nd {
		align-self: flex-end;
		width: 70.9%;
		margin: 0 -14.5% 0 0;
	}
	.about_img__inr {
		width: 100%;
		padding: 0 50px 0 20px;
	}
	.about_img__inr ._txt {
		width: 100%;
		margin: 0 0 32px;
	}
}


/* slide */
.home .about_slide {
	width: 81.25vw;
	margin-left: 40px;
	padding-bottom: 90px;
}

.home .swiper-button-prev,
.home .swiper-button-next {
	position: absolute;
	top: auto;
	bottom: 90px;
	left: auto;
	width: 61px;
	height: 65px;
}
.home .swiper-button-prev::after,
.home .swiper-button-next::after {
	display: none;
}
.home .swiper-button-prev {
	right: 149px;
	background: url(../img/common/arw_swiper_prev.png) no-repeat center / contain;
}
.home .swiper-button-next {
	right: 77px;
	background: url(../img/common/arw_swiper_next.png) no-repeat center / contain;
}
.home .swiper-scrollbar {
	position: static !important;
	width: 400px !important;
	margin-top: 28px;
	background-color: #fff;
	border-radius: 0;
	height: 4px;
	filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.10)) drop-shadow(2px 6px 6px rgba(0, 0, 0, 0.09)) drop-shadow(4px 14px 9px rgba(0, 0, 0, 0.05)) drop-shadow(7px 25px 10px rgba(0, 0, 0, 0.01)) drop-shadow(10px 39px 11px rgba(0, 0, 0, 0.00));
	cursor: pointer;
}
.home .swiper-scrollbar-drag {
	background-color: #000 ;
}

@media screen and (max-width: 768px) {
	.home .about_slide {
		width: calc(100vw - 40px);
		margin-left: 20px;
		padding-bottom: 60px;
	}
	.home .swiper-scrollbar,
	.home .swiper-scrollbar-drag {
		display: none !important;
	}
	.home .swiper-button-prev,
	.home .swiper-button-next {
		width: 48px;
		height: 48px;
		bottom: 34px;
	}
	.home .swiper-button-prev{
		right: 73px;
	}
	.home .swiper-button-next {
		right: 15px;
	}
}


/* ----------------------
  service
---------------------- */
.service {
	padding-bottom: 60px;
}
.service .ttl01 {
	width: 58.8%;
	margin: 0 auto;
}
@media screen and (min-width: 769px) {
	.specialty_en{
		font-size:10rem !important;
	}
	.specialty_ja{
		font-size:3.5rem !important;
	}

}
@media screen and (max-width: 768px) {
	.service{
		padding: 0;
	}
	.service_inr {
		padding-bottom: 14px;
		border-bottom: none;
	}
	.service .ttl01 {
		width: calc(100% - 40px);
	}
}


/* service lists */
.service_lists {
	position: relative;
	flex-wrap: wrap;
	padding: 8px 20px 170px;
}
.service_lists::before {
	position: absolute;
	top: -40px;
	left: 0;
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background: #393939;
	z-index: 2;
}
.service_list {
	position: relative;
	width: calc(100% / 3);
}
.service_list.list01,
.service_list.list02 {
	height: 50vw;
}
.service_list.list03,
.service_list.list04,
.service_list.list05 {
	height: 33.33vw;
}
.service_list__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.service_list__link:hover {
	opacity: 1;
}
.service_list__txt {
	position: relative;
	color: #fff;
	text-align: center;
	line-height: 2;
	z-index: 1;
}
.service_list__txt::before {
	position: absolute;
	top: -85%;
	left: -13%;
	counter-increment: number 1;
	content: counter(number, decimal-leading-zero);
	line-height: 1;
	letter-spacing: 0.02em;
	font-family: "Outfit", sans-serif;
	font-optical-sizing: auto;
	font-weight: 100;
	font-size: 12.0rem;
	opacity: .45;
}
.service_list__txt ._sttl {
	font-size: 5.0rem;
}
.service_list__txt ._txt {
	font-size:2.2rem;
	color:#393939;
	margin:20px 0 0;
	position:relative;
}
.service_list__txt ._txt::before{
	content:"";
	background: rgb(255,255,255);
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 75%, rgba(255,255,255,0) 100%);
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	margin:auto;
	z-index:-1;
	width:300px;
	left: calc(50% - 150px);
}
/*.list01 .service_list__txt ._txt::before,
.list05 .service_list__txt ._txt::before{
	width:250px;
	left: calc(50% - 125px);
}
.list02 .service_list__txt ._txt::before,
.list03 .service_list__txt ._txt::before{
	width:300px;
	left: calc(50% - 150px);
}
.list04 .service_list__txt ._txt::before{
	width:320px;
	left: calc(50% - 160px);
}*/
.service_list__bg::before,
.service_list__bg::after {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	transition: .5s;
}
.service_list__bg::before {
	/*background: url(../img/common/bg_dot.png) repeat left top / 7.5px;*/
	z-index: 0;
}
.service_list__bg::after {
	background: #000;
	opacity: .25;
	z-index: 0;
}
.service_list__link:hover .service_list__bg::before {
	opacity: 0;
}
.service_list__link:hover .service_list__bg::after {
	opacity: .5;
}
.service_list__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.service_list__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}

@media screen and (max-width: 768px) {
	.service_lists {
		padding: 34px 20px 48px;
		border-top: solid 2px #393939;
	}
	.service_lists::before {
		display: none;
	}
	.service_list {
		position: relative;
		width: 100% !important;
	}
	.service_list.list01,
	.service_list.list02,
	.service_list.list03,
	.service_list.list04,
	.service_list.list05 {
		height: 250px;
	}
	.service_list__link {
		position: relative;
		justify-content: flex-start;
	}
	.service_list__txt {
		position: static;
		/*padding-left: 30px;*/
		text-align:left;
		margin-top: 18px;
		width:100%;
	}
	.service_list__txt::before {
		position: absolute;
		top: 40px;
		left: 16px;
		font-size: 8.0rem;
	}
	.service_list__txt ._sttl {
		font-size: 3.6rem;
		padding-left:40px;
	}
	.service_list__txt ._txt{
		text-align:center;
		font-size:1.8rem;
	}
	.service_list__txt ._txt::before{
		background:rgb(255,255,255);
		background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 75%, rgba(255,255,255,0) 100%);
	}
	.service_list__txt ._txt::before{
		left:calc(50% - 145px);
	}
}


/* recruit
---------------------------------------------------------- */
.recruit {
	position: relative;
	padding: 80px 0 160px;
	background: url(../img/top/bg_recruit.png) no-repeat center / cover;
	color: #fff;
}
.recruit::before,
.recruit::after {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
}
/*.recruit::before {
	background: rgb(0,0,0);
	background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}
.recruit::after {
	background: url(../img/common/bg_dot.png) repeat left top / 7.5px;
}*/
.recruit_inr {
	position: relative;
	text-align: center;
	z-index: 2;
}
.recruit .ttl01 .en {
	margin-bottom: 24px;
	color: #fff;
}
.recruit__sttl {
	margin-top: 20px;
	line-height: 2;
	font-size: 2.8rem;
	font-weight: 500;
}
.recruit__txt {
	margin: 48px 0 80px;
	line-height: 2;
}

@media screen and (max-width: 768px) {
	.recruit {
		padding: 42px 0 56px;
	}
	.recruit__sttl {
		margin-top: 32px;
		font-size: 2.0rem;
	}
	.recruit__txt {
		margin: 24px 0 40px;
	}
}


/* interview
---------------------------------------------------------- */
.interview {
	padding: 70px 0 138px;
}

.home .interview_slide {
	position: relative;
	margin-top: 58px;
	padding-bottom: 165px;
}
.interview_slide .swiper-slide {
	position: relative;
	width: 29.1vw;
	transition: .5s;
}
.interview_slide .swiper-slide figure {
	text-align: center;
}
.interview_slide .swiper-slide img {
	width: 20.8vw;
	height: auto;
	margin-top: 20px;
	transition: .5s;
}
.interview_slide .swiper-slide.swiper-slide-active img {
	width: 100%;
	margin-top: 0;
}
.interview_slide .swiper-button-prev {
	right: calc(16.6% + 75px);
	top: calc(27.1vw + 195px);
}
.interview_slide .swiper-button-next {
	right: calc(16.6% - 5px);
	top: calc(27.1vw + 195px);
}
.interview_slide .swiper-scrollbar {
	position: absolute !important;
	top: calc(27.1vw + 254px) !important;
	right: 16.6%;
	left: auto !important;
	bottom: auto !important;
	width: 132px !important;
	margin-top: 0;
}

.staff_list__txt {
	position: absolute;
	right: 40px;
	bottom: -80px;
	padding: 20px 40px;
	border-radius: 4px;
	background: #fff;
	box-shadow: 17px 64px 19px 0px rgba(0, 0, 0, 0.00), 11px 41px 17px 0px rgba(0, 0, 0, 0.01), 6px 23px 14px 0px rgba(0, 0, 0, 0.05), 3px 10px 11px 0px rgba(0, 0, 0, 0.09), 1px 3px 6px 0px rgba(0, 0, 0, 0.10);
	color: #1D1D1D;
}
.interview_slide .swiper-slide.swiper-slide-active .staff_list__txt  {
	right: -45px;
	bottom: -110px;
}
.staff_list__name {
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: solid 2px #B3B3B3;
	font-family: "Outfit", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
	font-size: 2.4rem;
}
.staff_list__join {
	color: #545454;
	line-height: 2;
	font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
	.interview {
		margin-top: 40px;
		padding: 53px 0;
	}
	.home .interview_slide {
		padding-bottom: 65px;
	}
	.interview_slide .swiper-slide {
		width: 100%;
		padding: 0 55px 94px;
		box-sizing: border-box;
	}
	.interview_slide .swiper-slide img {
		width: 100%;
		height: auto;
		margin: 0;
	}
	.interview_slide .swiper-button-prev {
		right: auto;
		left: 15px;
		top: auto;
		bottom: 80px;
	}
	.interview_slide .swiper-button-next {
		right: auto;
		left: 72px;
		top: auto;
		bottom: 80px;
	}
	.staff_list__txt,
	.interview_slide .swiper-slide.swiper-slide-active .staff_list__txt {
		bottom: 0;
		right: 20px;
		padding: 10px 20px 20px;
		border-radius: 6px;
		background: #fff;
		box-shadow: 32px 121px 35px 0px rgba(0, 0, 0, 0.00), 21px 77px 32px 0px rgba(0, 0, 0, 0.01), 12px 43px 27px 0px rgba(0, 0, 0, 0.05), 5px 19px 20px 0px rgba(0, 0, 0, 0.09), 1px 5px 11px 0px rgba(0, 0, 0, 0.10);
	}
	.staff_list__name {
		padding-bottom: 8px;
		margin-bottom: 8px;
	}
}


/* news
---------------------------------------------------------- */
.news .news_inr {
	column-gap: 80px;
	margin: 180px auto 160px;
}

.cate_lists {
	margin-bottom: 48px;
	border-top: solid 1px #B3B3B3;
}
.cate_list__link {
	padding: 8px 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: solid 1px #B3B3B3;
}
.cate_list__link::after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: #616161;
}

@media screen and (max-width: 768px) {
	.news .news_inr {
		gap: 40px 0;
		margin: 32px auto 56px;
	}
	.cate_lists {
		width: 240px;
		margin: 0;
	}
	.cate_list__link {
		font-size: 1.6rem;
	}
}


/* news lists */
.news_lists {
	flex: 1;
	border-top: solid 1px #B3B3B3;
}
.news_list {
	border-bottom: solid 1px #B3B3B3;
}
.news_list__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	column-gap: 32px;
	padding: 48px 0;
	color: #1D1D1D;
}
.news_list__date {
	font-family: "Outfit", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-size: 1.9rem;
}
.news_list__cate {
	padding: 6px 20px;
	background: #616161;
	border-radius: 50vh;
	color: #fff;
	line-height: 1;
	font-size: 1.3rem;
}
.news_list__ttl {
	flex: 1;
	line-height: 2;
	font-size: 2.1rem;
	font-weight: 500;
}

@media screen and (max-width: 768px) {
	.news_lists {
		flex: 0 auto;
		width: 100%;
	}
	.news_list__link {
		flex-wrap: wrap;
		padding: 24px 0;
	}
	.news_list__cate {
		background: #000;
	}
	.news_list__date {
		font-size: 1.5rem;
	}
	.news_list__ttl {
		flex: 0 auto;
		width: 100%;
		font-size: 1.9rem;
	}
}