@charset "UTF-8";

/*-------------------------------------------------
common
-------------------------------------------------*/
sub {
	vertical-align: 0em;
}
/*-------------------------------------------------
KV下テキスト
-------------------------------------------------*/
#carbon_neutral #kv_sub .kv_sub_txt {
    line-height: 140%;
}
#kv_sub.carbon_neutral {
    background-image: url("../img/carbon_neutral/carbon_neutral_kv_bg.jpg");
}
@media screen and (max-width: 959px) {
    .h2_kv_sub {
        font-size: 24px !important;
    }
}
@media screen and (max-width: 600px) {
	#carbon_neutral #kv_sub {
		height: 280px;
		background-position: bottom right 45%;
	}
}
/*-----------------------------------

	intro

-----------------------------------*/
.intro .wrap {
	background: url(../img/carbon_neutral/carbon_neutral_bg.jpg) no-repeat center center/cover;
	border-radius: 20px;
	padding: 5rem 2rem;
}
.intro .intro_img01 {
	width: min(750px,90%);
}
.intro .p_yellow {
	color: #fff500;
}
.intro .intro_img02 {
	width: min(460px,70%);
}
.intro .wrap_s h3 {
	background: #22ac38;
	color: #FFF;
	text-align: center;
	padding: 0.5rem 0;
	font-size: 31px;
	font-weight: 700;
	margin-bottom: 2rem;
}
.intro .wrap_s .box01 {
	background: #fffde7;
	color: #22ac38;
	padding: 5rem 3rem;
}
.intro .intro_img03 {
	mix-blend-mode: multiply;
}
.intro .wrap_s .box01 p {
	width: 90%;
	margin: 0 auto;
}
.intro .intro_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 3rem;
}
.intro .intro_list li {
	padding: 3rem 3rem 3rem calc(6rem + 18%);
	position: relative;
	box-sizing: border-box;
	background-repeat: no-repeat,no-repeat;
	background-position: 3rem 3rem,3rem calc(100% - 3rem);
	background-size: 18%,16%;
}
.intro .wrap_s .box02 {
	background-color: #00b5ee;
	background-image: url(../img/carbon_neutral/carbon_neutral_img04.svg), url(../img/carbon_neutral/carbon_neutral_no01.svg);
}
.intro .wrap_s .box03 {
	background-color: #acd168;
	background-image: url(../img/carbon_neutral/carbon_neutral_img05.svg), url(../img/carbon_neutral/carbon_neutral_no02.svg);
}
.intro .wrap_s .box04 {
	background-color: #f5a747;
	background-image: url(../img/carbon_neutral/carbon_neutral_img06.svg), url(../img/carbon_neutral/carbon_neutral_no03.svg);
}
.intro .wrap_s .box05 {
	background-color: #ef8aa0;
	background-image: url(../img/carbon_neutral/carbon_neutral_img07.svg), url(../img/carbon_neutral/carbon_neutral_no04.svg);
}
@media screen and (max-width: 959px) {
	.intro .p30 {
		font-size: 22px;
		letter-spacing: 0;
	}
	.intro .wrap_s h3 {
		font-size: 22px;
	}
	.intro .wrap_s .box01 {
		padding: 3rem 1.5rem;
	}
	.intro .intro_list {
		gap: 2rem;
	}
	.intro .intro_list li {
		padding: 2rem 2rem 2rem calc(4rem + 18%);
		background-position: 2rem 2rem,2rem calc(100% - 2rem);
	}
}
@media screen and (max-width: 498px) {
	.intro .intro_list {
		grid-template-columns: repeat(1, 1fr);
		grid-template-rows: repeat(4, 1fr);
		gap: 2rem;
	}
}
/*-----------------------------------

	case

-----------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@100..900&display=swap');
.case-list {
	counter-reset: number;
}
/* .case:last-child .txt {
	width: 100%;
} */
.case .wrap {
	border: 2px solid #0060b3;
	border-radius: 20px;
	position: relative;
	counter-increment: number;
}
.case .wrap::before {
	content: "";
	width: 38px;
	height: 110px;
	background: url(../img/carbon_neutral/carbon_neutral_deco01.svg) no-repeat center/contain;
	position: absolute;
	top: -1rem;
	left: 4rem;
}
.case h3 {
	font-size: 3rem;
	font-weight: 700;
	color: #0060b3;
	margin-bottom: 3rem;
	padding-left: 5rem;
}
.case h3::before {
	content: "CARBON NEUTRAL \A CASE STUDY "counter(number,decimal-leading-zero);
	white-space: pre;
	font-size: 13px;
	font-weight: 900;
	font-family: "Jost", sans-serif;
	color: #b3b3b3;
	display: block;
}
.case .flx_02 {
	gap: 5%;
}
.case .txt {
	width: 55%;
}
.case .img {
	width: 40%;
}
.case .ttl {
	font-size: 23px;
	font-weight: 700;
	margin-bottom: 2rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.case .ttl span {
	border: 1px solid #0060b3;
	border-radius: 6px;
	color: #0060b3;
	font-size: 16px;
	padding: 0 5px;
	margin-right: 10px;
}
@media screen and (max-width: 959px) {
	.case .wrap::before {
		width: 27px;
		height: 77px;
		left: 3rem;
	}
	.case h3 {
		font-size: 2rem;
		margin-bottom: 2rem;
		padding-left: 4rem;
	}
	.case h3::before {
		font-size: 11px;
	}
	.case .ttl {
		font-size: 18px;
	}
	.case .ttl span {
		font-size: 14px;
	}
}
@media screen and (max-width: 498px) {
	.case .wrap::before {
		left: 2rem;
	}
	.case .txt {
		width: 100%;
		margin-bottom: 20px;
	}
	.case .img {
		width: 100%;
	}
}
/*-----------------------------------

	introduction

-----------------------------------*/
.introduction .wrap {
	background: #f3f6f7;
	border-radius: 20px;
	padding: 4rem;
}
.introduction h3 {
	font-size: 30px;
	background: #0060b3;
	color: #FFF;
	text-align: center;
	padding: 5px 0;
	position: relative;
	margin-bottom: 4rem;
}
.introduction h3::before {
	content: "";
	width: 103px;
	height: 110px;
	background: url(../img/carbon_neutral/carbon_neutral_deco02.png) no-repeat center/contain;
	position: absolute;
	top: calc(50% - 55px);
	left: 3rem;
}
.introduction .flx_02 {
	gap: 5%;
}
.introduction .box50 {
	width: 47.5%;
}
.introduction .box40 {
	width: 38.5%;
}
.introduction .box60 {
	width: 57.5%;
}
.introduction .copy {
	font-size: 26px;
	font-weight: 700;
	color: #405a77;
	margin-bottom: 3rem;
}
.introduction .copy span {
	background: linear-gradient(transparent 80%, #fceb21 80%);
}
@media screen and (max-width: 959px) {
	.introduction h3 {
		font-size: 20px;
		margin-bottom: 3rem;
	}
	.introduction h3::before {
		width: 72px;
		height: 77px;
		top: calc(50% - 38.5px);
		left: 1rem;
	}
	.introduction .flx_02 {
		flex-direction: column;
		gap: 3rem;
	}
	.introduction .box50 {
		width: 100%;
	}
	.introduction .box40 {
		width: 100%;
	}
	.introduction .box60 {
		width: 100%;
	}
	.introduction .copy {
		font-size: 18px;
		margin-bottom: 2rem;
	}
}
@media screen and (max-width: 498px) {
	.introduction .wrap {
		padding: 3rem;
	}
	.introduction .flx_02 > *:first-child {
		margin-bottom: 2rem;
	}
	.introduction h3::before {
		content: none;
		display: none;
	}
}
/*-----------------------------------

	

-----------------------------------*/
@media screen and (max-width: 840px) {
}
@media screen and (max-width: 640px) {
}
