/*-------------------------------
	subf view
-------------------------------*/

.subf_view {
	background:url(../images/bg_subf_feature.jpg) no-repeat center / cover;
}

.subf_view h1 img {
	max-width:54.5rem;
}

/*-------------------------------
	sec_clean
-------------------------------*/

.sec_clean {
	padding:30px 0 100px;
	background:url(../images/bg_feature_clean.png) no-repeat center bottom / cover;
}

.sec_clean::before {
	content:"";
	display: block;
	width:100%;
	height:40%;
	background: rgb(255,255,255);
	background: linear-gradient(180deg, rgba(255,255,255,1) 20%, rgba(255,255,255,0) 100%);
	position:absolute;
	left:0;
	top:0;
}

.head_block {
	position:relative;
	margin-bottom:170px;
}

.head_block .gra_title {
	max-width:670px;
}

.head_block figure {
	position:absolute;
	right:5%;
	top:50%;
	transform:translateY(-42%);
	width:39%;
	max-width:466px;
	height:384px;
}

.head_txt {
	background:rgba(251,241,218,0.6);
	border-radius: 2rem;
	padding:25px 45% 25px 50px;
	margin:50px 0;
}

.head_txt .ten_list li {
	width:50%;
	padding-right:1em;
	color:#8f7e55;
	font-size:2.4rem;
}

.head_txt .ten_list li::before {
	content:"";
	border-radius:50%;
	border:1px solid #8f7e55;
	top:0.75em;
}

.clean_block .affe_wrap {
	padding-top:50px;
}

.clean_block .affe_img {
	height:340px;
}

.clean_block .affe_txt strong {
	font-size:2.2rem;
}

/*-------------------------------
	sec reason
-------------------------------*/

.sec_reason {
	padding:100px 0;
}

.sec_reason .aside_wrap {
	padding-top:50px;
}

/*-------------------------------
	sec promise
-------------------------------*/

.sec_promise {
	padding:100px 0 150px;
	background: rgb(222,244,255);
	background: linear-gradient(180deg, rgba(222,244,255,1) 35%, rgba(255,255,255,1) 100%);
}

.promise_list {
	padding-top:50px;
}

.promise_block {
	width:32%;
	max-width:380px;
	border-radius: 2rem;
	border:1px solid #b9b9b9;
	margin-bottom:50px;
	overflow: hidden;
}

.pro_img {
	height:233px;
}

.pro_txt {
	height:100%;
	position:relative;
	padding:20px 20px 25px;
	background:#fff;
}

.pro_txt::before,
.pro_txt::after {
	content:"";
	display: block;
}

.pro_txt::before {
	width:128px;
	height:64px;
	border-radius: 50% / 100% 100% 0 0;
	background:#fff;
	position:absolute;
	left:50%;
	top:-45px;
	transform:translateX(-50%);
}

.pro_txt::after {
	width:50px;
	height:35px;
	background:url(../images/icon_shake.png) no-repeat center / contain;
	position:absolute;
	left:50%;
	top:-35px;
	transform:translateX(-50%);
}

.pro_txt h3 {
	font-size:2rem;
	line-height:1.5;
	font-weight:700;
	margin-bottom:0.5em;
	font-feature-settings: "palt";
}

/*-------------------------------
	sec_greeting
-------------------------------*/

.sec_greeting {
	padding-bottom:100px;
}

.sec_greeting .h_title {
	line-height:1.5;
}

.sec_greeting .affe_wrap {
	padding-top:50px;
}

.sec_greeting .affe_txt p {
	line-height:2.25;
}

/*-------------------------------
	sec works
-------------------------------*/

.sec_works {
	padding:100px 0;
	background:#f7f7f7;
}

.sec_works h2 {
	font-size:3rem;
	letter-spacing: 0.1em;
	margin-bottom:1em;
}
.works_banner{
	gap: 7rem;
}
.works_banner a {
	/*width:32%;*/
	width:340px;
	border-radius:1rem;
	overflow:hidden;
	border:1px solid #a7a7a7;
}

.works_banner a:last-of-type {
	border:none;
}

/*-------------------------------
	responsive
-------------------------------*/

@media screen and (max-width:960px){

/*-------------------------------
	sec_clean
-------------------------------*/

.head_block {
	margin-bottom:150px;
}

.head_block .gra_title {
	font-size:3.2rem;
}

.clean_block .affe_img {
	margin-top:40px;
}

/*-------------------------------
	sec_greeting
-------------------------------*/

.sec_greeting .affe_img {
	margin-bottom:40px;
}

/*-------------------------------
	sec promise
-------------------------------*/

.promise_block {
	width:48%;
}

	/*-------------------------------
		sec works
	-------------------------------*/
	.works_banner{
		gap: 5rem;
	}
	.works_banner a {
		width:calc((100% - 5rem) / 2);
	}

@media screen and (max-width:720px){

/*-------------------------------
	sec_clean
-------------------------------*/

.head_block .gra_title br {
	display: none;
}

.head_txt .ten_list li {
	width:100%;
}

.head_block figure {
	width:50%;
}

/*-------------------------------
	sec works
-------------------------------*/
.works_banner{
	gap: 0;
}
.works_banner a {
	width:100%;
	margin:0 auto 20px;
}

} /* end 720px */

} /* end 960px */

/*-------------------------------
	ver sp	
-------------------------------*/

@media screen and (max-width:599px){

.subf_view h1 img {
	max-width:calc(54.5rem / 2);
}

/*-------------------------------
	sec_clean
-------------------------------*/

.sec_clean {
	padding:0px 0 5rem;
	background:url(../images/bg_feature_clean_sp.png) no-repeat center bottom / cover;
}

.head_block {
	margin-bottom:5rem;
}

.head_block .gra_title {
	font-size:clamp(16px,2.0rem,30px);
	max-width:100%;
}

.head_block figure {
	right:-1rem;
	top:50%;
	transform:translateY(-30%);
	width:54%;
	max-width:100%;
	height:16rem;
}

.head_txt {
	border-radius: 1rem;
	padding:1.5rem 45% 1.5rem 1.5rem;
	margin:2.5rem 0;
}

.head_txt .ten_list li {
	width:100%;
	padding-right:0;
	font-size:clamp(16px,1.6rem,24px);
}

.head_txt .ten_list li::before {
	border-width:0.1rem;
}

.clean_block .affe_wrap {
	padding-top:0px;
}

.clean_block .affe_img {
	margin-top:2rem;
	height:25rem;
}

.clean_block .affe_txt strong {
	font-size:clamp(16px,1.8rem,27px);
}

/*-------------------------------
	sec reason
-------------------------------*/

.sec_reason {
	padding:5rem 0;
}

.sec_reason .aside_wrap {
	padding-top:0px;
}

/*-------------------------------
	sec promise
-------------------------------*/

.sec_promise {
	padding:5rem 0 5rem;
}

.promise_list {
	padding-top:0px;
}

.promise_block {
	width:100%;
	max-width:100%;
	border-radius: 1rem;
	border-width:0.1rem;
	margin-bottom:3rem;
}

.pro_img {
	height:18.7rem;
}

.pro_txt {
	padding:2rem 1.5rem 1.5rem;
}

.pro_txt::before {
	width:9.6rem;
	height:4.8rem;
	top:-3.75rem;
}

.pro_txt::after {
	width:3.75rem;
	height:2.625rem;
	top:-2.625rem;
}

.pro_txt h3 {
	font-size:clamp(16px,1.8rem,27px);
}

/*-------------------------------
	sec_greeting
-------------------------------*/

.sec_greeting {
	padding-bottom:5rem;
}

.sec_greeting .affe_wrap {
	padding-top:0px;
}

.sec_greeting .affe_img {
	margin-bottom:2rem;
}

/*-------------------------------
	sec works
-------------------------------*/

.sec_works {
	padding:5rem 0;
}

.sec_works h2 {
	font-size:clamp(16px,2.1rem,31px);
}

.works_banner a {
	width:100%;
	max-width:100%;
	margin:0 auto 2rem;
	border-radius:1rem;
	border-width:0.1rem;
}


} /* end 599px */

.wave02::after{	/*共通パーツ波futureだけ色違い*/
    background: url(../images/bg_wave02_gray.png) no-repeat center top / contain;
}