
/* -------------------*/
/* -------------------*/
/* Visual & Header -------------------*/

.cover{
	position: relative;
	width: 100%;
	height: auto;
}
.main_visual{
	width: 100%;
	height: 80vh;
	background: url(../img/top/main_visual_pc.jpg) center top no-repeat;
	background-size: cover;
}

/* Scroll down */

.scroll_down a{
	position: absolute;
	bottom: 20px;
	left: 47%;
	z-index: 2;
	display: inline-block;
	padding-top: 64px;
	color: #fff;
	font-size: 12px;
	letter-spacing: 2px;
	font-weight: bold;
	font-style: italic;
	text-decoration: none;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
}
.scroll_down a span{
	position: absolute;
	top: 0;
	left: 47%;
	width: 28px;
	height: 50px;
	margin-left: -14px;
	border: 2px solid #fff;
	border-radius: 50px;
	box-sizing: border-box;
}
.scroll_down a span::before{
	position: absolute;
	top: 10px;
	left: 47%;
	content: '';
	width: 4px;
	height: 4px;
	margin-left: -2px;
	background-color: #fff;
	border-radius: 100%;
	-webkit-animation: sdb 2s infinite;
	animation: sdb 2s infinite;
	box-sizing: border-box;
	box-shadow: 1px 1px 4px -2px rgba(0,0,0,0.2);
}
.scroll_down a span,
.scroll_down a span::before{
	box-shadow: 2px 2px 4px -2px rgba(0,0,0,0.2);
}
@-webkit-keyframes sdb {
	0% { -webkit-transform: translate(0, 0); opacity: 0; }
	40% { opacity: 1; }
	80% { -webkit-transform: translate(0, 20px); opacity: 0; }
	100% { opacity: 0; }
}
@keyframes sdb {
	0% { transform: translate(0, 0); opacity: 0; }
	40% { opacity: 1; }
	80% { transform: translate(0, 20px); opacity: 0; }
	100% { opacity: 0; }
}

@media screen and (max-width: 960px){
	.main_visual{
		height: 500px;
		background: url(../img/top/main_visual_pc.jpg) center center no-repeat;
		background-size: cover;
		margin-top: 150px;
	}
	.scroll_down a{
		position: absolute;
		bottom: 0;
	}
	.scroll_down a,
	.scroll_down a span,
	.scroll_down a span::before{
		left: 45%;
	}
}
@media screen and (max-width: 650px){
	.main_visual{
		height: 50vh;
		margin-top: 100px;
		background: url(../img/top/main_visual_sp.jpg) center top no-repeat;
		background-size: cover;
	}
	.scroll_down{
		display: none;
	}
}

/* -------------------*/
/* -------------------*/
/* News -------------------*/

.news{
	position: relative;
	width: 100%;
	height: auto;
	padding: 100px 0 120px;
	background: url(../img/top/news_bg.gif) left top repeat;
}
.news .inner{
	position: relative;
	width: 960px;
	margin: 0 auto;
}
.news .header_title{
	padding-bottom: 30px;
}
.header_title .eng{
	font-size: 45px;
	font-style: italic;
	letter-spacing: 6px;
}
.header_title h2{
	padding-top: 20px;
	font-size: 16px;
	letter-spacing: 4px;
}
#index_news .news_area{
	width: 100%;
	height: auto;
	overflow: hidden;
}
.news_area ul{
	position: relative;
}
.news_area li{
	float: left;
	width: 240px;
	height: auto;
	overflow: hidden;
	text-align: left;
	padding-top: 20px;
	border-right: 1px solid #fff;
}
.news_area li:hover{ opacity: 0.8; filter:alpha(opacity=80); -moz-opacity: 0.8; }
.news_area li { text-decoration: none; outline: none; }
.news_area li::before, .news_area li::after { position: absolute; z-index: -1; display: block; content: ''; }
.news_area li, .news_area li::before, .news_area li::after { -webkit-transition: all .2s; transition: all .2s; }

.news_area li .thumb{
	width: 240px;
	position: relative;
	overflow: hidden;
}
.news_area li .cover img{
	width: 100%;
	object-fit: cover;
}
.news_area li .cover img:hover{
	opacity: 10;
}
.news_area li .thumb,
.news_area li .cover img{
	height: 160px;
}
.news_area li .caption{
	width: 240px;
	height: 140px;
	padding: 20px 20px 0;
	font-size: 13px;
}
.news_area li:nth-child(odd) .caption{ background-color: #fef7f9; }
.news_area li:nth-child(even) .caption{ background-color: #fdeff4; }

.news_area li .caption .cat{
	font-weight: bold;
	color: #777;
}
.news_area li .caption .dete{
	padding-left: 10px;
	color: #ea608e;
	font-style: italic;
	font-weight: normal;
}
.news_area li .caption .title{
	padding: 10px 0 0;
	line-height: 2;
	color: #888;
	text-align: justify;
	text-justify: inter-ideograph;
}

/* Btn -------------------*/

.news .btn_more{
	margin-top: 50px;
}
.news .btn_more a{
	width: 300px;
	height: 64px;
	line-height: 64px;
	border-radius: 32px;
	border: 2px solid #ea608e;
	color: #ea608e;
	font-size: 16px;
	font-weight: bold;
	background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
	background-size: 10px 14px;
	background-color: #fff;
}
.news .btn_more a:hover {
	background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
	background-size: 10px 14px;
	background-color: #ea608e;
	color: #fff;
}
@media screen and (max-width: 960px){
	.news{
		width: 96%;
		margin: 0 auto;
		padding: 50px 0 100px;
	}
	.news .inner{
		width: 100%;
	}
	.news .header_title{
		padding-bottom: 5%;
	}
	.header_title .eng{
		font-size: 35px;
	}
	.news_area li{
		width: 100%;
		padding-top: 0;
		border-right: none;
		border-bottom: 1px solid #fff;
	}
	.news_area li .thumb{
		float: left;
		width: 30%;
	}
	.news_area li .cover img{
		width: 100%;
	}
	.news_area li .caption{
		float: right;
		width: 70%;
		padding: 3% 3% 0;
	}
	.news_area li .thumb,
	.news_area li .cover img,
	.news_area li .caption{
		height: 140px;
	}
	.news .btn_more{
		margin-top: 5%;
	}
}
@media screen and (max-width: 650px){
	.news{
		width: 90%;
		padding: 15% 0 40%;
	}
	.news .header_title{
		padding-bottom: 5%;
	}
	.header_title .eng{
		font-size: 24px;
		letter-spacing: 3px;
	}
	.header_title h2{
		padding: 3% 0;
		font-size: 12px;
	}
	.news_area li .thumb{
		width: 40%;
	}
	.news_area li .cover img{
		width: 100%;
	}
	.news_area li .caption{
		width: 60%;
		padding: 5% 4%;
	}
	.news_area li .thumb,
	.news_area li .cover img,
	.news_area li .caption{
		height: 94px;
	}
	.news_area li .caption .title{
		padding: 6px 0 0;
		line-height: 1.5;
		color: #6e6e6e;
	}
	.news_area li .caption .title,.news_area li .caption .cat,.news_area li .caption .dete{
		font-size: 11px;
	}
	.news .btn_more{
		width: 100%;
		margin-top: 8%;
	}
	.news .btn_more a{
		width: 100%;
		height: 50px;
		line-height: 50px;
		border-radius: 25px;
		font-size: 12px;
		background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #fff;
	}
	.news .btn_more a:hover {
		background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #ea608e;
		color: #fff;
	}
}

/* -------------------*/
/* -------------------*/
/* Concept -------------------*/

.concept{
	position: relative;
	overflow: hidden;
	width: 100%;
	margin-top: -80px;
	z-index: 2;
}
.concept:before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 120%;
	height: 80%;
	margin: 2% -10% 0;
	background-color: #f2a0bb;
	-webkit-transform-origin: right center;
	-ms-transform-origin: right center;
	transform-origin: right center;
	-webkit-transform: rotate(-2deg);
	-ms-transform: rotate(-2deg);
	transform: rotate(-2deg);
	z-index: -1; /* 必須 */
}
.concept .inner{
	width: 960px;
	margin: 0 auto;
	padding: 140px 0 200px;
}
.concept .inner h2{
	margin-bottom: 50px;
}

/* Btn -------------------*/

.concept .btn_more{
	width: 360px;
	height: 126px;
	margin-top: 60px;
	margin-left: 60px; /* センター揃え */
	background: url(../img/top/concept_shadow.png) center top no-repeat;
}
.concept .btn_more a{
	width: 300px;
	height: 64px;
	line-height: 64px;
	border-radius: 32px;
	margin-right: 60px; /* センター揃え */
	color: #ea608e;
	font-size: 16px;
	font-weight: bold;
	background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
	background-size: 10px 14px;
}
.concept .btn_more a:hover {
	background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
	background-size: 10px 14px;
	background-color: #ea608e;
	color: #fff;
}

@media screen and (max-width: 960px){
	.concept{
		margin-top: -80px;
	}
	.concept .inner{
		width: 90%;
		margin: 0 auto;
		padding: 12% 0 20%;
	}
	.concept .inner h2{
		width: 75%;
		margin: 0 auto 6%;
	}
	.concept .btn_more{
		margin-top: 6%;
	}
}

@media screen and (max-width: 650px){
	.concept .inner{
		padding: 20% 0 54%;
	}
	.concept .inner h2{
		width: 100%;
		margin: 0 auto 6%;
	}
	.concept .inner p{
		width: 100%;
		color: #fff;
		font-size: 12px;
		line-height: 1.8;
		text-align: justify;
		text-justify: inter-ideograph;
	}
	.concept .btn_more{
		width: 100%;
		height: auto;
		margin: 5% auto 0;
		background: none;
	}
	.concept .btn_more a{
		width: 100%;
		height: 50px;
		line-height: 50px;
		border-radius: 25px;
		margin: 0;
		font-size: 12px;
		background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #fff;
	}
	.concept .btn_more a:hover {
		background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #ea608e;
		color: #fff;
	}
}

/* -------------------*/
/* -------------------*/
/* Service -------------------*/

.service{
	position: relative;
	width: 100%;
	height: auto;
	margin-top: -40px;
}
.service .contents{
	width: 100%;
	margin: 0 auto;
	padding-top: 50px;
}
.service .service_box{
	width: 100%;
	height: 420px;
}
.service #service_01,
.service #service_02{
	margin-bottom: 70px;
}
.service #service_01{
	background: url(../img/top/service_01.jpg) center center no-repeat;
	background-size: cover;
}
.service #service_02{
	background: url(../img/top/service_02.jpg) center center no-repeat;
	background-size: cover;
}
.service #service_03{
	background: url(../img/top/service_03.jpg) center center no-repeat;
	background-size: cover;
}
.service_box .inner{
	width: 960px;
	margin: 0 auto;
}
.service_box .inner .text_box{
	position: relative;
	float: right;
	width: 450px;
	height: auto;
	padding-top: 60px;
}
.service_box .inner .text_box p{
	padding-top: 20px;
	color: #fff;
	font-size: 16px;
	line-height: 2;
	letter-spacing: 2px;
	text-align: justify;
	text-justify: inter-ideograph;
}
.service_box .inner .text_box .btn_more{
	position: relative;
	float: right;
	clear: both;
	margin-top: 30px;
}
.service_box .inner .text_box .btn_more a{
	width: 230px;
	height: 128px;
	padding-top: 50px;
	padding-right: 14px;
	letter-spacing: 2px;
	font-weight: bold;
	color: #fff;
	background: url(../img/common/icon_arrow_white.svg) 70% 43% no-repeat,
				url(../img/top/service_morelink.png) right bottom no-repeat;
	background-size: 8px 10px,230px 128px;
}
.service_box .inner .text_box .btn_more a:hover{
	color: #ea608e;
	background: url(../img/common/icon_arrow_pink.svg) 70% 43% no-repeat,
				url(../img/top/service_morelink_ov.png) right bottom no-repeat;
	background-size: 8px 10px,230px 128px;
}

@media screen and (max-width: 960px){
	.service{
		padding-bottom: 50px;
	}
	.service .contents{
		padding-top: 5%;
	}
	.service .service_box{
		width: 100%;
	}
	.service #service_01,
	.service #service_02{
		margin-bottom: 5%;
	}
	.service #service_01{
		background: url(../img/top/service_01.jpg) center center no-repeat;
		background-size: cover;
	}
	.service #service_02{
		background: url(../img/top/service_02.jpg) center center no-repeat;
		background-size: cover;
	}
	.service #service_03{
		background: url(../img/top/service_03.jpg) center center no-repeat;
		background-size: cover;
	}
	.service_box .inner{
		width: 90%;
	}
	.service_box .inner .text_box{
		width: 50%;
		padding-top: 50px;
	}
	.service_box .inner .text_box .btn_more{
		margin-top: 5%;
	}
}
@media screen and (max-width: 650px){
	.service{
		padding: 5% 0 10%;
	}
	.service .contents{
		padding-top: 5%;
	}
	.service .service_box{
		height: auto;
		padding: 10% 0 28%;
	}
	.service #service_01{
		background: url(../img/top/service_01.jpg) 40% center no-repeat;
		background-size: cover;
	}
	.service #service_02{
		background: url(../img/top/service_02.jpg) 35% center no-repeat;
		background-size: cover;
	}
	.service #service_03{
		background: url(../img/top/service_03.jpg) 35% center no-repeat;
		background-size: cover;
	}
	.service_box .inner .text_box{
		float: none;
		width: 90%;
		margin: 0 auto;
		padding: 0;
	}
	.service_box .inner .text_box h3 img{
		width: 100%;
	}
	.service_box .inner .text_box p{
		font-size: 12px;
		line-height: 1.8;
	}
	.service_box .inner .text_box .btn_more,
	.service_box .inner .text_box .btn_more a{
		width: 100%;
		height: 40px;
		line-height: 40px;
		border-radius: 25px;
		margin: 0;
		padding: 0;
		color: #ea608e;
		font-size: 12px;
	}
	.service_box .inner .text_box .btn_more{
		margin-top: 20px;
	}
	.service_box .inner .text_box .btn_more a{
		background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #fff;
	}
	.service_box .inner .text_box .btn_more a:hover {
		background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #ea608e;
		color: #fff;
	}
}

/* -------------------*/
/* -------------------*/
/* Facility -------------------*/

.facility{
	position: relative;
	width: 960px;
	height: auto;
	margin: 0 auto;
	padding-top: 120px;
}
.facility .inner{
	width: 100%;
	padding-top: 50px;
}
.facility .item_list{
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: space-between;
	padding: 0;
}
.item_list a{
	display: block;
	width: 31.33%;
	height: auto;
	background-color: #fff;
	border: 1px solid #ea608e;
}
.item_list a .item{
	padding: 10px;
}
.item_list a .item img{
	width: 100%;
	height: auto;
}
.item_list a .item .title{
	width: calc(100% - 20px);
	padding: 30px 0 10px;
	margin: 0 auto;
	font-size: 20px;
	letter-spacing: 3px;
	text-align: left;
	font-weight: bold;
	border-bottom: 4px solid #ea608e;
	color: #666;
}
.item_list a .item .title span{
	padding-right: 8px;
	color: #ea608e;
}
.item_list a .item .icon{
	width: calc(100% - 20px);
	margin: 0 auto;
	display: flex;
	text-align: left;
	padding: 20px 0 10px;
}
.item_list a .item .icon li{
	width: 56px;
	margin-right: 10px;
	text-align: center;
}
.item_list a .item .icon li p{
	padding-top: 6px;
	font-size: 11px;
	color: #777;
}
.item_list a:hover{
	border: 1px solid #f2a0bb;
	background-color: #f2a0bb;
}
.item_list a:hover img{
	opacity: 1;
}
.item_list a:hover .item .title{
	border-bottom: 4px solid #fff;
	transition: 0;
}
.item_list a:hover,
.item_list a:hover .item .title,
.item_list a:hover .item .title span,
.item_list a:hover .item .icon li p{
	color: #fff;
}
@media screen and (max-width: 960px){
	.facility{
		width: 90%;
		padding: 50px 0;
	}
	.facility .inner{
		padding-top: 5%;
	}
	.item_list a .item .title{
		padding: 20px 0 10px;
		font-size: 18px;
	}
}
@media screen and (max-width: 650px){
	.facility{
		width: 90%;
		padding: 8% 0 12%;
	}
	.facility .item_list{
	  flex-direction: column;
	}
	.item_list a{
		position: relative;
		margin-bottom: 3%;
		width: 100%;
	}
	.item_list a .item{
		padding: 3%;
	}
	.item_list a .item .title{
		font-size: 15px;
	}
	.item_list a .item .icon{
		padding: 3% 0;
	}
	.item_list a:hover .item .title{
	}
}

/* -------------------*/
/* -------------------*/
/* How to use -------------------*/

.howto{
	position: relative;
	overflow: hidden;
	width: 100%;
	margin-top: 80px;
	background: url(../img/top/howto_1.jpg) 10% 45% no-repeat,
				url(../img/top/howto_2.jpg) 90% 40% no-repeat;
}
.howto:before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 120%;
	height: 80%;
	margin: 2% -10% 0;
	background-color: #fad7e3;
	-webkit-transform-origin: right center;
	-ms-transform-origin: right center;
	transform-origin: right center;
	-webkit-transform: rotate(-2deg);
	-ms-transform: rotate(-2deg);
	transform: rotate(-2deg);
	z-index: -1; /* 必須 */
}
.howto .inner{
	width: 960px;
	margin: 0 auto;
	padding: 200px 0 200px;
}
.howto .inner h2{
	margin-bottom: 50px;
}
.howto .inner .read{
	font-size: 15px;
	line-height: 2;
	letter-spacing: 2px;
}
.howto .btn_more{
	width: 360px;
	height: 126px;
	margin-top: 50px;
	margin-left: 60px; /* センター揃え */
	background: url(../img/top/howto_shadow.png) center top no-repeat;
}
.howto .btn_more a{
	width: 300px;
	height: 64px;
	line-height: 64px;
	border-radius: 32px;
	margin-right: 60px; /* センター揃え */
	color: #ea608e;
	font-size: 16px;
	font-weight: bold;
	background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
	background-size: 10px 14px;
}
.howto .btn_more a:hover {
	background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
	background-size: 10px 14px;
	background-color: #ea608e;
	color: #fff;
}

@media screen and (max-width: 960px){
	.howto{
		margin-top: 0;
		background: url(../img/top/howto_1.jpg) 0% 40% no-repeat,
					url(../img/top/howto_2.jpg) 100% 35% no-repeat;
		background-size: auto 60%;
	}
	.howto .inner{
		width: 90%;
		padding: 15% 0;
	}
	.howto .inner h2{
		margin-bottom: 6%;
	}
	.howto .btn_more{
		margin-top: 6%;
	}
}
@media screen and (max-width: 650px){
	.howto{
		background: none;
	}
	.howto .inner{
		width: 90%;
		padding: 20% 0 35%;
	}
	.howto .inner h2{
		margin-bottom: 5%;
	}
	.howto .inner .read{
		font-size: 12px;
		line-height: 1.8;
	}
	.howto .btn_more{
		width: 100%;
		height: 50px;
		line-height: 50px;
		margin: 5% auto 0;
		background: none;
	}
	.howto .btn_more a{
		width: 100%;
		height: 50px;
		line-height: 50px;
		border-radius: 25px;
		margin: 0;
		font-size: 12px;
		background: url(../img/common/icon_arrow_pink.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #fff;
	}
	.howto .btn_more a:hover {
		background: url(../img/common/icon_arrow_white.svg) 90% center no-repeat;
		background-size: 8px 12px;
		background-color: #ea608e;
	}
}

/* -------------------*/
/* -------------------*/
/* Seminar -------------------*/

.seminar{
	position: relative;
	width: 960px;
	height: auto;
	margin: 0 auto;
	padding: 0;
}
.seminar .bg{
	margin: 0 auto 100px;
	padding: 20px;
	color: #89c122;
	border: 1px solid #c4e090;
	box-shadow: 0 0 0 6px #89c122;
	background-color: #89c122;
}
.seminar .title{
	padding-bottom: 10px;
}
.seminar .link a{
	display: block;
	width: 380px;
	height: 56px;
	line-height: 56px;
	border-radius: 28px;
	margin: 0 auto;
	color: #fff;
	letter-spacing: 2;
	font-weight: bold;
	background-color: #333;
}
.seminar .link a:hover{
	opacity: 0.7;
	filter:alpha(opacity=70);
	-moz-opacity: 0.7;
}
.seminar .link a img{
	position: relative;
	vertical-align: middle;
	top: -0.1em;
	width: 8px;
	height: 10px;
	margin-left: 6px;
}

@media screen and (max-width: 960px){
	.seminar{
		width: 90%;
	}
	.seminar .bg{
		margin: 0 auto 10%;
	}
}
@media screen and (max-width: 650px){
	.seminar .bg{
		margin: -5% auto 12%;
		padding: 16px 20px;
	}
	.seminar .title{
		width: 85%;
		margin: 0 auto;
		padding-bottom: 3%;
	}
	.seminar .link a{
		width: 90%;
		height: 44px;
		line-height: 44px;
		border-radius: 22px;
		font-size: 12px;
	}
}