@charset "UTF-8";

/* problems_block
----------------------------------------*/
.problems_block {
	padding: 13.9rem 2rem 11.9rem;
	background: url(../img/index/bg_problems.jpg) no-repeat center top / cover;
}
.problems_block h2 {
	width: 44rem;
	margin: 0 auto 5.1rem;
	padding: 1.3rem 1rem 1.7rem;
	background: #000;
	color: #fff;
	text-align: center;
	font-size: 2.8rem;
	letter-spacing: -.025em;
}
.problems_block h2::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 1.5rem 1.4rem 0;
	border-color: #000 transparent transparent;
	position: absolute;
	bottom: -1.4rem;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.problems_list {
	width: 100rem;
	margin: 0 auto;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	text-align: center;
	font-weight: 500;
	font-size: 1.8rem;
	line-height: 1.78;
}
.problems_list li {
	width: 32rem;
	background: #fff;
	margin-bottom: 2.1rem;
	padding: 2.2rem 1rem 2.5rem;
}
.problems_list li::before {
	content: '';
	display: block;
	pointer-events: none;
	position: absolute;
	top: .4rem;
	left: .4rem;
	right: .4rem;
	bottom: .4rem;
	border: 1px solid #999;
}
.problems_list li::after {
	content: '';
	display: block;
	pointer-events: none;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 2.8rem 2.8rem 0 0;
	border-color: #000 transparent transparent;
	position: absolute;
	top: 0;
	left: 0;
}
@media only screen and (max-width: 768px) {
	.problems_block {
		padding: 3.9rem 0 2.6rem;
		background-image: url(../img/index/bg_problems-sp.jpg);
	}
	.problems_block h2 {
		width: 24.6rem;
		margin: 0 auto 2.4rem;
		padding: .8rem 0 .9rem;
		font-size: 1.65rem;
		letter-spacing: -.02em;
	}
	.problems_block h2::after {
		bottom: -.8rem;
	}
	.problems_list {
		width: 32.3rem;
		display: block;
		font-size: 1.3rem;
	}
	.problems_list li {
		width: auto;
		margin-bottom: 1.5rem;
		padding: .8rem 1rem 1rem;
		letter-spacing: -.04em;
		box-shadow: 0 0 .3rem rgba(0,0,0,.3);
	}
	.problems_list li:last-child {
		letter-spacing: -.06em;
	}
	.problems_list li span {
		letter-spacing: -.6rem;
	}
	.problems_list li::before {
		top: .2rem;
		left: .2rem;
		right: .2rem;
		bottom: .2rem;
	}
	.problems_list li::after {
		border-width: 1.4rem 1.4rem 0 0;
	}
}

/* features_block
----------------------------------------*/
.features_block {
	padding: 13.1rem 2rem 11.5rem;
}
.features_block img {
	display: block;
}
.features_list {
	width: 100rem;
	margin: 7.1rem auto 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.features_list li {
	width: 46rem;
}
.features_list h3 {
	font-size: 3rem;
	margin-bottom: 2.6rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	line-height: 1.4;
}
.features_list h3 span {
	margin: 1.3rem 2.9rem 0 .2rem;
}
.features_list figure {
	margin-bottom: 2.4rem;
}
.features_list p {
	font-size: 1.6rem;
	padding-left: 3rem;
	line-height: 1.87;
}
.features_list p::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: .8rem;
	bottom: .5rem;
	border-left: 1px solid #e40012;
}
.features_list li {
	margin-bottom: 2rem;
}
.features_list li:nth-child(2n) {
	margin-top: 6.4rem;
}
@media only screen and (max-width: 768px) {
	.features_block {
		padding: 6.4rem 2.5rem 2.4rem;
	}
	.features_list {
		width: auto;
		margin: 3.9rem auto 0;
		display: block;
	}
	.features_list li {
		width: auto;
	}
	.features_list h3 {
		font-size: 1.7rem;
		margin-bottom: 1rem;
	}
	.features_list h3 span {
		margin: .2rem 1.7rem 0 0;
	}
	.features_list h3 span img {
		height: 3.8rem;
		width: auto;
	}
	.features_list figure {
		margin-bottom: .7rem;
	}
	.features_list p {
		font-size: 1.3rem;
		padding-left: 1.3rem;
		line-height: 1.85;
		letter-spacing: .04em;
	}
	.features_list p::before {
		top: .6rem;
		bottom: .5rem;
	}
	.features_list li {
		margin-bottom: 3.7rem;
	}
	.features_list li:nth-child(2n) {
		margin-top: 0;
	}
}

/* content_block
----------------------------------------*/
.content_block {
	padding: 13.2rem 2rem 14rem;
}
.content_block img {
	display: block;
}
.content_block ul {
	width: 100rem;
	margin: 7.9rem auto 10rem;
}
.content_block li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}
.content_block li + li {
	margin-top: 10rem;
}
.content_block ul figure {
	width: 56rem;
	margin-bottom: 4.7rem;
	z-index: 10;
}
.content_block li:nth-child(2n) figure {
	order: 1;
}
.content_txt {
	width: 56rem;
	background: #fff;
	margin: 4.8rem 0 0 -12rem;
	padding: 3.9rem 4.9rem;
}
.content_block li:nth-child(2n) .content_txt {
	margin: 4.8rem -12rem 0 0;
}
.content_txt::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 2.8rem 2.8rem 0;
	border-color: transparent #e40012 transparent transparent;
	position: absolute;
	top: 0;
	right: 0;
}
.content_block li:nth-child(2n) .content_txt::before {
	border-width: 2.8rem 2.8rem 0 0;
	border-color: #e40012 transparent transparent transparent;
	right: auto;
	left: 0;
}
.content_txt h3 {
	font-size: 3rem;
	border-bottom: .2rem solid #e40012;
	padding: 0 0 1.8rem 11.1rem;
	margin-bottom: 1.7rem;
}
.content_block li:nth-child(2n) .content_txt h3 {
	padding: 0 11.1rem 1.8rem 0;
}
.content_txt p {
	font-size: 1.6rem;
	padding-left: 11.1rem;
	line-height: 1.87;
	margin-right: -.3rem;
}
.content_block li:nth-child(2n) .content_txt p {
	padding: 0 11.1rem 0 0;
	margin-right: 0;
}
@media only screen and (max-width: 768px) {
	.content_block {
		padding: 3.8rem 0 6.2rem;
	}
	.content_block ul {
		width: auto;
		margin: 4.3rem auto 4.5rem;
	}
	.content_block li {
		display: block;
	}
	.content_block li + li {
		margin-top: 4.5rem;
	}
	.content_block ul figure {
		width: 31.3rem;
		margin-bottom: 0;
	}
	.content_block li:nth-child(2n) figure {
		margin: 0 0 0 auto;
	}
	.content_txt {
		width: 31.3rem;
		margin: -2rem 0 0 auto;
		padding: 3.8rem 2.8rem 2.5rem 2.7rem;
	}
	.content_block li:nth-child(2n) .content_txt {
		margin: -2rem 0 0;
	}
	.content_txt::before {
		border-width: 1.4rem 0 0 1.4rem;
		border-color: transparent transparent transparent #e40012;
		top: auto;
		right: auto;
		left: 0;
		bottom: 0;
	}
	.content_block li:nth-child(2n) .content_txt::before {
		border-width: 0 0 1.4rem 1.4rem;
		border-color: transparent transparent #e40012;
		right: 0;
		left: auto;
	}
	.content_txt h3 {
		font-size: 1.7rem;
		padding: 0 0 1rem;
		margin-bottom: .9rem;
	}
	.content_block li:nth-child(2n) .content_txt h3 {
		padding: 0 0 1rem;
	}
	.content_txt p {
		font-size: 1.3rem;
		padding-left: 0;
		line-height: 1.82;
		margin-right: 0;
		letter-spacing: .02em;
	}
	.content_block li:nth-child(2n) .content_txt p {
		padding: 0;
	}
}

/* case_block
----------------------------------------*/
.case_block {
	padding: 13rem 2rem 14.1rem;
}
.case_block img {
	display: block;
}
.case_list {
	width: 100rem;
	margin: 8.2rem auto 9.8rem;
}
.case_list li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}
.case_list figure {
	width: 49rem;
}
.case_txt {
	flex: 1;
	padding-left: 5rem;
}
.case_tag span {
	display: inline-block;
	background: #e40012;
	color: #fff;
	min-width: 12rem;
	padding: .4rem .5rem;
	font-size: 1.6rem;
	font-weight: 500;
	text-align: center;
	margin-right: .8rem;
}
.case_txt h3 {
	font-size: 3.2rem;
	margin: 1.8rem 0 1.3rem;
}
.case_txt p:not(.case_tag) {
	font-size: 1.6rem;
	line-height: 1.9;
}
@media only screen and (max-width: 768px) {
	.case_block {
		padding: 6.3rem 0 6.3rem;
	}
	.case_list {
		width: 32.3rem;
		margin: 4.5rem auto 2rem;
	}
	.case_list li {
		display: block;
	}
	.case_list figure {
		width: auto;
	}
	.case_txt {
		padding-left: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: start;
		-ms-flex-pack: start;
		justify-content: flex-start;
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		align-content: flex-start;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.case_tag {
		order: 1;
		width: 100%;
		margin-bottom: 1.4rem;
	}
	.case_tag span {
		min-width: 8.7rem;
		padding: .25rem .5rem;
		font-size: 1.3rem;
		margin-right: .5rem;
	}
	.case_txt h3 {
		order: 0;
		font-size: 1.7rem;
		letter-spacing: .02em;
		margin: 1.5rem 0 .5rem;
	}
	.case_txt p:not(.case_tag) {
		order: 2;
		font-size: 1.3rem;
	}
}

/* flow_block
----------------------------------------*/
.flow_block {
	padding: 13.3rem 2rem 5.7rem;
	background: -moz-linear-gradient(60deg, rgba(255,191,0,.15) 5%, rgba(240,105,0,.15) 30%, rgba(216,18,0,.15) 100%);
	background: -webkit-linear-gradient(60deg, rgba(255,191,0,.15) 5%, rgba(240,105,0,.15) 30%,rgba(216,18,0,.15) 100%);
	background: linear-gradient(60deg, rgba(255,191,0,.15) 5%, rgba(240,105,0,.15) 30%,rgba(216,18,0,.15) 100%);
}
.flow_block img {
	display: block;
}
.flow_list {
	width: 100rem;
	margin: 6.8rem auto 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.flow_list li {
	width: 30rem;
	margin-bottom: 7.9rem;
}
.flow_num {
	margin: 0 0 -4.3rem 1.8rem;
	z-index: 10;
}
.flow_num img {
	width: auto;
	height: 5.7rem;
}
.flow_list li h3 {
	font-size: 2rem;
	border-bottom: .2rem solid #e40012;
	margin: 1.7rem 0 1rem;
	padding-bottom: 1.1rem;
}
.flow_list li p {
	font-size: 1.6rem;
	line-height: 1.7;
}
@media only screen and (max-width: 768px) {
	.flow_block {
		padding: 6.2rem 2.4rem 1.4rem;
	}
	.flow_list {
		width: auto;
		margin: 4.4rem auto 0;
		display: block;
	}
	.flow_list li {
		width: auto;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: start;
		-ms-flex-pack: start;
		justify-content: flex-start;
		margin-bottom: 5.3rem;
	}
	.flow_list li + li::before {
		content: '';
		display: block;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 1.4rem 1.4rem 0;
		border-color: #e40012 transparent transparent;
		position: absolute;
		top: -3.2rem;
		left: 0;
		right: .4rem;
		margin: 0 auto;
	}
	.flow_num {
		position: absolute;
		top: 1rem;
		left: 1rem;
		margin: 0;
	}
	.flow_num img {
		height: 2.4rem;
	}
	.flow_list li h3 {
		font-size: 1.7rem;
		margin: -.2rem 0 .6rem;
		padding-bottom: .9rem;
		line-height: 1.35;
	}
	.flow_list li h3 span {
		display: block;
		margin-right: -.5rem;
	}
	.flow_txt {
		flex: 1;
		padding-left: 1.6rem;
	}
	.flow_list li figure {
		width: 14.6rem;
		height: 15.3rem;
		background: #fff;
		overflow: hidden;
	}
	.flow_list li figure img {
		transform: scale(1.1);
		position: relative;
		top: .7rem;
	}
	.flow_list li:nth-child(2) figure img {
		transform: scale(1.05);
		top: .6rem;
		left: .4rem;
	}
	.flow_list li:nth-child(3) figure img {
		transform: scale(1.05);
		top: 1.5rem;
	}
	.flow_list li:nth-child(4) figure img {
		transform: scale(1.15);
		top: .4rem;
	}
	.flow_list li:nth-child(5) figure img {
		transform: scale(1.06);
		top: .3rem;
	}
	.flow_list li:nth-child(6) figure img {
		transform: scale(1.01);
		top: .8rem;
	}
	.flow_list li p {
		font-size: 1.3rem;
		line-height: 1.85;
		margin-bottom: -.5rem;
	}
}

/* news_block
----------------------------------------*/
.news_block {
	padding: 13.3rem 2rem 14rem;
}
.news_block img {
	display: block;
}
.news_list {
	width: 100rem;
	margin: 7.8rem auto 10.2rem;
	z-index: 2;
}
.news_list li a {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
	background: #fff;
	transition: opacity .3s;
}
.news_list li a figure {
	width: 36rem;
}
.news_list li + li {
	margin-top: 2rem;
}
.news_txt {
	flex: 1;
	padding: 2.9rem 3.1rem 2rem;
}
.news_tag span {
	display: inline-block;
	background: #e40012;
	color: #fff;
	min-width: 12rem;
	padding: .4rem .5rem .5rem;
	font-size: 1.6rem;
	font-weight: 500;
	text-align: center;
	margin-right: .8rem;
}
.news_txt h3 {
	font-size: 2rem;
	margin: 1.2rem 0 .8rem;
	line-height: 1.75;
}
.news_date {
	font-size: 1.7rem;
	color: #cbcbcb;
	display: block;
}
@media only screen and (min-width: 769px) {
	.news_list li a:hover {
		opacity: .6;
	}
}
@media only screen and (max-width: 768px) {
	.news_block {
		padding: 6.3rem 2.6rem 6.1rem;
	}
	.news_list {
		width: auto;
		margin: 4.3rem auto 4.6rem;
	}
	.news_list li a {
		display: block;
	}
	.news_list li a figure {
		width: auto;
	}
	.news_txt {
		padding: 1rem 1.7rem 1.4rem;
	}
	.news_tag span {
		min-width: 6.5rem;
		padding: .1rem .3rem .2rem;
		font-size: 1rem;
		margin-right: .5rem;
	}
	.news_txt h3 {
		font-size: 1.7rem;
		margin: .3rem 0;
		line-height: 1.4;
	}
	.news_date {
		font-size: 1rem;
	}
}