@charset "UTF-8";

.hatena_cont{
	width:90%;
	max-width: 1016px;
	margin:0 auto;
}

ul.cate_list{
	display:flex;
	justify-content: center;
	margin:70px 0;
}

ul.cate_list li{
	padding: 0 15px;
	text-align: center;
	border-right: 1px solid #bfe7e5;
}

ul.cate_list li button{
	font-size: 1.6rem;
	transition: all 0.3s;
	padding:7px 15px 7px;
	display: block;
	border-bottom:1px solid #fff;
	color:#80d0cc;
	line-height: 1.5em;
}

ul.cate_list li button:hover,
ul.cate_list li button.active{
	color:#009691;
	border-bottom:1px solid #009691;
}

ul.cate_list li:last-child{
	border-right: none;
}

ul.hatena_list{
	width:100%;
	display: flex;
	flex-wrap: wrap;
	gap:min(7vw,50px) min(3vw,30px);
}

ul.hatena_list li{
	width:calc((100% - min(6vw,60px)) / 3 );
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0px 5px 5px rgba(0,0,0,0.1);
	background:#fff;
}

ul.hatena_list li figure{
	aspect-ratio:320 / 160;
}

ul.hatena_list li .txbox{
	padding:30px min(5vw,25px);
	position: relative;
}

ul.hatena_list li .txbox p.cate{
	position: absolute;
	top:-1.2em;
	left:0;
	display: flex;
	justify-content: center;
	width:100%;
}


ul.hatena_list li .txbox p.cate span{
	font-size: 1.3rem;
	font-weight: 500;
	color:#fff;
	border-radius: 9999px;
	background:#009691;
	line-height: 1;
	padding:0.5em 1.5em;
}

ul.hatena_list li .txbox .tl{
	font-size: 2rem;
	line-height: 1.625em;
	color:#009691;
	font-weight: 500;
	padding-bottom: 0.25em;
}

ul.hatena_list li .txbox .explain{
	font-size: 1.4rem;
	line-height: 1.875em;
	overflow: hidden;
  	display: -webkit-box;
  	-webkit-box-orient: vertical;
  	-webkit-line-clamp: 3;
}

ul.case_list{
	margin-bottom: -20px;
	counter-reset: number 0;
}

ul.case_list li{
	margin-bottom: 100px;
	position: relative;
	padding:40px 60px 40px 60px;
	border-radius: 50px;
	background:#e5f4f4;
}

ul.case_list.mb0 li:last-child{
	margin-bottom: 0;
}

ul.case_list > li .stepnum{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	top:50px;
	left:-4.5em;
}

ul.case_list > li .stepnum::before{
	content: "CASE";
	font-weight: 300;
	color:#009691;
	font-size: 3.5rem;
	letter-spacing: 0.075em;
	display: block;
	line-height: 1;
}

ul.case_list > li .stepnum::after{
	counter-increment: number 1;
  	content: "0"counter(number);
	top:0;
	left:0;
	font-size: 9rem;
	font-weight: 100;
	color:#009691;
	line-height: 1;
	font-family: "Montserrat", sans-serif;
	display: block;
}

ul.case_list > li dl{
	display: flex;
	align-items: flex-start;
	margin:15px 0;
}

ul.case_list > li dl.text_left {
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	margin:15px 0;
}

ul.case_list > li dl dt{
	width:100px;
}

ul.case_list > li dl dt img.icon2{
	width:120px !important;
	max-width: 120px;
	position: relative;
	margin-left: -10px;
}

ul.case_list > li dl.text_left dt{
	order:1;
}

ul.case_list > li dl dd{
	width:calc(100% - 30px - 30px - 100px - 100px);
	background:#fff;
	border-radius: 60px;
	min-height: 100px;
	padding:20px min(5vw,60px);
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin:0 30px;
	position: relative;
}

ul.case_list > li dl dd::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
  	border-right: 30px solid #fff;
  	border-left: 0;
	display: block;
	position: absolute;
	top:45px;
	left:-20px;
}

ul.case_list > li dl.text_left dd::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
  	border-right: 30px solid #fff;
	transform: rotate(180deg);
  	border-left: 0;
	display: block;
	position: absolute;
	top:45px;
	left:auto;
	right:-20px;
}

ul.text_cont li{
	margin-bottom: 100px;
}

@media screen and (max-width:750px) {
	
.hatena_cont{
	width:90%;
	max-width: 1016px;
	margin:0 auto;
}

ul.cate_list{
	display:flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	margin:50px 0 30px 0;
}

ul.cate_list li{
	padding: 0 10px;
	text-align: center;
	border-right: 1px solid #bfe7e5;
	margin-bottom: 10px;
}

ul.cate_list li button{
	font-size: 1.4rem;
	transition: all 0.3s;
	padding:5px 10px 5px;
	display: block;
	border-bottom:1px solid #fff;
	color:#80d0cc;
	line-height: 1.5em;
}

ul.cate_list li button:hover,
ul.cate_list li button.active{
	color:#009691;
	border-bottom:1px solid #009691;
}

ul.cate_list li:last-child{
	border-right: none;
}

ul.hatena_list{
	width:100%;
	display: flex;
	flex-wrap: wrap;
	gap:min(8vw,40px) min(3vw,40px);
}

ul.hatena_list li{
	width:100%;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0px 5px 5px rgba(0,0,0,0.1);
	background:#fff;
}

ul.hatena_list li figure{
	aspect-ratio:320 / 160;
}

ul.hatena_list li .txbox{
	padding:30px min(5vw,25px);
	position: relative;
}

ul.hatena_list li .txbox p.cate{
	position: absolute;
	top:-1.2em;
	left:0;
	display: flex;
	justify-content: center;
	width:100%;
}


ul.hatena_list li .txbox p.cate span{
	font-size: 1.3rem;
	font-weight: 500;
	color:#fff;
	border-radius: 9999px;
	background:#009691;
	line-height: 1;
	padding:0.5em 1.5em;
}

ul.hatena_list li .txbox .tl{
	font-size: 2rem;
	line-height: 1.625em;
	color:#009691;
	font-weight: 500;
	padding-bottom: 0.25em;
}

ul.hatena_list li .txbox .explain{
	font-size: 1.4rem;
	line-height: 1.875em;
	overflow: hidden;
  	display: -webkit-box;
  	-webkit-box-orient: vertical;
  	-webkit-line-clamp: 3;
}

ul.case_list{
	margin-bottom: -20px;
	counter-reset: number 0;
	width:100vw;
	margin-left: -5vw;
}

ul.case_list li{
	margin-bottom: 80px;
	position: relative;
	padding:40px 5vw 40px 5vw;
	border-radius: 50px;
	background:#e5f4f4;
}

ul.case_list.mb0 li:last-child{
	margin-bottom: 0;
}

ul.case_list > li .stepnum{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	top:50px;
	left:-4.5em;
}

ul.case_list > li .stepnum::before{
	content: "CASE";
	font-weight: 300;
	color:#009691;
	font-size: 3.5rem;
	letter-spacing: 0.075em;
	display: block;
	line-height: 1;
}

ul.case_list > li .stepnum::after{
	counter-increment: number 1;
  	content: "0"counter(number);
	top:0;
	left:0;
	font-size: 9rem;
	font-weight: 100;
	color:#009691;
	line-height: 1;
	font-family: "Montserrat", sans-serif;
	display: block;
}

ul.case_list > li dl{
	display: flex;
	align-items: flex-start;
	margin:20px 0;
}

ul.case_list > li dl.text_left {
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	margin:20px 0;
}

ul.case_list > li dl dt{
	width:100px;
	margin-top:10px;
}

ul.case_list > li dl dt img.icon2{
	width:120% !important;
	max-width: 120%;
	position: relative;
	margin-left: -10%;
}

ul.case_list > li dl.text_left dt{
	order:1;
}

ul.case_list > li dl dd{
	width:calc(100% - 30px);
	background:#fff;
	border-radius: 30px;
	min-height: 100px;
	padding:20px min(5vw,60px);
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin:0 0 0 30px;
	position: relative;
}
	
ul.case_list > li dl.text_left dd{
	margin:0 30px 0 0;
}

ul.case_list > li dl dd::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
  	border-right: 30px solid #fff;
  	border-left: 0;
	display: block;
	position: absolute;
	top:45px;
	left:-20px;
}

ul.case_list > li dl.text_left dd::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
  	border-right: 30px solid #fff;
	transform: rotate(180deg);
  	border-left: 0;
	display: block;
	position: absolute;
	top:45px;
	left:auto;
	right:-20px;
}

ul.text_cont li{
	margin-bottom: 50px;
}

}