
body {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	position: relative;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%; /* iphone横向き 文字拡大防止 */
}
img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	opacity: 0.7;
}
p {
	line-height: 1.8;
}

/*==================================================================================
ヘッダー
==================================================================================*/
header {
	width: calc(100% - 60px);
	padding: 20px 30px!important;
	z-index: 9999;
	position: absolute;
	top: 0;
	left: 0;
}
header .head_logo {
	display: none;
	width: 120px;
}
header.fixed {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: url("../img/main_bg.jpg") center top / cover no-repeat;
	position: fixed;
	top: 0;
	left: 0;
	animation: head_fix .5s;
}
@keyframes head_fix {
	0% {
		opacity: 0;
		transform: translateY(-100%);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
header.fixed .head_logo {
	display: block;
}
header.second {
	background: url("../img/main_bg.jpg") center top / cover no-repeat;
	position: fixed;
	top: 0;
	left: 0;
}
header.second .head_logo {
	display: block;
}
header .sp_tel {
	display: none;
}
nav.head_nav ul {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-end;
	align-items: center;
}
nav.head_nav ul li {
	margin-left: 40px;
}
nav.head_nav ul li a {
	display: inline-block;
	color: #fff;
	font-weight: bold;
	letter-spacing: .1em;
	text-shadow: 0 0 6px #1a1a3c, 0 0 6px #1a1a3c, 0 0 6px #1a1a3c, 0 0 12px #1a1a3c;
}
nav.head_nav ul li:last-child a {
	padding: 10px 20px;
	border-radius: 20px;
	background: #fff;
	color: #1a1a3c;
	text-shadow: none;
	letter-spacing: 0;
}

/* スマホ版 メニュー -----------------------*/
nav.globalMenuSp {
    z-index: 2;
    width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
    position: fixed;
    top: 0;
    left: 0;
	opacity: 0;
	transition: all .3s;
	visibility: hidden;
}
nav.globalMenuSp ul {
    width: calc(100% - 40px);
	padding: 60px 20px;
    background: #fff;
    text-align: center;
}
nav.globalMenuSp ul li {
    width: 100%;
    border-bottom: 1px dotted #ccc;
}
/* 最後はラインを描かない */
nav.globalMenuSp ul li:last-child {
    padding-bottom: 0;
    border-bottom: none;
}
nav.globalMenuSp ul li a {
    display: block;
	padding: 20px 0;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
	opacity: 1;
	visibility: visible;
}
.navToggle {
    z-index: 3;
    display: block;
    width: 30px;
    height: 30px;
    text-align: center;
    cursor: pointer;
    position: fixed;    /* bodyに対しての絶対位置指定 */
    right: 20px;
    top: 20px;
}
.navToggle span {
    display: block;
    width: 100%;
    border-bottom: solid 3px #FFF;
	box-shadow: 0 0 2px #1a1a3c;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
    position: absolute;    /* .navToggleに対して */
    left: 0;
}
.navToggle span:nth-child(1) {
    top: 5px;
}
.navToggle span:nth-child(2) {
    top: 14px;
}
.navToggle span:nth-child(3) {
    top: 23px;
}
.navToggle.active span {
    border-bottom: solid 3px #1a1a3c;
	box-shadow: none;
}
/* 最初のspanをマイナス45度に */
.navToggle.active span:nth-child(1) {
    top: 14px;
    left: 0;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
/* 2番目と3番目のspanを45度に */
.navToggle.active span:nth-child(2),
.navToggle.active span:nth-child(3) {
    top: 14px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}


/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
main.second {
	padding-top: 80px;
}
main.bg_navy {
	background: #1A1A3C;
	color: #fff;
}
section {
	padding: 120px 0!important;
}
.container {
	width: calc(100% - 40px);
	max-width: 1200px;
	padding: 0 20px;
	margin: auto;
}
.max680 {
	max-width: 680px;
	margin: auto;
}
.max960 {
	max-width: 960px;
	margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.align_center {
	align-items: center;
}
.row.just_center {
	justify-content: center;
}
.col2 {
	width: calc(50% - 20px);
}

.mb_10 {
	margin-bottom: 10px;
}
.mb_20 {
	margin-bottom: 20px;
}
.mb_30 {
	margin-bottom: 30px;
}
.mb_60 {
	margin-bottom: 60px;
}
.mb_120 {
	margin-bottom: 120px;
}

/* フォント */
h1 {
	text-align: center;
	position: relative;
}
h1 span {
	display: inline-block;
	padding-bottom: 30px;
	color: #1a1a3c;
	font-size: 28px;
	letter-spacing: .2em;
	position: relative;
}
h1 span::after {
	content: "";
	display: block;
	width: calc(100% + 20px);
	height: 100%;
	background: url("../img/h1.png") center bottom / contain no-repeat;
	position: absolute;
	top: 0;
	left: -10px;
}
h1.white span {
	color: #fff;
}
h1.white span::after {
	background-image: url("../img/h1_wh.png");
}
h2 {
	padding-bottom: 10px!important;
	border-bottom: 1px #000 solid!important;
	font-size: 20px;
	letter-spacing: .1em;
}
h3 {
	padding-bottom: 15px!important;
	font-size: 20px;
	letter-spacing: .1em;
	position: relative;
}
h3::after {
	content: "";
	display: block;
	width: 22px;
	height: 2px;
	background: #fff;
	position: absolute;
	left: 0;
	bottom: 0;
}
.font_14 {
	font-size: 14px;
}
.font_20 {
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: .2em;
}
.font_28 {
	font-size: 28px;
	line-height: 1.6;
	letter-spacing: .2em;
}
.txt_center {
	text-align: center;
}
.bold {
	font-weight: bold;
}
.indent {
	padding-left: 1em;
	text-indent: -1em;
}
.white {
	color: #fff;
}

/* ボタン */
.btn {
	display: block;
	width: calc(100% - 44px);
	max-width: calc(680px - 44px);
	margin: auto;
	padding: 20px;
	border: 2px #fff solid;
	background: #fff;
	font-size: 24px;
	font-weight: bold;
	text-align: center;
	letter-spacing: .2em;
}
.btn:hover {
	opacity: 1;
	background: #1a1a3c;
	color: #fff;
}

/* アニメーション */
.animated.fadeIn_zero {
	animation: fadeIn_zero .5s;
}
@keyframes fadeIn_zero {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.animated.fadeUp_zero {
	animation: fadeUp_zero .5s;
}
.animated.fadeUp_1st {
	animation: fadeUp_1st 1s;
}
.animated.fadeUp_2nd {
	animation: fadeUp_2nd 1.5s;
}
@keyframes fadeUp_zero {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes fadeUp_1st {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	50% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes fadeUp_2nd {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	66.6% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
.animated.fadeRight_zero {
	animation: fadeRight_zero .5s;
}
.animated.fadeRight_1st {
	animation: fadeRight_1st 1s;
}
.animated.fadeRight_2nd {
	animation: fadeRight_2nd 1.5s;
}
@keyframes fadeRight_zero {
	0% {
		opacity: 0;
		transform: translateX(30px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
@keyframes fadeRight_1st {
	0% {
		opacity: 0;
		transform: translateX(30px);
	}
	50% {
		opacity: 0;
		transform: translateX(30px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
@keyframes fadeRight_2nd {
	0% {
		opacity: 0;
		transform: translateX(30px);
	}
	66.6% {
		opacity: 0;
		transform: translateX(30px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}


/*==================================================================================
INDEX
==================================================================================*/
section#main {
	width: 100%;
	padding: 0!important;
	position: relative;
	z-index: 10;
}
section#main .bg01 {
	width: 100%;
	position: relative;
	top: 0;
	left: 0;
}
section#main .bg02 {
	width: 55%;
	height: 116%;
	background: url("../img/main_bg02.png") left bottom / 88% repeat;
	position: absolute;
	top: 0;
	right: 0;
}
section#main .bg03 {
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
section#main .logo {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(20% - 60px);
	max-width: calc(420px - 60px);
	min-width: calc(300px - 60px);
	height: 88%;
	padding: 0 30px;
	background: rgba(10,10,70,0.40);
	position: absolute;
	top: 0;
	left: 15%;
}
section#main .btn_repo {
	display: inline-block;
	padding: 20px 30px;
	background: #ffff00;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	line-height: 1.6;
	position: absolute;
	bottom: 5%;
	right: 0;
}
section#main .btn_repo span {
	display: inline-block;
	width: 25px;
	margin-top: 8px;
	transition: all .3s;
}
section#main .btn_repo:hover {
	opacity: 1;
}
section#main .btn_repo:hover span {
	transform: translateX(10px);
}

/* ABOUT -----------------------------------------------------------------------*/
section#about {
	width: calc(100% - 40px);
	padding: 30px 20px!important;
	background: #1a1a3c url("../img/about_ilst01.png") right 10% bottom 40% / 360px no-repeat;
	color: #fff;
	position: relative;
	z-index: 10;
}
section#about .ttl {
	width: 220px;
	position: absolute;
	top: -120px;
	left: 5%;
}
section#about .txt {
	width: 95%;
	position: relative;
	top: 0;
	left: 5%;
}
/* SERVICE-----------------------------------------------------------------------*/
section#service {
	background: #efece3;
	color: #333;
	position: relative;
}
section#service::before {
	content: "";
	display: block;
	width: 40%;
	max-width: 680px;
	height: 680px;
	background: url("../img/service_ilst01.png") center top / contain no-repeat;
	position: absolute;
	top: 30px;
	left: 0;
	z-index: 2;
}
section#service .service {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	max-width: 1400px;
	margin: auto;
}
section#service .service .photo {
	width: 70%;
}
section#service .service .txt {
	width: calc(30% - 40px);
	padding: 40px 40px 0 0;
	position: relative;
}
section#service .service.s02 .txt {
	padding: 40px 0 0 40px;
}
section#service .service.s01 .txt::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/service_ilst02.png") right bottom 8% / 45% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
}
section#service .service.s02 .txt::after {
	content: "";
	display: block;
	width: 150%;
	height: 100%;
	background: url("../img/service_ilst03.png") right bottom / 25% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
}
section#service .service .txt p {
	line-height: 2;
}

/* FLOW--------------------------------------------------------------------------*/
section#top_flow {
	background: #1a1a3c;
	position: relative;
}
section#top_flow::before {
	content: "";
	display: block;
	width: 40%;
	max-width: 680px;
	height: 100%;
	background: url("../img/flow_ilst01.png") right bottom / contain no-repeat;
	position: absolute;
	top: 0;
	right: 0;
}
section#top_flow .container {
	position: relative;
}
section#top_flow .btn_flow {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 360px;
	height: 360px;
	position: relative;
}
section#top_flow .btn_flow.yellow {
	background: url("../img/flow_circle01.png") center center / contain no-repeat;
	color: #eec841;
}
section#top_flow .btn_flow.green {
	background: url("../img/flow_circle02.png") center center / contain no-repeat;
	color: #4da635;
}
section#top_flow .btn_flow p span {
	display: inline-block;
	width: 36px;
	margin-top: 20px;
	transition: all .3s;
}
section#top_flow .btn_flow:hover {
	opacity: 1;
	transform: scale(1.05);
}
section#top_flow .btn_flow:hover p span {
	transform: translateX(10px);
}

/* COMPANY--------------------------------------------------------------------------*/
section#company {
	background: #EFECE3 url("../img/company_ilst03.png") right bottom 120px / 20% no-repeat;
	position: relative;
}
section#company::before {
	content: "";
	display: block;
	width: 10%;
	max-width: 240px;
	height: 340px;
	background: url("../img/company_ilst01.png") left top / contain no-repeat;
	position: absolute;
	top: 240px;
	left: 5%;
}
section#company::after {
	content: "";
	display: block;
	width: 12%;
	max-width: 300px;
	height: 230px;
	background: url("../img/company_ilst02.png") left top / contain no-repeat;
	position: absolute;
	bottom: 380px;
	left: 5%;
}
section#company table {
	width: 100%;
	border-top: 1px #1A1A3C dotted;
	font-weight: bold;
	letter-spacing: .1em;
}
section#company table tr {
	border-bottom: 1px #1A1A3C dotted;
}
section#company table th {
	width: calc(180px - 40px);
	padding: 15px 20px;
	text-align: left;
}
section#company table td {
	padding: 15px 20px;
	line-height: 1.2;
	text-align: left;
}

/*==================================================================================
FLOW
==================================================================================*/
section#flow {
	background: url("../img/flow_ilst02.png") right bottom 30% / 30% no-repeat;
	position: relative;
}
section#flow.yellow::before {
	content: "";
	display: block;
	width: 300px;
	height: 300px;
	background: url("../img/flow01_ilst01.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	left: 1%;
}
section#flow.yellow::after {
	content: "";
	display: block;
	width: 300px;
	height: 300px;
	background: url("../img/flow01_ilst02.png") center center / contain no-repeat;
	position: absolute;
	bottom: 0;
	left: 1%;
}
section#flow.green::before {
	content: "";
	display: block;
	width: 260px;
	height: 260px;
	background: url("../img/flow02_ilst01.png") center center / contain no-repeat;
	position: absolute;
	top: 58%;
	left: 3%;
}
section#flow.green::after {
	content: "";
	display: block;
	width: 80px;
	height: 80px;
	background: url("../img/flow02_ilst02.png") center center / contain no-repeat;
	position: absolute;
	bottom: 2%;
	right: 20%;
}
section#flow .target {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 360px;
	height: 360px;
	margin-bottom: -200px;
	position: relative;
	left: -10%;
}
section#flow.yellow .target {
	background: url("../img/flow_circle01.png") center center / contain no-repeat;
	color: #eec841;
}
section#flow.green .target {
	background: url("../img/flow_circle02.png") center center / contain no-repeat;
	color: #4da635;
}
section#flow .arrow {
	padding-top: 120px;
	position: relative;
}
section#flow .arrow::before {
	content: "";
	display: block;
	width: 100px;
	height: 100px;
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%) rotate(45deg);
}
section#flow.yellow .arrow::before {
	background-image: url("../img/arrow_y.png");
}
section#flow.green .arrow::before {
	background-image: url("../img/arrow_g.png");
}
section#flow .arrow.right::before {
	transform: translateX(-50%) rotate(-45deg);
}
section#flow .arrow.animated::before {
	animation: arrow_left 1s;
}
section#flow .arrow.right.animated::before {
	animation: arrow_right 1s;
}
@keyframes arrow_left {
	0% {
		transform: translateX(-50%) rotate(45deg) scale(0);
	}
	50% {
		transform: translateX(-50%) rotate(45deg) scale(0);
	}
	100% {
		transform: translateX(-50%) rotate(45deg) scale(1);
	}
}
@keyframes arrow_right {
	0% {
		transform: translateX(-50%) rotate(-45deg) scale(0);
	}
	50% {
		transform: translateX(-50%) rotate(-45deg) scale(0);
	}
	100% {
		transform: translateX(-50%) rotate(-45deg) scale(1);
	}
}
section#flow .col3 {
	width: calc(100% / 3 - 20px);
}
/* フォローアップ -----------------------------*/
section#followup .followup {
	width: calc(100% - 4px);
	margin-bottom: 240px;
	border: 2px #fff solid;
	position: relative;
}
section#followup .followup::before {
	content: "";
	display: block;
	width: 260px;
	height: 32px;
	background: url("../img/followup_ttl.png") left bottom / contain no-repeat;
	position: absolute;
	top: -32px;
	left: 0;
}
section#followup .txt {
	width: calc(100% - 580px - 80px);
	padding: 40px;
}
section#followup .txt .yellow {
	color: #eec841;
}
section#followup .img {
	width: 540px;
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
}
/* ポイント -----------------------------*/
section#point .point {
	width: calc(100% - 124px);
	padding: 30px 60px;
	border: 2px #fff solid;
	position: relative;
}
section#point .point::before {
	content: "";
	display: block;
	width: 260px;
	height: 32px;
	background: url("../img/point_ttl.png") left bottom / contain no-repeat;
	position: absolute;
	top: -32px;
	left: 0;
}
section#point .green {
	color: #4DA635;
}
section#point .font_24 {
	font-size: 24px;
	letter-spacing: .1em;
}
section#point .font_40 {
	font-size: 40px;
}
section#point .col3 {
	width: calc(100% / 3 - 30px);
}
section#point .col3 .img {
	position: relative;
}
section#point .col3 .img::before {
	content: "";
	display: block;
	width: 36px;
	height: 36px;
	background-position: left center;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: -25px;
	left: -15px;
}
section#point .col3 .img.p01::before {
	background-image: url("../img/point01.png");
}
section#point .col3 .img.p02::before {
	background-image: url("../img/point02.png");
}
section#point .col3 .img.p03::before {
	background-image: url("../img/point03.png");
}


/*==================================================================================
活動報告
==================================================================================*/
section#activity {
	background: url("../img/activity_smile.png") left 3% top 15% / 15% no-repeat, url("../img/activity_txt.png") right bottom / 50% no-repeat #FFFF00;
}
section#activity h1 {
	color: #1a1a3c;
	font-size: 28px;
	letter-spacing: .05em;
}
section#activity h1 span {
	margin-top: 10px;
}
section#activity .col2 {
	display: block;
	box-sizing: border-box;
	padding: 60px 20px 100px;
	background: #1A1A3C;
	color: #FFFF00;
	position: relative;
}
section#activity .col2::after {
	content: "";
	display: block;
	width: 40px;
	height: 40px;
	background: url("../img/activity_arrow.png") center center / contain no-repeat;
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX(-50%);
	transition: all .3s;
}
section#activity .col2:hover {
	opacity: 0.9;
}
section#activity .col2:hover::after {
	left: 53%;
}
section#activity .col2 .font_28 {
	line-height: 1.4;
	letter-spacing: 0.1em;
}

/*==================================================================================
フッター
==================================================================================*/
footer {
	padding: 60px 0 20px!important;
	background: url("../img/main_bg.jpg") center center / cover no-repeat;
}
footer .foot_logo {
	width: 200px;
	margin-right: 60px;
}
footer .foot_info p {
	color: #1B1441;
	text-shadow: 0 0 6px #fff, 0 0 120px #fff;
}
footer nav.foot_nav ul {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	width: 320px;
	height: 140px;
}
footer nav.foot_nav ul li {
	margin: 0 0 30px 60px;
}
footer nav.foot_nav ul li a {
	display: inline-block;
	color: #fff;
	font-weight: bold;
	letter-spacing: .1em;
	text-shadow: 0 0 6px #1a1a3c, 0 0 6px #1a1a3c, 0 0 6px #1a1a3c, 0 0 12px #1a1a3c;
}
footer .copy {
	font-size: 12px;
}
footer .copy .font_14 {
	font-size: 14px;
}


.tb {display: none;}
.pc {display: inline;}
.sp {display: none;}

@media screen and (max-width : 960px) {
	
	.pc {display: none;}
	.tb {display: inline;}

	p { font-size: 14px; }
	
	/*==================================================================================
	ヘッダー
	==================================================================================*/
	header {
		width: calc(100% - 40px);
		padding: 20px!important;
	}
	header .head_logo {
		width: 100px;
	}
	nav.head_nav {
		display: none;
	}
	
	header.fixed .sp_tel {
		display: block;
		width: 24px;
		position: fixed;
		top: 23px;
		right: 70px;
	}
	header.second .sp_tel {
		display: block;
		width: 24px;
		position: fixed;
		top: 23px;
		right: 70px;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	main.second {
		padding-top: 74px!important;
	}
	section {
		padding: 80px 0!important;
	}
	.container {
		max-width: 540px;
	}
	.col2 {
		width: 100%;
		margin: 0 auto 40px;
	}
	.mb_10 {
		margin-bottom: 5px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.mb_30 {
		margin-bottom: 20px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_120 {
		margin-bottom: 80px;
	}
	/* フォント */
	h1 span {
		padding-bottom: 25px;
		font-size: 20px;
		letter-spacing: .1em;
	}
	h2 {
		padding-bottom: 8px!important;
		font-size: 16px;
	}
	h3 {
		padding-bottom: 12px!important;
		font-size: 16px;
	}
	h3::after {
		width: 16px;
	}
	.font_14 {
		font-size: 12px;
	}
	.font_20 {
		font-size: 16px;
		letter-spacing: 0;
	}
	.font_28 {
		font-size: 20px;
		letter-spacing: .1em;
	}
	/* ボタン */
	.btn {
		max-width: calc(460px - 40px);
		padding: 15px 20px;
		font-size: 16px;
		letter-spacing: .1em;
	}

	/*==================================================================================
	INDEX
	==================================================================================*/
	section#main .bg02 {
		width: 55%;
		height: 128%;
		background-size: 200%;
	}
	section#main .logo {
		width: calc(100% - 120px - 70px);
		max-width: calc(360px - 120px);
		min-width: 0;
		height: auto;
		padding: 30px 60px;
		left: 0;
	}
	section#main .btn_repo {
		padding: 12px 70px 12px 20px;
		font-size: 14px;
		text-align: left;
		line-height: 1.4;
		bottom: 10%;
	}
	section#main .btn_repo::after {
		content: "";
		display: block;
		width: 20px;
		height: 20px;
		background: url("../img/arrow.png") center center / contain no-repeat;
		position: absolute;
		top: 50%;
		right: 20px;
		transform: translateY(-50%);
	}
	section#main .btn_repo span {
		display: none;
	}
	/* ABOUT -----------------------------------------------------------------------*/
	section#about {
		background-position: right 20px bottom 20px;
		background-size: 40%;
	}
	section#about .ttl {
		width: 160px;
		top: -80px;
		left: 5%;
	}
	/* SERVICE-----------------------------------------------------------------------*/
	section#service::before {
		width: 60%;
		top: 30px;
		left: -30%;
	}
	section#service .service .photo {
		width: 100%;
	}
	section#service .service .txt {
		width: calc(100% - 40px);
		max-width: calc(460px - 40px);
		margin: 0 auto 40px;
		padding: 40px 20px;
	}
	section#service .service.s02 .txt {
		margin: 0 auto;
		padding: 40px 20px;
		order: 2;
	}
	section#service .service.s01 .txt::after {
		background-position: right 20px bottom 0;
		background-size: 25%;
	}
	section#service .service.s02 .txt::after {
		width: 100%;
		background-position: right 10% bottom;
		background-size: 15%;
	}
	section#service .service .txt p {
		line-height: 1.8;
	}

	/* FLOW--------------------------------------------------------------------------*/
	section#top_flow::before {
		width: 40%;
		max-width: 180px;
		background: url("../img/flow_ilst01_sp.png") left bottom / contain no-repeat;
		right: auto;
		left: 0;
	}
	section#top_flow .max960 {
		max-width: 460px;
	}
	section#top_flow .btn_flow {
		width: 240px;
		height: 240px;
		margin-bottom: 0;
	}
	section#top_flow .btn_flow.green {
		margin: 0 0 60px auto;
	}
	section#top_flow .btn_flow p span {
		width: 30px;
		margin-top: 10px;
	}

	/* COMPANY--------------------------------------------------------------------------*/
	section#company {
		background-image: none;
	}
	section#company::before {
		min-width: 80px;
		top: 40px;
	}
	section#company::after {
		width: 10%;
		min-width: 80px;
		bottom: auto;
		left: auto;
		top: 600px;
		right: 5%;
	}
	section#company table {
		font-size: 14px;
		letter-spacing: 0;
	}
	section#company table th {
		width: 120px;
		padding: 15px 0;
	}
	section#company table td {
		padding: 15px 0;
		line-height: 1.4;
	}

	/*==================================================================================
	FLOW
	==================================================================================*/
	section#flow {
		background: url(../img/flow_ilst02.png) right -120px top 40% / 260px no-repeat;
	}
	section#flow.yellow::before {
		width: 140px;
		height: 140px;
		top: 64%;
		left: 0;
	}
	section#flow.yellow::after {
		width: 140px;
		height: 140px;
		left: auto;
		right: 1%;
		bottom: 17%;
	}
	section#flow.green::before {
		width: 15%;
		min-width: 80px;
		top: 75%;
		left: 3%;
	}
	section#flow.green::after {
		width: 40px;
		bottom: auto;
		right: auto;
		top: 48%;
		left: 10%;
	}
	section#flow .target {
		width: 240px;
		height: 240px;
		margin: 0 auto 60px;
		left: 0;;
	}
	section#flow .arrow {
		padding-top: 100px;
	}
	section#flow .arrow::before {
		width: 60px;
		height: 60px;
		top: 10px;
		transform: translateX(-50%) rotate(-45deg);
	}
	section#flow .arrow.right::before {
		transform: translateX(-50%) rotate(45deg);
	}
	@keyframes arrow_left {
		0% {
			transform: translateX(-50%) rotate(-45deg) scale(0);
		}
		50% {
			transform: translateX(-50%) rotate(-45deg) scale(0);
		}
		100% {
			transform: translateX(-50%) rotate(-45deg) scale(1);
		}
	}
	@keyframes arrow_right {
		0% {
			transform: translateX(-50%) rotate(45deg) scale(0);
		}
		50% {
			transform: translateX(-50%) rotate(45deg) scale(0);
		}
		100% {
			transform: translateX(-50%) rotate(45deg) scale(1);
		}
	}
	section#flow .col3 {
		width: calc(100% / 2 - 10px);
	}
	section#flow .col3.dummy {
		display: none;
	}
	section#flow .col3.order2 {
		order: 2;
	}
	/* フォローアップ -----------------------------*/
	section#followup .followup {
		width: calc(100% - 4px - 40px);
		max-width: calc(460px - 4px);
		margin: 0 auto 120px;
	}
	section#followup .followup::before {
		width: 240px;
		height: 29px;
		background-position: center bottom;
		position: absolute;
		top: -29px;
		left: 50%;
		transform: translateX(-50%);
	}
	section#followup .txt {
		width: calc(100% - 40px);
		padding: 30px 20px 0;
	}
	section#followup .img {
		width: calc(100% + 60px);
		position: relative;
		top: 36px;
		right: auto;
		left: -20px;
		transform: none;
	}
	/* ポイント -----------------------------*/
	section#point .point {
		width: calc(100% - 64px);
		max-width: calc(460px - 64px);
		margin: 0 auto 80px;
		padding: 30px;
	}
	section#point .point::before {
		width: 240px;
		height: 29px;
		background-position: center bottom;
		left: 50%;
		transform: translateX(-50%);
	}
	section#point .font_24 {
		font-size: 18px;
	}
	section#point .font_40 {
		font-size: 30px;
		line-height: 1;
	}
	section#point .col3 {
		width: 100%;
		margin-bottom: 30px;
	}
	section#point .col3:last-child {
		margin-bottom: 0;
	}
	section#point .col3 .img::before {
		width: 30px;
		height: 30px;
		margin-bottom: 10px;
		background-position: center;
		position: relative;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
	}
	/*==================================================================================
	活動報告
	==================================================================================*/
	section#activity {
		background-position: left 3% top 15%, right bottom;
	}
	section#activity h1 {
		font-size: 20px;
	}
	section#activity .col2 {
		padding: 30px 20px 60px;
	}
	section#activity .col2::after {
		width: 25px;
		height: 25px;
		bottom: 20px;
	}
	section#activity .col2:hover::after {
		left: 51%;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer {
		padding: 40px 0 20px!important;
		background: url("../img/main_bg.jpg") left top / cover no-repeat;
	}
	footer .container {
		max-width: 360px;
		margin: 0 auto 0 0;
	}
	footer .foot_info {
		order: 2;
		max-width: 260px;
		margin: auto;
	}
	footer .foot_logo {
		width: 140px;
		margin: 0 auto 20px;
	}
	footer .foot_info p {
		text-shadow: none;
	}
	footer nav.foot_nav {
		width: 260px;
		margin: 0 auto 40px;
	}
	footer nav.foot_nav ul {
		width: 100%;
		height: 110px;
	}
	footer nav.foot_nav ul li {
		margin: 0 0 20px;
	}
	footer nav.foot_nav ul li a {
	    color: #1B1441;
		font-size: 14px;
		text-shadow: none;
	}
	footer .copy {
	    color: #1B1441;
		font-size: 10px;
	}
	footer .copy .font_14 {
		font-size: 14px;
	}
}


@media screen and (max-width : 460px) {
	.tb {display: none;}
	.sp {display: inline;}

	/*==================================================================================
	INDEX
	==================================================================================*/
	section#main .bg02 {
		height: 114%;
	}
	section#main .logo {
		width: calc(100% - 60px - 70px);
		max-width: calc(360px - 60px);
		padding: 20px 30px;
	}
	/* ABOUT -----------------------------------------------------------------------*/
	section#about {
		background-position: right 20px bottom 80px;
	}
	section#about .ttl {
		width: 120px;
		top: -55px;
		left: 20px;
	}
	section#about .txt {
		width: 100%;
		left: 0;
	}
}




