@charset "UTF-8";

#page_content{
	overflow: hidden;
	width:100%;
}

.common_maincont{
	margin-bottom: 140px;
}

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

.activities_cont ul.index_list{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width:100%;
	margin-top:min(10vw,100px);
	margin-bottom: min(-4vw,-50px);
}

.activities_cont ul.index_list li{
	width:calc((100% - min(7vw,100px)) / 2);
	margin-bottom:min(4vw,50px);
	position: relative;
}

.activities_cont ul.index_list li::after{
	content: "";
	position: absolute;
	display: block;
	border-radius: 95px;
	background: linear-gradient(127deg,rgba(195, 234, 250, 1) 0%, rgba(225, 237, 167, 1) 100%);
	z-index: 1;
}

.activities_cont ul.index_list li:nth-child(1)::after{
	width:95%;
	height: 90%;
	max-width:425px;
	max-height: 650px;
	top:-70px;
	left: -70px;
}

.activities_cont ul.index_list li:nth-child(2)::after{
	width:95%;
	height: 90%;
	max-width:580px;
	max-height: 350px;
	top:-100px;
	left: 50%;
}

.activities_cont ul.index_list li:nth-child(3)::after,
.activities_cont ul.index_list li:nth-child(7)::after{
	width:120%;
	height: 90%;
	max-width:680px;
	max-height: 434px;
	top:150px;
	right: 20%;
}

.activities_cont ul.index_list li:nth-child(4)::after{
	width:95%;
	height: 97%;
	max-width:425px;
	max-height: 606px;
	top:-50px;
	right: -70px;
}

.activities_cont ul.index_list li:nth-child(5)::after{
	width:95%;
	height: 90%;
	max-width:425px;
	max-height: 515px;
	top:70px;
	right: 25%;
}

.activities_cont ul.index_list li:nth-child(6)::after{
	width:120%;
	height: 90%;
	max-width:780px;
	max-height: 488px;
	top:150px;
	left: 25%;
}
.activities_cont ul.index_list li:nth-child(even){
	margin-top:min(10vw,100px);
}

.activities_cont ul.index_list li figure{
	aspect-ratio: 450 / 360;
	overflow: hidden;
	border-radius: 10px;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li figure.coming_soon::after{
	content: "Coming Soon";
	width:100%;
	height: 100%;
	color:#fff;
	background:rgba(0,0,0,0.5);
	position: absolute;
	top:0;
	left:0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 3rem;
	letter-spacing: 0.05em;
}

.activities_cont ul.index_list li h2{
	font-size: 3rem;
	line-height: 1.875em;
	color:#009691;
	letter-spacing: 0.025em;
	margin:0.75em 0 0.5em;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li p{
	margin-bottom: 2em;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li a{
	position: relative;
	z-index: 2;
}

.activities_cont .activities_box{
	margin-bottom: 140px;
} 

.activities_cont .activities_box:last-child{
	margin-bottom: 0;
} 

ul.number_list{
	display: flex;
	justify-content: space-between;
	counter-reset: number 0;
	margin-bottom: 30px;
}

ul.number_list.step{
	margin-top: 30px;
	margin-bottom: 0;
}

ul.number_list > li{
	width:calc((100% - min(10vw,60px)) / 3);
	position: relative;
	padding-top:30px;
}

ul.number_list.step > li{
	width:calc((100% - min(20vw,120px)) / 3);
	position: relative;
	padding-top:30px;
}

ul.number_list.step > li::before{
	content: "";
	width:30px;
	height: 20px;
	background-image:url("/images/common/step_arrow.svg");
	background-size: contain;
	background-repeat: no-repeat;
	display: block;
	position: absolute;
	left:calc(100% + 15px);
	top:50%;
}

ul.number_list.step > li:last-child::before{
	display: none;
}

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

ul.number_list.step > li::after{
	display: none;
}

ul.number_list.step > li .stepnum{
	display: flex;
	align-items: center;
	position: absolute;
	top:0;
	left:0;
}

ul.number_list.step > li .stepnum::before{
	content:"STEP";
	font-size: min(2.5vw,3.5rem);
	font-weight: 300;
	color:#009691;
	letter-spacing: 0.075em;
	margin-right: 0.2em;
	line-height: 1;
}

ul.number_list.step > li .stepnum::after{
	counter-increment: number 1;
  	content: counter(number);
	font-size:min(7vw,9rem);
	font-weight: 100;
	color:#009691;
	line-height: 1;
}

ul.number_list.step > li::after{
	display: none;
}

ul.number_list > li figure{
	max-width:95px;
	width:30%;
	position: absolute;
	top:1em;
	right:min(5vw,30px);
	display: flex;
	justify-content: center;
}

ul.number_list > li figure.wbox img{
	max-width:65px;
	width:70%;
}

ul.number_list > li figure.wbox2 img{
	max-width:85px;
	width:90%;
}

ul.number_list > li .box{
	padding:70px min(5vw,30px) 40px;
	border-radius: 50px;
	background:#e5f4f4;
	display: flex;
	flex-direction: column;
	height: 100%;
}

ul.number_list > li .box .tl{
	font-size: 2.5rem;
	letter-spacing: 0.05em;
	line-height: 1.6em;
	color:#009691;
}

ul.number_list > li .box .tl.tc{
	text-align: center;
}

ul.number_list > li .box .tl.mb10{
	margin-bottom: 0.5em;
}

ul.number_list > li .box .sub{
	font-size:1.6rem;
	color:#fff;
	border-radius: 9999px;
	background:#009691;
	padding:0.5em;
	margin:1em 0 0.25em 0;
	text-align: center;
}


ul.number_list > li .box .caption{
	font-size:1.4rem;
	color:#009691;
	font-weight: 500;
	line-height: 1.875em;
	margin-top:1em;
}

.flow_cont{
	width:100%;
}

.flow_cont dl{
	display: flex;
	margin-top:2em;
}

.flow_cont dt{
	display: flex;
	border:1px solid #009691;
	border-radius: 10px;
	font-size: 1.6rem;
	color:#009691;
	justify-content: center;
	align-items: center;
	width:120px;
	font-weight:500;
}

.flow_cont dd{
	width:calc(100% - 120px - 15px);
	margin:0 0 0 auto;
}

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

.half_flexbox .box{
	width:calc((100% - min(5vw,40px)) / 2);
}

.half_flexbox .box figure.radius{
	border-radius: 10px;
	overflow: hidden;
}

/*sp*/
.sp_main_flexbox{
	display: flex;
	justify-content: space-between;
}

.sp_main_flexbox .txbox{
	width:calc(100% - 310px);
}

.sp_main_flexbox figure{
	width:310px;
	min-width: 310px;
	padding:0 min(3vw,40px) 0 min(8vw,70px) ;
	box-sizing: border-box;
}

ul.sp_ph_list{
	display: flex;
	justify-content: space-between;
	counter-reset: number 0;
	padding-top:30px;
}

ul.sp_ph_list > li{
	width:calc((100% - min(15vw,90px)) / 4);
	position: relative;
}

ul.sp_ph_list .spph_radius_tx{
	background:#009691;
	color:#fff;
	padding:0.2em 1em;
	border-radius: 9999px;
	font-size: 1.6rem;
	line-height: 1.6em;
	display: inline-block;
	margin-bottom: 0.5em;
	width:100%;
	text-align: center;
	position: relative;
	z-index: 2;
}

ul.sp_ph_list figure{
	position: relative;
	margin-top:-20px;
	z-index: 1;
}

ul.sp_num_list{
	display: flex;
	counter-reset: number 0;
	margin-top: 30px;
	margin-bottom: 50px;
	gap:min(5vw,30px);
	flex-wrap: wrap;
}

ul.sp_num_list li{
	width:calc((100% - min(10vw,60px)) / 3 );
	border-radius: 10px;
	background:#e5f4f4;
	padding:30px;
	display: flex;
	flex-direction: column;
	
}

ul.sp_num_list li .num_tl{
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.8rem;
	line-height: 1.875em;
	color:#009691;
	margin-bottom: 1em;
}

ul.sp_num_list li .num_tl span{
	width:calc(100% - 40px);
}

ul.sp_num_list li .num_tl:before{
	counter-increment: number 1;
  	content: counter(number);
	border:1px solid #009691;
	background:#fff;
	border-radius: 3px;
	width:25px;
	height: 25px;
	padding-bottom: 0.1em;
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
}

ul.sp_num_list li figure{
	max-width:calc(120px + 10%);
	margin:auto auto 0;
	padding-top:1.5em;
	width:90%;
	padding-left: 10%;
}

.sp_flow_cont .sp_flow_tl{
	font-size: 2.2rem;
	color:#009691;
	font-weight: 500;
	margin-bottom: 1em;
}

.sp_flow_cont .sp_step_list{
	counter-reset: number 0;
}

.sp_flow_cont .sp_step_list li{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding-bottom: 40px;
	position: relative;
}

.sp_flow_cont .sp_step_list li::before{
	content: "";
	background-image: radial-gradient(circle, #000000 0.5px, transparent 0.5px);
  	background-position: right top;
  	background-repeat: repeat-y;
  	background-size: 1px 7px;
	height: 100%;
	bottom:0;
	width:1px;
	left:50px;
	position: absolute;
	display: block;
	z-index: 1;
}

.sp_flow_cont .sp_step_list li::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-right: 5px solid transparent;
  	border-left: 5px solid transparent;
  	border-top: 8px solid #a2a2a2;
  	border-bottom: 0;
	position: absolute;
	bottom:0;
	left:45px;
	z-index: 2;
}

.sp_flow_cont .sp_step_list li:last-child::before,
.sp_flow_cont .sp_step_list li:last-child::after{
	display: none;
}

.sp_flow_cont .sp_step_list li .step{
	width:120px;
	position: relative;
	z-index: 2;
}

.sp_flow_cont .sp_step_list li .step::after{
	counter-increment: number 1;
  	content: "STEP "counter(number);
	width:100px;
	border-radius: 9999px;
	border:1px solid #009691;
	font-size:1.6rem;
	padding:0.3em;
	display: block;
	color:#009691;
	text-align: center;
	font-weight: 500;
	background:#fff;
}

.sp_flow_cont .sp_step_list li .txbox{
	width:calc(100% - 120px);
	margin-top: -0.5em;
}

.sp_flow_cont .sp_step_list li .txbox .fz18{
	color:#009691;
	font-weight: 500;
}

.sp_flow_cont .btnbox{
	display: flex;
	flex-wrap: wrap;
	width:100%;
}

.sp_flow_cont .btnbox a{
	width: 323px !important;
	margin-top:15px;
	margin-right: 40px;
	margin-bottom: 0;
}

/*medicine*/
.medicine_main_flexbox{
	display: flex;
	justify-content: space-between;
}

.medicine_main_flexbox .txbox{
	width:50%;
}

.medicine_main_flexbox figure{
	width:50%;
	padding:0 min(8vw,70px)
}

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

ul.medicine_case_list li{
	margin-bottom: 20px;
	position: relative;
	padding:40px 50px 40px 90px;
	border-radius: 50px;
	background:#e5f4f4;
}

ul.medicine_case_list li{
	margin-bottom: 20px;
}

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

ul.medicine_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.medicine_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.medicine_case_list > li dl{
	display: flex;
	align-items: flex-start;
	margin:10px 0;
}

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

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

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

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

.medicine_radius_tx{
	background:#009691;
	color:#fff;
	padding:0.5em 3em;
	border-radius: 9999px;
	font-size: 1.6rem;
	display: inline-block;
	margin-bottom: 0.5em;
}

/*sdgs*/
.sdgs_main_flexbox{
	display: flex;
	justify-content: space-between;
	margin-top:60px;
}

.sdgs_main_flexbox .txbox{
	width:50%;
}

.sdgs_main_flexbox .txbox h3{
	font-size: 2.8rem;
	line-height: 1.875em;
	margin-bottom:0.3em;
	letter-spacing: 0.025em;
}

.sdgs_main_flexbox figure{
	width:50%;
	padding-left: min(8vw,70px)
}

dl.sdgs_list{
	border-top:1px solid #b5b5b5;
	border-bottom:1px solid #b5b5b5;
	padding:70px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

dl.sdgs_list dt{
	width:30%;
	max-width: 220px;
}

dl.sdgs_list dt.box2{
	width:60%;
	max-width: 440px;
	display: flex;
}

dl.sdgs_list dd{
	width:calc(100% - min(30%,220px) - min(7vw,60px));
}

dl.sdgs_list dd.box2{
	width:calc(100% - min(60%,440px) - min(7vw,60px));
}

dl.sdgs_list dd h4{
	font-size: 2.2rem;
	line-height: 1.875em;
	margin-bottom: 0.5em;
}

dl.sdgs_list dd .circle_dot{
	list-style: none;
}

dl.sdgs_list dd .circle_dot li{
	padding-left: 1.5em;
	font-size: 1.6rem;
	position: relative;
}

dl.sdgs_list dd .circle_dot.co_double li{
	padding-left: 2.5em;
}

dl.sdgs_list dd .circle_dot li::before{
	content: "";
	width:0.8em;
	height: 0.8em;
	position: absolute;
	top:0.45em;
	left:0;
	border-radius: 50%;
	background:#000;
}

dl.sdgs_list dd .circle_dot.co_green li::before{
	background:#19973a;
}

dl.sdgs_list dd .circle_dot.co_red li::before{
	background:#c50d29;
}

dl.sdgs_list dd .circle_dot.co_orange li::before{
	background:#e83417;
}

dl.sdgs_list dd .circle_dot.co_yellow li::before{
	background:#f5a208;
}

dl.sdgs_list dd .circle_dot.co_brown li::before{
	background:#970931;
}

dl.sdgs_list dd .circle_dot.co_double li::before{
	background:#d39206;
}

dl.sdgs_list dd .circle_dot.co_double li::after{
	content: "";
	width:0.8em;
	height: 0.8em;
	position: absolute;
	top:0.45em;
	border-radius: 50%;
	background:#27a838;
	left: 0.9em;
}

dl.sdgs_list dd .circle_dot.co_double li:nth-child(n + 4)::before{
	display: none;
}

dl.sdgs_list dd .circle_dot.co_blue li::before{
	background:#014b88;
}

dl.sdgs_list dd .circle_dot.co_darkblue li::before{
	background:#033067;
}

dl.sdgs_list dd .circle_dot li a{
	text-decoration: underline;
}

dl.sdgs_list dd .circle_dot li a.pdf::after{
	content: "PDF";
	border:1px solid #ff2116;
	color: #ff2116;
	line-height: 1;
	padding:0.2em 0.5em;
	font-size: 0.8em;
	display:inline-block;
	margin-left: 0.7em;
	font-weight: 500;
}

/*faq*/
dl.faq_cont{
	border-radius: 50px;
	border:10px solid #e5f4f4;
	background:#e5f4f4;
	margin-top: 20px;
	overflow: hidden;
}

dl.faq_cont dt{
	display: flex;
	margin-bottom: 0;
	position: relative;
}

dl.faq_cont dt::after{
	content: "";
	display: inline-block;
 	width: 15px;
  	height: 15px;
  	margin: 0;
  	border-bottom: 1px solid #009691;
  	border-right: 1px solid #009691;
  	transform: rotate(45deg);
	position: absolute;
	top:3em;
	right:40px;
	transform-origin: center;
}

dl.faq_cont dt.active::after{
	top:3.5em;
	transform: rotate(225deg);
}

dl.faq_cont dt span{
	width:80px;
	height: 80px;
	display: flex;
	background:#fff;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	font-size: 3.5rem;
	font-weight: 300;
	color:#009691;
	line-height: 1;
}

dl.faq_cont dt p{
	font-size: 2.5rem;
	color:#009691;
	letter-spacing: 0.05em;
	line-height: 1.875em;
	width:calc(100% - 80px - 80px);
	padding:0.65em 20px 0;
}

dl.faq_cont dd{
	margin-top:0;
	border-radius: 40px;
	padding:0;
	background:#fff;
	display: grid;
    transition: all 0.5s;
    grid-template-rows: 0fr;
	overflow: hidden;
}

dl.faq_cont dd.active{
	margin-top:10px;
	grid-template-rows: 1fr;
}

dl.faq_cont dd .inbox{
	display: flex;
}

dl.faq_cont dd .inbox > span{
	width:80px;
	height: 80px;
	display: flex;
	background:#fff;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	font-size: 3.5rem;
	font-weight: 300;
	color:#009691;
	line-height: 1;
}

dl.faq_cont dd .inbox .txbox{
	width:calc(100% - 80px - 30px);
	padding:2.5em 20px 2.5em;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox{
	display: flex;
	margin-bottom: 0.75em;
	justify-content: space-between;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox ul{
	width:calc(100% - 60px - 10px);
}

dl.faq_cont dd .inbox .txbox .rei_flexbox ul li{
	margin-top:0;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span{
	width:60px;
	margin-top:0.2em;
	font-size: 1.6rem;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 60px;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span svg{
	position: absolute;
	z-index: 1;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span::after{
	content: "例";
	position: relative;
	z-index: 2;
	color:#009691;
	padding-right: 0.5em;
}

dl.faq_cont dd .inbox .txbox .btnbox{
	display: flex;
	flex-wrap: wrap;
	width:100%;
}

dl.faq_cont dd .inbox .txbox .btnbox a{
	width: 350px !important;
	margin-top:15px;
	margin-right: 20px;
	margin-bottom: 0;
}

@media screen and (max-width:750px) {
	
#page_content{
	overflow: hidden;
	width:100%;
}

.common_maincont{
	margin-bottom: 70px;
}

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

.activities_cont ul.index_list{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width:100%;
	margin-top:min(10vw,100px);
	margin-bottom: min(-4vw,-50px);
	padding-top:40px;
}

.activities_cont ul.index_list li{
	width:100%;
	margin-bottom:100px;
	position: relative;
}
	
.activities_cont ul.index_list li:nth-child(2){
	margin-bottom:70px;
}
	
.activities_cont ul.index_list li:nth-child(4),
.activities_cont ul.index_list li:nth-child(5){
	margin-bottom:50px;
}

.activities_cont ul.index_list li::after{
	content: "";
	position: absolute;
	display: block;
	border-radius: 50px;
	background: linear-gradient(127deg,rgba(195, 234, 250, 1) 0%, rgba(225, 237, 167, 1) 100%);
	z-index: 1;
}

.activities_cont ul.index_list li:nth-child(1)::after{
	width:75%;
	height: 100%;
	max-width:425px;
	max-height: 650px;
	top:-50px;
	left:-5vw;
}

.activities_cont ul.index_list li:nth-child(2)::after{
	width:95%;
	height: 80%;
	max-width:580px;
	max-height: 310px;
	top:-50px;
	left: 50%;
}

.activities_cont ul.index_list li:nth-child(3)::after,
.activities_cont ul.index_list li:nth-child(7)::after{
	width:120%;
	height: 65%;
	max-width:680px;
	max-height: 404px;
	top:150px;
	right: 20%;
}

.activities_cont ul.index_list li:nth-child(4)::after{
	width:80%;
	height: 100%;
	max-width:425px;
	max-height: 606px;
	top:-50px;
	right: -5vw;
}

.activities_cont ul.index_list li:nth-child(5)::after{
	width:85%;
	height: 83%;
	max-width:425px;
	max-height: 515px;
	top:50px;
	left: -5vw;
}

.activities_cont ul.index_list li:nth-child(6)::after{
	width:120%;
	height: 80%;
	max-width:780px;
	max-height: 488px;
	top:150px;
	left: 25%;
}
.activities_cont ul.index_list li:nth-child(even){
	margin-top:0;
}

.activities_cont ul.index_list li figure{
	aspect-ratio: 450 / 360;
	overflow: hidden;
	border-radius: 10px;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li figure.coming_soon::after{
	content: "Coming Soon";
	width:100%;
	height: 100%;
	color:#fff;
	background:rgba(0,0,0,0.5);
	position: absolute;
	top:0;
	left:0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 3rem;
	letter-spacing: 0.05em;
}

.activities_cont ul.index_list li h2{
	font-size: 2.2rem;
	line-height: 1.875em;
	color:#009691;
	letter-spacing: 0.025em;
	margin:0.75em 0 0.5em;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li p{
	margin-bottom: 2em;
	position: relative;
	z-index: 2;
}

.activities_cont ul.index_list li a{
	position: relative;
	z-index: 2;
}

.activities_cont .activities_box{
	margin-bottom: 70px;
} 

.activities_cont .activities_box:last-child{
	margin-bottom: 0;
} 

ul.number_list{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	counter-reset: number 0;
	margin-bottom: 30px;
}

ul.number_list.step{
	margin-top: 30px;
	margin-bottom: 0;
}

ul.number_list > li{
	width:100%;
	position: relative;
	padding-top:30px;
	margin-bottom: 20px;
}

ul.number_list.step > li{
	width:100%;
	position: relative;
	padding-top:30px;
}

ul.number_list.step > li::before{
	content: "";
	width:30px;
	height: 20px;
	background-image:url("/images/common/step_arrow.svg");
	background-size: contain;
	background-repeat: no-repeat;
	display: block;
	position: absolute;
	transform: rotate(90deg);
	left:calc(50% - 20px);
	bottom:-35px;
	top:auto;
}

ul.number_list.step > li:last-child::before{
	display: none;
}

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

ul.number_list.step > li::after{
	display: none;
}

ul.number_list.step > li .stepnum{
	display: flex;
	align-items: center;
	position: absolute;
	top:0;
	left:0;
}

ul.number_list.step > li .stepnum::before{
	content:"STEP";
	font-size: 2.6rem;
	font-weight: 300;
	color:#009691;
	letter-spacing: 0.075em;
	margin-right: 0.2em;
	line-height: 1;
}

ul.number_list.step > li .stepnum::after{
	counter-increment: number 1;
  	content: counter(number);
	font-size:6.5rem;
	font-weight: 100;
	color:#009691;
	line-height: 1;
}

ul.number_list.step > li::after{
	display: none;
}

ul.number_list > li figure{
	max-width:75px;
	width:30%;
	position: absolute;
	top:1em;
	right:min(5vw,30px);
	display: flex;
	justify-content: center;
}

ul.number_list > li figure.wbox img{
	max-width:65px;
	width:70%;
}

ul.number_list > li figure.wbox2 img{
	max-width:85px;
	width:90%;
}

ul.number_list > li .box{
	padding:50px min(5vw,30px) 40px;
	border-radius: 40px;
	background:#e5f4f4;
	display: flex;
	flex-direction: column;
	height: 100%;
}

ul.number_list > li .box .tl{
	font-size: 2rem;
	letter-spacing: 0.05em;
	line-height: 1.6em;
	color:#009691;
}

ul.number_list > li .box .tl.tc{
	text-align: center;
}

ul.number_list > li .box .tl.mb10{
	margin-bottom: 0.5em;
}

ul.number_list > li .box .sub{
	font-size:1.3rem;
	color:#fff;
	border-radius: 9999px;
	background:#009691;
	padding:0.5em;
	margin:1em 0 0.25em 0;
	text-align: center;
}


ul.number_list > li .box .caption{
	font-size:1.4rem;
	color:#009691;
	font-weight: 500;
	line-height: 1.875em;
	margin-top:1em;
}

.flow_cont{
	width:100%;
}

.flow_cont dl{
	display: flex;
	margin-top:2em;
	flex-direction: column;
}

.flow_cont dt{
	display: flex;
	border:1px solid #009691;
	border-radius: 10px;
	font-size: 1.4rem;
	color:#009691;
	justify-content: center;
	align-items: center;
	width:100%;
	font-weight:500;
	padding:0.75em 0;
	margin-bottom: 0.5em;
}

.flow_cont dd{
	width:100%;
	margin:0 0 0 auto;
}

.half_flexbox{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
}

.half_flexbox .box{
	width:100%;
}
	
.half_flexbox .box:nth-child(2){
	order: -1;
	margin-bottom: 20px;
}
	
.half_flexbox .box.order{
	order: 1;
	margin-top: 20px;
}

.half_flexbox .box figure.radius{
	border-radius: 5px;
	overflow: hidden;
}

/*sp*/
.sp_main_flexbox{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
}

.sp_main_flexbox .txbox{
	width:100%;
	margin-bottom: 30px;
}

.sp_main_flexbox figure{
	width:310px;
	min-width: 310px;
	padding:0 min(3vw,40px) 0 min(8vw,70px) ;
	box-sizing: border-box;
	margin:0 auto;
}

ul.sp_ph_list{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	counter-reset: number 0;
	padding-top:30px;
	margin-bottom: -30px;
}

ul.sp_ph_list > li{
	width:80%;
	position: relative;
	margin-bottom: 30px;
}

ul.sp_ph_list .spph_radius_tx{
	background:#009691;
	color:#fff;
	padding:0.2em 1em;
	border-radius: 9999px;
	font-size: 1.6rem;
	line-height: 1.6em;
	display: inline-block;
	margin-bottom: 0.5em;
	width:100%;
	text-align: center;
	position: relative;
	z-index: 2;
}

ul.sp_ph_list figure{
	position: relative;
	margin-top:-20px;
	z-index: 1;
}

ul.sp_num_list{
	display: flex;
	flex-direction: column;
	counter-reset: number 0;
	margin-top: 30px;
	margin-bottom: 50px;
	gap:min(5vw,30px);
	flex-wrap: wrap;
}

ul.sp_num_list li{
	width:100%;
	border-radius: 10px;
	background:#e5f4f4;
	padding:30px;
	display: flex;
	flex-direction: column;
	
}

ul.sp_num_list li .num_tl{
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.8rem;
	line-height: 1.875em;
	color:#009691;
	margin-bottom: 1em;
}

ul.sp_num_list li .num_tl span{
	width:calc(100% - 40px);
}

ul.sp_num_list li .num_tl:before{
	counter-increment: number 1;
  	content: counter(number);
	border:1px solid #009691;
	background:#fff;
	border-radius: 3px;
	width:25px;
	height: 25px;
	padding-bottom: 0.1em;
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1;
}

ul.sp_num_list li figure{
	max-width:calc(120px + 10%);
	margin:auto auto 0;
	padding-top:1.5em;
	width:90%;
	padding-left: 10%;
}

.sp_flow_cont .sp_flow_tl{
	font-size: 2.2rem;
	color:#009691;
	font-weight: 500;
	margin-bottom: 1em;
}

.sp_flow_cont .sp_step_list{
	counter-reset: number 0;
}

.sp_flow_cont .sp_step_list li{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding-bottom: 40px;
	position: relative;
}

.sp_flow_cont .sp_step_list li::before{
	content: "";
	background-image: radial-gradient(circle, #000000 0.5px, transparent 0.5px);
  	background-position: right top;
  	background-repeat: repeat-y;
  	background-size: 1px 7px;
	height: 100%;
	bottom:0;
	width:1px;
	left:50px;
	position: absolute;
	display: block;
	z-index: 1;
}

.sp_flow_cont .sp_step_list li::after{
	content: "";
	width: 0;
  	height: 0;
  	border-style: solid;
  	border-right: 5px solid transparent;
  	border-left: 5px solid transparent;
  	border-top: 8px solid #a2a2a2;
  	border-bottom: 0;
	position: absolute;
	bottom:0;
	left:45px;
	z-index: 2;
}

.sp_flow_cont .sp_step_list li:last-child::before,
.sp_flow_cont .sp_step_list li:last-child::after{
	display: none;
}

.sp_flow_cont .sp_step_list li .step{
	width:120px;
	position: relative;
	z-index: 2;
}

.sp_flow_cont .sp_step_list li .step::after{
	counter-increment: number 1;
  	content: "STEP "counter(number);
	width:100px;
	border-radius: 9999px;
	border:1px solid #009691;
	font-size:1.6rem;
	padding:0.3em;
	display: block;
	color:#009691;
	text-align: center;
	font-weight: 500;
	background:#fff;
}

.sp_flow_cont .sp_step_list li .txbox{
	width:calc(100% - 120px);
	margin-top: -0.5em;
}

.sp_flow_cont .sp_step_list li .txbox .fz18{
	color:#009691;
	font-weight: 500;
}

.sp_flow_cont .btnbox{
	display: flex;
	flex-wrap: wrap;
	width:100%;
	flex-direction: column;
	align-items: center;
}

.sp_flow_cont .btnbox a{
	width: 323px !important;
	margin-top:15px;
	margin-right: 0;
	margin-bottom: 0;
}

/*medicine*/
.medicine_main_flexbox{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
}

.medicine_main_flexbox .txbox{
	width:100%;
	margin-bottom: 30px;
}

.medicine_main_flexbox figure{
	width:100%;
	padding:0 5vw 0 0;
}

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

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

ul.medicine_case_list li{
	margin-bottom: 0;
	margin-top:50px;
}

ul.medicine_case_list > li .stepnum{
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	position: absolute;
	top:-30px;
	left:0;
}

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

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

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

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

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

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

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

ul.medicine_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.medicine_case_list > li dl.text_left dd{
	margin:0 30px 0 0;
}

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

.medicine_radius_tx{
	background:#009691;
	color:#fff;
	padding:0.5em 3em;
	border-radius: 9999px;
	font-size: 1.6rem;
	display: inline-block;
	margin-bottom: 0.5em;
	width:100%;
	text-align: center;
}

/*sdgs*/
.sdgs_main_flexbox{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	margin-top:40px;
}

.sdgs_main_flexbox .txbox{
	width:100%;
	margin-top:20px;
}

.sdgs_main_flexbox .txbox h3{
	font-size: 2.1rem;
	line-height: 1.875em;
	margin-bottom:0.1em;
	letter-spacing: 0.025em;
}

.sdgs_main_flexbox figure{
	width:100%;
	padding-left:0;
	order:-1;
}

dl.sdgs_list{
	border-top:1px solid #b5b5b5;
	border-bottom:1px solid #b5b5b5;
	padding:40px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: column;
}

dl.sdgs_list dt{
	width:100%;
	max-width: 165px;
	margin-bottom: 20px;
}

dl.sdgs_list dt.box2{
	width:100%;
	max-width: 330px;
	display: flex;
}

dl.sdgs_list dd{
	width:100%;
}

dl.sdgs_list dd.box2{
	width:100%;
}

dl.sdgs_list dd h4{
	font-size: 1.9rem;
	line-height: 1.875em;
	margin-bottom: 0.5em;
}

dl.sdgs_list dd .circle_dot{
	list-style: none;
}

dl.sdgs_list dd .circle_dot li{
	padding-left: 1.5em;
	font-size: 1.4rem;
	position: relative;
}

dl.sdgs_list dd .circle_dot.co_double li{
	padding-left: 2.5em;
}

dl.sdgs_list dd .circle_dot li::before{
	content: "";
	width:0.8em;
	height: 0.8em;
	position: absolute;
	top:0.55em;
	left:0;
	border-radius: 50%;
	background:#000;
}

dl.sdgs_list dd .circle_dot.co_green li::before{
	background:#19973a;
}

dl.sdgs_list dd .circle_dot.co_red li::before{
	background:#c50d29;
}

dl.sdgs_list dd .circle_dot.co_orange li::before{
	background:#e83417;
}

dl.sdgs_list dd .circle_dot.co_yellow li::before{
	background:#f5a208;
}

dl.sdgs_list dd .circle_dot.co_brown li::before{
	background:#970931;
}

dl.sdgs_list dd .circle_dot.co_double li::before{
	background:#d39206;
}

dl.sdgs_list dd .circle_dot.co_double li::after{
	content: "";
	width:0.8em;
	height: 0.8em;
	position: absolute;
	top:0.55em;
	border-radius: 50%;
	background:#27a838;
	left: 0.9em;
}

dl.sdgs_list dd .circle_dot.co_double li:nth-child(n + 4)::before{
	display: none;
}

dl.sdgs_list dd .circle_dot.co_blue li::before{
	background:#014b88;
}

dl.sdgs_list dd .circle_dot.co_darkblue li::before{
	background:#033067;
}

dl.sdgs_list dd .circle_dot li a{
	text-decoration: underline;
}

dl.sdgs_list dd .circle_dot li a.pdf::after{
	content: "PDF";
	border:1px solid #ff2116;
	color: #ff2116;
	line-height: 1;
	padding:0.2em 0.5em;
	font-size: 0.8em;
	display:inline-block;
	margin-left: 0.7em;
	font-weight: 500;
}

/*faq*/
dl.faq_cont{
	border-radius: 40px;
	border:10px solid #e5f4f4;
	background:#e5f4f4;
	margin-top: 20px;
	overflow: hidden;
}

dl.faq_cont dt{
	display: flex;
	margin-bottom: 0;
	position: relative;
}

dl.faq_cont dt::after{
	content: "";
	display: inline-block;
 	width: 10px;
  	height: 10px;
  	margin: 0;
  	border-bottom: 1px solid #009691;
  	border-right: 1px solid #009691;
  	transform: rotate(45deg);
	position: absolute;
	top:3em;
	right:20px;
	transform-origin: center;
}

dl.faq_cont dt.active::after{
	top:3.5em;
	transform: rotate(225deg);
}

dl.faq_cont dt span{
	width:65px;
	height: 65px;
	display: flex;
	background:#fff;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	font-size: 2.2rem;
	font-weight: 300;
	color:#009691;
	line-height: 1;
}

dl.faq_cont dt p{
	font-size: 1.6rem;
	color:#009691;
	letter-spacing: 0.05em;
	line-height: 1.875em;
	width:calc(100% - 65px - 35px);
	padding:1.25em 20px 1.25em;
}

dl.faq_cont dd{
	margin-top:0;
	border-radius: 30px;
	padding:0;
	background:#fff;
	display: grid;
    transition: all 0.5s;
    grid-template-rows: 0fr;
	overflow: hidden;
}

dl.faq_cont dd.active{
	margin-top:10px;
	grid-template-rows: 1fr;
}

dl.faq_cont dd .inbox{
	display: flex;
}

dl.faq_cont dd .inbox > span{
	width:65px;
	height: 65px;
	display: flex;
	background:#fff;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	font-size: 2.2rem;
	font-weight: 300;
	color:#009691;
	line-height: 1;
}

dl.faq_cont dd .inbox .txbox{
	width:calc(100% - 65px - 10px);
	padding:2em 20px 2em;
}
	
dl.faq_cont dd .inbox .txbox p{
	font-size: 1.4rem;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox{
	display: flex;
	margin-bottom: 0.75em;
	justify-content: space-between;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox ul{
	width:calc(100% - 60px - 10px);
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span{
	width:60px;
	margin-top:0.2em;
	font-size: 1.6rem;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 60px;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span svg{
	position: absolute;
	z-index: 1;
}

dl.faq_cont dd .inbox .txbox .rei_flexbox span::after{
	content: "例";
	position: relative;
	z-index: 2;
	color:#009691;
	padding-right: 0.5em;
}

dl.faq_cont dd .inbox .txbox .btnbox{
	display: flex;
	flex-wrap: wrap;
	width:100%;
}

dl.faq_cont dd .inbox .txbox .btnbox a{
	width: 350px !important;
	margin-top:15px;
	margin-right: 0;
	margin-bottom: 0;
}
}