@charset "utf-8";

/* !タイトル関連 */
.ttl_contents {
	width: auto;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1;
	background-color: #f5f6f8;
	padding: 50px 0 40px;
}

.ttl_contents span {
	display: block;
	width: auto;
	font-size: 4.8rem;
	font-weight: 800;
	text-transform: uppercase;
	margin: 0 0 17px;
}

/* 汎用タイトル */
.ttl_cmn_1 {
	position: relative;
	width: auto;
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.4;
	color: #0c66ab;
	padding: 0 0 20px;
	margin: 2em 0 1.5em;
}

.ttl_cmn_1::before,
.ttl_cmn_1::after {
	position: absolute;
	left: 0;
	bottom: 0;
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background-color: #e0e0e0;
}

.ttl_cmn_1::before {
	z-index: 2;
	width: 260px;
	height: 3px;
	background-color: #0c66ab;
}

.ttl_cmn_2 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.4;
	border-left: 5px solid #0c66ab;
	padding: 0 0 0 22px;
	margin: 1.5em 0 1em;
}

.ttl_cmn_3 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.4;
	color: #0c66ab;
	margin: 1.5em 0 1.2em;
}

/* リードテキスト */
.txt_lead {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.6;
	color: #0c66ab;
	margin: 1em 0 1.5em;
}

/* !ラッパー */
.wrapper {
	width: 940px;
	line-height: 1.9;
	margin: 62px auto 120px;
}

/* 本文設定 */
main p,
main figure {
	margin: 1.5em 0;
}

main ul,
main ol {
	margin: 1.5em 22px;
}

main table {
	margin: 30px 0;
}

/* 特殊リスト */
.list_cmn_1 {
	list-style: none;
	line-height: 1.6;
	margin: 1.5em 0;
}

.list_cmn_1 li {
	display: grid;
	grid-template-columns: 10px 1fr;
	align-items: baseline;
	gap: 7px;
	margin: 0.5em 0;
}

.list_cmn_1 li:before {
	position: relative;
	top: -2px;
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border: 2px solid #0c66ab;
	border-radius: 4px;
}

/* !汎用テーブル */
.table_cmn_1 {
	width: 100%;
	line-height: 1.6;
}

.table_cmn_1 th,
.table_cmn_1 td {
	text-align: center;
	border: 1px solid #e0e0e0;
	padding: 10px;
}

.table_cmn_1 thead th {
	text-align: center;
}

.table_cmn_1 th {
	background-color: #e3ebf1;
}

.table_cmn_2 {
	width: 100%;
	line-height: 1.6;
}

.table_cmn_2 th,
.table_cmn_2 td {
	text-align: left;
	vertical-align: baseline;
	border: 1px solid #e0e0e0;
}

.table_cmn_2 th {
	border-bottom-color: #fff;
	background-color: #e3ebf1;
	padding: 15px 30px;
}

.table_cmn_2 tr:last-child th {
	border-bottom-color: #e0e0e0;
}

.table_cmn_2 td {
	padding: 15px 60px;
}

main table .list_cmn_1 {
	margin: 0;
}

main table .list_cmn_1 li {
	margin: 2px 0;
}

/* !実績紹介 */
.grid_works {
	display: grid;
	grid-template-columns: repeat(4, 205px);
	justify-content: space-between;
	gap: 40px 0;
	width: auto;
	line-height: 1.6;
	margin: 0 auto 60px;
}

.loop_works a {
	display: grid;
	text-decoration: none;
	color: inherit;
}

.loop_works h2 {
	order: 2;
	font-weight: 700;
	margin: 10px 0 0;
}

.loop_works img {
	order: 1;
	width: auto;
	height: 125px;
	object-fit: cover;
	background-color: #ccc;
}

/* !実績紹介詳細ページ */
.img_product {
	width: auto;
	text-align: center;
	margin: 40px 0 50px;
}

/* !お知らせ */
.grid_news {
	display: grid;
	grid-template-columns: repeat(4, 205px);
	justify-content: space-between;
	gap: 50px 0;
	width: auto;
	margin: 45px 0 60px;
}

/* news loop */
.loop_news a {
	display: grid;
	width: auto;
	color: inherit;
	text-decoration: none;
}

.loop_news h2 {
	order: 3;
	font-weight: 800;
	line-height: 1.4;
}

.loop_news ul {
	order: 2;
	display: flex;
	align-items: center;
	gap: 11px;
	width: auto;
	font-size: 1.4rem;
	list-style: none;
	line-height: 1;
	margin: 18px 0;
}

.li_category {
	display: block;
	width: 77px;
	font-size: 1.2rem;
	color: #fff;
	text-align: center;
	background-color: #0c66ab;
	padding: 5px 0 6px;
}

.loop_news img {
	order: 1;
	width: 100%;
	height: 132px;
	object-fit: cover;
}

/* カテゴリから探す */
.select_category {
	display: grid;
	grid-template-columns: 1fr 247px;
	align-items: center;
	width: 390px;
	margin: 0 0 0 auto;
}

.select_category dt {
	font-weight: 500;
}

.select_category select {
	width: 100%;
	height: 46px;
	border: 1px solid #ccc;
	border-radius: 5px;
	background-color: #fff;
	padding: 10px;
}

/* !ページネーション */
#page_nation {
	display: flex;
	justify-content: center;
	width: auto;
	text-align: center;
	line-height: 1;
}

/* 全体詳細設定 */
#page_nation a,
#page_nation span {
	display: inline-block;
	min-width: 2.3em;
	color: inherit;
	border: 1px solid #0c66ab;
	border-radius: 45px;
	text-decoration: none;
	padding: 10px;
	margin: 0 2px;
}

/* ボーダー消去 */
#page_nation .pages,
#page_nation .extend {
	border: none;
}

/* カレントおよびホバー */
#page_nation .current,
#page_nation a:hover {
	color: #fff;
	background-color: #0c66ab;
	opacity: 1;
}

/* !お知らせ記事 */
/* 記事タイトル */
.ttl_news {
	display: grid;
	width: auto;
	margin: 0 0 70px;
}

.ttl_news h1 {
	order: 2;
	font-size: 3.6rem;
	font-weight: 800;
}

.ttl_news ul {
	order: 1;
	display: flex;
	align-items: center;
	gap: 11px;
	width: auto;
	font-size: 1.4rem;
	list-style: none;
	line-height: 1;
	margin: 0 0 10px;
}

/* !本文 */
article {
	margin: 0 0 45px;
}

article img {
	display: block;
	width: 75%;
	height: auto;
	margin: 30px auto;
}

/* !一覧へ戻る */
.btn_back {
	position: relative;
	width: 145px;
	cursor: pointer;
	border: 1px solid #d9d9d9;
	text-align: center;
	text-decoration: none;
	line-height: 1;
	border-radius: 45px;
	padding: 12px 12px 12px 22px;
	margin: 0 auto;
}

.btn_back::after {
	position: absolute;
	top: 0;
	left: 18px;
	bottom: 0;
	content: "";
	display: block;
	width: 9px;
	height: 9px;
	border: 2px solid #0c66ab;
	border-right: none;
	border-top: none;
	transform: rotate(45deg);
	margin: auto 0;
}

/* JS使わない場合 */
.btn_back_2 {
	position: relative;
	display: inline-block;
	min-width: 145px;
	font-weight: 500;
	color: inherit;
	border: 1px solid #d9d9d9;
	text-align: center;
	text-decoration: none;
	line-height: 1;
	border-radius: 45px;
	padding: 10px 20px 11px 38px;
	margin: 0 auto;
}

.btn_back_2::after {
	position: absolute;
	top: 0;
	left: 18px;
	bottom: 0;
	content: "";
	display: block;
	width: 9px;
	height: 9px;
	border: 2px solid #0c66ab;
	border-right: none;
	border-top: none;
	transform: rotate(45deg);
	margin: auto 0;
}

/* !ページ内ナビゲーション */
.nav_page {
	width: auto;
	background-color: #e3ebf1;
}

.nav_page ul {
	display: grid;
	grid-template-columns: repeat(2, 50%);
	width: 940px;
	text-align: center;
	list-style: none;
	margin: 0 auto;
}

.nav_page a {
	display: block;
	width: auto;
	text-decoration: none;
	font-weight: 500;
	color: inherit;
	padding: 30px 0 24px;
}

.nav_page a.is_current,
.nav_page a:hover {
	color: #0c66ab;
	border-bottom: 4px solid #0c66ab;
}

/* !採用情報 */
/* リード */
.back_gray {
	display: grid;
	grid-template-columns: 1fr 222px;
	gap: 20px;
	align-items: center;
	width: auto;
	background-color: #e3ebf1;
	line-height: 1.7;
	padding: 12px 30px;
}

/* !メールフォーム */
.form_contact {
	background-color: #f5f6f8;
	padding: 30px 60px 80px;
}

.table_form {
	width: 100%;
}

.table_form th,
.table_form td {
	text-align: left;
	font-weight: normal;
	padding: 10px 0;
}

.table_form th {
	width: 28%;
}

/* 中黒 */
.table_form th::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	background-color: #0c66ab;
	border-radius: 3px;
	margin: 0 10px 0 0;
}

/* 必須（テーブル） */
.is_required:after {
	position: relative;
	top: -1px;
	display: inline-block;
	content: "必須";
	font-size: 1.2rem;
	line-height: 1;
	color: #fff;
	background-color: #df304d;
	border-radius: 2px;
	padding: 5px 6px;
	margin: 0 0 0 5px;
}

/* 必須（テキスト） */
.txt_required {
	display: inline-block;
	content: "必須";
	font-size: 1.2rem;
	line-height: 1;
	color: #fff;
	background-color: #df304d;
	border-radius: 2px;
	padding: 5px 6px;
	margin: 0 5px 0 0;
}

/* 水平揃え */
.table_form .valine_top {
	vertical-align: top;
}

/* アイコン位置調整 */
.table_form .valine_top::before {
	position: relative;
	top: 14px;
}

.table_form .valine_top.is_required:after {
	position: relative;
	top: 7px;
}

/* 情報セキュリティポリシー */
.section_policy {
	width: auto;
	height: 132px;
	background-color: #fff;
	border: 1px solid #d9d9d9;
	overflow-y: auto;
	font-size: 1.3rem;
	padding: 20px 25px;
}

.section_policy h2 {
	font-weight: 800;
	font-size: 2rem;
}

.section_policy p {
	margin: 1em 0;
}

/* 情報セキュリティポリシーに同意する */
#id_policy {
	display: none;
}

#id_policy + span > label {
	line-height: 1;
	background-size: 20px;
	background-image: url("../images/basic/input_check_off@2x.png");
	background-position: center left;
	padding: 0 0 2px 30px;
}

#id_policy:checked + span > label {
	background-image: url("../images/basic/input_check_on@2x.png");
}

label:hover {
	cursor: pointer;
	text-decoration: underline;
	color: #0c66ab;
}

/* 送信ボタン */
.list_submit {
	display: flex;
	justify-content: center;
	gap: 20px;
	width: auto;
	list-style: none;
	margin: 40px 0 0;
}

/* 送信完了画面 */
.box_complete {
	width: auto;
	text-align: center;
}

.box_complete img {
	margin: 0 20px 5px 0;
}

.box_complete h2 {
	font-weight: 700;
	font-size: 2.7rem;
	line-height: 1.2;
	color: #0c66ab;
	margin: 5px 0 45px;
}

/*=====ブレークポイント 640px =====*/
@media screen and (max-width: 640px) {
	img {
		max-width: 100%;
		height: auto;
	}

	/* !タイトル関連 */
	.ttl_contents span {
		font-size: 4rem;
	}

	/* 汎用タイトル */
	.ttl_cmn_1 {
		z-index: 1;
	}

	.ttl_cmn_1::before {
		width: 30%;
	}

	.ttl_cmn_2 {
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.4;
		border-left: 5px solid #0c66ab;
		padding: 0 0 0 22px;
		margin: 1.5em 0 1em;
	}

	.ttl_cmn_3 {
		font-size: 2rem;
		font-weight: 700;
		line-height: 1.4;
		color: #0c66ab;
		margin: 1.5em 0 1.2em;
	}

	/* リードテキスト */
	.txt_lead {
		font-size: 2rem;
	}

	/* !ラッパー */
	.wrapper {
		width: 90%;
		margin: 50px auto 70px;
	}

	/* 特殊リスト */
	.list_cmn_1 {
		list-style: none;
		line-height: 1.6;
		margin: 1.5em 0;
	}

	.list_cmn_1 li {
		display: grid;
		grid-template-columns: 10px 1fr;
		align-items: baseline;
		gap: 7px;
		margin: 0.5em 0;
	}

	.list_cmn_1 li:before {
		position: relative;
		top: -2px;
		content: "";
		display: block;
		width: 8px;
		height: 8px;
		border: 2px solid #0c66ab;
		border-radius: 4px;
	}

	/* !汎用テーブル */
	.table_cmn_1 {
		width: 100%;
		line-height: 1.6;
	}

	.table_cmn_1 th,
	.table_cmn_1 td {
		text-align: center;
		border: 1px solid #e0e0e0;
		padding: 10px;
	}

	.table_cmn_1 th {
		background-color: #e3ebf1;
	}

	/* 汎用テーブル２ */
	.table_cmn_2 {
		width: 100%;
		line-height: 1.6;
	}

	.table_cmn_2 tbody,
	.table_cmn_2 tr {
		display: block;
	}

	.table_cmn_2 th,
	.table_cmn_2 td {
		display: block;
		width: auto;
	}

	.table_cmn_2 th {
		border: 1px solid #e0e0e0;
		background-color: #e3ebf1;
		padding: 15px 30px;
	}

	.table_cmn_2 td {
		padding: 15px 30px;
	}

	/* !実績紹介 */
	.grid_works {
		grid-template-columns: repeat(2, 48%);
		gap: 30px 0;
	}

	.loop_works img {
		height: 30vw;
	}

	/* !実績紹介詳細ページ */
	.img_product {
		width: auto;
		text-align: center;
		margin: 40px 0 50px;
	}

	/* !お知らせ */
	.grid_news {
		display: grid;
		grid-template-columns: repeat(2, 48%);
		justify-content: space-between;
		gap: 50px 0;
		width: auto;
		margin: 30px 0 40px;
	}

	/* news loop */
	.loop_news a {
		display: grid;
		width: auto;
		color: inherit;
		text-decoration: none;
	}

	.loop_news h2 {
		order: 3;
		font-weight: 800;
		line-height: 1.4;
	}

	.loop_news ul {
		order: 2;
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: auto;
		font-size: 1.3rem;
		list-style: none;
		line-height: 1;
		margin: 18px 0;
	}

	.li_category {
		display: block;
		width: 77px;
		font-size: 1.1rem;
		color: #fff;
		text-align: center;
		background-color: #0c66ab;
		padding: 6px 0;
	}

	.loop_news img {
		order: 1;
		width: 100%;
		height: 30vw;
		object-fit: cover;
	}

	/* カテゴリから探す */
	.select_category {
		display: flex;
		justify-content: end;
		gap: 20px;
		width: auto;
	}

	.select_category dd {
		width: 50%;
	}

	/* !ページネーション */
	/* 全体詳細設定 */
	#page_nation a,
	#page_nation span {
		display: none;
	}

	/* カレントおよびホバー */
	#page_nation .current,
	#page_nation .current + a,
	#page_nation .current + a + a,
	#page_nation .previouspostslink,
	#page_nation .nextpostslink {
		display: inline-block;
	}

	/* !お知らせ記事 */
	/* 記事タイトル */
	.ttl_news {
		margin: 0 0 25px;
	}

	.ttl_news h1 {
		line-height: 1.5;
		font-size: 2.5rem;
	}

	/* !本文 */

	article img {
		width: 95%;
	}

	/* !一覧へ戻る */
	.btn_back {
		position: relative;
		width: 145px;
		cursor: pointer;
		border: 1px solid #d9d9d9;
		text-align: center;
		text-decoration: none;
		line-height: 1;
		border-radius: 45px;
		padding: 12px 12px 12px 22px;
		margin: 0 auto;
	}

	.btn_back::after {
		position: absolute;
		top: 0;
		left: 18px;
		bottom: 0;
		content: "";
		display: block;
		width: 9px;
		height: 9px;
		border: 2px solid #0c66ab;
		border-right: none;
		border-top: none;
		transform: rotate(45deg);
		margin: auto 0;
	}

	/* JS使わない場合 */
	.btn_back_2 {
		position: relative;
		display: inline-block;
		min-width: 145px;
		font-weight: 500;
		color: inherit;
		border: 1px solid #d9d9d9;
		text-align: center;
		text-decoration: none;
		line-height: 1;
		border-radius: 45px;
		padding: 10px 20px 11px 38px;
		margin: 0 auto;
	}

	.btn_back_2::after {
		position: absolute;
		top: 0;
		left: 18px;
		bottom: 0;
		content: "";
		display: block;
		width: 9px;
		height: 9px;
		border: 2px solid #0c66ab;
		border-right: none;
		border-top: none;
		transform: rotate(45deg);
		margin: auto 0;
	}

	/* !ページ内ナビゲーション */

	.nav_page ul {
		display: grid;
		grid-template-columns: repeat(2, 50%);
		width: 100%;
		text-align: center;
		list-style: none;
		margin: 0 auto;
	}

	.nav_page a {
		display: block;
		width: auto;
		text-decoration: none;
		font-weight: 500;
		color: inherit;
		padding: 20px 0 16px;
	}

	.nav_page a.is_current,
	.nav_page a:hover {
		color: #0c66ab;
		border-bottom: 4px solid #0c66ab;
	}

	/* !採用情報 */
	/* リード */
	.back_gray {
		display: block;
		padding: 8px 20px 12px;
	}

	/* !メールフォーム */
	.form_contact {
		background-color: #f5f6f8;
		padding: 10px 4% 40px;
	}

	.table_form {
		margin: 0;
	}

	.table_form tbody,
	.table_form tr,
	.table_form th,
	.table_form td {
		display: block;
		width: 100%;
	}

	.table_form th,
	.table_form td {
		text-align: left;
		font-weight: normal;
		padding: 0;
	}

	.table_form th {
		width: 100%;
		margin: 0 0 10px;
	}

	.table_form input {
		width: 100%;
	}

	.table_form tr {
		margin: 0 0 20px;
	}

	/* 情報セキュリティポリシー */
	.section_policy {
		height: 60vw;
	}

	/* 情報セキュリティポリシーに同意する */

	#id_policy + label {
		font-size: 1.4rem;
		padding: 0 0 2px 30px;
	}

	/* 送信ボタン */
	.list_submit {
		margin: 20px 0 0;
	}

	/* 送信完了画面 */
	.box_complete {
		width: auto;
		text-align: left;
	}

	.box_complete img {
		position: relative;
		right: 3vw;
		display: block;
		margin: 0 auto;
	}

	.box_complete h2 {
		font-size: 2rem;
		text-align: center;
		margin: 5px 0 45px;
	}

	.box_complete .btn_back_2 {
		display: block;
		width: 55%;
		margin: 0 auto;
	}

	/* スマートフォンの時にテーブルをスクロールする */
	.is_scroll {
		display: block;
		overflow-x: scroll;
		white-space: nowrap;
	}
}
