@charset "UTF-8";

/* mainVisual
--------------------------------*/
#mainVisual{
	width: 100%;
	height: 700px;
	background: url(../img/index/mv_bg.jpg) no-repeat center center /cover;
	position: relative;
}
#mainVisual::before{
	content: '';
	position: absolute;
	top: 48%;
	left: 0;
	width: 47vw;
	min-width: 605px;
	height: 195px;
	background: rgba(255,255,255,.7);
	transform: translateY(-50%);
}
#mainVisual .wrap{
	position: absolute;
	top: 48%;
	left: 0;
	right: 0;
	margin-top: -160px;
}
@media screen and (max-width: 768px) {
	#mainVisual {
		height: auto;
		background: none;
	}
	#mainVisual .wrap{
		position: static;
		margin-top: 0;
		width: 100%;
	}
	#mainVisual::before{
		display: none;
	}
}

/* news
--------------------------------*/
#news{
	padding: 0;
	margin-top: -75px;
	z-index: 1;
	position: relative;
}
#news .wrap{
	max-width: 1070px;
	display: flex;
	justify-content: center;
	background: #fff;
}
#news .head{
	width: 215px;
}
#news .head a{
	width: 100%;
	height: 100%;
	padding: 5px;
	background: #50a035;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: .3s;
}
#news .head .ttl{
	font-size: 2.3rem;
	line-height: 1.2;
	text-align: center;
	color: #fff;
}
#news .head .btn{
	margin-top: 20px;
}
#news .head .btn span{
	margin: 0 auto;
}
#news .cnt{
	padding: 25px 20px;
	width: calc(100% - 215px);
}
#news .cnt ul li{
	line-height: 1.6;
}
#news .cnt ul li+li{
	margin-top: 13px;
}
#news .cnt ul li .data{
	font-size: 1.4rem;
	color: #50a035;
	margin-right: 15px;
}
@media screen and (min-width: 769px) {
	#news .head a:hover{
		background: #63c243;
	}
	#news .head a:hover .btnType1{
		background: #dcecd7;
	}
	#news .cnt ul li a:hover .txt{
		text-decoration: underline;
	}
}
@media screen and (max-width: 768px) {
	#news{
		margin-top: -8.5vw;
	}
	#news .wrap{
		width: 92%;
		display: block;
		background: #50a035;
	}
	#news .head{
		width: 100%;
	}
	#news .head a{
		width: 100%;
		padding: 4% 3%;
		display: block;
	}
	#news .head .center{
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	#news .head .ttl{
		font-size: 4.5vw;
	}
	#news .head .btn{
		margin-top: 0;
	}
	#news .cnt{
		width: 100%;
		padding: 4% 3%;
		background: #fff;
	}
	#news .cnt ul li:nth-child(n+2){
		display: none;
	}
	#news .cnt ul li .data{
		font-size: 3.2vw;
		display: block;
	}
}

/* event
--------------------------------*/
#event{
	background: url(../img/index/event_bg_pc.png) #eff9fa;
	background-repeat: no-repeat;
	background-position: center bottom;
	padding-bottom: 0;
}
#event .event_slider{
	width: calc(100% + 60px);
	margin: 10px 0 0 -42px;
}
#event .slide {
	padding: 40px 20px 0 40px;
}
#event .slide a{
	display: block;
}
#event .slide .figurewrap{
	position: relative;
}
#event .slide .figurewrap .mark{
	color: #fff;
	text-align: center;
	position: absolute;
	z-index: 1000;
	top: -40px;
	left: -40px;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(-15deg);
	width: 70px;
	height: 70px;
	background: url(../img/common/event_mark_bg.png) no-repeat center center/contain;
}
#event .slide .figurewrap .tag{
	position: absolute;
	z-index: 1;
	bottom: -12px;
	left: -20px;
}
#event .slide .figurewrap .tag span{
	font-size: 1.2rem;
	line-height: 1.2;
	color: #fff;
	padding: 4px 9px;
	font-weight: 700;
	background: #3f3f3f;
}
#event .slide .txtwrap{
	padding: 22px 0 0;
}
#event .slide .txtwrap .data{
	line-height: 1.5;
}
#event .slide .txtwrap .data strong{
	font-size: 2rem;
	color: #111475;
}
#event .slide .txtwrap .ttl{
	line-height: 1.5;
	margin-top: 10px;
}
#event .slide .txtwrap .txt{
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 10px;
}
#event .slick-arrow{
	position: absolute;
	top: 50%;
	width: 58px;
	height: 58px;
	background: rgba(49,49,49,.2);
	transform: translateY(-50%);
	text-indent: -101%;
	overflow: hidden;
	font-size: 0;
	transition: .3s;
	cursor: pointer;
}
#event .slick-prev{
	left: -60px;
}
#event .slick-next{
	right: -80px;
}
#event .slick-arrow::before{
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%) rotate(45deg);
	width: 18px;
	height: 18px;
}
#event .slick-list{
	padding-bottom: 40px;
}
#event .slick-prev::before{
	margin-left: 3px;
	border-bottom: 2px solid #3f3f3f;
	border-left: 2px solid #3f3f3f;
}
#event .slick-next::before{
	margin-left: -3px;
	border-top: 2px solid #3f3f3f;
	border-right: 2px solid #3f3f3f;
}
#event .slick-dots{
	display: flex;
	justify-content: center;
	margin-top: 0;
}
#event .slick-dots li{
	width: 80px;
	height: 5px;
	text-indent: 101%;
	overflow: hidden;
	line-height: 0;
	background: #a9c3c6;
	margin: 0 5px;
	transition: .3s;
	cursor: pointer;
}
#event .slick-dots li.slick-active{
	background: #3f3f3f;
}
#event .slick-counter{
	display: none;
}
@media screen and (min-width: 769px) {
	#event .slick-arrow:hover{
		opacity: .7;
	}
	#event .slick-dots li:hover{
		opacity: .7;
	}
}
@media screen and (max-width: 768px) {
	#event{
		margin-top: 1%;
		background: url(../img/index/event_bg_sp.png) #eff9fa no-repeat center 4%;
		background-size: 100% auto;
		padding-bottom: 2.8%;
	}
	#event .event_slider{
		width: 100%;
		margin: 0;
	}
	#event .slide {
		padding: 7vw 5vw 0 7vw;
	}
	#event .slide .figurewrap .mark{
		top: -7vw;
		left: -7vw;
		width: 17vw;
		height: 17vw;
	}
	#event .slide .figurewrap .tag{
		bottom: -2.5vw;
		left: -5vw;
	}
	#event .slide .figurewrap .tag span{
		font-size: 3vw;
		padding: 1vw;
	}
	#event .slide .txtwrap{
		padding: 5vw 0 0;
	}
	#event .slide .txtwrap .data strong{
		font-size: 5vw;
		margin-right: -.3em;
	}
	#event .slide .txtwrap .ttl{
		margin-top: 3%;
	}
	#event .slide .txtwrap .txt{
		display: none;
	}
	#event .slick-counter{
		font-size: 3.2vw;
		line-height: 1.2;
		text-align: center;
		display: block;
		margin-top: 11%;
		padding: 2.8% 0;
	}
	#event .slick-counter .slideCurrent{
		font-size: 5.4vw;
		color: #111475;
	}
	#event .slick-arrow{
		top: auto;
		bottom: -6vw;
		width: 12vw;
		height: 12vw;
	}
	#event .slick-prev{
		left: 5%;
	}
	#event .slick-next{
		right: 5%;
	}
	#event .slick-arrow::before{
		width: 4vw;
		height: 4vw;
	}
	#event .slick-prev::before{
		margin-left: 1vw;
	}
	#event .slick-next::before{
		margin-left: -1vw;
	}
	#event .slick-list{
		padding-bottom: 0;
	}
}

/* concept
--------------------------------*/
#concept{
	padding-top: 70px;
	padding-bottom: 110px;
}
#concept .wrap{
	display: flex;
	justify-content: space-between;
}
#concept .ttl{
	text-align: center;
	margin-bottom: 25px;
}
#concept .txtwrap{
	width: calc(100% - 500px);
}
#concept .btn{
	margin-top: 50px;
}
#concept .btn a{
	margin: 0 auto;
}
@media screen and (max-width: 768px) {
	#concept{
		padding-top: 6.5%;
		padding-bottom: 23%;
	}
	#concept .wrap{
		display: block;
	}
	#concept .ttl{
		width: 90.5%;
		margin: -12vw auto 0;
	}
	#concept .txtwrap{
		width: 100%;
	}
	#concept .txt{
		margin-top: 6%;
	}
	#concept .btn{
		margin-top: 9%;
	}
}

/* exhibit
--------------------------------*/
#exhibit{
	padding: 70px 0 100px;
	background: #e6f3e2;
}
#exhibit .wrap2{
	position: relative;
}
#exhibit .ttl{
	text-align: center;
	position: absolute;
	top: -125px;
	left: 0;
	right: 0;
	margin: 0 auto;
}
#exhibit .txt{
	font-weight: 400;
	text-align: center;
}
#exhibit .mapwrap{
	margin-top: 40px;
	position: relative;
}
#exhibit .map{
	padding: 65px 0 72px;
	margin-left: 115px;
}
#exhibit .box{
	position: absolute;
}

@media screen and (min-width: 769px) {
	#exhibit .btn a{
		text-align: left;
	}
	#exhibit .box1{
		top: 0;
		left: 50px;
	}
	#exhibit .box2{
		top: 9px;
		right: 100px;
	}
	#exhibit .box3{
		bottom: 5px;
		left: -5px;
	}
	#exhibit .box4{
		bottom: 0;
		right: 5px;
	}
	#exhibit .box1 .btn{
		margin: -22px -87px 0 135px;
	}
	#exhibit .box1 .btn a{
		width: 248px;
	}
	#exhibit .box2 .btn{
		margin: -22px 0 0 60px;
	}
	#exhibit .box2 .btn a{
		width: 271px;
	}
	#exhibit .box3 .btn{
		margin: -30px -92px 0 177px;
	}
	#exhibit .box3 .btn a{
		width: 212px;
	}
	#exhibit .box4 .btn{
		margin: -11px 0 0 -50px;
	}
	#exhibit .box4 .btn a{
		width: 305px;
	}
}
@media screen and (max-width: 768px) {
	#exhibit{
		padding: 16% 0 18.5%;
	}
	#exhibit .wrap2{
		width: 100%;
	}
	#exhibit .ttl{
		top: -29vw;
		width: 79%;
	}
	#exhibit .mapwrap{
		margin-top: 5.5%;
		position: relative;
	}
	#exhibit .map{
		padding: 4.5% 0 17.5%;
		margin-left: 0;
	}
	#exhibit .box figure{
		width: 40vw;
	}
	#exhibit .box .btn{
		margin: -3vw 0 0 2vw;
	}
	#exhibit .box .btn a{
		font-size: 3.2vw;
		line-height: 1.4;
		text-align: left;
		width: auto;
		display: inline-block;
		padding: 1vw 8vw 1.1vw 2vw;
	}
	#exhibit .box .btn a::before{
		right: 3vw;
		height: 2vw;
		width: 5.5vw;
	}
	#exhibit .box1{
		top: 0;
		left: 5%;
	}
	#exhibit .box2{
		top: 8%;
		right: 4%;
	}
	#exhibit .box2 .btn{
		margin: -3vw 0 0 -2vw;
	}
	#exhibit .box2 .btn a{
		padding-right: 14vw;
	}
	#exhibit .box3{
		bottom: 0;
		left: 4%;
	}
	#exhibit .box3 .btn{
		margin-left: 5vw;
	}
	#exhibit .box3 .btn a{
		padding-right: 9vw;
	}
	#exhibit .box4{
		bottom: 2%;
		right: 4%;
	}
	#exhibit .box4 .btn{
		margin: -3vw 0 0 -2vw;
	}
	#exhibit .box4 .btn a{
		padding-right: 12vw;
	}
}

/* works
--------------------------------*/
#works{
	padding-bottom: 100px;
	background: #f5f5f5;
}
#works .wrap2{
	position: relative;
}
#works .ttl{
	position: absolute;
	top: -85px;
	left: -100px;
}
#works .txt{
	font-weight: 400;
	text-align: right;
}
#works .list{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 70px;
}
#works .list::after{
	content: '';
	display: block;
	width: 470px;
}
#works .list li{
	width: 470px;
	padding-left: 20px;
}
#works .list li:nth-child(n+3){
	margin-top: 35px;
}
#works .list li a{
	display: block;
}
#works .list .figurewrap{
	position: relative;
}
#works .list .figurewrap .tag{
	position: absolute;
	bottom: -13px;
	left: -20px;
}
#works .list .figurewrap .tag span{
	font-size: 1.2rem;
	line-height: 1.2;
	font-weight: 700;
	color: #fff;
	padding: 4px 9px;
}
#works .list .figurewrap .tag .type{
	background: #50a035;
}
#works .list .figurewrap .tag .price{
	background: #313131;
}
#works .list .txtwrap{
	padding: 25px 20px;
	background: #fff;
}
#works .list .txtwrap .info{
	font-size: 1.5rem;
}
#works .list .txtwrap .txt2{
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
}
#works .btn{
	margin-top: 70px;
}
#works .btn a{
	margin: 0 auto;
}
@media screen and (max-width: 768px) {
	#works{
		padding: 18% 0 16%;
	}
	#works .ttl{
		position: absolute;
		top: -25vw;
		left: 0;
		width: 83%;
	}
	#works .txt{
		text-align: center;
	}
	#works .list{
		display: block;
		margin-top: 6%;
	}
	#works .list::after{
		display: none;
	}
	#works .list li{
		width: 100%;
		padding-left: 4vw;
	}
	#works .list li:nth-child(n+2){
		margin-top: 10%;
	}
	#works .list li a{
		display: block;
	}
	#works .list .figurewrap .tag{
		bottom: -2.5vw;
		left: -4vw;
	}
	#works .list .figurewrap .tag span{
		font-size: 3vw;
		padding: 1vw 2vw;
	}
	#works .list .txtwrap{
		padding: 6%;
	}
	#works .list .txtwrap .info{
		font-size: 3vw;
	}
	#works .list .txtwrap .txt2{
		font-size: 3.7vw;
	}
	#works .btn{
		margin-top: 10%;
	}
}

/* cm
--------------------------------*/
#cm .wrap2{
	position: relative;
}
#cm .subttl{
	position: absolute;
	top: -90px;
	right: -100px;
}
#cm .cnt{
	display: flex;
	align-items: flex-start;
	justify-content: center;
	margin-top: 40px;
}
#cm .left{
	width: 50%;
	padding: 50px 60px 30px 0;
	background: #50a035;
	position: relative;
}
#cm .left::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 50vw;
	min-width: 600px;
	height: 100%;
	background: #50a035;
	z-index: -1;
}
#cm .left .txt{
	font-weight: 700;
	color: #fff;
	margin-top: 5px;
}
#cm .movie{
	width: 440px;
}
#cm .movie .iframewrap{
	width: 100%;
	height: 0;
	padding-top: 56.25%;
	padding-top: 65%;
	position: relative;
}
#cm .movie .iframewrap iframe{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
#cm .right{
	width: 50%;
	padding-left: 50px;
}
#cm .list{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#cm .list::after{
	content: '';
	display: block;
	width: 44.5%;
}
#cm .list li{
	width: 44.5%;
}
#cm .list figure{
	padding: 10px;
	border: 1px solid #50a035;
}
#cm .list .txt{
	line-height: 1.5;
	margin-top: 5px;
}
#cm .list .btn{
	margin-top: 18px;
}
#cm .list .btn a{
	width: 100%;
}
@media screen and (max-width: 768px) {
	#cm .subttl{
		top: -12.5vw;
		right: 0;
		width: 53%;
	}
	#cm .cnt{
		display: block;
		margin-top: 3%;
	}
	#cm .left{
		width: 100%;
		padding: 4% 5%;
		background: #50a035;
	}
	#cm .left::before{
		display: none;
	}
	#cm .left .txt{
		margin-top: 1.5%;
	}
	#cm .movie{
		width: 100%;
	}
	#cm .right{
		width: 100%;
		padding-left: 0;
		padding: 6% 0 0;
	}
	#cm .list::after{
		display: none;
	}
	#cm .list li{
		width: 46.5%;
	}
	#cm .list figure{
		padding: 2vw;
	}
	#cm .list .txt{
		margin-top: 2%;
	}
	#cm .list .btn{
		margin-top: 5%;
	}
}

/* lineup
--------------------------------*/
#lineup{
	background: #d3e7ae;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#lineup::after{
	content: '';
	display: block;
	width: calc(50% - 10px);
}
#lineup > div{
	width: calc(50% - 10px);
	height: 400px;
}
#lineup > div:nth-child(n+3){
	margin-top: 20px;
}
#lineup .head{
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
}
#lineup .head .ttl{
	text-align: right;
}
#lineup .box{
	position: relative;
}
#lineup .box a{
	display: block;
	height: 100%;
}
#lineup .box .bg{
	padding: 8px;
	height: 100%;
	background: #fff;
}
#lineup .box .bg figure{
	overflow: hidden;
	height: 100%;
	position: relative;
}
#lineup .box .bg img{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	min-width: 100%;
	min-height: 100%;
	transition: .3s;
}
#lineup .box .txtwrap{
	position: absolute;
	bottom: 15px;
	left: 15px;
	width: 230px;
	padding: 15px;
	background: rgba(255,255,255,.83);
}
#lineup .box:nth-child(odd) .txtwrap{
	left: auto;
	right: 15px;
}
#lineup .box .txtwrap .type{
	font-size: 2.2rem;
	line-height: 1.2;
	font-weight: 700;
}
#lineup .box .txtwrap .txt{
	font-size: 1.4rem;
	line-height: 1.7;
	margin-top: 10px;
	min-height: 70px;
}
#lineup .box .txtwrap .btn{
	margin-top: 20px;
}
@media screen and (min-width: 769px) {
	#lineup .box a:hover .btn span{
		background: #63c243;
	}
	#lineup .box a:hover img{
		opacity: .7;
	}
}
@media screen and (max-width: 768px) {
	#lineup{
		display: block;
	}
	#lineup::after{
		display: none;
	}
	#lineup > div{
		width: 96%;
		height: auto;
	}
	#lineup > div:nth-child(n+2){
		margin-top: 7%;
	}
	#lineup .head{
		height: auto;
		width: 100%;
	}
	#lineup .box{
		padding: 0;
		margin-top: 7%;
	}
	#lineup .box:nth-child(even){
		margin-left: auto;
	}
	#lineup .box .bg{
		padding: 1.5vw;
	}
	#lineup .box:nth-child(odd) .bg{
		padding-left: 0;
	}
	#lineup .box:nth-child(even) .bg{
		padding-right: 0;
	}
	#lineup .box .bg figure{
		height: 83vw;
	}
	#lineup .box .txtwrap{
		position: relative;
		bottom: auto;
		left: auto;
		width: 83vw;
		padding: 4vw 3vw;
		margin-top: -12vw;
		margin-left: 5vw;
		z-index: 1;
	}
	#lineup .box:nth-child(odd) .txtwrap{
		left: auto;
		right: auto;
		margin-left: 9vw;
	}
	#lineup .box .txtwrap .type{
		font-size: 4.2vw;
	}
	#lineup .box .txtwrap .txt{
		font-size: 3.2vw;
		margin-top: 2%;
		min-height: 1px;
	}
	#lineup .box .txtwrap .btn{
		margin-top: 2%;
	}
}