/* main-visual
-------------------------------------------*/
.main-visual{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: calc(100vh - 110px);
	max-height: 1400px;
	margin-top: 110px;
}
.main-copy,
.scrolldown,
.top-ig-btn{
	z-index: 1;
	position: absolute;
}
.main-copy{
	top: 37vh;
	left: 15vw;
	text-align: left;
	font-weight: bold;
}
.main-copy img{
	width: 600px;
	height: auto;
}
.main-copy p{
	font-size: 32px;
	padding-left: 8px;
}
.scrolldown{
	bottom: 50px;
	left: 3vw;
	background: url(../img/common/ic-arrow_down_blue.svg) center center no-repeat;
	background-size: 20px auto;
}
.scrolldown::before{
	content: '';
	padding-top: 50%;
}
.scrolldown{
	animation-name: rotate;
	animation-duration: 3s;
	animation-timing-function: cubic-bezier(0.5, 0.51, 0.51, 0.52);
	animation-iteration-count: infinite;
}
.scrolldown img{
	width: 180px;
	height: auto;
	animation: rotate-anime 25s linear infinite;
}
@keyframes rotate-anime{
0% {transform: rotate(0);}
100% {transform: rotate(360deg);}
}
.top-ig-btn{
	bottom: 50px;
	right: 0;
	width: 230px;
	height: 70px;
	border: 1px solid #fff;
	border-right: 0;
	border-radius: 6px 0 0 6px;
	background: url(../img/common/ic-arrow-circle_white-line.svg) 98% center no-repeat;
	background-size: 34px auto;
}
.top-ig-btn a{
	color: #fff;
	font-size: 12px;
	line-height: 1.2;
	text-align: left;
	font-weight: bold;
}
.top-ig-btn a p{
	padding: 20px 0 0 40px;
	margin-left: 10px;
	background: url(../img/common/ic-ig_color.png) 0 98% no-repeat;
	background-size: 30px auto;
}
.top-ig-btn a:hover{
	opacity: var(--hover);
}
.main-slide{
	z-index: 0;
	position: relative;
	overflow: hidden;
	text-align: center;
	width: calc(100vw - 10vw);
	height: 100%;
	margin: 0 0 0 auto;
	border-radius: 150px 0 0 150px;
}
.main-slide .slider{
	margin-inline: auto;
	width: 100vw;
}
.slick-img img{
	object-fit: cover;
	object-position: center center;
	width: 100%;
	height: calc(100vh - 110px);
	max-width: 100%;
	max-height: 100%;
	margin: auto;
}
@keyframes zoomUp{
	0%{ transform: scale(1); }
	100%{ transform: scale(1.15); /* 拡大率 */ }
}
.add-animation{
	animation: zoomUp 10s linear 0s normal both;
}
@media screen and (max-width: 1100px){
	.main-visual,
	.slick-img img{
		height: calc(90vh - 110px);
	}
	.main-copy{
		top: 35vh;
		left: 10vw;
	}
	.main-copy img{
		width: 500px;
	}
	.main-copy p{
		font-size: 28px;
	}
	.scrolldown img{
		width: 160px;
	}
	.main-slide{
		width: calc(100vw - 6vw);
		border-radius: 100px 0 0 100px;
	}
}
@media screen and (max-width: 650px){
	.main-visual{
		height: calc(520px - 70px);
		margin-top: 70px;
	}
	.main-copy{
		top: 180px;
		left: 8vw;
	}
	.main-copy img{
		width: 80%;
	}
	.main-copy p{
		font-size: 15px;
		line-height: 2.2;
		padding-left: 2px;
	}
	.scrolldown{
		bottom: 10px;
		left: 1vw;
		background-size: 16px auto;
	}
	.scrolldown img{
		width: 90px;
	}
	.top-ig-btn{
		bottom: 50px;
		width: 150px;
		height: 46px;
		background-size: 20px auto;
	}
	.top-ig-btn a{
		font-size: 9px;
	}
	.top-ig-btn a p{
		padding: 12px 0 0 22px;
		margin-left: 10px;
		background-size: 16px auto;
		background-position: left 82%;
	}
	.main-slide{
		width: calc(100vw - 4vw);
		height: 92%;
		border-radius: 40px 0 0 40px;
	}
	.slick-img img{
		height: calc(520px - 70px);
	}
}

/* ----------------------------------------
	Top/Common
-------------------------------------------*/

.top-sec{
	padding-top: 250px;
}
.top-sec .text{
	text-align: justify;
}
.top-sec .heading{
	font-size: 15px;
	font-weight: bold;
}
.top-sec .heading span.en{
	font-size: 50px;
	padding-right: 20px;
	vertical-align: sub;
}
.top-sec .more-btn a{
	display: block;
	height: 80px;
	line-height: 78px;
	border-radius: 40px;
	padding-left: 10%;
	font-size: 15px;
	font-weight: bold;
	border: 1px solid;
	color: var(--main-color);
	border-color: var(--main-color);
	background: url(../img/common/ic-arrow-circle_blue.svg) 95% center no-repeat;
	background-size: 34px;
}
.top-sec .more-btn a:hover{
	color: #fff;
	background: url(../img/common/ic-arrow-circle_white.svg) 95% center no-repeat;
	background-size: 34px;
	background-color: var(--main-color);
}
@media screen and (max-width: 1100px){
	.top-sec .heading,
	.top-sec .more-btn a{
		font-size: 13px;
	}
	.top-sec .heading span.en{
		font-size: 36px;
	}
	.top-sec .more-btn a{
		height: 80px;
		line-height: 78px;
		border-radius: 40px;
	}
	.top-sec .more-btn a,
	.top-sec .more-btn a:hover{
		background-size: 30px;
	}
}
@media screen and (max-width: 650px){
	.top-sec{
		padding-top: 20%;
	}
	.top-sec .more-btn a{
		font-size: 13px;
	}
	.top-sec .heading{
		font-size: 11px;
		line-height: 1.5;
		padding-bottom: 5%;
	}
	.top-sec .heading span.en{
		display: block;
		font-size: 24px;
		letter-spacing: 0.05em;
		padding: 0;
	}
	.top-sec .more-btn a{
		height: 54px;
		line-height: 50px;
		border-radius: 27px;
		padding-left: 6%;
	}
	.top-sec .more-btn a,
	.top-sec .more-btn a:hover{
		background-size: 24px;
	}
}

/* ----------------------------------------
	Concept
-------------------------------------------*/
.concept{
	position: relative;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	width: 92%;
	max-width: var(--page-width);
	margin: 0 auto;
}
.concept-img{
	margin-left: calc(50% - 50vw);
	width: 60vw;
	padding: 30% 0; /* 写真の高さ */
	border-radius: 0 100px 100px 0;
	background: url(../img/top/bg-concept.jpg) center center no-repeat;
	background-size: cover;
}
.concept-text{
	width: 100%;
	max-width: 520px;
	margin-left: 8%;
	text-align: left;
	font-weight: bold;
}
.concept-text .read{
	font-size: 36px;
	letter-spacing: 0.1em;
	padding-bottom: 30px;
}
.concept-text .text{
	font-size: 18px;
	letter-spacing: 0.2em;
}
@media screen and (max-width: 1100px){
	.concept{
		max-width: initial;/*解除*/
	}
	.concept-img{
		width: 58%;
		border-radius: 0 60px 60px 0;
	}
	.concept-text{
		width: 40%;
		max-width: initial;/*解除*/
		margin: 0;
	}
	.concept-text .read{
		font-size: 28px;
		padding-bottom: 8%;
		font-weight: bold;
		color: var(--main-color);
	}
	.concept-text .text{
		font-size: 16px;
		line-height: 2;
	}
}
@media screen and (max-width: 960px){
	.concept-img{
		width: 50%;
		border-radius: 0 40px 40px 0;
	}
	.concept-text{
		width: 48%;
	}
	.concept-text .read{
		font-size: 26px;
	}
	.concept-text .text{
		font-size: 15px;
	}
}
@media screen and (max-width: 650px){
	.concept{
		display: block;
		width: 96%;
		padding-top: 15%;
	}
	.concept-img{
		width: 100%;
		height: 210px;
		padding: 0; /* 写真の高さ */
		border-radius: 0 20px 20px 0;
		background-position: left 45%;
	}
	.concept-text{
		width: 92%;
		margin: 30px auto 0;
		padding: 0;
	}
	.concept-text .read{
		font-size: 22px;
		padding-bottom: 4%;
	}
	.concept-text .text{
		font-size: 13px;
		letter-spacing: 0.1em;
	}
}

/* ----------------------------------------
	About
-------------------------------------------*/

.about{
	width: 100%;
	margin: 0 auto;
}
.about-wrap{
	width: 96%;
	margin: 0 auto;
	margin-right: calc(50% - 50vw);
	border-radius: 200px 0 0 200px;
	background-color: var(--main-color);
}
.about-inner{
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	width: 86%;
	max-width: var(--page-width);
	padding: 150px 0;
	margin: 0 auto;
	color: #fff;
	text-align: left;
}
.about .sidebar{
	width: 25%;
}
.about .sidebar .title{
	font-size: 21px;
	line-height: 1.5;
	font-weight: bold;
}
.about .sidebar .title span.en{
	display: block;
	font-size: 12px;
	padding-bottom: 10px;
	color: #4ee6e3;
}
.about .sidebar .text{
	padding-top: 5%;
	font-size: 14px;
}
.about-contents{
	width: 66%;
}
.about-contents .content:last-child{
	padding-top: 10%;
}
.about-contents .content img{
	border-radius: 20px;
}
.about-contents .content .common-list{
	padding-top: 3%;
}
.about-contents .content .common-list li{
	width: 47%;
}
.about-contents .content .common-list li a{
	background: url(../img/common/ic-arrow-circle_white-line.svg) right center no-repeat;
	background-size: 34px;
}
.about-contents .content .common-list li a:hover{
	background: url(../img/common/ic-arrow-circle_white.svg) right center no-repeat;
	background-size: 34px;
}
@media screen and (max-width: 1100px){
	.about-wrap{
		border-radius: 60px 0 0 60px;
	}
	.about-inner{
		max-width: initial;/*解除*/
		padding: 100px 0;
	}
	.about .sidebar .text{
		padding-top: 5%;
		font-size: 13px;
	}
	.about-contents .content .text{
		font-size: 14px;
	}
	.about-contents .content .common-list{
		padding-top: 5%;
	}
	.about-contents .content .common-list li{
		width: 48%;
	}
}
@media screen and (max-width: 960px){
	.about-wrap{
		border-radius: 40px 0 0 40px;
	}
}
@media screen and (max-width: 650px){
	.about-wrap{
		border-radius: 20px 0 0 20px;
	}
	.about-inner{
		display: block;
		width: 84%;
		padding: 50px 0;
	}
	.about .sidebar,
	.about-contents{
		width: 100%;
	}
	.about .sidebar .title{
		font-size: 18px;
	}
	.about .sidebar .title span.en{
		font-size: 10px;
		padding-bottom: 1%;
	}
	.about .sidebar .text,
	.about-contents .content .text{
		font-size: 13px;
		line-height: 1.8;
	}
	.about .sidebar .text{
		padding: 5% 0 10%;
	}
	.about-contents .content img{
		margin-top: 1%;
		border-radius: 10px;
	}
	.about-contents .content .common-list li{
		width: 100%;
	}
	.about-contents .content:last-child{
		padding-top: 15%;
	}
	.about-contents .content .common-list li a,
	.about-contents .content .common-list li a:hover{
		background-size: 22px;
	}
}

/* ----------------------------------------
	Message
-------------------------------------------*/

.message{
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: column-reverse;
	justify-content: space-between;
	width: 100%;
}
.message .text-area,
.message .gallery{
	margin: 0 auto;
	width: 90%;
}
.message .text-area{
	margin-left: calc(50% - 50vw);
	margin-top: -5%;
	z-index: 1;
	color: #fff;
	padding: 10% 0;
	border-radius: 0 0 100px 0;
	background-color: var(--font-black);
}
.message .text-inner{
	width: 86%;
	max-width: var(--page-width);
	margin: 0 auto;
	text-align: left;
}
.message .text-inner .common-list{
	padding-top: 3%;
}
.message .text-inner .common-list li{
	width: 31%;
}
.message .gallery{
	margin-right: calc(50% - 50vw);
	z-index: 2;
}
.message .gallery li{
	position: relative;
	background-color: #fff;
}
.message .gallery li .mask{
	position: relative;
	display: block;
	line-height: 0;	
	transition: .3s ease-in-out;
}
.message .gallery li:hover .mask::before{
	content:"";
	position: absolute;
	z-index: 2;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	background: linear-gradient(45deg,rgba(0,160,233,0.5),rgba(78,230,227,0.5));/*背景色（グラデーション）*/
}
.message .gallery li span.cap{
	opacity:0;
	transition: .5s ease-in-out;
	position: absolute;
	z-index: 3;/*テキストを前面に出す*/
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	color: #fff;
	font-size: 22px;
	line-height: 2;
	font-weight: bold;
}
.message .gallery li:hover .cap{
	opacity: 1;
}
.message .gallery li .cap span{
	display: block;
	font-size: 14px;
}
.message .gallery li img{
	width: 400px;
	height: auto;
	opacity: 1;
	backface-visibility: hidden;/*追加*/
	transition: .3s ease-in-out;
}
.message .gallery li:hover img{
	opacity: 0.6;
}

@media screen and (max-width: 1100px){
	.message .text-area{
		border-radius: 0 0 80px 0;
	}
	.message .text-inner{
		max-width: initial;/*解除*/
		font-size: 14px;
	}
	.message .gallery li img{
		width: 320px;
	}
}
@media screen and (max-width: 960px){
	.message .text-area{
		border-radius: 0 0 40px 0;
	}
	.message .gallery li img{
		width: 280px;
	}
}
@media screen and (max-width: 650px){
	.message .text-area{
		width: 96%;
	}
	.message .gallery{
		width: 100%;
	}
	.message .text-area{
		padding: 15% 0 20%;
		border-radius: 0 0 20px 0;
	}
	.message .text-inner{
		width: 82%;
		font-size: 13px;
	}
	.message .text-inner br{
		display: none;
	}
	.message .text-inner .common-list{
		display: block;
		padding-top: 5%;
	}
	.message .text-inner .common-list li{
		width: 100%;
	}
	.message .gallery{
		margin: 0 auto;
	}
	.message .gallery li img{
		width: 160px;
	}
}

/* ----------------------------------------
	Location
-------------------------------------------*/

.location{
	width: 100%;
}
.location .head{
	width: 92%;
	max-width: var(--page-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.location .head .img{
	margin-left: calc(50% - 50vw);
	width: 50vw;
	height: 500px;
	overflow: hidden;
	border-radius: 0 120px 120px 0;
}
.location .head .img img{
	object-fit: cover;
	width: 100%;
	height: 100vh;
	max-width: 100%;
	max-height: 100%;
	margin: auto;
}
.location .head .text-area{
	width: 45%;
	max-width: 460px;
	text-align: left;
}
.location .foot{
	width: 70%;
	margin: 3% auto;
	display: flex;
	align-items: flex-end;
	flex-direction: row-reverse;
	justify-content: space-between;
}
.location .foot div:first-child{
	width: 26vw;
}
.location .foot div:first-child img{
	border-radius: 60px;
}
.location .foot div:last-child{
	width: 18vw;
	margin-left: 10%;
	margin-bottom: -3%;
}
.location .foot div:last-child img{
	border-radius: 40px;
}
.location .more-btn a{
	width: 300px;
	max-width: 100%;
	margin-top: 30px;
}
@media screen and (max-width: 1100px){
	.location .head{
		max-width: initial;/*解除*/
	}
	.location .head .img{
		height: 460px;
		border-radius: 0 60px 60px 0;
	}
	.location .head .text-area{
		max-width: initial;/*解除*/
		font-size: 14px;
	}
	.location .foot div:first-child img{
		border-radius: 40px;
	}
	.location .foot div:last-child img{
		border-radius: 30px;
	}
	.location .more-btn a{
		max-width: initial;/*解除*/
	}
}
@media screen and (max-width: 960px){
	.location .head .img{
		height: 420px;
		border-radius: 0 40px 40px 0;
	}
	.location .foot div:first-child img{
		border-radius: 30px;
	}
	.location .foot div:last-child img{
		border-radius: 20px;
	}
}
@media screen and (max-width: 650px){
	.location .head{
		display: block;
		width: 96%;
	}
	.location .head .img{
		width: 100%;
		height: 220px;
		border-radius: 0 20px 20px 0;
	}
	.location .head .img img{
		object-position: center 70%;
	}
	.location .head .text-area{
		width: 90%;
		margin: 0 auto;
		padding-top: 5%;
		font-size: 13px;
	}
	.location .foot{
		position: relative;
		width: 80%;
		margin-top: 10%;
		align-items: center;
		flex-direction: row;
	}
	.location .foot div:first-child{
		width: 76%;
	}
	.location .foot div:last-child{
		position: absolute;
		top: 60%;
		right: 0;
		margin: 0;
		width: 40%;
	}
	.location .foot div:first-child img,
	.location .foot div:last-child img{
		border-radius: 10px;
	}
	.location .more-btn a{
		width: 100%;
		margin-top: 20px;
	}
}

/* ----------------------------------------
	Information
-------------------------------------------*/

.information{
	width: 92%;
	max-width: var(--page-width);
	margin: 0 auto;
}
.information .heading span.en{
	font-size: 40px;
	padding: 0;
}
.information .text{
	text-align: center;
}
.information .link-list{
	padding-top: 5%;
	display: flex;
	justify-content: space-between;
}
.information .link-list li{
	width: 32%;
	text-align: left;
}
.information .link-list li a .other-site{
	display: inline;
	padding-right: 16px;
	background: url(../img/common/ic-other-site_blue.svg) right center no-repeat;
	background-size: 12px;
}
.information .link-list li a:hover .other-site{
	background: url(../img/common/ic-other-site_white.svg) right center no-repeat;
	background-size: 12px;
}
.information .link-list li img{
	width: 30px;
	margin-right: 10px;
	vertical-align: middle;
}
@media screen and (max-width: 1100px){
	.information{
		max-width: initial;/*解除*/
	}
	.information .text{
		font-size: 14px;
	}
}
@media screen and (max-width: 750px){
	.information .link-list li a .other-site,
	.information .link-list li a:hover .other-site{
		background-size: 10px;
	}
	.information .link-list li img{
		width: 20px;
	}
}
@media screen and (max-width: 650px){
	.information{
		width: 90%;
	}
	.information .heading span.en{
		display: block;
		font-size: 24px;
		letter-spacing: 0.05em;
		padding: 0;
	}
	.information .text{
		font-size: 12px;
	}
	.information .link-list{
		display: block;
	}
	.information .link-list li{
		width: 100%;
		margin-bottom: 10px;
	}
	.information .link-list li:last-child{
		margin-bottom: 0;
	}
}