@charset "UTF-8";
/* CSS Document */

body{
	*font-size:small;
	*font:x-small;
	font-size:14px;
	color:#333;
	line-height:1.5;
  font-family:"Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	width:100%;
	margin:0px;
	padding:0px;
	background:#FFF;
	-webkit-text-size-adjust:100%;
}
@font-face{
  font-family:"Yu Gothic";
  src:local("Yu Gothic Medium");
  font-weight:100;
}
@font-face{
  font-family:"Yu Gothic";
  src:local("Yu Gothic Medium");
  font-weight:200;
}
@font-face{
  font-family:"Yu Gothic";
  src:local("Yu Gothic Medium");
  font-weight:300;
}
@font-face{
  font-family:"Yu Gothic";
  src:local("Yu Gothic Medium");
  font-weight:400;
}
@font-face{
  font-family:"Yu Gothic";
  src:local("Yu Gothic Bold");
  font-weight:bold;
}
h1,h2,h3,h4,h5,p,ul,ol,li,img,table,th,td,dl,dt,dd{
	margin:0px;
	padding:0px;
	font-size:14px;
}
li{
	list-style-type:none;
}
table{
	border-collapse:collapse;
}
img{
	max-width:100%;
	height:auto;
}
a img{
	transition: opacity .4s cubic-bezier(.210, .60, .350, 1);
}
a:hover img{
	opacity:0.7;
}
#wrap{
	overflow: hidden;
	position: relative;
}
br.sp{
	display: none;
}
@media screen and (max-width: 750px) {
br.sp{
	display: block;
}
br.pc{
	display: none;
}
}


/* header
-----------------------------------------------*/
header{
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	box-sizing: border-box;
	padding: 25px 40px 0;
}
header p{
	float: left;
}
header p img{
	width: 265px;
}
header .btn{
	float: right;
}
header .btn a{
	position: relative;
	top: -5px;
	display: inline-block;
	background-color: #f27e30;
	font-size: 15px;
	color: #fff;
	text-decoration: none;
	padding: 8px 30px 8px 15px;
	text-align: left;
	line-height: 1;
	transition: opacity .2s cubic-bezier(.210, .60, .350, 1);
}
header .btn a:hover{
	opacity: 0.7;
}
header .btn a::before{
	content: "";
	position: absolute;
	right: 15px;
	top: 50%;
	display: block;
	width: 6px;
	height: 6px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 750px) {
header{
	padding: 15px 10px 0 20px;
}
header p img{
	width: 200px;
}
header .btn a{
	top: -5px;
	font-size: 11px;
	padding: 8px 10px 8px 10px;
}
header .btn a::before{
	display: none;
}
}
@media screen and (max-width: 320px) {
header p img{
	width: 160px;
}
header .btn a{
	font-size: 10px;
}
}


/* main
-----------------------------------------------*/
#main{
	position: relative;
	background-color: #e9eaf0;
	min-height: 900px;
	box-sizing: border-box;
	padding-bottom: 60px;
}
#main #intro{
	overflow: hidden;
	content: "";
	position: absolute;
	right: 0;
	top: 0;
	z-index: 2;
	height: 100%;
	width: 100%;
	background-color: #fff;
}
#main #intro .inner{
	position: absolute;
	right: 0;
	top: 0;
	z-index: 4;
	height: 100%;
	width: 100vw;
}
#main #intro .inner .movie{
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
#main #intro .inner .movie video{
	object-fit: cover;
  width: 100%;
	height: 100%;
	box-sizing: border-box;
	object-position: 70% center;
}
#main #intro .txtImg{
	max-width: none;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}
#main #intro .txtImg img{
	max-width: 765px;
	width: 765px;
}
#main .img{
	overflow: hidden;
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	box-sizing: border-box;
}
#main .img::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: url("../images/bgi-main.jpg") center right;
	background-size: cover;
}
#main .ttl{
	position: relative;
	padding: 100px 0 0 100px;
	text-align: left;
	top: 0;
}
#main .ttl p{
	font-size: 20px;
	font-weight: bold;
	text-align: left;
	margin-bottom: 35px;
	line-height: 1.8;
	font-feature-settings: "palt";
}
#main .ttl p span{
	background: #fff07f;
	color: #008000;
	display: inline-block;
	padding: 0px 10px;
	margin-top: 8px;
}
#main .ttl p span:first-child{
	margin-top: 0;
}
#main .ttl img{
	width: 100%;
}
#main .txt{
	position: relative;
	z-index: 3;
	display: block;
	padding: 45px 50px 85px;
	width: 85%;
	box-sizing: border-box;
	margin: 0 0 0 auto;
	bottom: -60px;
}
#main .txt::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background-color: #fff;
}
#main .txt p{
	position: relative;
	z-index: 1;
	font-size: 18px;
	font-weight: bold;
	line-height: 2;
	margin-top: 20px;
}
#main .txt p:first-child{
	margin-top: 0;
}
#main .txt .badge{
	position: absolute;
	right: 0;
	top: -80px;
	color: #008000;
	height: 120px;
	box-sizing: border-box;
	padding: 20px 25px 0;
}
#main .txt .badge::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: #fff07f;
}
#main .txt .badge > strong{
	position: relative;
	z-index: 1;
	color: #008000;
	font-size: 32px;
	line-height: 1;
}
#main .txt .badge > strong span{
	font-size: 24px;
}
#main .txt .badge p{
	margin: 0 0 0 0;
	font-size: 14px;
	line-height: 1.2;
}
#main .txt .badge p strong{
	display: block;
	padding: 4px 0;
	background: #008000;
	color: #fff07f;
	text-align: center;
	line-height: 1;
	margin: 3px 0 5px;
}

#main .ttl_col {
	display: flex;
	justify-content: space-between;

}

#main .ttl_col_item {
width: 35%;
}

#main .main_graph {
width: 60%;

}

#main .main_graph img {
	position: relative;
	background: rgba(255,255,255,0.5);
	border-radius: 20px;
}


#main .scroll{
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 3;
	transform: translateX(-50%);
}
#main .scroll a{
	display: block;
}
#main .scroll a img{
	display: block;
}
#mainBnr{
	position: relative;
	text-align: center;
	padding: 20px 20px 50px 0;
	z-index: 3;
}
#mainBnr a{
	display: inline-block;
	background: #f27e30;
	color: #fff;
	text-decoration: none;
	text-align: center;
	padding: 10px 20px;
	width: auto;
	border-radius: 200px;
	box-sizing: border-box;
	font-weight: bold;
	transition: background .4s cubic-bezier(.210, .60, .350, 1);
}
#mainBnr a:hover{
	background: #f59b64;
}
#mainBnr a span{
	display: block;
	font-size: 22px;
}
#mainBnr a strong{
	display: block;
	font-size: 18px;
	margin-top: 5px;
}
/* fade */
#main #intro.fade{
	width: 0;
	transform: scale(1);
	transition: width .8s cubic-bezier(.210, .60, .350, 1);
}
#main #intro .txtImg{
	overflow: hidden;
}
#main #intro .txtImg:nth-child(1){
	z-index: 2;
}
#main #intro .txtImg:nth-child(2){
	z-index: 1;
}
#main #intro .txtImg:nth-child(2)::before,
#main #intro .txtImg:nth-child(2)::after{
	content: "";
	position: absolute;
	height: 45%;
	width: 100%;
	background-color: #fff;
}
#main #intro .txtImg:nth-child(2)::before{
	right: 0;
	top: 0;
	transition: width .7s cubic-bezier(.210, .60, .350, 1);
}
#main #intro .txtImg:nth-child(2)::after{
	right: 0;
	bottom: 0;
	transition: width .8s cubic-bezier(.210, .60, .350, 1);
	transition-delay: .5s;
}
#main #intro.load .txtImg:nth-child(2)::before{
	width: 0;
}
#main #intro.load .txtImg:nth-child(2)::after{
	width: 0;
}
#main #intro.fade .txtImg{
	transition: opacity .6s cubic-bezier(.210, .60, .350, 1);
	opacity: 0 !important;
}
#main .img::before{
	transform: scale(1.15);
	transition: transform 2.0s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .img::before{
	transform: scale(1);
}
#main .ttl{
	opacity: 0;
	transform: scale(1.05);
	transition: opacity 1.2s cubic-bezier(.210, .60, .350, 1),transform 1.0s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .ttl{
	opacity: 1;
	transform: scale(1);
	transition-delay: .1s;
}
#main .txt::before{
	width: 0;
	transition: width .8s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .txt::before{
	width: 100%;
	transition-delay: 1.4s;
}
#main .txt p{
	opacity: 0;
	transition: opacity .8s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .txt p{
	opacity: 1;
	transition-delay: 1.6s;
}
#main .txt .badge::before{
	width: 0;
	transition: width .6s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .txt .badge::before{
	width: 100%;
	transition-delay: 2.0s;
}
#main .txt .badge > strong,
#main .txt .badge p{
	opacity: 0;
	transition: opacity .8s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .txt .badge > strong,
#main.fade .txt .badge p{
	opacity: 1;
	transition-delay: 2.2s;
}
#main .scroll{
	transition: opacity .4s cubic-bezier(.210, .60, .350, 1),bottom .4s cubic-bezier(.210, .60, .350, 1);
	bottom: -15px;
	opacity: 0;
}
#main.fade .scroll{
	bottom: 0;
	opacity: 1;
	transition-delay: 2.4s;
}
#mainBnr{
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .4s cubic-bezier(.210, .60, .350, 1),transform .4s cubic-bezier(.210, .60, .350, 1);
}
#main.fade #mainBnr{
	opacity: 1;
	transform: translateY(0);
	transition-delay: 2.2s;
}


#mainBnr{
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .4s cubic-bezier(.210, .60, .350, 1),transform .4s cubic-bezier(.210, .60, .350, 1);
}
#main.fade #mainBnr{
	opacity: 1;
	transform: translateY(0);
	transition-delay: 2.2s;
	transition-delay: 2.7s;
}

.main_graph {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .4s cubic-bezier(.210, .60, .350, 1),transform .4s cubic-bezier(.210, .60, .350, 1);
}
#main.fade .main_graph{
	opacity: 1;
	transform: translateY(0);
	transition-delay: 2.2s;
}

@media screen and (max-width: 1200px) {
#main .txt p br{
	display: none;
}
}
@media screen and (max-width: 1024px) {
#main .img::before{
	background-position: 70% center;
}
#main #intro .txtImg img{
	max-width: 500px;
	width: 500px;
}
#main{
	max-height: 100%;
	min-height: 0;
	height: auto;
}
#main .img{
	overflow: hidden;
	height: 100%;
	width: 100%;
	box-sizing: border-box;
}
#main .ttl{
	top: 0;
	left: 0;
	position: relative;
	padding: 100px 40px 0;
	text-align: left;
}
#main .txt{
	position: relative;
	bottom: -60px;
	padding: 40px 50px 60px;
	width: 100%;
	border-left: 20px solid transparent;
	margin-top: 30px;
}
#main .txt p{
	font-size: 16px;
}
#main .scroll{
	width: 110px;
}
#mainBnr{
	padding: 10px 20px 10px 0;
	margin-top: 0;
}
}




@media screen and (max-width: 768px) {
	#main .ttl_col {
		display: flex;
		justify-content: space-between;
		flex-direction: column;
	}

	#main .ttl_col_item {
	width: 100%;
	}

	#main .main_graph {
	width: 100%;
	margin-top: 40px;
	}

}




@media screen and (max-width: 750px) {
#main #intro .txtImg img{
	max-width: 300px;
	width: 300px;
}
#main .ttl{
	width: auto;
	padding: 70px 20px 0;
}
#main .ttl p{
	font-size: 12px;
	margin-bottom: 20px;
	text-align: center;
}
#main .ttl p span{
	width: 100%;
	box-sizing: border-box;
	margin-top: 5px;
}
#main .ttl h1{
	padding: 0 20px;
}
#main .txt{
	padding: 25px 25px;
	bottom: -40px;
	margin-top: 40px;
}
#main .txt p{
	font-size: 13px;
	line-height: 1.8;
}
#main .txt .badge{
	top: -70px;
	height: 92px;
	padding: 13px 20px 0;
}
#main .txt .badge > strong{
	font-size: 24px;
}
#main .txt .badge > strong span{
	font-size: 18px;
}
#main .txt .badge p{
	font-size: 12px;
}
#main .scroll{
	display: none;
}
#mainBnr{
	padding: 8px 10px 2px 20px;
}
#mainBnr a{
	padding: 15px 40px;
	width: auto;
}
#mainBnr a span{
	font-size: 16px;
}
#mainBnr a strong{
	font-size: 13px;
	margin-top: 5px;
}
}


@media screen and (max-width: 414px) {
	#main .main_graph {
		display: none;
		}
	
}


/* feature
-----------------------------------------------*/
#feature{
	position: relative;
	z-index: 2;
	background: url("../images/bgi-feature.png") center;
	background-color: #87c948;
	padding: 140px 40px 160px;
	margin-top: -60px;
}
#feature .inner{
	max-width: 1200px;
	margin: 0 auto;
}
#feature h2{
	text-align: center;
	color: #fff;
	font-size: 40px;
	line-height: 1.2;
}
#feature ul{
	margin-top: 30px;
	font-size: 0;
	text-align: center;
}
#feature ul li{
	display: inline-block;
	vertical-align: top;
	width: 33.333%;
}
#feature ul li h3{
	display: table;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background-color: #fff;
	color: #00AA00;
	font-size: 32px;
	margin: 0 auto;
}
#feature ul li h3 strong{
	display: table-cell;
	vertical-align: middle;
}
#feature ul li h3 strong span{
	display: inline;
	background: linear-gradient(transparent 70%, #fcee21 70%);
}
/* fade */
#feature ul li{
	position: relative;
	top: 20px;
	opacity: 0;
}
#feature ul.fade li{
	transition: top .8s cubic-bezier(.210, .60, .350, 1),opacity .8s cubic-bezier(.210, .60, .350, 1);
	top: 0;
	opacity: 1;
}
#feature ul.fade li:nth-child(2){
	transition-delay: .2s;
}
#feature ul.fade li:nth-child(3){
	transition-delay: .4s;
}
@media screen and (max-width: 1024px) {
#feature{
	padding: 120px 40px 140px;
	background-image: none;
}
#feature ul li h3{
	width: 200px;
	height: 200px;
	font-size: 24px;
}
}
@media screen and (max-width: 750px) {
#feature{
	padding: 80px 20px 80px;
	margin-top: -40px;
}
#feature h2{
	font-size: 26px;
}
#feature ul{
	margin-top: 20px;
}
#feature ul li{
	width: auto;
	margin: 0 10px;
}
#feature ul li h3{
	width: 140px;
	height: 140px;
	font-size: 16px;
}
}
@media screen and (max-width: 320px) {
#feature ul li h3{
	width: 120px;
	height: 120px;
	font-size: 16px;
}
}


/* 共通
-----------------------------------------------*/
.ttl {
	position: relative;
	z-index: 3;
	margin: 0 auto;
	text-align: center;
	top: -45px;
}
.ttl h2{
	position: relative;
	z-index: 1;
	display: inline-block;
	color: rgba(255,255,255,1);
	min-width: 640px;
	font-size: 40px;
	padding: 15px;
	box-sizing: border-box;
}
.ttl h2::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-color: #1e5300;
}
.ttl h2 span{
	font-size: 20px;
}
/* fade */
.ttl h2::before{
	width: 0;
}
.ttl.fade h2::before{
	transition: width .5s cubic-bezier(.210, .60, .350, 1);
	width: 100%;
	color: rgba(255,255,255,1);
}
.ttl h2{
	color: rgba(255,255,255,0);
}
.ttl.fade h2{
	transition: color .3s cubic-bezier(.210, .60, .350, 1);
	color: rgba(255,255,255,1);
	transition-delay: .4s;
}
@media screen and (max-width: 750px) {
.ttl {
	padding: 0 20px;
	top: -30px;
}
.ttl h2{
	display: block;
	min-width: 0;
	font-size: 20px;
	padding: 15px;
}
.ttl h2 span{
	font-size: 13px;
}
}
@media screen and (max-width: 320px) {
.ttl {
	padding: 0;
}
}


/* outline
-----------------------------------------------*/
#outline{
	padding: 0 40px 140px 40px;
	background: #edf2e7;
}
#outline .inner{
	max-width: 1200px;
	margin: 0 auto;
}
#outline .inner p{
	font-size: 18px;
	font-weight: bold;
	text-align: center;
}
#outline .inner p.note{
	font-size: 14px;
	text-align: right;
  font-weight: normal;
  margin-top: 10px;
}
#outline table{
	width: 100%;
	margin-top: 20px;
}
#outline table th{
	color: #fff;
	font-weight: normal;
	width: 150px;
	border-top: 2px solid #e4f1f7;
	font-size: 14px;
}
#outline table tr:nth-child(1) th{
	background: #1b973a;
}
#outline table tr:nth-child(2) th{
	background: #ec6a04;
}
#outline table tr:nth-child(3) th{
	background: #d6a600;
}
#outline table tr:nth-child(4) th{
	background: #dc067b;
}
#outline table th strong{
	font-size: 24px;
}
#outline table td{
	background: #fff;
	border-top: 2px solid #edf2e7;
}
#outline table td .col2{
	display: table;
	width: 100%;
}
#outline table td .col{
	position: relative;
	display: table-cell;
	vertical-align: middle;
	padding: 24px 40px;
	font-weight: bold;
}
#outline table td .col:nth-child(1){
	font-size: 22px;
	width: 40%;
}
#outline table td .col:nth-child(2){
	font-size: 16px;
	width: 60%;
	background: #f5f5f7;
}
#outline table td .col:nth-child(2)::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 4px;
	transform: translate(-100%,-50%);
	box-sizing: border-box;
	width: 30px;
	height: 15px;
	border: 10px solid transparent;
	border-right: 25px solid #f5f5f7;
}
#outline table tr:nth-child(1) td .col:nth-child(1){
	color: #1b973a;
}
#outline table tr:nth-child(2) td .col:nth-child(1){
	color: #ec6a04;
}
#outline table tr:nth-child(3) td .col:nth-child(1){
	color: #d6a600;
}
#outline table tr:nth-child(4) td .col:nth-child(1){
	color: #dc067b;
}
/* fade */
#outline table{
	position: relative;
	top: 20px;
	opacity: 0;
}
#outline table.fade{
	transition: top .8s cubic-bezier(.210, .60, .350, 1),opacity .8s cubic-bezier(.210, .60, .350, 1);
	top: 0;
	opacity: 1;
}
@media screen and (max-width: 1024px) {
#outline table th{
	width: 120px;
}
#outline table td .col{
	display: table-cell;
	padding: 24px 20px;
}
#outline table td .col:nth-child(1){
	font-size: 20px;
}
#outline table td .col:nth-child(2){
	font-size: 15px;
}
}
@media screen and (max-width: 750px) {
#outline{
	padding: 0 20px 80px 20px;
}
#outline .inner p{
	font-size: 14px;
}
#outline .inner p.note{
	font-size: 12px;
	text-align: center;
}
#outline table th{
	width: 80px;
	font-size: 11px;
}
#outline table th strong{
	font-size: 18px;
	display: block;
}
#outline table td .col2{
	display: block;
}
#outline table td .col{
	display: block;
	padding: 20px 15px;
	box-sizing: border-box;
}
#outline table td .col:nth-child(1){
	font-size: 16px;
	width: 100%;
	padding-bottom: 0;
}
#outline table td .col:nth-child(2){
	font-size: 13px;
	width: 100%;
	background: #fff;
	padding-top: 5px;
}
#outline table td .col:nth-child(2)::before{
	display: none;
}
}

/* example
-----------------------------------------------*/
#example{
	background-color: #87c948;
	color: #fff;
	padding: 0 40px 140px 40px;
}
#example .inner{
	max-width: 1200px;
	margin: 0 auto;
}
#example .col2 .col{
	position: relative;
	box-sizing: border-box;
	padding: 50px;
	margin-top: 40px;
	border: 6px solid #fff;
}
#example .col2 .col:first-child{
	margin-top: 0;
}
#example .col2 .col h3{
	font-size: 28px;
}
#example .col2 .col p{
	font-size: 16px;
	margin-top: 15px;
	line-height: 1.8;
}
#example .col2 .col p a{
	color: #fff;
	word-wrap:break-word;
}
#example .col2 .col p.note{
	font-size: 14px;
	margin-left: 1em;
	text-indent: -1em;
	margin-top: 5px;
}
#example .col2 .col h5 + p.note{
	margin-top: 20px;
}
#example .col2 .col h4{
	font-size: 20px;
	margin-top: 20px;
}
#example .col2 .col .box + h4{
	border-top: 1px solid #fff;
	padding-top: 20px;
	margin-top: 25px;
}
#example .col2 .col h5{
	font-size: 20px;
	font-weight: normal;
	margin-top: 15px;
}
#example .col2 .col .imgW{
	max-width: 600px;
	margin: 0 auto;
}
#example .col2 .col .imgW img{
	margin-top: 10px;
}
#example .col2 .col .box{
	font-size: 0;
}
#example .col2 .col .box .img{
	width: 48%;
	display: inline-block;
	vertical-align: top;
	margin-right: 4%;
}
#example .col2 .col .box .img img{
	margin-top: 10px;
}
/* fade */
#example .col2 .col{
	position: relative;
	top: 20px;
	opacity: 0;
}
#example .col2.fade .col{
	transition: top .8s cubic-bezier(.210, .60, .350, 1),opacity .8s cubic-bezier(.210, .60, .350, 1);
	top: 0;
	opacity: 1;
}
#example .col2.fade .col:nth-child(2){
	transition-delay: .2s;
}
#example .col2.fade .col:nth-child(2){
	transition-delay: .4s;
}
@media screen and (max-width: 750px) {
#example{
	color: #fff;
	padding: 0 20px 80px 20px;
}
#example .col2 .col{
	padding: 30px;
	border: 4px solid #fff;
	margin-top: 20px;
}
#example .col2 .col h3{
	font-size: 20px;
}
#example .col2 .col p{
	font-size: 14px;
	margin-top: 10px;
}
#example .col2 .col p.note{
	font-size: 12px;
}
#example .col2 .col p span{
	font-size: 12px;
}
#example .col2 .col h4{
	font-size: 16px;
	margin-top: 20px;
}
#example .col2 .col .box + h4{
	margin-top: 20px;
}
#example .col2 .col h5{
	font-size: 16px;
	margin-top: 15px;
}
#example .col2 .col .box .img{
	width: 100%;
	display: block;
	margin-right: 0;
}
#example .col2 .col .box .img img{
	margin-top: 10px;
}
#example .col2 .col .box .txt{
	width: 100%;
	display: block;
}
}


/* flow
-----------------------------------------------*/
#flow{
	padding: 0 40px 140px 40px;
}
#flow .inner{
	max-width: 1200px;
	margin: 0 auto;
}
#flow .box{
	position: relative;
	border: 6px solid #e4e4e4;
	margin-bottom: 35px;
	display: table;
	width: 100%;
	background-color: #fff;
	box-sizing: border-box;
}
#flow .box::before,
#flow .box::after{
	content: "";
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 40px;
	height: 40px;
}
#flow .box::before{
	z-index: -1;
	bottom: -21px;
	border: 6px solid #e4e4e4;
	background-color: #e4e4e4;
}
#flow .box::after{
	z-index: 2;
	bottom: -14px;
	background-color: #fff;
}
#flow .box.end{
	background-color: #87c948;
	border-color: #87c948;
	color: #fff;
	margin-bottom: 0;
}
#flow .box.end::before,
#flow .box.end::after{
	display: none;
}
#flow .box h3{
	display: table-cell;
	vertical-align: middle;
	white-space: nowrap;
	padding: 40px 40px 40px 60px;
	text-align: left;
	width: 8em;
	font-size: 30px;
	color: #87c948;
}
#flow .box.end h3{
	color: #fff;
}
#flow .box .txt{
	position: relative;
	z-index: 3;
	display: table-cell;
	vertical-align: middle;
	text-align: left;
	padding: 40px 20px 40px 0;
}
#flow .box .txt p{
	font-size: 16px;
}
#flow .box .txt p strong{
	font-size: 20px;
}
#flow .box .txt p span{
	color: #c1272d;
}
#flow .box .txt .btn{
	margin-top: 15px;
}
#flow .box .txt .btn a{
	position: relative;
	display: inline-block;
	background-color: #f27e30;
	font-size: 20px;
	color: #fff;
	text-decoration: none;
	padding: 20px 60px 20px 40px;
	text-align: left;
	line-height: 1.2;
	transition: opacity .2s cubic-bezier(.210, .60, .350, 1);
}
#flow .box .txt .btn.yel a{
	background-color: #f8bb35;
}
#flow .box .txt .btn a:hover{
	opacity: 0.7;
}
#flow .box .txt .btn a::before{
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	display: block;
	width: 12px;
	height: 12px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: translateY(-50%) rotate(45deg);
}
/* fade */
#flow .box h3::before{
	content: "";
	display: block;
	background-color: #fff;
	position: absolute;
	left: -6px;
	top: -6px;
	z-index: 10;
	width: 100%;
	height: 100%;
	padding: 6px 6px 41px 6px;
	opacity: 1;
	pointer-events: none;
}
#flow.fade .box h3::before{
	transition: opacity 1.2s cubic-bezier(.210, .60, .350, 1);
	opacity: 0;
}
#flow.fade .box:nth-child(2) h3::before{
	transition-delay: .3s;
}
#flow.fade .box:nth-child(3) h3::before{
	transition-delay: .55s;
}
#flow.fade .box:nth-child(4) h3::before{
	transition-delay: .8s;
}
#flow.fade .box:nth-child(5) h3::before{
	transition-delay: 1.05s;
}
@media screen and (max-width: 1024px) {
#flow .box h3{
	padding: 40px 30px;
	font-size: 26px;
}
}
@media screen and (max-width: 750px) {
#flow{
	padding: 0 20px 80px 20px;
}
#flow .box{
	border-width: 4px;
	margin-bottom: 20px;
}
#flow .box::before,
#flow .box::after{
	width: 20px;
	height: 20px;
}
#flow .box::before{
	bottom: -11px;
	border-width: 4px;
}
#flow .box::after{
	z-index: 2;
	bottom: -6px;
	background-color: #fff;
}
#flow .box h3{
	padding: 20px 20px;
	font-size: 14px;
	width: 5em;
}
#flow .box .txt{
	padding: 20px 20px 20px 0;
}
#flow .box .txt p{
	font-size: 12px;
}
#flow .box .txt p strong{
	display: block;
	font-size: 14px;
}
#flow .box .txt .btn a{
	display: block;
	font-size: 14px;
	padding: 15px 40px 15px 20px;
}
#flow .box .txt .btn a::before{
	right: 15px;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}
/* fade */
#flow .box h3::before{
	left: -4px;
	top: -4px;
	padding: 4px 4px 24px 4px;
}
}
@media screen and (max-width: 320px) {
#flow .box h3{
	padding: 20px 15px;
	font-size: 13px;
}
#flow .box .txt{
	padding: 15px 20px 15px 0;
}
#flow .box .txt p strong{
	font-size: 13px;
}
#flow .box .txt .btn a{
	font-size: 13px;
	padding: 15px 30px 15px 15px;
}
}


/* price
-----------------------------------------------*/
#price{
	padding: 0 40px 80px 40px;
	background-color: #edf2e7;
	text-align: center;
}
#price .inner{
	max-width: 1200px;
	margin: 0 auto;
}
#price .txt > span{
	display: inline-block;
	vertical-align: middle;
	background-color: #87c948;
	color: #fff;
	padding: 8px 15px;
	font-size: 16px;
	margin-right: 10px;
}
#price .txt strong{
	font-size: 60px;
	display: inline-block;
	vertical-align: middle;
}
#price .txt strong span{
	font-size: 30px;
}
#price .txt strong span small{
	font-size: 16px;
}
#price .note{
	display: inline-block;
	font-size: 14px;
	text-align: left;
	margin-top: 20px;
}
#price .list{
	max-width: 416px;
	margin: 20px auto 0;
}
#price .list table{
	width: 100%;
	border-bottom: 1px solid #333;
}
#price .list table th,
#price .list table td{
	border-top: 1px solid #333;
	font-size: 16px;
}
#price .list table th{
	padding: 8px 0 8px 40px;
	text-align: left;
}
#price .list table td{
	padding: 3px 0 3px 40px;
	text-align: left;
}
#price .list table td:nth-child(2){
	padding: 3px 0 3px 0;
	text-align: right;
}
#price .list table th strong,
#price .list table td strong{
	font-size: 24px;
	margin-right: 3px;
}
#price .list table td .zei{
	position: relative;
	display: inline-block;
}
#price .list table td .zei span{
	position: absolute;
	left: 100%;
	bottom: 2px;
	white-space: nowrap;
}
#price .list .right{
	margin-top: 10px;
	font-size: 14px;
	text-align: right;
}
#price .col2{
	font-size: 0;
}
#price .col2 .col{
	display: inline-block;
	vertical-align: middle;
	width: 50%;
}
#price .col2 .col:first-child{
	width: 48%;
	margin-right: 2%;
}
#price .box{
	text-align: left;
	max-width: 1020px;
	margin: 20px auto 0;
}
#price .box h3{
	font-size: 20px;
}
#price .box p{
	font-size: 16px;
	margin-top: 5px;
}
#price .box ul{
	margin-top: 10px;
}
#price .box ul li{
	margin: 5px 0 0 1em;
	text-indent: -1em;
	font-size: 13px;
}
#price .box ul li:first-child{
	margin-top: 0;
}
@media screen and (max-width: 1024px) {
#price .col2 .col{
	display: block;
	width: 100%;
}
#price .col2 .col:first-child{
	width: 100%;
	margin-right: 0;
}
#price .col2 .img{
	margin: 30px auto 0;
	max-width: 600px;
}
#price .box{
    margin: 0 auto;
}
}
@media screen and (max-width: 750px) {
#price{
	padding: 0 20px 40px 20px;
}
#price .txt > span{
	top: -4px;
	padding: 6px 12px;
	font-size: 14px;
}
#price .txt strong{
	font-size: 34px;
	vertical-align: bottom;
	line-height: 1;
}
#price .txt strong span{
	font-size: 26px;
}
#price .txt strong span small{
	font-size: 14px;
}
#price .note{
	font-size: 14px;
	margin-top: 20px;
}
#price .list{
	margin: 20px auto 0;
}
#price .list table th,
#price .list table td{
	font-size: 12px;
}
#price .list table th{
	padding: 8px 0 8px 20px;
}
#price .list table td{
	padding: 3px 0 3px 20px;
}
#price .list table td:nth-child(2){
	padding: 3px 0 3px 0;
	text-align: left;
}
#price .list table th strong,
#price .list table td strong{
	font-size: 16px;
	margin-right: 3px;
}
#price .list .right{
	font-size: 13px;
}
#price .box{
    margin: 20px auto 0;
}
}
@media screen and (max-width: 320px) {
#price .txt > span{
	font-size: 12px;
}
#price .txt strong{
	font-size: 34px;
}
	#price .txt strong span{
	font-size: 20px;
}
#price .txt strong span small{
	font-size: 12px;
}
}


/* course
-----------------------------------------------*/
#course{
	background: #f27e30;
	padding: 80px 40px 80px 40px;
}
#course .inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	background: #fff;
	padding: 60px;
	box-sizing: border-box;
}
#course h2{
	font-size: 40px;
	text-align: center;
	color: #f27e30;
	border: 6px solid #f27e30;
	padding: 20px;
}
#course .badge{
	width: 300px;
	position: absolute;
	right: -60px;
	top: -60px;
}
#course p{
	font-size: 16px;
	line-height: 2;
	margin-top: 40px;
	padding-right: 130px;
}
#course .box{
	position: relative;
	padding-left: 340px;
}
#course .box .img{
	position: absolute;
	left: 0;
	top: 0;
	max-width: 300px;
}
#course table{
	width: 100%;
	margin-top: 30px;
}
#course table th{
	white-space: nowrap;
	vertical-align: top;
	padding: 16px 20px 16px 0;
}
#course table th strong{
	display: block;
	padding: 5px 20px;
	background: #f27e30;
	color: #fff;
	font-size: 16px;
}
#course table td{
	vertical-align: top;
	width: 100%;
	padding: 16px 0 16px 0;
	font-weight: bold;
	font-size: 20px;
}
#course .btn{
	text-align: center;
	margin-top: 50px;
}
#course .btn a{
	position: relative;
	display: block;
	background-color: #f27e30;
	font-size: 26px;
	font-weight: bold;
	color: #fff;
	text-decoration: none;
	padding: 40px 0;
	line-height: 1.2;
	transition: opacity .2s cubic-bezier(.210, .60, .350, 1);
	max-width: 600px;
	margin: 0 auto;
	box-sizing: border-box;
}
#course .btn a:hover{
	opacity: 0.7;
}
#course .btn a::before{
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	display: block;
	width: 12px;
	height: 12px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 1024px) {
#course h2{
	font-size: 34px;
}
#course .badge{
	width: 220px;
	right: -60px;
	top: -20px;
}
#course p{
	padding-right: 0;
}
#course .box{
	padding-left: 0;
}
#course .box .img{
	position: relative;
	margin: 30px auto 0;
}
}
@media screen and (max-width: 750px) {
#course{
	padding: 20px 20px 20px;
}
#course .inner {
	padding: 20px;
}
#course h2{
	font-size: 20px;
	border: 4px solid #f27e30;
	padding: 15px 5px;
	padding-right: 0;
	margin-top: 10px;
}
#course .badge{
	position: relative;
	width: 180px;
	right: 0;
	top: 0;
	margin: -110px auto 0;
}
#course p{
	font-size: 13px;
	line-height: 1.8;
	margin-top: 20px;
}
#course .box .img{
	margin: 20px auto 0;
}
#course table{
	margin-top: 10px;
}
#course table th{
	padding: 8px 10px 8px 0;
}
#course table th strong{
	padding: 3px 5px;
	font-size: 13px;
}
#course table td{
	padding: 8px 0 8px 0;
	font-size: 14px;
}
#course .btn{
	margin-top: 20px;
}
#course .btn a{
	font-size: 16px;
	padding: 20px 0;
}
#course .btn a::before{
	right: 15px;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}
}


/* contact
-----------------------------------------------*/
#contact{
	padding: 60px 40px;
	text-align: center;
	margin-bottom: 60px;
	border-bottom: 1px solid #e4e4e4;
}
#contact .inner{
	max-width: 880px;
	margin: 0 auto;
}
#contact  .btn{
	background: #fff;
}
#contact  .btn a{
	position: relative;
	display: block;
	background-color: #f27e30;
	font-size: 40px;
	font-weight: bold;
	color: #fff;
	text-decoration: none;
	padding: 45px 0;
	text-align: center;
	line-height: 1.2;
	transition: opacity .2s cubic-bezier(.210, .60, .350, 1);
}
#contact .btn a:hover{
	opacity: 0.7;
}
#contact .btn a::before{
	content: "";
	position: absolute;
	right: 30px;
	top: 50%;
	display: block;
	width: 26px;
	height: 26px;
	border-top: 6px solid #fff;
	border-right: 6px solid #fff;
	transform: translateY(-50%) rotate(45deg);
}
/* fade */
#contact .btn{
	position: relative;
}
#contact .btn::before{
	content: "";
	display: block;
	background-color: #87c948;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
}
#contact .btn.fade::before{
	transition: width .5s cubic-bezier(.210, .60, .350, 1);
	width: 0;
}
@media screen and (max-width: 750px) {
#contact{
	padding: 40px 20px;
	margin-bottom: 40px;
}
#contact  .btn a{
	font-size: 18px;
	padding: 30px 20px 30px 0;
}
#contact .btn a::before{
	right: 20px;
	width: 15px;
	height: 15px;
	border-top: 4px solid #fff;
	border-right: 4px solid #fff;
}
}



/* footer
-----------------------------------------------*/
	footer {
	position:  relative;
	padding-bottom: 10px;
	text-align: center; }
	footer p {
	margin-bottom: 20px; }
	footer p.logo {
	margin: 0 auto 20px;
	width: 220px; }
	footer p.copy {
	font-size: 11px;
	text-align: center; }

	@media screen and (max-width: 640px) {
	footer h4 {
	font-size: 18px; }
	footer a.btn {
	width: 80%;
	font-size: 16px; }
	footer p {
	font-size: 12px; }
	}
