@charset "UTF-8";

img {
	width: 100%;
}

.center {
	text-align: center;
}

.head_right {
	width: 850px;
}

.din_font {
	font-family: 'Oswald', sans-serif;
}

/* メイン
***************************************************************************************/
/* キービジュアル */
#Keyvisual {
	background-image: url("../images/common/bg_key.svg");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
}

#Keyvisual .wrap {
	padding: 50px 0 32px;
	width: 1190px;
	text-align: center;
}

#Keyvisual .lead01 {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.7;
	margin: 0;
	position: relative;
	display: inline-block;
	padding: 0 25px;
}

#Keyvisual .lead01:before,
#Keyvisual .lead01:after {
	content: '';
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 35px;
	height: 2px;
	background-color: black;
	transform: rotate(-75deg);
}

#Keyvisual .lead01:before {
	left: -10px;
	transform: rotate(75deg);
}

#Keyvisual .lead01:after {
	right: -10px;
}


#Keyvisual h1 {
	font-weight: bold;
	font-size: 36px;
	line-height: 1.4;
	margin: 25px 0 0;
	color: #000;
	font-feature-settings: "palt";
}

#Keyvisual h1 span {
	color: #0387B4;
	display: block;
	width: 253px;
	margin: 20px auto 0;
}

#Keyvisual_btm,
#cm_btn {
	display: flex;
	gap: 15px;
	justify-content: center;
}

#Keyvisual_btm p {
	margin: 36px 0 0;
}

#cm_btn p {
	margin: 0;
}

#Keyvisual_btm p a {
	height: 70px;
}

#Keyvisual_btm p a.materials {
	background: #fff;
	border: 3px solid #E62200;
	color: #E62200;
	height: 70px;
}

.btn_frame02 {
	padding: 21px 30px 21px 0;
	font-size: 18px;
	height: 70px;
	margin: auto;
}
.btn_frame02.materials {
	background: #fff;
	color: #E62200;
}

.btn_frame02::before {
	right: 22px;
	left: auto;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

.btn_frame02.materials::before {
	right: 22px;
	left: auto;
	width: 10px;
	height: 10px;
	border-top: 2px solid #E62200;
	border-right: 2px solid #E62200;
}


.section {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top center;
}

.section h2 {
	text-align: center;
	font-size: 40px;
	line-height: 1.4;
	margin: 0;
}

.section h3 {
	text-align: center;
	font-size: 26px;
	line-height: 1.6;
	margin: 40px 0;
}

.section h4 {
	text-align: center;
	font-size: 26px;
	line-height: 1.6;
	margin: 120px 0 70px;
}


a:hover {
	opacity: .6;
}

.bread {
	width: 1140px;
	margin: 10px auto auto;
}


.bread ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 12px;
	display: flex;
	line-height: 1;
}

.bread ul li:not(:last-of-type) {
	position: relative;
	padding: 0 20px 0 0;
	margin: 0 15px 0 0;
}

.bread ul li:not(:last-of-type):before {
	position: absolute;
	content: "";
	right: 0;
	top: 50%;
	left: auto;
	width: 5px;
	height: 5px;
	border-top: 1px solid #000;
	border-right: 1px solid #000;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg) translate(-50%, 0);
}

.section01 .wrap {
	padding: 60px 46px 60px 84px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.section01 .wrap p {
	margin: 0;
	width: 670px;
	font-size: 18px;
	line-height: 1.8;
}

.section01 .wrap p:last-of-type {
	width: 280px;
}

.section01 h2 {
	margin: 0 0 60px;
}


ul.scene {
	font-size: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	line-height: 1.4;
	font-weight: bold;
}

ul.scene .s_txt {
	font-size: 80%;
}

ul.scene li {
	width: 307px;
	margin: 10px 0;
}

ul.scene li a {
	display: flex;
	border: 2px solid #0387b4;
	height: 100%;
	justify-content: space-between;
	align-items: center;
	border-radius: 10px;
	padding: 16px;
	color: #000;
}

ul.scene li a>span:first-of-type {
	width: 55px;
}

ul.scene li a>span:last-of-type {
	width: 184px;
	background-image: url(../images/icon_arrow.svg);
	background-position: right center;
	background-repeat: no-repeat;
	background-size: 8px;
}

.achieve {
	text-align: center;
	margin: 60px 0 0;
}

.achieve h2 {
	margin: 30px 0 40px;
}

.achieve h2 span {
	font-size: 48px;
}

.section02 {
	padding: 75px 0 75px;
	background: rgb(180, 222, 255);
	background: linear-gradient(90deg, rgba(189, 198, 252, 1) 0%, rgba(157, 221, 234, 1) 100%);
	margin: 0 0;
}

.section02 .wrap {
	background-color: #fff;
	padding: 100px 90px;
}

.section02 h2 {
	color: #0387b4;
	font-size: 30px;
}

.section02 h2 span {
	background: linear-gradient(transparent 65%, #FFB74D 65%);
}

.section02 h3 {
	margin: 20px 0 45px;
	font-size: 26px;
	text-align: left;
}

.solve_box {
	display: flex;
	padding: 0;
	background-color: #fff;
	justify-content: space-between;
	margin-top: 70px;
}

.solve_box h4 {
	font-size: 24px;
	font-weight: bold;
	margin: 0;
	color: #E07D00;
	text-align: left;
	line-height: 1.2;
	font-feature-settings: "palt";
}

.solve_box>div {
	width: 480px;
}

.solve_box>div:first-of-type {
	width: 420px;
}


.solve_box h4+p {
	font-size: 16px;
	line-height: 1.6;
	margin: 10px 0 30px;
}

.solve_box>div:last-of-type p:first-of-type {
	margin: 0 0 14px;
	font-weight: bold;
	font-size: 18px;
}

.solve_box>div:last-of-type p:last-of-type {
	text-align: center;
	width: 70%;
	margin: auto;
}

.function {
	border: 1px solid #000;
	padding: 40px;
	margin: 100px 0 0;
}

.function p {
	text-align: center;
	margin: 0 22px;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.4;
}

.function>p {
	font-size: 28px;
	font-weight: bold;
}

.function ul {
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}

.function ul li {
	width: 177px;
	margin: 25px 21px;
}

.function ul li p+p {
	margin: 15px 0 0 0;
}


.section03 {
	padding: 80px 0;
}

.section03 .wrap {
	width: 960px;
}

.section03 h2 {
	text-align: left;
	font-size: 28px;
	margin: 0 0 40px;
}

.section03 h2+p {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
}

.section03 h3 {
	font-size: 19px;
	text-align: left;
	margin: 0;
	font-feature-settings: "palt";
}

.section03 h3 span {
	display: inline-block;
	border-radius: 15px;
	color: #fff;
	font-size: 14px;
	background-color: #0387B4;
	padding: 2px 20px;
	margin: 0 0 0 30px;
}

.section03 h3+p {
	margin: 28px 0 40px;
	font-size: 24px;
	font-weight: bold;
	color: #0387b4;
	font-feature-settings: "palt";
	line-height: 1.8;
}

.section03 h4 {
	border-bottom: 1px solid #999;
	margin: 0;
	padding: 0;
	text-align: left;
	font-size: 19px;
	padding: 15px 0 15px 30px;
	position: relative;
	line-height: 1;
}

.section03 h4::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 2px;
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 11px solid #0387b4;
	border-right: 0;
	transform: translate(0, -50%);
}

.case_box {
	background-color: #efefef;
	border-radius: 10px;
	padding: 40px 48px;
}

.case_box+.case_box {
	margin-top: 80px;
}

.sub_case_box {
	display: flex;
	justify-content: space-between;
}

.sub_case_box div {
	width: 500px;
}

.sub_case_box div:first-of-type {
	width: 319px;
	border: 1px solid #D7D7D7;
}

.sub_case_box div p {
	margin: 0;
}

.sub_case_box div ul {
	list-style: none;
	margin: 15px 0 0;
	padding: 0;
	font-size: 18px;
	font-weight: bold;
	line-height: 1;
}

.sub_case_box div ul li+li {
	margin-top: 10px;
}

.cm {
	background-image: url(../images/common/bg_cm.svg);
	background-position: center;
	background-size: cover;
}

.cm .wrap {
	padding: 70px 0;
}

.cm p {
	color: #fff;
	font-size: 19px;
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
}

.cm p:nth-child(2) {
	margin: 30px 0 50px;
	font-size: 30px;
}

.cm p img {
	width: 172px;
	vertical-align: bottom;
	margin: 0 10px;
}

.section04 .wrap {
	padding: 90px;
}

.section04 h2 {
	font-size: 26px;
	margin: 0 0 68px;
}

.btn_frame06,
.btn_frame06.materials {
	height: 50px;
}

/* スマホ用
***************************************************************************************
***************************************************************************************
***************************************************************************************
***************************************************************************************/
@media screen and (max-width:768px) {
	.head_right {
		width: 100%;
	}

	/* メニュー
****************/
	.gnavi_wrap {
		display: none;
	}

	/* メイン
***************************************************************************************/
	/* キービジュアル */
	#Keyvisual {
		background-size: cover;
		background-position: left;
	}

	#Keyvisual .wrap {
		background-position: right 5vmin top 20vmin;
		background-size: 30vmin;
		padding: 3vmin 3vmin 6vmin;
		width: auto;
	}

	#Keyvisual .lead01 {
		font-size: 3.3vmin;
		margin: 5vmin 0 0;
		padding: 0 4vmin;
	}

	#Keyvisual .lead01:before,
	#Keyvisual .lead01:after {
		content: '';
		position: absolute;
		top: 50%;
		display: inline-block;
		width: 6vmin;
		height: 2px;
		background-color: black;
		transform: rotate(-75deg);
	}

	#Keyvisual .lead01:before {
		left: -10px;
		transform: rotate(75deg);
	}

	#Keyvisual .lead01:after {
		right: -10px;
	}

	#Keyvisual h1 {
		font-size: 5vmin;
		margin: 3vmin 0 0;
	}

	#Keyvisual h1 span {
		font-size: 10vmin;
	}

	#Keyvisual h1 span.fs01 {
		font-size: 4vmin;
	}

	#Keyvisual_btm {
		flex-direction: column-reverse;
		margin: 6vmin 0 0;
	}

	#cm_btn {
		flex-direction: column-reverse;
		flex-wrap: wrap;
		justify-content: center;
	}

	#Keyvisual_btm p,
	#cm_btn p {
		margin: 0;
	}

	#cm_btn p {
		margin: 0 auto;
		width: 90%;
	}
	
	.btn_frame02 {
		font-size: 4.6vmin;
		padding: 5vmin 0;
		width: 100%;
	}

	.section h2 {
		font-size: 6.5vmin;
		font-feature-settings: "palt";
	}

	.section h3 {
		font-size: 5vmin;
		margin: 5vmin 0;
		font-feature-settings: "palt";
	}

	.section h4 {
		font-size: 4.5vmin;
		margin: 10vmin 0;
	}

	.section01 {
		padding: 3.125vmin;
	}

	.bread {
		width: auto;
		margin: 10px auto auto;
	}

	.section01 .wrap {
		padding: 8vmin 0 0;
		flex-direction: column;
	}

	.section01 .wrap p {
		width: auto;
		font-size: 4vmin;
	}

	.section01 .wrap p:last-of-type {
		width: 50%;
		margin: 4vmin;
	}

	.section01 h2 {
		margin: 0 0 10vmin;
	}

	ul.scene {
		font-size: 3vmin;
	}

	ul.scene li {
		width: 48%;
		margin: 2vmin 0;
	}

	ul.scene li a {
		padding: 2vmin;
	}

	ul.scene li a>span:first-of-type {
		width: 10vmin;
	}

	ul.scene li a>span:last-of-type {
		width: 26vmin;
		padding: 0 3vmin 0 0;
	}


	.section02 {
		padding: 8vmin 3.125vmin;
	}

	.section02 .wrap {
		padding: 5vmin 3.125vmin;
	}

	.section02 h3 {
		margin: 4vmin 0 8vmin;
	}

	.section02 h3 {
		margin: 4vmin 0 8vmin;
		font-size: 4.6vmin;
	}

	.solve_box {
		flex-direction: column;
		margin-top: 8vmin;
	}

	.solve_box h4 {
		font-size: 4.8vmin;
		margin: 0;
	}


	.solve_box>div {
		width: auto;
	}

	.solve_box>div:first-of-type {
		width: auto;
	}


	.solve_box h4+p {
		font-size: 3.6vmin;
		margin: 3vmin 0 6vmin;
	}

	.solve_box>div:last-of-type p:first-of-type {
		margin: 0 0 3vmin;
		font-size: 3.6vmin;
	}

	.solve_box>div:last-of-type p:last-of-type {
		width: 40%;
	}

	.function {
		padding: 5vmin;
		margin: 10vmin 0 0;
	}

	.function p {
		font-size: 2.7vmin;
	}

	.function>p {
		font-size: 5vmin;
	}

	.function ul {
		list-style: none;
		margin: 6vmin 0 0;
		padding: 0;
	}

	.function ul li {
		width: 48%;
		margin: 2vmin 0;
	}

	.function ul li:nth-child(n+4) {
		margin-top: 4vmin;
	}

	.function ul li p+p {
		margin-top: 4vmin;
	}


	.color_box {
		margin: 10vmin 0 0;
		padding: 10vmin 3.125vmin;
	}

	.feature .color_box h6 {
		font-size: 5vmin;
		margin: 0 0 5vmin;
	}

	.color_box .flex_box>div {
		width: auto;
		padding: 3.125vmin;
	}

	.color_box .flex_box>div:nth-child(n + 2) {
		margin-top: 3.125vmin;
	}

	.color_box .flex_box>div>p {
		font-size: 3.6vmin;
		line-height: 1.4;
		margin: 0;
	}

	.color_box .flex_box>div>p:first-of-type {
		margin: 0;
	}

	.color_box .flex_box>div>p:nth-child(2) {
		font-size: 4.6vmin;
		margin: 3.125vmin 0 3vmin;
	}

	.color_box .flex_box>div img {
		width: 25vmin;
	}


	.feature h6 {
		font-size: 6.5vmin;
		margin: 10vmin 0;
		line-height: 1.4;
	}

	.feature .inner {
		text-align: center;
		margin: 10vmin 0 0;
	}

	.feature .inner h5 {
		font-size: 6.5vmin;
		margin: 4vmin 0 8vmin;
		line-height: 1;
	}

	.in_box .title01 {
		font-size: 5.2vmin;
		margin: 16vmin 0 0;
	}

	.in_box .title02 {
		font-size: 4vmin;
		margin: 5vmin 0 0;
		text-align: left;
		line-height: 1.4;
	}

	.in_box ul {
		margin: 10vmin 0 0;
		padding: 0;
		font-size: 3vmin;
	}

	.in_box ul li {
		width: 38vmin;
		margin: 0 0;
	}

	.in_box ul li:nth-child(n+3) {
		margin-top: 8vmin;
	}

	.in_box ul li>p:first-of-type {
		margin: 0 5vmin;
	}

	.in_box p.caution {
		font-size: 4vmin;
		margin: 10vmin 4vmin 0;
	}

	.txt01 {
		font-size: 4.6vmin;
		margin: 16vmin 0 12vmin;
	}

	.section03 {
		padding: 10vmin 0;
	}

	.section03 .wrap {
		width: auto;
	}

	.section03 h2 {
		margin: 0 0 5vmin;
	}

	.section03 h2+p {
		font-size: 5vmin;
	}

	.section03 h3 {
		font-size: 4vmin;
		line-height: 1.2;
		margin: 0;
	}

	.section03 h3 span {
		font-size: 3vmin;
		padding: 1.5vmin 3vmin;
		margin: 2vmin 0 0 2vmin;
		display: inline-block;
	}

	.section03 h4 {
		font-size: 4vmin;
		padding: 3vmin 0 3vmin 5vmin;
		margin: 4vmin 0;
	}

	.section03 h4::before {
		border-top: 4px solid transparent;
		border-bottom: 4px solid transparent;
		border-left: 5px solid #0387b4;
	}

	.section03 h3+p {
		margin: 4vmin 0;
		font-size: 4vmin;
		line-height: 1.4;
	}

	.case_box {
		padding: 6vmin 3.125vmin;
	}

	.case_box+.case_box {
		margin-top: 10vmin;
	}

	.sub_case_box {
		flex-direction: column;
	}

	.sub_case_box div {
		width: auto;
	}

	.sub_case_box div:first-of-type {
		width: auto;
	}

	.sub_case_box div p {
		margin: 0;
	}

	.sub_case_box div ul {
		margin: 4vmin 0 0;
		font-size: 3.2vmin;
	}

	.sub_case_box div ul li+li {
		margin-top: 2.4vmin;
	}

	.cm {
		background-image: url(../images/common/bg_cm.svg);
		background-position: center;
		background-size: cover;
	}

	.cm .wrap {
		padding: 10vmin 3.125vmin;
	}

	.cm p {
		font-size: 4vmin;
	}

	.cm p:nth-child(2) {
		margin: 10vmin 0;
		font-size: 4.5vmin;
	}

	.cm p img {
		width: 60vmin;
		margin: 0 3vmin;
	}

	.section04 .wrap {
		padding: 10vmin 3.125vmin;
	}

	.section04 h2 {
		font-size: 6.5vmin;
		margin: 0 0 10vmin;
	}

	.item02 .btn_frame06.materials {
		height: 50px;
	}

}
