@charset "UTF-8";

.top main {
	background: #E4EBDF;
}

/* mv
----------------------------------------*/
.top .mv {
	margin: 0 1rem;
	z-index: 2;
}
.top .mv figure {
	overflow: hidden;
	border-radius: 0 0 0 21rem;
	opacity: 0;
	transition: opacity 1s;
	transition-timing-function: linear;
}
.top .mv_ttl {
	font-size: 11rem;
	color: #fff;
	position: absolute;
	bottom: -2.2rem;
	right: -.6rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .04em;
	opacity: 0;
	transition: opacity 1s;
	transition-delay: .5s;
}
.top .mv.show figure,
.top .mv.show .mv_ttl {
	opacity: 1;
}
@media only screen and (max-width: 768px) {
	.top .mv {
		margin: 0;
	}
	.top .mv figure {
		border-radius: 0 0 0 10rem;
	}
	.top .mv_ttl {
		font-size: 5.7rem;
		text-align: right;
		line-height: .8421;
		bottom: -.7rem;
		right: -.4rem;
		letter-spacing: .03em;
	}
}

/* concept
----------------------------------------*/
.top .concept {
	background: #f4f4f4;
	margin: -22.2rem 0 0;
	padding: 28.6rem 0 0;
	border-radius: 0 0 27rem;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.top .concept_bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100.1%;
	object-fit: cover;
	display: block;
	pointer-events: none;
	z-index: 0;
	opacity: .3;
}
.top .concept::before {
	content: '';
	display: block;
	background: #ededed;
	width: 54.2rem;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	border-radius: 27.1rem;
}
.top .concept_txt::before {
	content: '';
	display: block;
	background: url(../../img/index/concept_img_02.png) no-repeat left bottom / 100% auto;
	width: 54.2rem;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	border-radius: 27.1rem;
}
.top .concept::after {
	content: '';
	display: block;
	width: 18.7rem;
	height: 18.7rem;
	border-radius: 50%;
	background: rgba(235, 238, 233, .48);
	position: absolute;
	left: calc(50% - 16.6rem);
	bottom: 3rem;
	z-index: 3;
}
.top .concept figure {
	width: calc(50% - 7.3rem);
	border-radius: 0 21rem 0 0;
	overflow: hidden;
	z-index: 2;
}
.top .concept_txt {
	flex: 1;
	padding: .6rem 0 0 11.6rem;
	z-index: 2;
	position: static;
}
.top .concept_txt h2 {
	font-size: 3rem;
	line-height: 1.6667;
	letter-spacing: .04em;
	font-weight: 400;
	margin-bottom: 1.8rem;
}
.top .concept_txt h2 span {
	display: block;
	font-size: 1.8rem;
	letter-spacing: .08em;
	color: #74A057;
	margin-bottom: 1.6rem;
}
.top .concept_txt p {
	font-size: 1.5rem;
	line-height: 2;
	letter-spacing: .04em;
}
.top .concept_btn {
	display: block;
	width: 19.7rem;
	background: #7AA160;
	color: #fff;
	font-size: 1.3rem;
	letter-spacing: .01em;
	margin-top: 3rem;
	padding: 1.2rem 2.1rem;
	border-radius: 2.1rem;
}
.top .concept_btn::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .5rem 0 .5rem .8rem;
	border-color: transparent transparent transparent #fff;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.5rem;
	margin: auto 0;
	transition: transform .3s;
}
@media (hover:hover) {
	.top .concept_btn:hover::after {
		transform: translateX(.5rem);
	}
}
@media only screen and (max-width: 768px) {
	.top .concept {
		padding: 43.8rem 0 7rem;
		border-radius: 0 0 12rem;
		display: block;
		background: #e5e5e5;
	}
	.top .concept::before {
		background: #e0e0e0;
		width: 24.7rem;
		border-radius: 12rem;
	}
	.top .concept_txt::before {
		background: url(../../img/index/concept_img_02-sp.png) no-repeat left bottom / 100% auto;
		width: 24.7rem;
		border-radius: 12rem;
	}
	.top .concept::after {
		display: none;
	}
	.top .concept figure {
		width: 35.5rem;
		border-radius: 0 5rem 0 0;
	}
	.top .concept_txt {
		padding: 2.2rem 4rem 0;
		position: static;
	}
	.top .concept_txt h2 {
		font-size: 2rem;
		position: absolute;
		top: 28.5rem;
		left: 4rem;
		line-height: 1.6;
	}
	.top .concept_txt h2 span {
		font-size: 1.3rem;
		line-height: 1.6923;
		letter-spacing: .1em;
		margin-bottom: 1.4rem;
	}
	.top .concept_txt p {
		font-size: 1.3rem;
		line-height: 1.6923;
		letter-spacing: .05em;
	}
	.top .concept_btn {
		width: 29.5rem;
		font-size: 1.4rem;
		margin-top: 2.3rem;
		padding: 1.4rem 3.1rem;
		border-radius: 2.4rem;
	}
}

/* fair
----------------------------------------*/
.top .fair {
	background: #E4EBDF;
	padding: 10rem 0;
}
@media only screen and (max-width: 768px) {
	.top .fair {
		padding: 0rem 0;
	}
}

/* space
----------------------------------------*/
.top .space {
	background: #f9f9f9;
	border-radius: 23rem 0 0;
	padding: 14.8rem 0 10rem;
}
.top .space::before {
	content: '';
	display: block;
	width: 50%;
	border-radius: 23rem 0 66rem;
	background: #fff url(../../img/index/space_img_01.png) no-repeat left top / 40.2rem auto;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 7.2rem;
}
.top .space::after {
	content: '';
	display: block;
	width: 50%;
	border-radius: 66rem 0 0;
	background: #fff url(../../img/index/space_img_02.png) no-repeat right bottom / 36rem auto;
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
}
.top .space h2 {
	text-align: center;
	color: #7AA160;
	font-size: 1.3rem;
	font-weight: 400;
	letter-spacing: .15em;
	line-height: 1.4;
	margin-bottom: 6.5rem;
	z-index: 2;
}
.top .space h2 .en {
	font-size: 3.3rem;
	letter-spacing: .15em;
	display: block;
}
.top .space_item {
	z-index: 2;
	overflow: hidden;
}
.top .space_slider figure {
	float: left;
	margin: 0 .2rem;
}
.top .slick-track {
	overflow: hidden;
}
.top .space_slider {
	width: 82.8rem;
	margin: 0 auto;
	position: static;
}
.top .space_slider figure::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(51, 51, 51, .3);
	transition: opacity .3s;
}
.top .space_slider figure.slick-active::after,
.top .space_slider figure.is-active-next::after {
	opacity: 0;
}
.top .space_slider .slick-prev,
.top .space_slider .slick-next {
	content: '';
	display: block;
	appearance: none;
	outline: none;
	border: 0;
	width: 3.6rem;
	height: 3.6rem;
	overflow: hidden;
	text-indent: -99rem;
	background: url(../../img/common/icon_arrow_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: 25.2rem;
	right: 6.9rem;
	z-index: 10;
	cursor: pointer;
}
.top .space_slider .slick-prev {
	transform: scale(-1, 1);
	left: 6.9rem;
	right: auto;
}
.top .space_slider .slick-dots {
	display: flex;
	gap: .7rem;
	justify-content: center;
	margin-top: .5rem;
}
.top .space_slider .slick-dots li {
	width: .6rem;
	height: .6rem;
}
.top .space_slider .slick-dots button {
	appearance: none;
	width: .6rem;
	height: .6rem;
	border-radius: 50%;
	background: #D9D9D9;
	overflow: hidden;
	text-indent: -99rem;
	border: 0;
}
.top .space_slider .slick-dots .slick-active button {
	background: #7AA160;
}
.top .space_box {
	width: 82.4rem;
	margin: 0 auto;
	display: flex;
	padding: 3.8rem 0 9rem;
}
.top .space_box h3 {
	width: 33rem;
	font-weight: 400;
	color: #7AA160;
	font-size: 1.3rem;
	letter-spacing: .15em;
	line-height: 1.4;
}
.top .space_box h3 .en {
	display: block;
	font-size: 2.8rem;
	letter-spacing: .15em;
}
.top .space_txt {
	flex: 1;
	margin-right: -7rem;
}
.top .space_txt h4 {
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: .1em;
	margin-bottom: 1.2rem;
}
.top .space_txt p {
	font-size: 1.3rem;
	line-height: 2.2308;
	letter-spacing: .1em;
}
.top .space_btn {
	display: block;
	width: 21.9rem;
	margin: -3.8rem auto 0;
	background: #7AA160;
	color: #fff;
	font-size: 1.3rem;
	letter-spacing: .01em;
	padding: 1.15rem 2.4rem;
	letter-spacing: .1em;
	border-radius: 2.1rem;
	z-index: 10;
}
.top .space_btn::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .5rem 0 .5rem .8rem;
	border-color: transparent transparent transparent #fff;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.5rem;
	margin: auto 0;
	transition: transform .3s;
}
@media (hover:hover) {
	.top .space_btn:hover::after {
		transform: translateX(.5rem);
	}
}
@media only screen and (max-width: 768px) {
	.top .space {
		border-radius: 10rem 0 0;
		padding: 6.2rem 0 7rem;
	}
	.top .space::before {
		border-radius: 10rem 0 35rem 0;
		background: #fff url(../../img/index/space_img_01-sp.png) no-repeat left top / 100% auto;
		bottom: 3.5rem;
	}
	.top .space::after {
		border-radius: 17rem 0 0;
		background: #fff url(../../img/index/space_img_02-sp.png) no-repeat right bottom / 16.8rem auto;
		top: 8.5rem;
	}
	.top .space h2 {
		margin-bottom: 2.7rem;
	}
	.top .space h2 .en {
		font-size: 2.6rem;
		letter-spacing: .1em;
	}
	.top .space_slider figure {
		margin: 0 .15rem;
	}
	.top .space_slider {
		width: 33.8rem;
	}
	.top .space_slider .slick-prev,
	.top .space_slider .slick-next {
		width: 2.8rem;
		height: 2.8rem;
		top: 15.3rem;
		right: 1.2rem;
		filter: brightness(0) invert(1);
	}
	.top .space_slider .slick-prev {
		left: 1.5rem;
		right: auto;
	}
	.top .space_slider .slick-dots {
		display: none !important;
	}
	.top .space_box {
		width: auto;
		margin: 0 4rem;
		display: block;
		padding: 2.4rem 0 5.3rem;
	}
	.top .space_box h3 {
		width: auto;
		font-size: 1.2rem;
		margin-bottom: 1.1rem;
	}
	.top .space_box h3 .en {
		display: inline;
		font-size: 2rem;
		margin-right: 1.2rem;
		vertical-align: -.3rem;
	}
	.top .space_txt {
		margin-right: 0;
	}
	.top .space_txt h4 {
		font-size: 1.8rem;
		line-height: 1.6667;
		margin-right: -.5rem;
		letter-spacing: .09em;
		margin-bottom: .5rem;
	}
	.top .space_txt p {
		line-height: 1.6923;
		letter-spacing: .05em;
	}
	.top .space_btn {
		width: 29.5rem;
		font-size: 1.4rem;
		margin-top: -3rem;
		padding: 1.4rem 3.1rem;
		border-radius: 2.4rem;
	}
}

/* recommend
----------------------------------------*/
.top .recommend {
	padding: 10rem 0 0rem;
	background: #F6F8F5;
}
.top .recommend::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #E4EBDF;
}
.top .recommend iframe {
	position: relative;
}
.top .recommend_bestrate {
	display: flex;
	width: 120.7rem;
	margin: 6.8rem auto 0;
	border-radius: 12rem 0 0;
	overflow: hidden;
	background: #fff;
}
.top .recommend_bestrate figure {
	width: 45.9rem;
}
.top .recommend_bestrate figure::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(51, 51, 51, .17);
}
.top .recommend_bestrate_txt {
	flex: 1;
	padding: 4rem 0 6rem;
	color: #D89165;
}
.top .recommend_bestrate_txt h3 {
	padding-left: 15.6rem;
	font-size: 1.8rem;
	font-weight: 400;
	letter-spacing: .09em;
	margin: 0 0 3.3rem 2.8rem;
}
.top .recommend_bestrate_txt h3 span:nth-of-type(2) {
	font-size: 2.6rem;
	background: linear-gradient(transparent 60%, #F2F2F2 60%);
	letter-spacing: .06em;
}
.top .recommend_bestrate_txt h3 img {
	width: 15rem;
	position: absolute;
	top: .4rem;
	bottom: 0;
	left: 0;
	margin: auto 0;
}
.top .recommend_bestrate_txt p {
	width: 62.3rem;
	font-size: 1.3rem;
	line-height: 1.9231;
	letter-spacing: .1em;
	margin: 0 0 0 4.6rem;
}
.top .recommend_bestrate_btn {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5.7rem;
	padding-top: 1.9rem;
	text-align: center;
	color: #fff;
	background: #D89165;
	font-size: 1.4rem;
	letter-spacing: .01em;
}
.top .recommend_bestrate_btn::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .5rem 0 .5rem .8rem;
	border-color: transparent transparent transparent #fff;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 3rem;
	margin: auto 0;
	transition: transform .3s;
}
@media (hover:hover) {
	.top .recommend_bestrate:hover .recommend_bestrate_btn::after {
		transform: translateX(.5rem);
	}
}
@media only screen and (max-width: 768px) {
	.top .recommend {
		padding: 6.2rem 0 6.9rem;
		background: #fff;
	}
	.top .recommend::before {
		border-radius: 0 0 0rem;
	}
	.top .recommend_bestrate {
		display: block;
		width: 29.5rem;
		margin: 5.9rem auto 0;
		border-radius: 5rem 0 0;
	}
	.top .recommend_bestrate figure {
		width: auto;
	}
	.top .recommend_bestrate figure::before {
		display: none;
	}
	.top .recommend_bestrate_txt {
		padding: 1.2rem 0 5.4rem;
	}
	.top .recommend_bestrate_txt h3 {
		padding-left: 0;
		position: static;
		font-size: 1.3rem;
		margin: 0 0 1.3rem 2rem;
	}
	.top .recommend_bestrate_txt h3 span:nth-of-type(1) {
		display: inline-block;
		margin-bottom: .4rem;
	}
	.top .recommend_bestrate_txt h3 span:nth-of-type(2) {
		font-size: 2rem;
	}
	.top .recommend_bestrate_txt h3 img {
		width: 10.4rem;
		top: -7.2rem;
		bottom: auto;
		left: .4rem;
		margin: 0;
		filter: brightness(1.15);
	}
	.top .recommend_bestrate_txt p {
		width: auto;
		font-size: 1.2rem;
		line-height: 1.5833;
		letter-spacing: .07em;
		margin: 0 1.5rem 0 2rem;
	}
	.top .recommend_bestrate_btn {
		height: 4rem;
		padding-top: 1.2rem;
		font-size: 1.2rem;
	}
	.top .recommend_bestrate_btn::after {
		right: 1.9rem;
	}
}

/* menu
----------------------------------------*/
.top .menu {
	background: #F6F8F5 url(../../img/index/menu_bg.png) no-repeat left top / 95.8rem auto;
	padding: 9.9rem 0 10rem;
	border-radius: 0 0 0 21rem;
}
.top .menu::before {
	content: '';
	display: block;
	background: #FBFCFB;
	position: absolute;
	left: 0;
	top: 52.4rem;
	bottom: 0;
	border-radius: 0 0 21rem 21rem;
	width: 50%;
}
.top .menu::after {
	content: '';
	display: block;
	background: #F6F8F5;
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	border-radius: 21rem 0 0;
	width: 50%;
}
.top .menu_inner {
	width: 108.6rem;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	z-index: 2;
}
.top .menu_item {
	width: 33.2rem;
	display: flex;
}
.top .menu_item a {
	width: 100%;
	height: 100%;
	padding-bottom: 4rem;
}
.top .menu_item figure {
	overflow: hidden;
	border-radius: 1.2rem;
}
.top .menu_item figure img {
	transition: transform .3s;
}
.top .menu_item h2 {
	font-weight: 400;
	color: #7AA160;
	font-size: 1.4rem;
	letter-spacing: .09em;
	margin: 2.1rem 0 0;
}
.top .menu_item h3 {
	font-weight: 400;
	font-size: 1.8rem;
	letter-spacing: .09em;
	margin: .8rem 0 1.5rem;
}
.top .menu_item p {
	letter-spacing: .1em;
	line-height: 1.9231;
	font-size: 1.3rem;
}
.top .menu_detail {
	width: 15rem;
	margin: 1.5rem auto 0;
	color: #7AA160;
	font-size: 1.3rem;
	letter-spacing: .09em;
	padding-bottom: .4rem;
	border-bottom: .1rem solid #7AA160;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
}
.top .menu_detail::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .5rem 0 .5rem .8rem;
	border-color: transparent transparent transparent #7AA160;
	position: absolute;
	top: 0;
	bottom: .8rem;
	right: .8rem;
	margin: auto 0;
	transition: transform .3s;
}
@media (hover:hover) {
	.top .menu a:hover .menu_detail::after {
		transform: translateX(.5rem);
	}
	.top .menu a:hover figure img {
		transform: scale(1.1);
	}
}
@media only screen and (max-width: 768px) {
	.top .menu {
		background: #F6F8F5 url(../../img/index/menu_bg-sp.png) no-repeat left top / 28.3rem auto;
		padding: 6.9rem 0 7.1rem;
		border-radius: 0 0 0 10rem;
	}
	.top .menu::before {
		display: none;
	}
	.top .menu::after {
		border-radius: 10rem 0 0;
		width: 18.8rem;
		background: #fff;
	}
	.top .menu_inner {
		width: 29.5rem;
		display: block;
	}
	.top .menu_item {
		width: auto;
		display: block;
	}
	.top .menu_item a {
		padding-bottom: 0;
	}
	.top .menu_item + .menu_item {
		margin-top: 6rem;
	}
	.top .menu_item h2 {
		font-size: 1.3rem;
		letter-spacing: .05em;
		margin: 1.5rem 0 0;
	}
	.top .menu_item h3 {
		letter-spacing: .1em;
		margin: .8rem 0 .7rem;
	}
	.top .menu_item p {
		letter-spacing: .05em;
		line-height: 1.6923;
	}
	.top .menu_detail {
		width: 29.5rem;
		font-size: 1.4rem;
		padding: 1.4rem 3.1rem;
		border-radius: 2.4rem;
		margin: 2.3rem auto 0;
		color: #fff;
		background: #7AA160;
		font-size: 1.4rem;
		letter-spacing: .1em;
		border-bottom: 0;
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
	}
	.top .menu_detail::after {
		border-color: transparent transparent transparent #fff;
		bottom: 0;
		right: 1.8rem;
	}
}

/* news
----------------------------------------*/
.top .news {
	padding: 9rem 2rem 9.9rem;
	background: #E4EBDF;
	z-index: 2;
}
.top .news::after {
	content: '';
	display: block;
	width: 30.6rem;
	height: 41.7rem;
	background: url(../../img/index/news_bg_01.png) no-repeat left top / 100% auto;
	position: absolute;
	bottom: -14.8rem;
	left: 0;
	pointer-events: none;
}
.top .news_inner {
	width: 120.8rem;
	margin: 0 auto;
	display: flex;
	padding-left: 6rem;
}
.top .news h2 {
	font-weight: 400;
	font-size: 1.3rem;
	color: #7AA160;
	letter-spacing: .15em;
	width: 26.4rem;
}
.top .news h2 .en {
	font-size: 2.8rem;
	display: block;
	letter-spacing: .15em;
	margin-bottom: .3rem;
}
.top .news_list {
	flex: 1;
}
.top .news_list li {
	border-bottom: .1rem solid #fff;
	margin-bottom: 1.5rem;
	display: flex;
	padding: 1rem 2rem 2.3rem 0;
}
.top .news_list li:last-child {
	margin-bottom: 0;
}
.top .news_list li a {
	display: flex;
	width: calc(100% + 2rem);
	margin: -1rem -2rem -2.3rem 0;
	padding: 1rem 2rem 2.3rem 0;
}
.top .news_list li a::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: .5rem 0 .5rem .8rem;
	border-color: transparent transparent transparent #747474;
	position: absolute;
	top: 0;
	bottom: 1.5rem;
	right: .2rem;
	margin: auto 0;
	transition: transform .3s;
}
.top .news_date {
	width: 12.6rem;
	font-family: "Libre Baskerville", serif;
	color: #747474;
	font-size: 1.2rem;
	letter-spacing: .09em;
	line-height: 1.7692;
}
.top .news_ttl {
	flex: 1;
	font-size: 1.3rem;
	line-height: 1.7692;
	letter-spacing: .09em;
}
@media (hover:hover) {
	.top .news_list li a:hover::after {
		transform: translateX(.5rem);
	}
}
@media only screen and (max-width: 768px) {
	.top .news {
		padding: 6.3rem 0 6.8rem;
	}
	.top .news::after {
		width: 12.7rem;
		height: 28rem;
		background-image: url(../../img/index/news_bg_01-sp.png);
		bottom: -13.2rem;
	}
	.top .news_inner {
		width: 33.3rem;
		margin: 0 0 0 auto;
		display: block;
		padding-left: 0;
	}
	.top .news h2 {
		width: auto;
		margin: 0 0 1.1rem -.2rem;
	}
	.top .news h2 .en {
		font-size: 2.2rem;
		display: inline;
		margin-right: 1.3rem;
		vertical-align: -.3rem;
		margin-bottom: 0;
	}
	.top .news_list li {
		margin-bottom: .5rem;
		padding: 1rem 4rem 1.2rem 0;
		display: block;
	}
	.top .news_list li:nth-child(n+4) {
		display: none;
	}
	.top .news_list li a {
		display: block;
		width: auto;
		margin: -1rem -4rem -1.2rem 0;
		padding: 1rem 4rem 1.2rem 0;
	}
	.top .news_list li a::after {
		top: .7rem;
		bottom: 0;
		right: 1.9rem;
	}
	.top .news_date {
		margin-bottom: .8rem;
	}
	.top .news_ttl {
		font-size: 1.2rem;
		line-height: 1.9167;
		overflow: hidden;
		display: -webkit-box;
		text-overflow: ellipsis;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}
}