@charset "utf-8";

/* ================================================================================
	Additional
================================================================================ */
.box {
	margin-bottom: 30px;
}
.box::after {
	content: '';
	display: block;
	clear: both;
}

.box_left {
	float: left;
	margin: 0 25px 25px 0;
}

.box_right {
	float: right;
	margin: 0 0 25px 25px;
}

.box_text {
	overflow: hidden;
}

.box_color {
	overflow: hidden;
	margin-bottom: 30px;
	padding: 20px;
	background: #f5f5f5;
}

.box_color_success {
	overflow: hidden;
	margin-bottom: 30px;
	padding: 20px;
	background: #d4edda;
}

.box_border {
	overflow: hidden;
	margin-bottom: 30px;
	padding: 20px;
	border: 3px solid #444;
}

.color_green {
	color: #28a745;
}

.color_red {
	color: #dc3545;
}

.img_frame {
	overflow: hidden;
	padding: 2px;
	border: 2px solid #ddd;
	vertical-align: top;
}


/* =============================================== */
/** Project */
/* =============================================== */

.map_wrap iframe {
	vertical-align: top;
}

.img_shadow img {
	box-shadow: 10px 10px #fafac5;
}

/* 見出しリセット 画像を使う場合等 */
.ttl_reset {
	padding: 0 !important;
	border: none !important;
	background: none !important;
	line-height: 1 !important;
	color: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
}

/* h2 別スタイル */
.entry_ttl.-variant,
.entry_body h2.-variant,
.mceContentBody h2.-variant {
	padding: 0;
	background: none;
	color: #007cd2;
}

/* ヘッドスタイル */
.sec_head {
	display: -ms-flexbox;
	display: flex;
	margin-bottom: 80px;
	line-height: 1;
}
.sec_ttl {
	margin: 0 26px 0 0 !important;
	padding: 0 !important;
	background: none !important;
	line-height: inherit !important;
	color: #007cd2 !important;
	font-size: 50px !important;
	font-weight: 900 !important;
	letter-spacing: 0.05em;
}
.sec_lead {
	padding-top: 20px;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

/* テーブル */
.job_tbl {
	border-top: 1px solid #ddd;
}
.job_tbl th,
.job_tbl td {
	padding: 38px 0 39px !important;
	border: none !important;
	border-bottom: 1px solid #ddd !important;
	vertical-align: top;
}
.job_tbl th {
	width: 225px;
	background: none !important;
	line-height: 1.6;
	color: #007cd2;
	font-size: 20px;
	font-weight: 700;
	text-align: left;
	letter-spacing: 0.05em;
}
.job_tbl td {
	line-height: 2;
	font-size: 16px;
	letter-spacing: 0.05em;
}

/* リスト */
.service_list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 -25px !important;
}
.service_list_item {
	-ms-flex: 0 0 50%;
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	padding: 0 25px;
}
.service_list_item:nth-child(even) {
	padding-top: 40px;
}
.service_list_img {
	margin-bottom: 12px;
}
.service_list_txt {
	font-size: 22px;
	font-weight: 700;
	text-align: center;
}

.person_list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 !important;
}
.person_list_item {
	-ms-flex: 0 0 50%;
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	margin: 0 !important;
	padding: 0 !important;
	border-width: 0 1px 1px 0;
	border-style: solid;
	border-color: #ddd;
}
.person_list_item:nth-child(even) {
	border-right: none;
}
.person_list_item:last-child,
.person_list_item:nth-last-child(2):nth-child(odd) {
	border-bottom: none;
}
.person_list_item::before {
	display: none;
}
.person_list_item .in {
	padding: 45px 55px 53px 0;
}
.person_list_item:nth-child(odd) .in {
	margin-left: -10px;
}
.person_list_item:nth-child(even) .in {
	padding: 45px 0 53px 40px;
}
.person_list_item:nth-child(-n+2) .in {
	padding-top: 24px;
}
.person_list_item:last-child .in,
.person_list_item:nth-last-child(2):nth-child(odd) .in {
	padding-bottom: 40px;
}
.person_list_num {
	display: block;
	float: left;
	width: 100px;
	height: 100px;
	margin-right: 30px;
	border-radius: 50%;
	background: #007cd2;
	line-height: 108px;
	color: #fff;
	font-family: 'Heebo', sans-serif;
	font-size: 50px;
	text-align: center;
}
.person_list_detail {
	overflow: hidden;
	padding-top: 6px;
}
.person_list_ttl {
	margin: 0 0 7px !important;
	padding: 0 !important;
	border: none !important;
	line-height: 1.6;
	color: #007cd2 !important;
	font-size: 24px !important;
	font-weight: 900 !important;
	letter-spacing: 0.03em;
}
.person_list_txt {
	line-height: 2;
	font-size: 15px;
	letter-spacing: 0.05em;
}


/* =============================================== */
/** 募集要項 */
/* =============================================== */

.page-recruit .l-content_inner {
	padding-bottom: 180px;
}

.rec_concept {
	padding: 40px 0 140px;
	text-align: center;
}
.rec_concept_ttl {
	margin-bottom: 35px !important;
	padding: 0 !important;
	background: none !important;
	color: #007cd2 !important;
	font-size: 45px !important;
}
.rec_concept_sub_ttl {
	margin-bottom: 25px !important;
}
.rec_concept_txt {
	line-height: 2.25;
	font-size: 16px;
	letter-spacing: 0.08em;
}

.rec_service {
	position: relative;
	margin-bottom: 155px;
	padding: 120px 0 145px;
}
.rec_service::before {
	content: '';
	position: absolute;
	inset: 0 -200%;
	z-index: -100;
	background: #ebf6fb;
}
.rec_service_head {
	margin-bottom: 90px;
}
.rec_service_inner {
}

.rec_person {
	margin-bottom: 120px;
}
.rec_person_head {
	margin-bottom: 65px;
}
.rec_person_inner {
}

.rec_about {
	margin-bottom: 160px;
}
.rec_about_head {
	margin-bottom: 50px;
}
.rec_about_txt {
	margin-bottom: 60px;
}

.rec_merit {
	position: relative;
	margin-bottom: 120px;
	padding: 130px 0 50px;
}
.rec_merit::before {
	content: '';
	position: absolute;
	inset: 0 -200%;
	z-index: -100;
	background: #ebf6fb;
}
.rec_merit_head {
	margin-bottom: 75px;
}
.rec_merit_inner {
}
.rec_merit_list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 -25px !important;
}
.rec_merit_list_item {
	-ms-flex: 0 0 50%;
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	padding: 0 25px 65px;
}
.rec_merit_list_img {
	margin-bottom: 20px;
}
.rec_merit_list_ttl {
	margin: 0 0 5px !important;
	padding: 0 !important;
	border: none !important;
	line-height: 1.8 !important;
	color: #2e4e87 !important;
	font-size: 22px !important;
	font-weight: 700 !important;
}
.rec_merit_list_txt {
	line-height: 2;
	font-size: 17px;
	letter-spacing: 0.05em;
}

.rec_benefit {
	margin-bottom: 65px;
}
.rec_benefit_head {
	margin-bottom: 75px;
}
.rec_benefit_inner {
}
.rec_benefit_list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 -25px !important;
}
.rec_benefit_list_item {
	-ms-flex: 0 0 50%;
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	padding: 0 25px 65px;
}
.rec_benefit_list_img {
	margin-bottom: 20px;
}
.rec_benefit_list_ttl {
	margin: 0 0 5px !important;
	padding: 0 !important;
	border: none !important;
	line-height: 1.8 !important;
	color: #2e4e87 !important;
	font-size: 22px !important;
	font-weight: 700 !important;
}
.rec_benefit_list_txt {
	line-height: 2;
	font-size: 17px;
	letter-spacing: 0.05em;
}

.rec_schedule {
	position: relative;
	margin-bottom: 165px;
	padding: 120px 0 150px;
}
.rec_schedule::before {
	content: '';
	position: absolute;
	z-index: -100;
	background: #ebf6fb;
	inset: 0 -200%;
}
.rec_schedule_ttl {
	margin-bottom: 40px;
	line-height: 1;
}
.rec_schedule_ttl_jp {
	margin: 0 0 10px !important;
	margin-bottom: 20px !important;
	padding: 0 !important;
	background: none !important;
	color: #333 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}
.rec_schedule_ttl_en {
	display: block;
	color: #338fd8;
	font-family: 'Heebo', sans-serif;
	font-size: 80px;
	letter-spacing: 0.03em;
}
.rec_schedule_inner {
}
.rec_schedule_flow {
	float: left;
	width: 565px;
	height: 515px;
	padding-top: 44px;
	background: #338fd8;
	color: #fff;
}
.rec_schedule_flow_ttl {
	margin: 0 0 45px !important;
	padding: 0 !important;
	border: none !important;
	line-height: 1 !important;
	color: #fff !important;
	font-size: 28px !important;
	font-weight: 900 !important;
	text-align: center !important;
}
.rec_schedule_flow_list {
	position: relative;
}
.rec_schedule_flow_list::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 4px;
	height: 350px;
	margin-left: -2px;
	background: #e6f5fa;
}
.rec_schedule_flow_list_item {
	position: relative;
	margin-bottom: 41px;
	padding-right: 315px;
	line-height: 1;
	font-size: 20px;
	font-weight: 700;
	text-align: right;
	letter-spacing: 0.01em;
}
.rec_schedule_flow_list_item:nth-child(even) {
	padding: 0 0 0 315px;
	text-align: left;
}
.rec_schedule_flow_list_item:last-child {
	margin-bottom: 0;
}
.rec_schedule_flow_list_item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 16px;
	height: 16px;
	margin-left: -8px;
	border-radius: 50%;
	background: #e6f5fa;
	line-height: 20px;
}
.rec_schedule_img {
	float: right;
	width: 585px;
}
.rec_schedule_img_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 25px;
}
.rec_schedule_img_list_item {
}

.rec_os {
	margin-bottom: 140px;
}
.rec_os_img {
}
.rec_os_inner {
	position: relative;
	margin: -85px 100px 0;
	padding-top: 100px;
	background: #fff;
	text-align: center;
}
.rec_os_ttl {
	margin-bottom: 15px;
	line-height: 1;
}
.rec_os_ttl_en {
	display: block;
	margin-bottom: 12px;
	color: #007cd2;
	font-family: 'Heebo', sans-serif;
	font-size: 80px;
	letter-spacing: 0.03em;
}
.rec_os_ttl_jp {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	color: #2e4e87 !important;
	font-size: 25px !important;
	font-weight: 700 !important;
	letter-spacing: 0.01em !important;
}
.rec_os_txt {
	margin-bottom: 50px !important;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.rec_os_btn_list {
	letter-spacing: -0.4em;
}
.rec_os_btn_list_item {
	display: inline;
	padding: 0 10px;
	letter-spacing: normal;
}
.rec_os_btn_list_item a {
	display: inline-block;
	position: relative;
	width: 360px;
	height: 70px;
	border-radius: 35px;
	background: #007cd2;
	line-height: 70px;
	color: #fff;
	font-size: 20px;
	font-weight: 900;
	letter-spacing: 0.06em;
}
.rec_os_btn_list_item a::before {
	content: '\f061';
	position: absolute;
	top: 22px;
	right: 20px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	line-height: 26px;
	color: #007cd2;
	font-family: 'Font Awesome 6 Pro';
	font-size: 12px;
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-align: center;
	text-rendering: auto;
}

.rec_casual {
}
.rec_casual_detail {
	float: left;
	width: 580px;
}
.rec_casual_ttl {
	margin: 0 0 16px !important;
	padding: 0 !important;
	background: none !important;
	line-height: 1.166 !important;
	color: #007cd2 !important;
	font-size: 60px !important;
	font-weight: 900 !important;
	letter-spacing: 0.05em !important;
}
.rec_casual_txt {
	margin-bottom: 43px;
	line-height: 2.4;
	font-size: 15px;
	letter-spacing: 0.05em;
}
.rec_casual_txt h3 {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	color: #f28900 !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}
.rec_casual_btn_list {
}
.rec_casual_btn_list_item {
	margin-bottom: 25px;
}
.rec_casual_btn_list_item :last-child {
	margin: 0;
}
.rec_casual_btn_list_item a {
	display: block;
	width: 350px;
	height: 74px;
	border-radius: 37px;
	background: #007cd2;
	line-height: 74px;
	color: #fff;
	font-size: 22px;
	font-weight: 900;
	text-align: center;
	letter-spacing: 0.01em;
}
.rec_casual_btn_list_item:last-child a {
	background: #4db864;
}
.rec_casual_btn_list_item i {
	margin-right: 10px !important;
	font-size: 26px;
}
.rec_casual_img {
	float: right;
	position: relative;
	width: 570px;
}
.rec_casual_img_add {
	position: absolute;
	right: -18px;
	bottom: -66px;
}



/* =============================================== */
/** 会社案内 */
/* =============================================== */

.page-about .l-content_inner {
	padding-bottom: 200px;
}

.about_concept {
	padding: 40px 0 140px;
	text-align: center;
}
.about_concept_ttl {
	margin-bottom: 35px !important;
	padding: 0 !important;
	background: none !important;
	color: #007cd2 !important;
	font-size: 45px !important;
}
.about_concept_sub_ttl {
	margin-bottom: 25px !important;
}
.about_concept_txt {
	line-height: 2.25;
	font-size: 16px;
	letter-spacing: 0.08em;
}

.about_feature {
	position: relative;
	margin-bottom: 125px;
	padding: 100px 0;
}
.about_feature::before {
	content: '';
	position: absolute;
	inset: 0 -200%;
	z-index: -100;
	background: #ebf6fb;
}
.about_feature_head {
	margin-bottom: 65px;
}
.about_feature_inner {
}

.about_service {
	margin-bottom: 115px;
}
.about_service_head {
}
.about_service_inner {
}

.about_company {
}
.about_company_head {
	margin-bottom: 50px;
}
.about_company_inner {
}
.about_company_txt {
	margin-bottom: 60px;
}
.about_company_map {
	margin-top: 160px;
}
.about_company_map iframe {
	width: 100%;
	height: 550px;
	vertical-align: top;
}


/* =============================================== */
/** 社員インタビュー */
/* =============================================== */

.page-interview .l-content_inner {
	padding-bottom: 170px;
}

.int_message {
	margin-bottom: 135px;
	padding-top: 30px;
}
.int_message_detail {
	float: left;
	width: 570px;
}
.int_message_ttl {
	margin-bottom: 25px;
	line-height: 1;
}
.int_message_ttl_jp {
	margin: 0 0 23px !important;
	padding: 0 !important;
	background: none !important;
	line-height: inherit !important;
	color: #2e4e87 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}
.int_message_ttl_en {
	display: block;
	color: #007cd2;
	font-family: 'Heebo', sans-serif;
	font-size: 88px;
	letter-spacing: 0.03em;
}
.int_messaget_txt {
	line-height: 2.4;
	font-size: 15px;
	letter-spacing: 0.03em;
}
.int_messaget_txt h3 {
	margin-bottom: 17px;
	padding: 0;
	border: none;
	line-height: 1.4;
	color: #f28900;
	font-size: 22px;
	font-weight: 700;
}
.int_messaget_txt p {
	margin-bottom: 15px;
}
.int_messaget_txt :last-child {
	margin-bottom: 0;
}
.int_message_img {
	float: right;
	width: 560px;
}

.int_movie {
	position: relative;
	margin-bottom: 130px;
	padding: 100px 0;
	text-align: center;
}
.int_movie::before {
	content: '';
	position: absolute;
	inset: 0 -200%;
	z-index: -100;
	background: #ebf6fb;
}
.int_movie_ttl {
	margin-bottom: 65px !important;
	padding: 0 !important;
	background: none !important;
	color: #007cd2 !important;
	font-size: 45px !important;
}
.int_movie_inner {
}
.int_movie_embed {
	position: relative;
	margin-bottom: 60px;
	padding: 56.25% 0 0 0;
}
.int_movie_embed video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.int_movie_txt {
	line-height: 1;
}

.int_staff {
}
.int_staff_img {
	position: relative;
}
.int_staff_img_add {
	position: absolute;
	right: 40px;
	bottom: -40px;
}
.int_staff_inner {
}
.int_staff_ttl {
	position: relative;
	margin-bottom: 45px;
	line-height: 1 !important;
}
.int_staff_ttl::before {
	content: '';
	position: absolute;
	top: -65px;
	left: 0;
	width: 530px;
	height: 70px;
	background: #fff;
}
.int_staff_ttl_jp {
	margin: 0 0 15px !important;
	padding: 0 !important;
	background: none !important;
	color: #2e4e87 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em;
}
.int_staff_ttl_en {
	display: block;
	color: #007cd2;
	font-family: 'Heebo', sans-serif;
	font-size: 80px;
	letter-spacing: 0.03em;
}
.int_staff_list {
}
.int_staff_list_ttl {
	position: relative;
	margin-bottom: 10px;
	padding-left: 70px;
	font-size: 22px;
	font-weight: 900;
	letter-spacing: 0.03em;
}
.int_staff_list_ttl::before {
	content: 'Q';
	position: absolute;
	top: 5px;
	left: 0;
	line-height: 1;
	color: #007cd2;
	font-family: 'Poppins', sans-serif;
	font-size: 40px;
}
.int_staff_list_txt {
	margin-bottom: 35px;
	padding: 0 0 30px 70px;
	border-bottom: 1px solid #ddd;
	line-height: 2.352;
	font-size: 17px;
	letter-spacing: 0.03em;
}
.int_staff_list_txt:last-child {
	margin: 0;
	padding-bottom: 0;
	border: none;
}