@charset "UTF-8";

/* ---------------------------------------------------------------------- */
/* PC */
/* ---------------------------------------------------------------------- */
@media (min-width: 1001px) {

	/* mainvisual 
  ---------------------------------------------------------------------- */
	#mainvisual {
		height: 100vh;
		min-height: auto;
		box-sizing: content-box;
		position: relative;
	}

	.mv__video {
		height: 100%;
	}

	.mv__video img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.mainvisual__ttl {
        color: #fff;
        font-size: 1.8rem;
        letter-spacing: 0.1em;
        position: absolute;
        top: 63%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
	}

	.mainvisual__ttl span {
        font-size: 3.2rem;
        letter-spacing: 0.08em;
        writing-mode: vertical-rl;
		font-weight: bold;
        display: block;
	}

	/* deco__mask
  ---------------------------------------------------------------------- */
	.deco__mask {
        width: 100vw;
        height: 81.5%;
        animation: bg-gradient 5s linear infinite alternate;
        background: linear-gradient(to right, #a9efdb 0%, #ebce8c 100%);
         background-size: 200% 100%; 
        position: absolute;
        bottom: 0;
        z-index: -1;
	}

	.deco__mask::after {
        content: "";
        position: absolute;
        top: -1px;
        left: 0;
        width: 100%;
        height: 265px;
        background-color: white;
        mask-size: auto;
        mask-repeat: repeat-x;
        mask-image: url(../images/bg_mask.png);
	}

	.deco__mask--color2 {
        background: linear-gradient(to right, #aaefdb 0%, #b8bff8 100%);
        background-size: 200% 100%;
	}

	.deco__mask--color3 {
		background: linear-gradient(#d3d4fa 0%, #eeddb3 100%);
        background-size: 200% 100%;
	}

	.deco__mask--color4 {
		background: linear-gradient(to right, #6b72f1 0%, #27cfac 100%);
		background-size: 200% 100%;
	}

	.deco__mask.deco__mask--vertical {
		animation: bg-gradient_vertical 5s linear infinite alternate;
		background-size: 100% 200%;
	}

	@keyframes bg-gradient {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: 100% 0;
        }
    }

	@keyframes bg-gradient_vertical {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: 0 100% ;
        }
    }

	/* title
---------------------------------------------------------------------- */
	.ctitle {
        font-size: 4rem;
        letter-spacing: 0.26em;
        line-height: 1.4;
        text-align: center;
        position: relative;
	}

	.ctitle__logo {
        content: "";
		color: var(--primary-color);
        display: block;
        width: 80px;
        height: 47px;
        position: absolute;
        left: 49%;
        bottom: 130%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
	}

    .ctitle .en {
        display: block;
		font-weight: bold;
        font-size: 1.6rem;
        letter-spacing: 0;
    }

	.block-title {
		font-size: 4.2rem;
		letter-spacing: 0.26em;
		font-weight: 500;
	}


	/* btn
---------------------------------------------------------------------- */
	.cbtn {
		color: #fff;
		background: url(../images/icon_arrow02_w.svg) no-repeat center right 15%;
		background-size: 33px 6px;
		background-color: var(--accent-color);
		width: 224px;
		height: 48px;
		font-weight: 500;
		padding: 0 45px 0 5px;
		font-size: 2rem;
		font-weight: bold;
		border-radius: 20px;
		letter-spacing: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: relative;
	}

	.cbtn-plan {
		color: #fff;
		width: 196px;
		height: 48px;
		font-size: 1.6rem;
		letter-spacing: 0.15em;
		line-height: 1.4;
		font-weight: bold;
		text-align: center;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		padding: 6px 40px 6px 40px;
        gap: 10%;
		background: url(../images/icon_calendar.svg) left 15px center no-repeat ,  url(../images/icon_arrow.svg) right 15px center no-repeat;
		background-size: 20px 21px , 15px 4px;
		background-color: #BB932C;
	}

	.cbtn-plan .en {
		font-size: 1.2rem;
		display: block;
		letter-spacing: 0;
		font-family: "Manrope", sans-serif;
	}

	.cbtn-map {
		font-size: 2rem;
		letter-spacing: 0;
		font-weight: bold;
		width: 366px;
		height: 64px;
		max-width: 100%;
		color: #969696;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: url(../images/icon_arrow02_g.svg) no-repeat center right 8%;
		background-size: 33px 6px;
		border: 1px solid #969696;
		padding: 10px 10px 10px 10px;
	}

	.cbtn-insta {
		color: #969696;
		width: 366px;
		max-width: 100%;
		height: 64px;
		font-size: 2rem;
		letter-spacing: 0;
		line-height: 1.4;
		font-weight: bold;
		text-align: center;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		padding: 6px 40px 6px 40px;
        gap: 10%;
		border: 1px solid #969696;
		background: url(../images/icon_instagram.svg) left 15px center no-repeat ,  url(../images/icon_arrow02_g.svg) right 25px center no-repeat;
		background-size: 28px 28px , 33px 6px;
		background-color: #fff;
	}

	.cbtn-insta.cbtn-insta--transparent {
		background-color: transparent;
		color: #fff;
		border: 1px solid #FFFFFF;
		background-image: 
		url(../images/icon_instagram03.svg), 
		url(../images/icon_arrow02_w.svg);
	}

	.clink {
		font-size: 2rem;
		color: var(--accent-color);
		font-weight: bold;
		letter-spacing: 0;
		position: relative;
	}

	.clink::after {
		content: "";
		color: #fff;
		width: 33px;
		height: 6px;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 105%;
		background: url(../images/icon_arrow02.svg) no-repeat;
		background-size: contain;
	}

	/* cnav 
  ---------------------------------------------------------------------- */
  .cnav {
	padding: 45px 20px;
	background: url(../images/bg_nav.png);
  }

  .cnav__list {
	display: flex;
	justify-content: center;
  }

  .cnav__list li a {
	display: block;
	font-size: 1.8rem;
	line-height: 1;
	letter-spacing: 0.26em;
	padding: 0 33px;
	border-left: 1px solid #000;
  }

  .cnav__list li:last-of-type a {
	border-right: 1px solid #000;
  }

	/* cdots 
  ---------------------------------------------------------------------- */
  	.cdots {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 20px;
	}

	.cdots li {
		flex: 1;
		max-width: 112px;
		height: 2px;
		margin: 0;
		background: #969696;
		cursor: pointer;
	}

	.cdots li:hover,
	.cdots li.slick-active {
		background: #ffffff;
	}

	.cdots li button {
		display: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		outline: none;
		padding: 0;
		border: none;
		background-color: transparent;
	}


	/* turn-slide 
  ---------------------------------------------------------------------- */
	.turn-slide {
		position: relative;
		width: 100%;
		height: 828px;
		margin: 0;
		padding: 0;
		list-style: none;
		overflow: hidden;
	}

	.turn-slide li {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 0;
		clip-path: inset(0 100% 0 0);
		transition: none;
	}

	.turn-slide li img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.turn-slide li.active {
		z-index: 2;
		animation: slideOverlay 1.5s cubic-bezier(0.75, 0, 0.25, 1) forwards;
	}

	.turn-slide li.prev {
		z-index: 1;
		clip-path: inset(0 0 0 0);
	}

	@keyframes slideOverlay {
		0% {
			clip-path: inset(0 0 0 100%);
		}
		100% {
			clip-path: inset(0 0 0 0);
		}
	}

	/* pagetop
  ---------------------------------------------------------------------- */
	#page-top {
		width: 80px;
		height: 80px;
		position: fixed;
		bottom: 0;
		right: 0;
		z-index: 10;
		cursor: pointer;
		display: none;
		background: url(../images/pagetop.svg);
		background-size: contain;
	}

	#page-top.stop {
		position: absolute;
		bottom: 0;
	}

	#page-top:hover {
		opacity: 0.8;
	}


	/* loading
  ---------------------------------------------------------------------- */
	#loading{
		position: fixed !important;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 9999;
		transition: 1s all ease-in-out;
		opacity: 1;
		background-color: #fff;
	}

	#loading.loaded{
		opacity: 0;
		pointer-events: none;
	}

	#loading img{
		width: 256px;
		height: auto;
		z-index: 1;
		margin-top: 10px;
	}

	body.loading {
		overflow: hidden;
	}

}

/* End PC */
/* ---------------------------------------------------------------------- */

/* ---------------------------------------------------------------------- */
/* SP */
/* ---------------------------------------------------------------------- */
@media (max-width: 1000px) {

	#mainvisual {
		width: 100%;
		position: relative;
		overflow: hidden;
	}

	#mainvisual picture {
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
	}

	#mainvisual picture img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.mainvisual__ttl {
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		flex-direction: column;
		justify-content: center;
        color: #fff;
        letter-spacing: 0.1em;
        text-align: center;
	}

	.mainvisual__ttl span {
		font-size:2.8rem;
        letter-spacing: 0.08em;
        writing-mode: vertical-rl;
		font-weight: bold;
        display: block;
	}

	/* deco__mask
  ---------------------------------------------------------------------- */
	.deco__mask {
        width: 100vw;
        height: 81.5%;
        animation: bg-gradient 5s linear infinite alternate;
        background: linear-gradient(to right, #a9efdb 0%, #ebce8c 100%);
		background-size: 200% 100%; 
        position: absolute;
        bottom: 0;
        z-index: -1;
	}

	.deco__mask::after {
        content: "";
        position: absolute;
        top: -1px;
        left: 0;
        width: 100%;
        height: 265px;
        background-color: white;
        mask-size: auto;
        mask-repeat: repeat-x;
        mask-image: url(../images/bg_mask_sp.png);
	}

	.deco__mask--color2 {
       	background: linear-gradient(to right, #aaefdb 0%, #b8bff8 100%);
        background-size: 200% 100%;
	}

	.deco__mask--color3 {
		background: linear-gradient(#d3d4fa 0%, #eeddb3 100%);
        background-size: 200% 100%;
	}

	.deco__mask--color4 {
		background: linear-gradient(to right, #6b72f1 0%, #27cfac 100%);
		background-size: 200% 100%;
	}

	.deco__mask.deco__mask--vertical {
		animation: bg-gradient_vertical 5s linear infinite alternate;
		background-size: 100% 200%;
	}


	@keyframes bg-gradient {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: 100% 0;
        }
    }

	@keyframes bg-gradient_vertical {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: 0 100% ;
        }
    }

	/* title
---------------------------------------------------------------------- */
	.ctitle {
        font-size: 7rem;
        letter-spacing: 0.26em;
        line-height: 1.4;
        text-align: center;
        position: relative;
	}

	.ctitle__logo {
        content: "";
		color: var(--primary-color);
        display: block;
        width: 14rem;
        height: 8.18rem;
        position: absolute;
        left: 49%;
        bottom: 125%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
	}

	.block-title {
		font-size: 6rem;
		letter-spacing: 0.26em;
		font-weight: 500;
	}

    .ctitle .en {
        display: block;
		font-weight: bold;
        font-size: 2.8rem;
        letter-spacing: 0;
    }


	/* btn
---------------------------------------------------------------------- */
	.cbtn {
		color: #fff;
		background: url(../images/icon_arrow02_w.svg) no-repeat center right 15%;
		background-size: 6.58rem 1.8rem;
		background-color: var(--accent-color);
		min-width: 44.8rem;
		height: 9.6rem;
		font-weight: 500;
		padding: 0 2.6em 0 .5em;
		font-size: 4rem;
		font-weight: bold;
		border-radius: 4rem;
		letter-spacing: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: relative;
	}

	.cbtn-plan {
		color: #fff;
		width: 196px;
		height: 48px;
		font-size: 1.6rem;
		letter-spacing: 0.15em;
		line-height: 1.4;
		font-weight: bold;
		text-align: center;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		padding: 6px 40px 6px 40px;
        gap: 10%;
		background: url(../images/icon_calendar.svg) left 15px center no-repeat ,  url(../images/icon_arrow.svg) right 15px center no-repeat;
		background-size: 20px 21px , 15px 4px;
		background-color: #BB932C;
	}

	.cbtn-plan .en {
		font-size: 1.2rem;
		display: block;
		letter-spacing: 0;
		font-family: "Manrope", sans-serif;
	}

	.cbtn-map {
		font-size: 3rem;
		letter-spacing: 0;
		font-weight: bold;
		width: 54.9rem;
		height: 9.6rem;
		max-width: 100%;
		color: #969696;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: url(../images/icon_arrow02_g.svg) no-repeat center right 8%;
		background-size: 4.93rem .81rem;
		border: 1px solid #969696;
		padding: 1em 1em 1em 1em;
	}

	.cbtn-insta {
		color: #969696;
		width: 54.9rem;
		max-width: 100%;
		height: 9.6rem;
		font-size: 3rem;
		letter-spacing: 0;
		line-height: 1.4;
		font-weight: bold;
		text-align: center;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		padding: 1em 1em 1em 1em;
        gap: 10%;
		border: 1px solid #969696;
		background: url(../images/icon_instagram.svg) left 5.5% center no-repeat ,  url(../images/icon_arrow02_g.svg) right 8% center no-repeat;
		background-size: 4.2rem 4.2rem , 4.93rem .81rem;
		background-color: #fff;
	}

	.cbtn-insta.cbtn-insta--transparent {
		background-color: transparent;
		color: #fff;
		border: 1px solid #FFFFFF;
		background-image: 
		url(../images/icon_instagram03.svg), 
		url(../images/icon_arrow02_w.svg);
	}

	.clink {
		font-size: 3.8rem;
		color: var(--accent-color);
		font-weight: bold;
		letter-spacing: 0;
		position: relative;
	}

	.clink::after {
		content: "";
		color: #fff;
		width: 6.17rem;
		height: 1.1rem;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 120%;
		background: url(../images/icon_arrow02.svg) no-repeat;
		background-size: contain;
	}

	/* cnav 
  ---------------------------------------------------------------------- */
  .cnav {
	padding: 7vw 0;
	background: url(../images/bg_nav.png);
  }

  .cnav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 5vw 0;
	justify-content: center;
  }

  .cnav__list li {
	border-right: 1px solid #000;
	border-left: 1px solid #000;
	padding: 0 .55em 0 .9em;
	margin-left: -1px;
  }

  .cnav__list li a {
	display: block;
	font-size: 2.8rem;
	line-height: 1;
	letter-spacing: 0.36em;
	padding: 0;
	text-align: center;
	position: relative;
  }

  .cnav__list li a::after {
	content: "∨";
	font-size: 1.4rem;
	display: inline-block;
	transform: translateY(-.3em);
  }

	/* cdots 
  ---------------------------------------------------------------------- */
  	.cdots {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
	}

	.cdots li {
		flex: 1;
		max-width: 15vw;
		height: 2px;
		margin: 0;
		background: #969696;
		cursor: pointer;
	}

	.cdots li:hover,
	.cdots li.slick-active {
		background: #ffffff;
	}

	.cdots li button {
		display: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		outline: none;
		padding: 0;
		border: none;
		background-color: transparent;
	}


	/* turn-slide 
  ---------------------------------------------------------------------- */
	.turn-slide {
		position: relative;
		width: 100%;
		height: 828px;
		margin: 0;
		padding: 0;
		list-style: none;
		overflow: hidden;
	}

	.turn-slide li {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 0;
		clip-path: inset(0 100% 0 0);
		transition: none;
	}

	.turn-slide li img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.turn-slide li.active {
		z-index: 2;
		animation: slideOverlay 1.5s cubic-bezier(0.75, 0, 0.25, 1) forwards;
	}

	.turn-slide li.prev {
		z-index: 1;
		clip-path: inset(0 0 0 0);
	}

	@keyframes slideOverlay {
		0% {
			clip-path: inset(0 0 0 100%);
		}
		100% {
			clip-path: inset(0 0 0 0);
		}
	}


	/* pagetop
	  ---------------------------------------------------------------------- */
	#page-top {
		width: 15vw;
		height: 15vw;
		position: fixed;
		right: 0;
		bottom: 17vw;
		z-index: 100;
		display: none;
		cursor: pointer;
		background: url(../images/pagetop.svg);
		background-size: contain;
	}
	#page-top.stop {
		position: absolute;
	}


	/* loading
	  ---------------------------------------------------------------------- */
	#loading {
		background: #fff;
		position: fixed !important;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 99999;
		opacity: 1;
		transition: 1s all ease-in-out;
	}

	#loading.loaded{
		opacity: 0;
		pointer-events: none;
	}

	#loading img{
		width: 50vw;
		height: auto;
		z-index: 1;
	}

	body.loading {
		overflow: hidden;
	}
}

/* End @media (max-width:1000px) */