@charset "utf-8";
.content_area{
	padding:0 30px 100px;
	margin:auto;
	max-width: 1160px;
	position: relative;
}
.content_area::before{
	position: absolute;
	content: '';
	left: calc(50% - var(--vw-50));
	width: var(--vw-100);
	height: 100%;
	background: #F5F5F5;
	top: 0;
	right: 0;
	z-index: -10;
}
.title_box{
	margin: auto;
	padding: 0 30px;
	background: url(/recruit/img/common/h1.jpg) no-repeat center/cover;
	width: 100%;
	min-height: 275px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 37px;
}
.about .title_box{background-image: url(/recruit/img/about/h1.jpg);}
.works .title_box{background-image: url(/recruit/img/works/h1.jpg);}
.interview .title_box{background-image: url(/recruit/img/interview/h1.jpg);}
.jobs .title_box{background-image: url(/recruit/img/jobs/h1.jpg);}
.environment .title_box{background-image: url(/recruit/img/environment/h1.jpg);}
.faq .title_box{background-image: url(/recruit/img/faq/h1.jpg);}
.requirement .title_box{background-image: url(/recruit/img/requirement/h1.jpg);}
.page_title{
	font-weight:300;
	font-size:3.2rem;
	letter-spacing:3.2px;
	line-height: 4.6rem;
	color: #fff;
	text-align: center;
}
.page_title::before{
	content:attr(data-slug);
	width:100%;
	text-transform:uppercase;
	display: block;
	font-family: var(--font_poppins);
	font-size: 1.5rem;
	letter-spacing: 1.5px;
	line-height: 2.1rem;
}
h2{
	font-size:3.2rem;
	letter-spacing: 3.2px;
	line-height: 5rem;
	margin:80px 0 23px;
	padding-top: 40px;
	border-top: 1px solid #333;
}
h3{
	font-size:2.4rem;
	letter-spacing: 2.4px;
	line-height: 3.6rem;
	margin:45px 0 15px;
}
h4{
	font-size: 2rem;
	letter-spacing: 2px;
	line-height: 3rem;
	margin:45px 0 15px;
}
p{
	margin-bottom:15px;
	font-size: 1.6rem;
	letter-spacing: 1.6px;
	line-height: 3.2rem;
}
ul, ol{
	padding-left:20px;
}
ul li{list-style:disc;}
ol li{list-style:decimal;}
li{
	font-size: 1.6rem;
	letter-spacing: 1.6px;
	line-height: 3.2rem;
	margin-bottom: 5px;
}
table{
	width:100%;
	border-top:1px solid #ccc;
	margin-bottom: 20px;
}
th, td{
	padding:14px 20px;
	border-bottom:1px solid #ccc;
	vertical-align:top;
	font-size: 1.4rem;
	letter-spacing: 1.4px;
	line-height: 2.1rem;
	position: relative;
}
th{
	width:210px;
	font-weight:500;
	text-align:left;
}
th::after, td::after{
	content: '';
	position: absolute;
	width:1px;
	background: #ccc;
	top: 17px;
	bottom: 17px;
	right: 0;
	margin: auto;
}
th:last-child::after,td:last-child::after{content: none;}
td *:last-child{margin-bottom:0;}
table *{
	font-size: 1.4rem;
	letter-spacing: 1.4px;
	line-height: 2.1rem !important;
}
#pankuzu ol{
	display:flex;
	flex-wrap:wrap;
	gap: 8px 0;
	padding:15px 0 0;
	margin:0 0 58px 0;
}
#pankuzu li{
	position:relative;
	list-style:none;
	padding-right:16px;
	margin:0 15px 0 0;
	font-size:1.2rem;
	letter-spacing:1.2px;
	line-height:2.1rem;
}
#pankuzu li::after{
	content:'';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	right: 0;
	width: 6px;
	height: 6px;
	border-top: 1px solid #ccc;
	border-right: 1px solid #ccc;
	transform: rotate(45deg);
}
#pankuzu li:last-child{
	padding:0;
	margin-right:0;
}
#pankuzu li:last-child::after{display: none;}
#pankuzu a{
	display:block;
	color:#333 !important;
	text-decoration:none !important;
}
#pankuzu li:last-child a{
	pointer-events:none;
	text-decoration:none !important;
}
#pankuzu a:hover{text-decoration:underline !important;}
.page_link{
	padding: 0;
	overflow:hidden;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 55px 0 60px;
}
.page_link li{
	list-style:none;
	margin:0;
}
.page_link a{
	position:relative;
	color:#333;
	background: #fff;
	padding: 27px 45px 27px 30px;
	font-weight: 500;
	font-size: 1.6rem;
	letter-spacing: 1.6px;
	line-height: 2.4rem;
	text-decoration:none;
	transition: color .3s, background .3s;
	display: flex;
	align-items: center;
	height: 100%;
	border-bottom: solid 1px #333;
	border-right:solid 1px #333;
}
.page_link li:nth-child(-n+3) a{border-top:solid 1px #333;}
.page_link li:nth-child(3n+1) a{border-left:solid 1px #333;}
.page_link a:hover{
	color: #fff;
	background: #333;
}
.page_link a::before, .page_link a::after{
	content:'';
	display:block;
	position:absolute;
	top:0;
	bottom:0;
	margin:auto;
	right:30px;
	width: 7px;
	height: 15px;
	background: url(/recruit/img/common/arrow_b_black.svg);
	background:no-repeat center/cover;
	transition:opacity 0.3s;
}
.page_link a::before{background-image:url(/recruit/img/common/arrow_b_black.svg);}
.page_link a:hover::before{opacity:0;}
.page_link a::after{
	background-image:url(/recruit/img/common/arrow_b_white.svg);
	opacity:0;
}
.page_link a:hover::after{opacity:1;}
.column_2, .column_3, .column_4{
	display:grid;
	grid-gap:30px 40px;
	margin-bottom:20px;
}
.column_2{grid-template-columns:repeat(auto-fit, calc((100% - 40px) / 2));}
.column_3{grid-template-columns:repeat(auto-fit, calc((100% - 80px) / 3));}
.column_4{grid-template-columns:repeat(auto-fit, calc((100% - 120px) / 4));}
.column_2.reverse > div:last-child{order: -1;}
.caption{
	text-align: center;
	margin:16px 0;
	line-height: 2.4rem;
}
.map{
	position:relative;
	width:auto;
	height:0;
	padding-bottom:260px;
	margin:20px auto;
	overflow:hidden;
}
.map iframe, .map embed{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:none;
}
.pic_full{
	position: relative;
	left: calc(50% - var(--vw-50));
	width: var(--vw-100);
}
.pic_full img{
	width: 100%;
	max-height: 400px;
	-o-object-fit: cover;
	object-fit: cover;
}
.txt_center{text-align: center;}

@media screen and (max-width:820px){
.page_title{
	font-size:2.4rem;
	letter-spacing:2.4px;
	line-height: 3.5rem;
}
.page_title::before{
	font-size: 1.2rem;
	letter-spacing: 1.2px;
}
h2{
	font-size:2.4rem;
	letter-spacing: 2.4px;
	line-height: 3.5rem;
	padding-top: 30px;
	margin: 55px 0 15px;
}
h3{
	font-size:2rem;
	letter-spacing: 2px;
	line-height: 3rem;
}
h4{
	font-size: 1.8rem;
	letter-spacing: 1.8px;
	line-height: 3rem;
	margin: 35px 0 15px;
}
p{
	font-size:1.4rem;
	letter-spacing: 1.4px;
	line-height: 2.7rem;
}
li{
	font-size: 1.4rem;
	letter-spacing: 1.4px;
	line-height: 2.7rem;
}
#pankuzu ol{margin:0 0 38px 0;}
.page_link{margin: 38px 0 60px;}
.page_link a{
	font-size: 1.4rem;
	letter-spacing: 1.4px;
	line-height: 2rem;
	padding: 22px 45px 22px 20px;
}
.page_link a::before, .page_link a::after{right:20px;}
.column_2, .column_3, .column_4{
	gap: 25px 30px;
}
.column_2{grid-template-columns:repeat(auto-fit, calc((100% - 30px) / 2));}
.column_3{grid-template-columns:repeat(auto-fit, calc((100% - 60px) / 3));}
.column_4{grid-template-columns:repeat(auto-fit, calc((100% - 90px) / 4));}
}

@media screen and (max-width:767px){
.content_area{padding: 0 20px 100px;}
.title_box{
	margin: auto;
	padding: 0 30px;
	min-height: 240px;
}
.page_title{padding-top: 50px;}
table{margin-bottom:15px;}
th:not(.row_table th), td:not(.row_table td){
	display: block;
	width: 100%;
	padding: 14px 10px;
}
th:not(.row_table th){background: #F5F5F5;}
td:not(.row_table td){padding-bottom: 24px;}
th:not(.row_table th)::after,
td:not(.row_table td)::after{
	display: none;
}
#pankuzu ol{margin:0 0 35px 0;}
.page_link{
	grid-template-columns: repeat(1, 1fr);
	margin: 38px 0 60px;
}
.page_link a{
	padding: 16px 45px 16px 20px;
	border-left:solid 1px #333;
}
.page_link li:nth-child(-n+3) a{border-top:none;}
.page_link li:first-child a{border-top:solid 1px #333;}
.column_2, .column_3, .column_4{
	gap:15px 11px;
}
.column_2{grid-template-columns:1fr;}
.column_3{grid-template-columns:repeat(auto-fit, calc((100% - 11px) / 2));}
.column_4{grid-template-columns:repeat(auto-fit, calc((100% - 11px) / 2));}
.caption{
	margin:10px 0;
	line-height: 2.1rem;
}
.pic_full img{min-height: 200px;}
}