@charset "UTF-8";

/* header
----------------------------------------*/
.header_logo {
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s;
}
.scroll.header .header_logo,
body:not(.open) .scroll.header .header_fair {
	opacity: 1;
	pointer-events: all;
}

/* mv
----------------------------------------*/
.mv_bg {
	overflow: hidden;
	position: sticky;
	top: 0;
	left: 0;
	margin-bottom: -100vh;
}
.mv_bg img {
	width: 100%;
	height: 100vh;
	object-fit: cover;
}
.mv_bg figure {
	float: left;
}
.mv_bg::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .25);
	z-index: 1010;
}
.mv_ttl {
	width: 100%;
	height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-bottom: 10.2rem;
	z-index: 1200;
}
.mv_ttl::before {
	content: '';
	display: block;
	width: .08rem;
	height: 7.7rem;
	background: #fff;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0 auto;
}
.mv_ttl::after {
	content: '';
	display: block;
	width: .7rem;
	height: .7rem;
	background: #fff;
	transform: rotate(45deg);
	position: absolute;
	left: 0;
	right: 0;
	bottom: 8.2rem;
	margin: 0 auto;
	animation-fill-mode: forwards;
	animation-duration: 2s;
	animation-name: mv_scroll;
	animation-iteration-count: infinite;
	animation-timing-function: ease-out;
}
@keyframes mv_scroll {
	0% {
		transform: translateY(0) rotate(45deg);
		opacity: 1;
	}
	20% {
		transform: translateY(0) rotate(45deg);
		opacity: 1;
	}
	100% {
		transform: translateY(7rem) rotate(45deg);
		opacity: 0;
	}
}
.mv_logo {
	max-width: 65.5rem;
	margin: 0 auto;
	filter: drop-shadow(.1rem .2rem 1rem rgba(0,0,0,.5));
	left: .2rem;
}
.mv_ttl p {
	color: #fff;
	text-align: center;
	font-size: 1.6rem;
	letter-spacing: .08em;
	margin-top: 1.3rem;
}
@media only screen and (max-width: 768px) {
body:not(.open) .header_fair {
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s;
}
	.mv_bg::after {
		background: rgba(0, 0, 0, .2);
	}
	.mv_ttl {
		padding-bottom: 7.5rem;
	}
	.mv_logo {
		max-width: 24.4rem;
		left: auto;
	}
	.mv_ttl p {
		font-size: 1.3rem;
		margin-top: 1.5rem;
	}
}

/* bg_01
----------------------------------------*/
.bg_01::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 118.7rem;
	background: url(../../img/index/bg_01.png) no-repeat left top / 100% 118.7rem;
	z-index: 1;
}
.bg_01_video {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	margin-bottom: -100vh;
}
.bg_01_video::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .2);
}
.bg_01_video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media only screen and (min-width: 769px) {
	.bg_01::before {
		background: url(../../img/index/bg_01.png) no-repeat left top / 100% 118.7rem;
		-webkit-mask-image:  url(../../img/index/bg_01.png), url(../../img/index/bg_01_mask.svg);
		mask-image:  url(../../img/index/bg_01.png), url(../../img/index/bg_01_mask.svg);
		-webkit-mask-composite: destination-out;
		mask-composite: exclude;
		-webkit-mask-size: 100% 100%, 33rem 50rem;
		mask-size: 100% 100%, 33rem 50rem;
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-repeat: no-repeat;
		mask-position: left top, center 26.4rem;
		-webkit-mask-position: left top, center 26.4rem;
	}
}
@media only screen and (max-width: 768px) {
	.bg_01::before {
		background-image: url(../../img/index/bg_01-sp.png);
	}
}

/* news
----------------------------------------*/
.news {
	max-width: 105.9rem;
	margin: 0 auto;
	padding: 3rem 0 13.5rem;
	display: flex;
	justify-content: space-between;
	z-index: 2;
}
.news_item {
	width: 47rem;
	display: flex;
	align-items: flex-start;
	gap: 4.7rem;
	padding: 0 3.5rem .6rem 0;
}
.news_item::before {
	content: '';
	display: block;
	background: url(../../img/common/icon_arrow_01.svg) no-repeat center center / .7rem auto;
	width: 2.5rem;
	height: 2.5rem;
	border: .1rem solid #BCBAB4;
	border-radius: 50%;
	position: absolute;
	top: 0;
	bottom: .5rem;
	right: 0;
	margin: auto 0;
	box-sizing: border-box;
}
.news_item::after {
	content: '';
	display: block;
	height: .1rem;
	background: #BCBAB4;
	position: absolute;
	left: 10rem;
	right: 0;
	bottom: 0;
}
.news_item figure {
	width: 9.4rem;
	box-shadow: .6rem .6rem 0 #A08962;
}
.news_item figure img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}
.news_ttl {
	flex: 1;
	font-size: 1.3rem;
	letter-spacing: .05em;
	line-height: 2;
	font-weight: 600;
	margin-top: -.4rem;
}
.news_ttl .en {
	display: block;
	font-size: 1.6rem;
	color: #A08962;
	letter-spacing: .1em;
	font-weight: 400;
	margin-bottom: -.2rem;
}
@media only screen and (max-width: 768px) {
	.news {
		margin: 0 0 0 2rem;
		padding: 2rem 0 7rem;
		display: block;
	}
	.news_item {
		width: auto;
		gap: 2.5rem;
		align-items: center;
		padding: 0 3.5rem 3.3rem 0;
	}
	.news_item::before {
		right: 2rem;
		bottom: 1rem;
	}
	.news_item::after {
		left: .6rem;
	}
	.news_item figure {
		width: 9rem;
	}
	.news_ttl {
		font-size: 1.2rem;
		line-height: 1.8333;
		margin-top: .1rem;
	}
	.news_ttl .en {
		font-size: 1.3rem;
		margin-bottom: -.1rem;
	}
}

/* concept
----------------------------------------*/
.concept {
	z-index: 2;
}
.concept_inner {
	max-width: 113.6rem;
	margin: 0 auto;
	padding-top: 21.5rem;
}
.concept_inner::before {
	content: '';
	display: block;
	width: 55.2rem;
	height: 56.2rem;
	background: url(../../img/index/concept_txt_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: .2rem;
	left: -3.2rem;
}
.concept_ttl {
	width: 31.3rem;
	margin: 0 0 0 auto;
}
.concept_ttl h2 {
	margin-bottom: 1.8rem;
}
.concept_ttl p {
	font-size: 1.4rem;
	line-height: 1.7143;
	color: #A08962;
	letter-spacing: .08em;
}
.concept_box {
	width: 84.8rem;
	color: #fff;
	margin: 0 auto;
	display: flex;
	padding: 50.8rem 0 22.1rem;
}
.concept_box h3 {
	width: 50.3rem;
	font-size: 4rem;
	line-height: 1.65;
	font-weight: 500;
	letter-spacing: .18em;
}
.concept_txt p {
	font-size: 1.6rem;
	line-height: 1.875;
	letter-spacing: .16em;
}
.concept_txt p + p {
	margin-top: 2.25rem;
}
.concept_txt .btn {
	margin-top: 5.3rem;
}
@media only screen and (max-width: 768px) {
	.concept_inner {
		padding-top: 49.4rem;
	}
	.concept_inner::before {
		width: 36rem;
		height: 35.7rem;
		background-image: url(../../img/index/concept_txt_01-sp.svg);
		top: -.2rem;
		left: 0;
	}
	.concept_ttl {
		width: 27.4rem;
		margin: 0 auto;
	}
	.concept_ttl h2 {
		margin-bottom: 1.3rem;
	}
	.concept_ttl p {
		text-align: center;
	}
	.concept_box {
		width: auto;
		display: block;
		text-align: center;
		padding: 25.1rem 0 18.7rem;
	}
	.concept_box h3 {
		width: auto;
		font-size: 3rem;
		line-height: 1.7333;
		margin-bottom: 2.9rem;
	}
	.concept_txt p {
		font-size: 1.4rem;
		line-height: 2;
	}
	.concept_txt p + p {
		margin-top: 2.2rem;
	}
	.concept_txt .btn {
		margin: 3.4rem auto 0;
		left: .3rem;
	}
}

/* stage
----------------------------------------*/
.stage {
	height: 87.1rem;
	background: url(../../img/index/stage_bg_01.webp) no-repeat left top / 100% 100%;
	text-align: center;
	color: #fff;
	padding: 17rem 0 0;
}
.stage::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 32.4305%;
	padding-top: 81.9912%;
	margin-top: 10.7613%;
	background: url(../../img/index/stage_bg_02.webp) no-repeat left top / 100% 100%;
	z-index: 10;
}
.stage::before {
	content: '';
	display: block;
	width: 106.2rem;
	height: 71.6rem;
	background: url(../../img/index/stage_txt_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	left: 0;
	right: 0;
	top: -11.7rem;
	margin: 0 auto;
}
.stage h2 {
	font-size: 2.6rem;
	line-height: 2;
	letter-spacing: .18em;
	font-weight: 600;
	margin-bottom: 1.4rem;
}
.stage h2 .en {
	display: block;
	font-size: 1.6rem;
	letter-spacing: .08em;
	font-weight: 400;
	margin-bottom: 3.1rem;
}
.stage p {
	font-size: 1.4rem;
	line-height: 2.1429;
	letter-spacing: .16em;
}
@media only screen and (max-width: 768px) {
	.stage {
		height: 68.1rem;
		background-image: url(../../img/index/stage_bg_01-sp.webp);
		text-align: left;
		padding: 18rem 4rem 0;
	}
	.stage::after {
		top: 32.5rem;
		width: 100%;
		height: 83.1rem;
		padding-top: 0;
		margin-top: 0;
		background-image: url(../../img/index/stage_bg_02-sp.webp);
	}
	.stage::before {
		width: 50.8rem;
		height: 34.3rem;
		right: auto;
		top: -9.5rem;
		margin: 0;
	}
	.stage h2 {
		font-size: 2.3rem;
		margin-bottom: 1.6rem;
	}
	.stage h2 .en {
		margin-bottom: 3.2rem;
	}
	.stage p {
		font-size: 1.3rem;
		line-height: 2.1538;
	}
}

/* chapel
----------------------------------------*/
.chapel::before {
	content: '';
	display: block;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: url(../../img/index/chapel_bg_01.webp) no-repeat center center / cover;
	margin-bottom: calc(-100vh - 30.4rem);
}
.chapel figure {
	margin: 0 1.1rem;
}
.chapel_inner {
	max-width: 116rem;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	padding-bottom: 11rem;
}
.chapel_inner h2 {
	width: 68.8rem;
	margin-top: -1.4rem;
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: .08em;
	color: #fff;
}
.chapel_inner h2 img {
	width: 44.3rem;
}
.chapel_inner h2 span {
	position: absolute;
	left: 15.3rem;
	bottom: .4rem;
}
.chapel_txt {
	padding-top: 6.1rem;
}
.chapel_txt p {
	font-size: 2rem;
	font-weight: 600;
	letter-spacing: .18em;
	line-height: 2;
	color: #fff;
	margin-bottom: 4.1rem;
}
@media only screen and (max-width: 768px) {
	.chapel::before {
		background-image: url(../../img/index/chapel_bg_01-sp.webp);
		margin-bottom: calc(-100vh - 7.4rem);
	}
	.chapel figure {
		margin: 0 1rem;
	}
	.chapel_inner {
		display: block;
		padding-bottom: 9.9rem;
	}
	.chapel_inner h2 {
		width: 31.1rem;
		margin: -6.9rem 0 0 -.7rem;
		font-size: 1.4rem;
	}
	.chapel_inner h2 img {
		width: 31.1rem;
	}
	.chapel_inner h2 span {
		left: auto;
		right: 0;
		bottom: -.3rem;
	}
	.chapel_txt {
		padding: 3.7rem 3rem 0 4rem;
	}
	.chapel_txt p {
		font-size: 1.8rem;
		line-height: 1.8889;
		margin-bottom: 3.2rem;
	}
}

/* party
----------------------------------------*/
.party_head::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 2.9rem;
	width: 100%;
	background: url(../../img/index/party_bg_01.webp) no-repeat left top / 100% 100%;
}
.party_head_inner {
	width: calc(50% + 53rem);
	padding-top: 20.2rem;
	display: flex;
	z-index: 2;
}
.party_head_img {
	flex: 1;
	overflow: hidden;
}
.party_head_img figure {
	float: left;
}
.party_head_box {
	width: 41.2rem;
	padding-left: 5.8rem;
	margin-top: -3.4rem;
}
.party_head h2 {
	text-align: right;
	font-size: 1.6rem;
	color: #A08962;
	line-height: 1.625;
	letter-spacing: .08em;
	font-weight: 400;
	margin-bottom: 3.4rem;
}
.party_head h2 span {
	display: block;
	margin: 1.2rem -.2rem 0 0;
}
.party_head_box p {
	text-align: right;
	font-size: 2rem;
	line-height: 2;
	letter-spacing: .18em;
	font-weight: 500;
	margin-right: -.5rem;
}
.party_head_box .btn {
	margin: 4.1rem 0 0 auto;
}
.party_contents {
	margin-top: -3rem;
	padding-bottom: 23.9rem;
}
.party_contents::before {
	content: '';
	display: block;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: url(../../img/index/party_bg_02.webp) no-repeat left top / cover;
	margin-bottom: calc(-100vh - 23.9rem);
}
.party_box {
	max-width: 116rem;
	margin: 23.9rem auto 0;
	padding-top: 15rem;
	padding-bottom: 10rem;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4rem;
	text-align: center;
}
.party_item {
	display: block;
}
.party_box h3 {
	font-size: 1.6rem;
	letter-spacing: .08em;
	color: #A08962;
	font-weight: 400;
	margin: 2rem 0 1.1rem;
}
.party_box p {
	font-size: 2rem;
	letter-spacing: .1em;
	font-weight: 500;
	line-height: 1.6;
}
.party_box .btn_small {
	margin: 1.5rem auto 0;
}
.party_small {
	max-width: 128.6rem;
	margin: 0 auto;
	display: flex;
	align-items: center;
}
.party_small_img {
	width: 84rem;
	order: 1;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
.party_small_box {
	flex: 1;
	padding: 0 0 0 6.3rem;
}
.party_small_box h3 {
	font-size: 1.6rem;
	letter-spacing: .08em;
	color: #A08962;
	font-weight: 400;
	margin: 0 0 1.5rem;
}
.party_small_box p {
	font-size: 2rem;
	letter-spacing: .18em;
	font-weight: 500;
	line-height: 1.6;
}
.party_small_box .btn_small {
	margin-top: 2.6rem;
}
@media (hover:hover) {
	.party_item:hover,
	.party_small:hover {
		opacity: 1;
	}
	.party_item:hover .btn_small::before,
	.party_small:hover .btn_small::before {
		background: #A08962;
	}
	.party_item:hover .btn_small::after,
	.party_small:hover .btn_small::after {
		filter: brightness(0) invert(2);
	}
}
@media only screen and (max-width: 768px) {
	.party_head {
		position: static;
	}
	.party_head::before {
		bottom: auto;
		height: 48.9rem;
		background-image: url(../../img/index/party_bg_01-sp.webp);
	}
	.party_head_inner {
		width: auto;
		padding-top: 28.5rem;
		display: block;
		position: static;
	}
	.party_head_img {
		margin-right: 4rem;
	}
	.party_head_box {
		position: static;
		width: auto;
		padding-left: 4.1rem;
		margin-top: 5rem;
	}
	.party_head h2 {
		width: 26.7rem;
		position: absolute;
		top: 6rem;
		right: 3.1rem;
		font-size: 1.4rem;
		line-height: 1.7143;
		margin-bottom: 0;
	}
	.party_head h2 span {
		margin: .6rem .9rem 0 0;
	}
	.party_head_box p {
		text-align: left;
		font-size: 1.8rem;
		line-height: 1.8889;
		margin-right: 0;
		z-index: 2;
	}
	.party_head_box .btn {
		margin: 0;
		position: absolute;
		left: 4rem;
		bottom: 18.2rem;
		z-index: 2;
	}
	.party_contents {
		margin-top: -20rem;
		padding-bottom: 28.7rem;
	}
	.party_contents::before {
		background-image: url(../../img/index/party_bg_02-sp.webp);
	}
	.party_box {
		width: 27rem;
		margin: 34.5rem 0 0 4rem;
		padding-left: 0;
		padding-bottom: 7rem;
		display: block;
		text-align: left;
	}
	.party_box .slick-track::after {
		content: '';
		display: block;
		clear: both;
		width: 0;
		height: 0;
	}
	.party_box .slick-dots {
		display: flex;
		margin: 1.8rem 0 0 .2rem;
		gap: 1.3rem;
	}
	.party_box .slick-dots button {
		width: .7rem;
		height: .7rem;
		appearance: none;
		padding: 0;
		border: 0;
		background: #A08962;
		opacity: .5;
		overflow: hidden;
		text-indent: -99rem;
		transform: rotate(45deg);
	}
	.party_box .slick-dots .slick-active button {
		opacity: 1;
	}
	.party_item {
		width: 25rem;
		margin-right: 2rem;
	}
	.party_item.slick-slide {
		float: left;
	}
	.party_box figure img {
		width: 100%;
		height: 38rem;
		object-fit: cover;
	}
	.party_box h3 {
		font-size: 1.4rem;
		margin: 1.7rem 0 .4rem;
	}
	.party_box p {
		font-size: 1.4rem;
	}
	.party_box p::after,
	.party_small_box p::after {
		content: '';
		display: block;
		background: url(../../img/common/icon_arrow_01.svg) no-repeat center center / .7rem auto;
		width: 2.5rem;
		height: 2.5rem;
		border-radius: 50%;
		border: .1rem solid #A08962;
		position: absolute;
		right: 0;
		bottom: -.1rem;
		box-sizing: border-box;
	}
	.party_box .btn_small {
		display: none;
	}
	.party_small {
		display: block;
		margin-left: 4rem;
	}
	.party_small_img {
		width: auto;
		display: block;
		overflow: hidden;
	}
	.party_small_img figure.slick-slide {
		float: left;
	}
	.party_small_box {
		padding: 1.2rem 0 0;
	}
	.party_small_box h3 {
		font-size: 1.4rem;
		margin: 0 0 .7rem;
	}
	.party_small_box p {
		font-size: 1.4rem;
		letter-spacing: .1em;
		margin-right: 4rem;
	}
	.party_small_box .btn_small {
		display: none;
	}
}

/* p_fair
----------------------------------------*/
.p_fair {
	padding: .1rem 0 12rem;
	background: none;
}
.p_fair::before {
	content: '';
	display: block;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: url(../../img/index/fair_bg_01.webp) no-repeat center center / cover;
	margin-bottom: calc(-100vh - 9.5rem);
}
.p_fair_head {
	margin-top: -9.5rem;
}
.p_fair_head_ttl {
	padding: 17rem 0 0;
}
.p_fair_head_ttl p {
	display: none;
}
.p_fair_head_ttl h2 {
	color: #6C7260;
}
.p_fair_head_ttl h2 img {
	filter: none;
}
.calendar_body .cell {
	background: rgba(232, 232, 232, 0.3);
}
.month_title,
.calendar_nav,
.calendar_container table {
	color: #6C7260;
}
.calendar_nav .btn_prev::before,
.calendar_nav .btn_next::after {
	border-color: #6C7260;
	filter: none;
}
@media only screen and (max-width: 768px) {
	.p_fair {
		padding-bottom: 35.8rem;
	}
	.p_fair::before {
		background-image: url(../../img/index/fair_bg_01-sp.webp);
	}
	.p_fair_head {
		margin-top: -8rem;
	}
	.p_fair_head_ttl {
		padding: .1rem 3.1rem 0;
		text-align: left;
	}
	.p_fair_head_ttl h2 {
		text-align: left;
		margin-bottom: .4rem;
	}
	.p_fair_head_ttl h2 img {
		margin: 1.6rem 0 0;
	}
	.p_fair_bnr {
		bottom: 12rem;
	}
	.p_fair_list_ul .slick-dots {
		gap: 1.7rem;
	}
	.p_fair_list_ul .slick-dots button {
		background: #6C7260;
	}
}

/* dress
----------------------------------------*/
.dress_bg {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	margin-bottom: -100vh;
}
.dress_bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.dress_bg::before {
	content: '';
	display: block;
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	mix-blend-mode: saturation;
}
.dress_bg::after {
	content: '';
	display: block;
	background: rgba(0, 0, 0, .37);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}
.dress_inner {
	max-width: 116.2rem;
	margin: 0 auto;
	padding: 18rem 0 23.1rem;
	display: flex;
	z-index: 3;
	color: #fff;
}
.dress_inner::before {
	content: '';
	display: block;
	width: 103.4rem;
	height: 63.7rem;
	background: url(../../img/index/dress_txt_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: 9.9rem;
	left: 0;
}
.dress_inner figure {
	width: 46rem;
	border-radius: 23rem 23rem 0 0;
	overflow: hidden;
}
.dress_box {
	flex: 1;
	padding: 10.1rem 0 0 14rem;
}
.dress h2 {
	font-weight: 400;
	font-size: 1.6rem;
	letter-spacing: .08em;
}
.dress h2 img {
	margin-top: 3.1rem;
	width: 26rem;
}
.dress h3 {
	font-size: 3rem;
	font-weight: 600;
	letter-spacing: .18em;
	margin-bottom: 1.9rem;
}
.dress_txt {
	margin: 11.7rem 0 0 12.6rem;
}
.dress_txt p {
	font-size: 1.4rem;
	letter-spacing: .16em;
	line-height: 2.1429;
	margin-bottom: 4.3rem;
}
@media only screen and (max-width: 768px) {
	.dress_inner {
		padding: 54.8rem 0 17.3rem;
		display: block;
	}
	.dress_inner::before {
		width: 60.6rem;
		height: 37.3rem;
		top: 31rem;
		left: -12.9rem;
		z-index: 2;
	}
	.dress_inner figure {
		width: 27rem;
		margin: 0 auto;
		border-radius: 13.5rem 13.5rem 0 0;
	}
	.dress_box {
		position: static;
		padding: .1rem 0 0 4.1rem;
	}
	.dress h2 {
		position: static;
		font-size: 1.4rem;
		margin-top: -5rem;
	}
	.dress h2 span {
		display: block;
		position: absolute;
		top: 20rem;
		left: 0;
		right: 0;
		text-align: center;
		line-height: 1.7143;
	}
	.dress h2 img {
		width: 16.1rem;
		z-index: 10;
		position: relative;
	}
	.dress h3 {
		font-size: 2rem;
		margin-bottom: 1.7rem;
	}
	.dress_txt {
		margin: 2.9rem 0 0 2rem;
	}
	.dress_txt p {
		font-size: 1.3rem;
		line-height: 2.1538;
		margin-bottom: 3.3rem;
	}
	.dress_txt .btn {
		width: 27rem;
	}
	.dress_txt .btn::after {
		right: 2.8rem;
	}
}

/* bg_02
----------------------------------------*/
.bg_02::before {
	content: '';
	display: block;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: url(../../img/index/fair_bg_01.webp) no-repeat center center / cover;
	margin-bottom: -100vh;
}
@media only screen and (max-width: 768px) {
	.bg_02::before {
		background-image: url(../../img/index/fair_bg_01.webp);
	}
}

/* cuisine
----------------------------------------*/
.cuisine::after {
	content: '';
	display: block;
	background: url(../../img/index/cuisine_img_02.webp) no-repeat left top / 100% auto;
	width: 28.5rem;
	height: 58.9rem;
	position: absolute;
	top: 39.2rem;
	left: 0;
}
.cuisine_inner {
	max-width: 106rem;
	margin: 0 auto;
	padding: 10.8rem 0 10.3rem;
}
.cuisine_inner::after {
	content: '';
	display: block;
	background: url(../../img/index/cuisine_img_01.webp) no-repeat left top / 100% auto;
	width: 66.4rem;
	height: 66.4rem;
	position: absolute;
	top: -13rem;
	left: calc(50% + 9.2rem);
}
.cuisine h2 {
	width: 46rem;
	font-weight: 400;
}
.cuisine h2 span {
	font-size: 1.6rem;
	color: #A08962;
	letter-spacing: .08em;
	position: absolute;
	right: -.3rem;
	bottom: 1.8rem;
}
.cuisine_box {
	margin: 2.3rem 0 0 18.2rem;
	z-index: 2;
}
.cuisine h3 {
	font-size: 3rem;
	font-weight: 600;
	letter-spacing: .18em;
	line-height: 1.7333;
	margin-bottom: 1.5rem;
}
.cuisine_box p {
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 2.1429;
	letter-spacing: .16em;
}
.cuisine_box .btn {
	margin-top: 4.3rem;
}
@media only screen and (max-width: 768px) {
	.cuisine::after {
		width: 14.8rem;
		height: 30.6rem;
		top: 52.3rem;
	}
	.cuisine_inner {
		padding: 12rem 0 19.7rem;
	}
	.cuisine_inner::after {
		width: 28rem;
		height: 28rem;
		top: -6.9rem;
		left: 20.8rem;
	}
	.cuisine h2 {
		width: 25.5rem;
		z-index: 2;
	}
	.cuisine h2 span {
		font-size: 1.4rem;
		right: -.3rem;
		bottom: -.1rem;
	}
	.cuisine_box {
		margin: 2.6rem 0 0 4rem;
	}
	.cuisine h3 {
		font-size: 2rem;
		line-height: 2.1;
		margin-bottom: .9rem;
	}
	.cuisine_box p {
		font-size: 1.3rem;
		line-height: 2.1538;
	}
	.cuisine_box .btn {
		width: 27rem;
		margin-top: 3.3rem;
		z-index: 2;
	}
	.cuisine_box .btn::after {
		right: 2.8rem;
	}
}

/* style
----------------------------------------*/
.style {
	background: url(../../img/index/style_bg_01.webp) no-repeat center top / 100% 104.7rem;
	padding: 20.5rem 0 15.4rem;
	color: #fff;
}
.style_inner {
	max-width: calc(50% + 68.3rem);
	padding-left: 2.3rem;
	margin-left: auto;
	display: flex;
}
.style_ttl {
	width: 57rem;
	padding: 1.9rem 12.6rem 0 0;
}
.style_ttl h2 {
	margin-bottom: 4.5rem;
}
.style_ttl h2 span {
	font-size: 1.6rem;
	letter-spacing: .08em;
	font-weight: 400;
	position: absolute;
	right: -.1rem;
	top: 5.7rem;
}
.style_ttl p {
	text-align: right;
	font-size: 2.6rem;
	font-weight: 700;
	letter-spacing: .18em;
	line-height: 2;
	margin-right: -.5rem;
}
.style_box {
	flex: 1;
	overflow: hidden;
	padding-left: 1rem;
}
.style_slide {
	width: 35rem;
}
.style_item {
	width: 32rem;
	margin-right: 3rem;
	display: block;
}
.style_item.slick-slide {
	float: left;
}
.style_slide .slick-track::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	clear: both;
}
.style_number {
	position: absolute;
	top: 0;
	left: -1rem;
	z-index: 2;
}
.style_number img {
	height: 4.32rem;
	width: auto;
}
.style_slide figure {
	clip-path: polygon(0 7.2rem, 0 100%, 100% 100%, 100% 0, 7.4rem 0);
}
.style_slide h3 {
	font-size: 2rem;
	letter-spacing: .1em;
	margin: 2.2rem 0 1rem;
}
.style_txt {
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 2.1429;
}
.style_more {
	border-top: .1rem solid #fff;
	font-size: 1.6rem;
	letter-spacing: .08em;
	margin-top: 3rem;
	padding-top: .1rem;
}
.style_more::after {
	content: '';
	display: block;
	width: 2.1rem;
	height: 2.1rem;
	background: url(../../img/common/icon_01.svg) no-repeat left top / 100% auto;
	filter: brightness(0) invert(1);
	position: absolute;
	top: -1.1rem;
	right: 2.8rem;
	transition: opacity .6s ease-in-out, transform .6s ease-in-out;
}
.style_slide .slick-dots {
	display: flex;
	margin-top: 3.8rem;
	gap: 2.08rem;
}
.style_slide .slick-dots button {
	width: .9rem;
	height: .9rem;
	appearance: none;
	padding: 0;
	border: 0;
	background: #A08962;
	overflow: hidden;
	text-indent: -99rem;
	transform: rotate(45deg);
}
.style_slide .slick-dots .slick-active button {
	background: #fff;
}
@media (hover:hover) {
	.style_item:hover .style_more::after {
		opacity: 0;
		transform: translateX(2.8rem) scale(.5);
	}
}
@media only screen and (max-width: 768px) {
	.style {
		background: url(../../img/index/style_bg_01-sp.webp) no-repeat center top / 100% 106.1rem;
		padding: 10rem 0 13.7rem;
	}
	.style_inner {
		max-width: none;
		padding-left: 0;
		display: block;
	}
	.style_ttl {
		width: auto;
		padding: 0 0 6.2rem;
	}
	.style_ttl h2 {
		width: 25.8rem;
		margin: 0 0 2.1rem 4rem;
	}
	.style_ttl h2 span {
		top: 1.4rem;
	}
	.style_ttl p {
		text-align: center;
		font-size: 1.8rem;
		line-height: 2.1111;
		margin-right: 0;
		padding-left: .3rem;
	}
	.style_box {
		padding-left: 0;
	}
	.style_slide {
		width: 27.5rem;
		margin: 0 auto;
	}
	.style_item {
		width: 24rem;
		margin: 0 1.75rem;
	}
	.style_number img {
		height: 4.4rem;
	}
	.style_slide figure {
		clip-path: polygon(0 5.8rem, 0 100%, 100% 100%, 100% 0, 6rem 0);
	}
	.style_slide h3 {
		font-size: 1.8rem;
		margin: 2.3rem 0 1.3rem;
	}
	.style_txt {
		font-size: 1.3rem;
		line-height: 2.1538;
	}
	.style_more {
		margin-top: 2.4rem;
		padding-top: .3rem;
	}
	.style_more::after {
		right: 1.8rem;
	}
	.style_slide .slick-dots {
		justify-content: center;
		margin-top: 1.8rem;
		gap: 1.5rem;
	}
	.style_slide .slick-dots button {
		width: .7rem;
		height: .7rem;
	}
}

/* plan_topics
----------------------------------------*/
.plan_topics {
	padding: 9.8rem 0 14.3rem;
	width: calc(50% + 53rem);
	margin: 0 0 0 auto;
	display: flex;
	align-items: flex-start;
}
@media only screen and (max-width: 768px) {
	.plan_topics {
		padding: 12rem 0 10.4rem;
		width: auto;
		display: block;
	}
}

/* plan
----------------------------------------*/
.plan {
	width: 42.5rem;
	box-shadow: .4rem .4rem 1rem rgba(0, 0, 0, .15);
}
.plan::before {
	content: '';
	display: block;
	width: 96.2rem;
	height: 60.1rem;
	background: url(../../img/index/plan_txt_01.svg) no-repeat left top / 100% auto;
	position: absolute;
	top: -15.3rem;
	left: -35.5rem;
}
.plan h2 {
	position: absolute;
	top: 27.6rem;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 17.1rem;
}
.plan .btn {
	position: absolute;
	left: 10.3rem;
	bottom: 4.2rem;
}
.plan .btn span:nth-child(1) {
	font-size: 1.4rem;
	padding: .3rem 0 1.1rem;
}
@media only screen and (max-width: 768px) {
	.plan {
		width: 26rem;
		margin: 0 auto;
	}
	.plan::before {
		width: 63.9rem;
		height: 40rem;
		top: -18.2rem;
		left: -22.5rem;
		z-index: 2;
	}
	.plan h2 {
		top: 18.1rem;
		width: 11.4rem;
	}
	.plan .btn {
		width: 20rem;
		left: 3rem;
		bottom: 3.1rem;
	}
	.plan .btn::after {
		top: .6rem;
	}
	.plan .btn span:nth-child(1) {
		font-size: 1.2rem;
		letter-spacing: .08em;
		padding: .3rem 0 1.1rem;
	}
	.plan .btn span:nth-child(2) {
		padding-top: .2rem;
	}
}

/* topics
----------------------------------------*/
.topics {
	padding: 7.9rem 0 0 16rem;
	flex: 1;
}
.topics h2 {
	display: flex;
	align-items: center;
	gap: 3.3rem;;
	font-weight: 500;
	font-size: 1.4rem;
	letter-spacing: .18em;
	margin-bottom: 3.1rem;
}
.topics h2 img {
	width: 22.7rem;
}
.topics h2 span {
	margin-top: .7rem;
}
.topics_list {
	border-top: .1rem solid #D2CFCF;
}
.topics_list li {
	border-bottom: .1rem solid #D2CFCF;
}
.topics_list a {
	padding: 2.05rem 2rem;
	display: flex;
}
.topics_list figure {
	width: 14.4rem;
}
.topics_list figure img {
	width: 100%;
	object-fit: cover;
	aspect-ratio: 18 / 13;
}
.topics_box {
	max-width: 36rem;
	flex: 1;
	padding: .2rem 0 0 3rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: start;
}
.topics_box time {
	font-size: 1.2rem;
	letter-spacing: .15em;
	color: #918E8E;
	font-weight: 700;
}
.topics_cat {
	display: flex;
	flex-wrap: wrap;
	margin-left: .8rem;
}
.topics_cat span {
	font-size: 1.1rem;
	font-weight: 500;
	letter-spacing: .1em;
	background: #A58F5E;
	color: #fff;
	padding: .2rem 1.2rem;
}
.topics_box h3 {
	width: 100%;
	font-size: 1.3rem;
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 2;
	margin-top: 1.2rem;
}
.topics_btn {
	max-width: 56.3rem;
	margin-top: 4.2rem;
}
.topics .btn {
	margin-left: auto;
}
@media only screen and (max-width: 768px) {
	.topics {
		padding: 10rem 0 0;
	}
	.topics h2 {
		display: block;
		font-size: 1.3rem;
		margin: 0 2rem 3.3rem;
	}
	.topics h2 img {
		width: 18.5rem;
		margin-bottom: 1.1rem;
	}
	.topics_list figure {
		width: 10.4rem;
	}
	.topics_list figure img {
		aspect-ratio: 1;
		width: 100%;
		object-fit: cover;
	}
	.topics_box {
		max-width: none;
		padding: .2rem 0 0 2rem;
	}
	.topics_box h3 {
		margin-top: 1.2rem;
	}
	.topics_btn {
		margin-top: 3.1rem;
	}
	.topics .btn {
		width: 27rem;
		margin: 0 auto;
	}
	.topics .btn::after {
		right: 2.8rem;
	}
}

/* gallery
----------------------------------------*/
.gallery {
	padding-bottom: 19.9rem;
}
.gallery_slide {
	overflow: hidden;
}
.gallery_slide img {
	height: 56rem;
	width: auto;
}
.gallery_slide figure.slick-slide {
	margin: 0 .5rem;
	float: left;
}
.gallery .btn {
	margin: 4rem auto 0;
}
@media only screen and (max-width: 768px) {
	.gallery {
		padding-bottom: 14.5rem;
	}
	.gallery_slide img {
		height: 45rem;
	}
	.gallery .btn {
		width: 27rem;
		margin: 3rem auto 0;
	}
	.gallery .btn::after {
		right: 2.8rem;
	}
}