@charset "utf-8";
@import url("spec.css");


.about_header{
	margin: 0 auto 5%
}

.about_header_title{
	
}


.about_header_title span{
	display: block;
	color: #EF8315;
	font-size: 1.6rem;
	letter-spacing: .1em
}



.about_header_title h1 {
	width:-moz-fit-content;
	width:fit-content;
	border-left: 3px solid var(--color-main-tint);
	border-bottom: 3px solid var(--color-main-tint);
	padding: 2px .5em .4em 1em;
	margin-bottom: 2em;
	position: relative;
}

.about_header_title h1::before {
content: '';
background-color: #fff;
width: 20px;
height: 3px;
position: absolute;
left: 60px;
bottom: -3px;
}


.about_header_title h1::after {
content: '';
background-color: var(--color-main-tint);
width: 20px;
height: 3px;
transform: rotate(50deg);
position: absolute;
left: 55px;
bottom: -10px;
}

.about_header_title p{
	line-height: 2em;
	letter-spacing: .1em
}


.about_banner{
	position: relative
}

.about_banner:before {
	content: "";
	display: block;
  position: absolute;
  top: 0;
  left: 0;
  border-left: 60px solid #fff;
  border-bottom: 60px solid transparent;
}
.about_banner:after {
	content: "";
	display: block;
  position: absolute;
  bottom: 0;
  right: 0;
  border-left: 60px solid transparent;
  border-bottom: 60px solid #fff;
}




@media screen and (max-width: 767px) {
	.about_header{
		width: 90%;
	}
	.about_header_title p{margin-bottom: 1em}
	.about_header_title p br{
		display: none
	}
}	

@media print, screen and (min-width: 768px) {
	.about_header{
		display: flex;
		justify-content: space-between;
		flex-wrap:wrap;
		align-items: center;
	}
	
	.about_banner{
		width: 45%
	}
	
	.about_header_title{
		width: 55%;
		padding: 0 5%
	}
}	

@media print, screen and (min-width: 1600px) {
	.about_header img{
		max-width: 800px;
	}
	
	.about_header_title{
		max-width: 800px;
		width: calc(100% - 800px);
		margin: 0 auto
	}
}	



.about_title{
	background: var(--color-main-brite);
	padding: 2em 1em;
	text-align: center;
	margin-bottom: 1em;
}
.about_title h2{
    display: flex;
    justify-content: center;
    align-items: center;
    letter-spacing: .2em
}

.about_title h2::before,
.about_title h2::after {
    width: 2px;
    height: 40px;
    content: '';
    background: var(--color-txt);
}

.about_title h2::before {
    transform: rotate(-35deg);
    margin-right: 30px;
}

.about_title h2::after {
    transform: rotate(35deg);
    margin-left: 30px;
}


@media print, screen and (min-width: 768px) {
	.about_title{padding: 3em 1em;}
	.about_title h2 br{
		display: none
	}
}	

@media print, screen and (min-width: 1024px) {}	


/* ------------------------------
 #point
------------------------------ */

#point{
	margin: 0 auto 8em
}

.point_flag{position: relative}

.point_flag::before{
	content: "";
	display: block;
	position: absolute;
	height: 100%;
	border-left: dashed 1px rgba(var(--color-main-rgb), 0.4);
	left: 50%
}

.point_flag ul {
	display: flex;
	justify-content: space-between;
	flex-wrap:wrap;
}

.point_flag ul li{
	width: 45%;
}

.point_flag ul li img{
	width: 100%
}
.point_flag ul li figure{position: relative}
.point_flag ul li figure::before{
	content: "";
	display: block;
	border-bottom: dashed 1px rgba(var(--color-main-rgb), 0.4);
	width: 100%;
	position: absolute;
	bottom: 50%;
	z-index: -1
}


.point_flag ul li:first-child{
	margin-top: 5em;
}

.point_flag ul li:nth-child(odd){
}

.point_flag ul li:nth-child(odd) figure::before{
	right: -11%
}

.point_flag ul li:nth-child(even){
	margin-top: 10em;
}

.point_flag ul li:nth-child(even) figure::before{
	left: -11%
}


.point_flag ul h3{
	text-align: center;
	margin: 0 auto 1em;
	letter-spacing: .1em
}

.point_flag ul h3 span{
	display: block;
	padding: 6px 0;
	line-height: 1em;
	margin: 0 auto 1em;
	font-size: .8em;
	color: var(--color-main);
	border-bottom: solid 1px var(--color-main);
}

.point_flag ul p{
	font-size: .9em;
	margin-bottom: 1em
}

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

@media print, screen and (min-width: 768px) {
	.point_flag ul h3{
		font-size: 1.5em
	}
	
	.point_flag ul h3 span{
		width:-moz-fit-content;
		width:fit-content;
	}
}	

@media print, screen and (min-width: 1024px) {
	.point_flag ul li figure::before{
		
	}
}	



/* ------------------------------
 #value
------------------------------ */

.value_point {
  padding: 1em 1em;
  margin: 0 auto 1em
}

.num{
	display: block;
	text-align: center;
	color: var(--color-main);
	font-weight: bold;
	font-size: 1.8rem;
	margin-bottom: 1em
}

.num::before{
	content: "0";
}

.value_point h3{
	text-align: center;
	margin-bottom: 1em;
	font-size: 1.3rem
}
.value_point h3 span {
	display: block;
	font-size: 1.2em;
	margin-bottom: .4em
}

.value_point figure{width: 100%;
	margin-bottom: 1em
}

.value_point figure img{
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 3;
	object-fit: cover;
	border-radius: 5px;
	position: relative;
}

@media screen and (max-width: 767px) {
	.num{margin:2em auto 1em}
}	

@media print, screen and (min-width: 768px) {
	.value_point {
	  display: grid;
	  grid-template-columns: repeat(3,1fr);
	  gap: 2em;
	  padding: 3em 1em;
	  
	}
}	

#value a.more,
.value_point a.more,
#point a.more{
	margin: 0 auto;
	text-align: center;
}




/* ------------------------------
 #graph
------------------------------ */

#graph{
	padding: 8% 0
}


#graph .graph h3{
	position: relative;
	background: #F8F5F5;
	border-radius: 150px;
	text-align: center;
	margin: 0 auto;
	padding: 1em
	}
	

#graph .graph{
	margin: 3em auto
}




@media screen and (max-width: 767px) {
	#graph {padding: 8% 0}
	#graph .graph{
	margin:  5%;
	flex-direction: column;
	}
	
	#graph .graph h3{
		margin-bottom: 1.5em
	}
	
	#graph .graph h3:after {
	top: 100%;
	left: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
	border-color: rgba(248, 245, 245, 0);
	border-top-color: #F8F5F5;
	border-width: 10px;
	margin-left: -10px;
	}

}	



@media print, screen and (min-width: 768px) {
	#graph .graph{
		max-width: 900px;
		display: flex;
		justify-content: center;
		flex-wrap:wrap;
		align-items: center;
	}

	#graph .graph h3{
		font-size: 2rem
	}
	
	#graph .graph h3{
	width: 50%;
	padding: 2em;
	}
	
	#graph .graph img{
		width: 45%
	}
	
	#graph .graph.graph_02{
	flex-direction: row-reverse	
	}
	
	#graph .graph.graph_01 h3:after {
	left: 100%;
	top: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
	border-color: rgba(248, 245, 245, 0);
	border-left-color: #F8F5F5;
	border-width: 10px;
	margin-top: -10px;
	}
	
	
	
	#graph .graph.graph_02 h3:after {
		right: 100%;
		top: 50%;
		border: solid transparent;
		content: "";
		height: 0;
		width: 0;
		position: absolute;
		pointer-events: none;
		border-color: rgba(248, 245, 245, 0);
		border-right-color: #F8F5F5;
		border-width: 10px;
		margin-top: -10px;
	}


}	

@media print, screen and (min-width: 1024px) {}	

