@charset "UTF-8";

img {
	width: 100%;
}

.center {
	text-align: center;
}

.head_right {
	width: 850px;
}


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

#Keyvisual .wrap {
	background-image: url("../images/img_key01.svg");
	background-position: right 50px top 40px;
	background-repeat: no-repeat;
	background-size: 313px;
	padding: 60px 0 47px 80px;
	width: 1190px;
}

#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 .lead01 span {
	background: linear-gradient(transparent 65%, #FFB74D 65%);
}

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

#Keyvisual h1 span {
	font-size: 92px;
	color: #0387B4;
}

#Keyvisual h1 span+span {
	width: 500px;
	display: block;
	margin-top: 20px;
}

#Keyvisual h1 span.fs01 {
	font-size: 37px;
}

#Keyvisual_btm {
	display: flex;
	justify-content: space-between;
	margin: 36px 0 0;
}

#Keyvisual_btm ul {
	display: flex;
	list-style: none;
	margin: auto 0 auto auto;
	padding: 0;
	justify-content: space-around;
}

#Keyvisual_btm ul li {
	margin: 0 8px;
	width: 208px;
	position: relative;
	padding: 0 0px;
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	justify-content: center;
	align-items: center;
	font-size: 15px;
	font-weight: bold;
}

#Keyvisual_btm ul li::before,
#Keyvisual_btm ul li::after {
	display: block;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 42px;
	height: 110px;
	background-position: center center;
	background-repeat: no-repeat;
	margin: auto;
}

#Keyvisual_btm ul li::before {
	background-image: url("../images/common/img_obj02.png");
}

#Keyvisual_btm ul li::after {
	background-image: url("../images/common/img_obj03.png");
	right: 0;
	left: auto;
}

#Keyvisual_btm ul li span {
	text-align: center;
}

#Keyvisual_btm ul li span.text01 {
	font-size: 22px;
}

#Keyvisual_btm ul li span.text02 {
	font-size: 37px;
}

#Keyvisual_btm ul li span.text03 {
	font-size: 50px;
	margin: 0 5px;
	color: #ff7a00;
}

#Keyvisual_btm ul li span.text04 {
	font-size: 48px;
}

#Keyvisual_btm ul li span.width_ex {
	width: 15px;
	flex-shrink: 0;
	display: inline-block;
}
#Keyvisual_btm p a {
	height: 50px;
	margin-bottom: 15px;
}

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

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

.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;
}



.section01 {
	background-image: url(../images/bg_section01.svg);
	background-size: 100%;
}

.section01 .wrap {
	padding: 90px 90px 0;
}

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

.section01 .btn {
  margin: 60px auto;
}

.section01 .wrap p {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: center;
	margin: 0 auto;
	width: 90%;
}

.section01 .wrap p a {
	height: 80px;
}

.section01 .wrap p a.materials {
	background: #fff;
	border: 3px solid #E62200;
	color: #E62200;
}

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: 120px 0 0;
}

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

.section02 h2 {}

.section02 h2 .fs01 {
	font-size: .85em;
}

.section02 h3 {
	margin: 20px 0 45px;
	font-size: 46px;
}

.section02 h3 span:not(.txt_clr_blue) {
	font-size: 85%;
}

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

.three_feature>div {
	display: flex;
	flex-direction: column;
	width: 262px;
}

.three_feature>div p:first-of-type {
	text-align: center;
	margin: 0;
}

.three_feature>div img {
	width: 55%;
}

.three_feature>div p:nth-child(2) {
	font-size: 20px;
	color: #0387b4;
	font-weight: bold;
	margin: 30px 0 15px;
}

.three_feature>div p:last-of-type {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}

.feature {
	margin: 110px 0 0;
}

.feature h4 {
	color: #0387b4;
	font-size: 30px;
	font-weight: bold;
	margin: 0;
	position: relative;
	line-height: 2.2;
}

.feature h4::before,
.feature h4::after {
	content: "";
	position: absolute;
	height: 3px;
	width: 12%;
	background-color: #0387b4;
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);
}

.feature h4::after {
	bottom: 0;
	top: auto;
}

.feature h5 {
	font-size: 30px;
	font-weight: bold;
	text-align: center;
	margin: 25px 0 30px;
}

.feature p.lead {
	font-size: 18px;
	text-align: center;
	margin: 0;
}

.feature .btn {
  margin: 60px auto 0;
}

.step {
	list-style: none;
	margin: 55px 0 0;
	padding: 0;
	display: flex;
	justify-content: space-between;
}

.step li {
	width: 244px;
	text-align: center;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.6;
	position: relative;
	padding: 70px 0 0;
}

.step li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 65px;
	height: 65px;
	background-repeat: no-repeat;
}

.step li:nth-child(1)::before {
	background-image: url(../images/img_step01.svg);
}

.step li:nth-child(2)::before {
	background-image: url(../images/img_step02.svg);
}

.step li:nth-child(3)::before {
	background-image: url(../images/img_step03.svg);
}

.step li::after {
	content: "";
	position: absolute;
	width: 18px;
	height: 32px;
	background-image: url(../images/img_icon_arrow.svg);
	top: 50%;
	right: -25%;
	transform: translate(0, -50%);
}

.step li:nth-child(3)::after {
	background-image: url(../images/img_icon_shine.svg);
	background-repeat: no-repeat;
	width: 28px;
	right: 40px;
	top: 30%;
}

.step li img {
	width: 172px;
}

.color_box {
	background-color: #E6F3F7;
	margin: 50px 0 0;
	padding: 35px 25px 25px;
}

.feature .color_box h6 {
	font-size: 28px;
	text-align: center;
	font-weight: bold;
	margin: 0 0 30px;
}

.color_box .flex_box {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.color_box .flex_box>div {
	background-color: #fff;
	width: 284px;
	padding: 25px;
}

.color_box .flex_box>div:nth-child(n + 4) {
	margin-top: 25px;
}

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

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

.color_box .flex_box>div>p:nth-child(2) {
	font-size: 18px;
	font-weight: bold;
	color: #0387b4;
	margin: 20px 0 10px;
}

.color_box .flex_box>div img {
	width: 100px;
}

.feature h6 {
	text-align: center;
	font-size: 40px;
	font-weight: bold;
	margin: 100px 0 60px;
}

.feature .inner {
	text-align: center;
	margin: 40px 0 0;
}

.feature .inner h5 {
	font-size: 40px;
}

.in_box .title01 {
	font-size: 28px;
	color: #0387B4;
	font-weight: bold;
	margin: 60px 0 0;
}
.in_box .title01:first-of-type {
	margin: 25px 0 0;
}
.in_box .title02 {
	font-size: 18px;
	font-weight: bold;
	margin: 20px 0 0;
}
.in_box p.case img {
    margin-top:50px;
}

.in_box ul {
	list-style: none;
	margin: 50px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.4;
}

.in_box ul li {
	width: 170px;
	margin: 0 10px;
}

.in_box ul li:nth-child(n+5) {
	margin-top: 60px;
}

.in_box ul li>p:first-of-type {
	margin: 0 20px 15px;
}

.in_box p.caution {
	text-align: left;
	font-weight: bold;
	font-size: 14px;
	margin: 50px 80px 0;
	line-height: 1.6;
}

.txt01 {
	font-size: 18px;
	font-weight: bold;
	margin: 65px 0 45px;
}

.section03 {
	padding: 80px 0;
	background-color: #efefef;
}

.section03 .wrap {
	width: 1050px;
}

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

.voice_box {
	display: flex;
	padding: 48px 45px;
	background-color: #fff;
	justify-content: space-between;
}

.voice_box+.voice_box {
	margin-top: 40px;
}

.voice_box>div {
	width: 454px;
}

.voice_box>div:first-of-type {
	width: 468px;
}

.voice_box>div:last-of-type p {
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
	font-feature-settings: "palt";
}

.voice_box>div:last-of-type p:first-of-type {
	margin: 0 0 24px;
	font-weight: bold;
	font-size: 22px;
	color: #0387b4;
}

.voice_box>div:last-of-type p:last-of-type {
	text-align: right;
	font-size: 16px;
	font-weight: bold;
	margin-top: 24px;
}


/* スマホ用
***************************************************************************************
***************************************************************************************
***************************************************************************************
***************************************************************************************/
@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: 0 3vmin;
		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 h1 span+span {
		width: 55vmin;
		margin-top: 6vmin;
	}

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

	#Keyvisual_btm ul {
		display: flex;
		justify-content: space-around;
		margin: 0 0 0;
	}

	#Keyvisual_btm ul li {
		margin: 0 1vmin;
		width: 44vmin;
		font-size: 3vmin;
		padding: 0;
	}

	#Keyvisual_btm ul li::before,
	#Keyvisual_btm ul li::after {
		display: block;
		top: 0;
		left: 0;
		bottom: 0;
		width: 6.4vmin;
		height: 16vmin;
		background-size: auto 100%;
	}

	#Keyvisual_btm ul li::after {
		right: 0;
		left: auto;
	}

	#Keyvisual_btm ul li span {
		font-size: 2vmin;
	}

	#Keyvisual_btm ul li span.text01 {
		font-size: 3.2vmin;
	}

	#Keyvisual_btm ul li span.text02 {
		font-size: 6vmin;
	}

	#Keyvisual_btm ul li span.text03 {
		font-size: 6vmin;
		margin: 0 0;
	}

	#Keyvisual_btm ul li span.text04 {
		font-size: 8vmin;
	}

	#Keyvisual_btm p a,
	#Keyvisual_btm p a.materials {
		height: 15vmin;
	}

	.btn_frame02 {
		width: auto;
		font-size: 4.6vmin;
		padding: 5vmin 0;
	}

	.section h2 {
		font-size: 6.5vmin;
	}

	.section h3 {
		font-size: 5vmin;
		margin: 5vmin 0;
	}

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

	.section01 {
		background-size: 100%;
	}

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

	.section01 .wrap p {
		flex-direction: column-reverse;
		flex-wrap: wrap;
		margin-top: 10vmin;
	}

	.section01 .wrap p a {
		width: 100%;
	}

	.section01 .btn {
		margin: 0 auto;
	}

	.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;
		margin: 8vmin 0;
	}

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

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



	.three_feature {
		flex-direction: column;
	}

	.three_feature>div {
		width: auto;
		margin-bottom: 5vmin;
	}



	.three_feature>div p:nth-child(2) {
		font-size: 4.66vmin;
		margin: 30px 0 15px;
	}

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

	.feature {
		margin: 20vmin 0 0;
	}

	.feature h4 {
		font-size: 5.5vmin;
	}

	.feature h4::before,
	.feature h4::after {
		content: "";
		position: absolute;
		height: 3px;
		width: 24vmin;
		background-color: #0387b4;
		top: 0;
		left: 50%;
		transform: translate(-50%, 0);
	}

	.feature h4::after {
		bottom: 0;
		top: auto;
	}

	.feature h5 {
		font-size: 6vmin;
		margin: 4vmin 0;
	}

	.feature p.lead {
		font-size: 4vmin;
		line-height: 1.4;
		text-align: left;
	}

	.feature .btn {
		margin: 0 auto;
	}

	.step {
		list-style: none;
		margin: 55px 0 0;
		padding: 0;
		display: flex;
		justify-content: space-between;
		flex-direction: column;
	}

	.step li {
		width: auto;
		font-size: 3.6vmin;
		padding: 8vmin 0;
	}

	.step li:last-of-type {
		padding-bottom: 0;
	}

	.step li::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 65px;
		height: 65px;
		background-repeat: no-repeat;
	}

	.step li::after {
		top: auto;
		right: 50%;
		bottom: 0;
		transform: translate(0, 0) rotate(90deg);
	}

	.step li img {
		width: 50%;
	}

	.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+p {
		font-size: 5vmin;
	}

	.voice_box {
		padding: 3.125vmin;
		flex-direction: column;
	}

	.voice_box+.voice_box {
		margin-top: 3.125vmin;
	}

	.voice_box>div {
		width: auto;
	}

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

	.voice_box>div:last-of-type p {
		font-size: 4vmin;
	}

	.voice_box>div:last-of-type p:first-of-type {
		margin: 4vmin 0;
		font-size: 5vmin;
	}

	.voice_box>div:last-of-type p:last-of-type {
		font-size: 3vmin;
		margin-top: 4vmin;
	}

}
