/*------------------------------------
.mv
------------------------------------*/
.mv {
	position: relative;
	background-image: url("../images/recruit/mv_pc.webp");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: calc(100% - 7.29vw);
	height: 74.07vh; /* 必要に応じて調整 */
	margin: auto;
	overflow: hidden;
	z-index: 2;
}
.mv::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.3); /* #000 30% */
	z-index: 1;
}
.mv__catch {
	display: flex;
	align-items: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	background-color: #005bac;
	height: 80px;
	font-size: 42px;
	color: #fff;
	white-space: nowrap;
	padding: 0 20px;
	z-index: 2;
}
@media screen and (max-width: 768px) {
	.mv {
		background-image: url("../images/recruit/mv_sp.webp");
	}
	.mv__catch {
		flex-wrap: wrap;
		justify-content: center;
		background-color: transparent;
		height: auto;
		padding: 0;
	}
	.mv__catch span {
		display: flex;
		align-items: center;
		background-color: #005bac;
		width: fit-content;
		height: 45px;
		font-size: 20px;
		line-height: 1;
		padding: 0 10px;
	}
}


/*------------------------------------
#about
------------------------------------*/
#about {
	padding-top: 120px;
}
.about__wrapper {
	position: relative;
}
.about__wrapper .container {
	max-width: 1260px;
}
.about__wrapper .container > * {
	width: 50%;
}
.about__wrapper .img {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
}
.about__wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.about__wrapper .txt {
	margin-right: auto;
	padding: 100px 80px 100px 0;
}
#about p:not(:last-child) {
	margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
	#about {
		padding-top: 50px;
	}
	.about__wrapper .container {
		display: block;
		width: 100%;
		height: auto;
	}
	.about__wrapper .container > * {
		width: 100%;
	}
	.about__wrapper .img {
		position: static;
		height: auto;
		padding-left: 7.29vw;
	}
	.about__wrapper .txt {
		width: calc(100% - 7.29vw);
		margin: auto;
		padding: 30px 0 0;;
	}
}


/*------------------------------------
#works
------------------------------------*/
#works {
	padding-top: 120px;
}
#works .container {
	max-width: 1600px;
}
#works .ttl {
	align-items: center;
}
.works-list {
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}
.works-list li {
	width: calc((100% - 100px) / 3);
}
.works-list h3 {
	font-size: 30px;
	text-align: center;
	color: #005bac;
	margin-bottom: 15px;
}
.works-list .img {
	border-radius: 50vh;
	overflow: hidden;
}
.works-list img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.5s ease;
	transform: scale(1);
}
.works-list a:hover img {
	transform: scale(1.1);
}
.works-list .txt {
	margin-top: 40px;
}
.works-list strong {
	display: block;
	font-size: 25px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	margin-bottom: 10px;
}
.works-list .link {
	display: flex;
	align-items: center;
	position: relative;
	background-color: #ebeff2;
	border-radius: 30px;
	max-width: 250px;
	width: 100%;
	height: 60px;
	margin: 40px auto 0;
	padding-left: 35px;
}
.works-list .link::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 22px;
	transform: translateY(-50%);
	background-image: url("../images/arrow.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 15px;
	height: 15px;
	transition: .3s cubic-bezier(.4,.4,0,1);
}
.works-list a:hover .link::after {
	transform: translate(8px, -50%);
}
@media screen and (max-width: 768px) {
	#works {
		padding-top: 80px;
	}
	.works-list {
		gap: 60px;
	}
	.works-list li {
		width: 100%;
	}
	.works-list h3 {
		font-size: 22px;
	}
	.works-list .txt {
		margin-top: 30px;
	}
	.works-list strong {
		font-size: 18px;
	}
	.works-list .link {
		margin-top: 20px;
	}
}


/*------------------------------------
#person
------------------------------------*/
#person {
	position: relative;
	padding-top: 200px;
	z-index: 1;
}
#person::after {
	content: "";
	position: absolute;
	top: 100px;
	right: 0;
	bottom: 200px;
	left: 0;
	background-color: #ebeff2;
	transform: skewY(-5deg);
	z-index: -1;
}
#person .ttl {
	align-items: center;
	margin-bottom: 50px;
}
#person .container {
	max-width: 1260px;
}
.person-list {
	display: flex;
	gap: 60px;
}
.person-list > li {
	width: calc((100% - 120px) / 3);
}
.person-list a {
	position: relative;
}
.person-list .img{
  border-radius: 20px;
  margin-top: 40px;
  overflow: hidden;
  aspect-ratio: 19 / 23;
}
.person-list .img > img{
  display: block;
  width: 100%;
  height: 100% !important;   /* WPの height:66.67% を上書き */
  object-fit: cover;         /* ★縦長枠いっぱいにする */
  object-position: center;   /* 下を残したいなら center bottom */
  transition: transform 0.5s ease;
  transform: scale(1);
}
.person-list a:hover img {
	transform: scale(1.1);
}
.person-list h3 {
	position: absolute;
	top: 0;
	left: 20px;
	width: 100%;
}
.person-list h3 span {
	display: flex;
	align-items: center;
	background-color: #005bac;
	width: fit-content;
	height: 50px;
	font-size: 25px;
	line-height: 1;
	color: #fff;
	padding: 0 15px;
}
.person-list .arrow {
	position: relative;
	margin-top: 15px;
	padding-left: 20px;
}
.person-list .arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	background-image: url("../images/arrow_bl.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 15px;
	height: 15px;
	transition: .3s cubic-bezier(.4,.4,0,1);
}
.person-list a:hover .arrow::after {
	transform: translate(8px, -50%);
}
.person-list strong {
	display: block;
	font-size: 30px;
	line-height: 1.5;
}
@media screen and (max-width: 768px) {
	#person {
		padding-top: 160px;
	}
	#person::after {
		bottom: 230px;
	}
	#person .container {
		width: 100%;
	}
	.person-list .slick-slide {
		margin: 0 10px;
	}
	.person-list .img {
		margin: 0 0 15px;
	}
	.person-list h3 {
		position: static;
	}
	.person-list h3 span {
		height: 35px;
		font-size: 18px;
	}
	.person-list strong {
		font-size: 22px;
	}
}


/*------------------------------------
#culture
------------------------------------*/
#culture {
	position: relative;
	padding-top: 160px;
	z-index: 1;
}
.culture__wrapper {
	position: relative;
}
.culture__wrapper .container {
	max-width: 1260px;
}
.culture__wrapper .container > * {
	width: 50%;
}
.culture__wrapper .img {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
}
.culture__wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.culture__wrapper .txt {
	margin-left: auto;
	padding: 100px 0 100px 80px;
}
#culture p:not(:last-child) {
	margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
	#culture {
		padding-top: 80px;
	}
	.culture__wrapper .container {
		display: block;
		width: 100%;
		height: auto;
	}
	.culture__wrapper .container > * {
		width: 100%;
	}
	.culture__wrapper .img {
		position: static;
		height: auto;
		padding-right: 7.29vw;
	}
	.culture__wrapper .txt {
		width: calc(100% - 7.29vw);
		margin: auto;
		padding: 30px 0 0;
	}
}


/*------------------------------------
#data
------------------------------------*/
#data {
	position: relative;
	padding-top: 120px;
	z-index: 3;
}
#data .data__inner {
	display: grid;
	grid-template-columns: min(35rem, 29.1666666667vw) 1fr;
	align-items: start;
}
#data .data__inner > * {
	grid-row: 1;
}
#data .container {
	grid-column: 1/-1;
	max-width: 1260px;
	margin: 0 auto;
	padding-top: 120px;
}
#data .img {
	grid-column: 2;
	border-radius: 50vh 0 0 50vh;
	width: 70.05vw;
	overflow: hidden;
	z-index: -1;
}
@media screen and (max-width: 768px) {
	#data {
		padding: 80px 0;
	}
	#data .data__inner {
		grid-template-columns: 100%;
		position: relative;
	}
	#data .container {
		width: 100%;
		align-self: end;
		padding: 0 3.65vw;
	}
	#data .img {
		grid-column: 1;
		position: relative;
		top: 0;
		border-radius: 50vh 50vh 0 0;
		width: 100%;
		margin-bottom: 70px;
	}
	#data .img::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		background-image: linear-gradient(180deg, transparent 0 30%, #FFF 70% 100%);
		width: 100%;
		height: 150px;
	}
}


/*------------------------------------
#faq
------------------------------------*/
#faq {
	position: relative;
	padding: 120px 0;
}
#faq::after {
	content: "";
	position: absolute;
	top: -22.22vh;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #ebeff2;
	z-index: -1;
}
#faq .container {
	max-width: 900px;
}
#faq .ttl {
	align-items: center;
}
.faq__txt {
	text-align: center;
	margin-bottom: 30px;
}
#faq .link a {
	margin: auto;
}
@media screen and (max-width: 768px) {
	#faq {
		padding: 90px 0;
	}
	#faq::after {
		top: 0;
	}
	.faq__txt {
		margin-bottom: 20px;
	}
}
