@charset "utf-8";

/* !スライダー */
#visual_slider_main {
	position: relative;
	z-index: 1;
	width: auto;
	margin: -88px 0 60px;
}

#visual_slider_main img {
	width: 100%;
	height: auto;
}

/* コピー */
.txt_copy {
	position: absolute;
	top: 15vw;
	left: 10%;
	z-index: 3;
	font-weight: 900;
	font-size: 5vw;
	line-height: 1;
}

.txt_copy span {
	display: block;
	width: max-content;
	color: #fff;
	background-color: #000;
	padding: 10px 0 15px 20px;
	margin: 10px 0;
}

/* !メイン設定 */
main {
	width: auto;
	line-height: 1.9;
}

/* !汎用タイトル */
.ttl_top_1 {
	width: auto;
	text-align: center;
	font-weight: 600;
	line-height: 1;
	margin: 0 0 25px;
}

.ttl_top_1 span {
	display: block;
	width: auto;
	font-size: 4.8rem;
	font-weight: 800;
	margin: 0 0 22px;
}

/* !汎用ボタン */
.btn_cmn_1 {
	position: relative;
	display: inline-block;
	width: 150px;
	color: #fff;
	text-align: left;
	text-decoration: none;
	line-height: 1;
	border-radius: 25px;
	background-color: #0c66ab;
	padding: 13px 25px 14px;
}

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

/* !背景グレー */
.back_gray {
	background-color: #f5f6f8;
	padding: 60px 0;
	margin: 0 0 50px;
}

/* !見えないところで、皆様の生活を支えています。 */
.section_lead {
	display: grid;
	grid-template-columns: 1fr 470px;
	align-items: center;
	gap: 40px;
	width: 940px;
	margin: 0 auto 60px;
}

.section_lead h2 {
	font-size: 2.8rem;
	font-weight: 700;
	color: #0c66ab;
	line-height: 1.5;
	margin: 0 0 30px;
}

/* ! 企業情報 */
.section_about {
	display: grid;
	grid-template-columns: 1fr 470px;
	gap: 40px;
	width: 940px;
	margin: 0 auto;
}

.section_about .ttl_top_1 {
	display: flex;
	gap: 27px;
	align-items: end;
	text-align: left;
}

.section_about .ttl_top_1 span {
	position: relative;
	top: 2px;
	margin: 0;
}

.section_about p {
	margin: 1em 0 1.8em;
}

/* 企業情報イメージ */
.img_about {
	position: relative;
	padding: 105px 0 0;
}

.img_about_1 {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
}

.img_about_2 {
	position: relative;
	z-index: 2;
}

/* !実績紹介 */
.section_works {
	width: 940px;
	margin: 0 auto 50px;
}

.grid_works {
	display: grid;
	grid-template-columns: repeat(4, 205px);
	justify-content: space-between;
	width: auto;
	line-height: 1.6;
	margin: 45px auto 30px;
}

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

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

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

/* !お知らせ */
.section_news {
	position: relative;
	width: 940px;
	padding: 0 0 60px;
	margin: 0 auto;
}

.grid_news {
	display: grid;
	grid-template-columns: repeat(4, 205px);
	justify-content: space-between;
	width: auto;
	margin: 45px 0 30px;
}

/* お知らせボタン */
.section_news .btn_cmn_1 {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
}

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

.loop_news h3 {
	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;
	background-color: #ccc;
}

/*=====ブレークポイント 640px =====*/
@media screen and (max-width: 640px) {
	/* !スライダー */
	#visual_slider_main {
		width: auto;
		margin: 0 0 30px;
	}

	#visual_slider_main img {
		width: 100%;
		height: 70vw;
		object-fit: cover;
	}

	/* コピー */
	.txt_copy {
		z-index: 1;
		top: 38vw;
		left: 4%;
		font-size: 7vw;
	}

	.txt_copy span {
		margin: 7px 0;
	}

	/* !汎用タイトル */
	.ttl_top_1 {
		margin: 0 0 25px;
	}

	.ttl_top_1 span {
		display: block;
		width: auto;
		font-size: 4.2rem;
		font-weight: 800;
		margin: 0 0 22px;
	}

	/* !汎用ボタン */
	.btn_cmn_1 {
		position: relative;
		display: inline-block;
		width: 150px;
		color: #fff;
		text-align: left;
		text-decoration: none;
		line-height: 1;
		border-radius: 25px;
		background-color: #0c66ab;
		padding: 13px 25px 14px;
	}

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

	/* !背景グレー */
	.back_gray {
		background-color: #f5f6f8;
		padding: 40px 0;
		margin: 0 0 50px;
	}

	/* !見えないところで、皆様の生活を支えています。 */
	.section_lead {
		display: grid;
		grid-template-columns: auto;
		gap: 30px;
		width: 90%;
		margin: 0 auto 50px;
	}

	.section_lead h2 {
		font-size: 6.8vw;
		margin: 0 0 20px;
	}

	/* ! 企業情報 */
	.section_about {
		grid-template-columns: auto;
		gap: 15px;
		width: 90%;
		margin: 0 auto;
	}

	.section_about .ttl_top_1 {
		display: block;
	}

	.section_about .ttl_top_1 span {
		position: static;
		margin: 0 0 20px;
	}

	/* 企業情報イメージ */
	.img_about {
		z-index: 1;
		padding: 20vw 0 0;
	}

	.img_about img {
		width: 60vw;
		height: auto;
	}

	/* !実績紹介 */
	.section_works {
		width: 90%;
		margin: 0 auto 50px;
	}

	.grid_works {
		display: grid;
		grid-template-columns: repeat(2, 46%);
		justify-content: space-between;
		width: auto;
		margin: 45px auto 30px;
	}

	.loop_works img {
		height: 30vw;
	}

	/* 3番目以下削除 */
	.loop_works:nth-child(n + 3) {
		display: none;
	}

	/* !お知らせ */
	.section_news {
		width: 90%;
		padding: 0;
		margin: 0 auto;
	}

	.grid_news {
		display: block;
		margin: 45px 0 0;
	}

	/* お知らせボタン */
	.section_news .btn_cmn_1 {
		position: relative;
		margin: 20px 0 0;
	}

	/* news loop */
	.loop_news {
		border-bottom: 1px solid #0c66ab;
		padding: 0 0 25px;
		margin: 0 0 25px;
	}

	.loop_news ul {
		gap: 0 10px;
		margin: 15px 0 10px;
	}

	.loop_news li:first-child {
		order: 2;
	}

	.loop_news li:last-child {
		order: 1;
	}

	.loop_news img {
		height: 50vw;
	}
}
