@charset "UTF-8";

:root {
	--color-body-1: #333;
	--color-theme-1: #00be00;
	--color-theme-1-1: #008a00;
	--color-theme-2: #ff348c;
	--color-gray-1: #F3F3F3;
	--font-family: YakuHanJP, "Noto Sans JP", sans-serif;
	--oswald: "Oswald", sans-serif;
	--zenmaru: YakuHanRP, "Zen Maru Gothic", sans-serif;
	--padding: 20px;
	--container: 1000px;
	--stack: 100px;
	--section: 70px;
	--h2: 36;
	--p: 16;

	--bs-border-radius: 10px;
}

::after,
::before,
* {
	--font-size: calc((var(--fs) / 16) * 1rem);
	font-size: var(--font-size);
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--color-body-1);
	font-family: var(--font-family);
	letter-spacing: 0;
	line-height: calc(28 / 16);
}

@media(max-width: 991px) {
	body.noscroll {
		overflow: hidden;
		touch-action: pinch-zoom;
	}
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
	transition: 0.2s;
}

a img {
	transition: 0.2s;
}

a:hover {
	opacity: 0.7;
}


.scroll-hint-text {
	white-space: nowrap;
}

.is-scrollable {
	margin-right: calc(var(--padding) * -1);
	padding-right: var(--padding);
	table {
		margin-right: 0;
		margin-left: 0;
	}
}

.container {
	padding-right: var(--padding);
	padding-left: var(--padding);
	max-width: calc(var(--container) + var(--padding) + var(--padding));
}

.container-sm {
	--container: 880px;
}

.stack {
	padding-top: var(--stack);
	padding-bottom: var(--stack);
}

.icon {
	aspect-ratio: 1;
	background-color: currentColor;
	-webkit-mask: no-repeat center center/contain;
	mask: no-repeat center center/contain;
	display: inline-block;
	height: auto;
	width: 1em;
}

.text-theme-1 {
	color: var(--color-theme-1) !important;
}

.text-theme-1-1 {
	color: var(--color-theme-1-1) !important;
}

.text-theme-2 {
	color: var(--color-theme-2) !important;
}

.bg-theme-1 {
	background-color: var(--color-theme-1) !important;
}

.bg-theme-1-1 {
	background-color: var(--color-theme-1-1) !important;
}

.bg-theme-2 {
	background-color: var(--color-theme-2) !important;
}

.link-list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 40px 20px;
	padding: 0;
	margin-bottom: 0;
}

.link-item {
	position: relative;
}

.link-item:hover {
	opacity: 0.6;
}

.link-item img {
	width: 100%;
	border-radius: 30px;
	margin-bottom: 10px;
}

.link-item a {
	display: block;
	font-weight: 600;
	padding: 0 5px;
}

.link-item a:hover { 
	opacity: 1;
}

.link-item a::before {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

.link-item a::after {
	content: "";
	display: inline-block;
	width: 22px;
	aspect-ratio: 22 / 21;
	background: url(./img/link-arrow.svg) center / cover;
	vertical-align: middle;
	margin-left: 15px;
}

@media(max-width: 767px) {
	.link-list {
		grid-template-columns: 1fr;
		gap: 50px;
	}
}

/*		ヘッダー		*/

.header {
	width: 100%;
	position: absolute;
	--container: 1100px;
	top: 20px;
	right: 0;
	left: 0;
	z-index: 999;
}

@media(max-width: 991px) {
	body.noscroll .header {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		z-index: 900;
	}
}

.header-inner {
	display: grid;
	grid-template-columns: auto auto;
	gap: 20px;
	justify-content: space-between;
}

.header-logo {
	position: relative;
	margin-bottom: 0;
	z-index: 999;
}

.header-nav-list {
	display: flex;
	align-items: center;
	list-style: none;
	gap: 5px;
	padding: 0;
	margin-bottom: 0;
}

.header-nav-list > li {
	position: relative;
}

.header-nav-list :where(a,span) {
	--fs: 16;
	font-weight: 500;
	color: #FFF;
	padding: 10px;
}

.header-nav-list > li > :where(a,span) {
	font-weight: 700;
	display: inline-block;
	line-height: 1.2;
}

.header-nav-list > li:has( .header-nav-sub-list ) > :where(a,span) {
	position: relative;
	padding-right: 20px;
}

.header-nav-list > li:has( .header-nav-sub-list ) > :where(a,span)::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-top: 1px solid var(--color-body-1);
	border-right: 1px solid var(--color-body-1);
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%) rotate(135deg);
	transition: 0.2s;
}

.header-instagram a img {
	background: #FFF;
	border-radius: 50%;
}

/* .header-nav-list > li:has( .header-nav-sub-list ):hover > a::after {
	transform: translateY(-10%) rotate(-45deg);
} */

.header-nav-sub-list {
	background: #FFF;
	border: 1px solid var(--color-body-1);
	border-radius: 5px;
	white-space: nowrap;
	list-style: none;
	padding: 10px 0;
	margin-bottom: 0;
	position: absolute;
	bottom: -10px;
	left: 50%;
	transform: translate(-50%,100%);
	visibility: hidden;
	opacity: 0;
	transition: 0.3s;
	z-index: 10;
}

.header-nav-sub-list::before {
	content: "";
	display: block;
	width: calc(100% + 10px);
	height: calc(100% + 10px);
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.header-nav-list > li:has( .header-nav-sub-list ):hover .header-nav-sub-list {
	opacity: 1;
	visibility: visible;
}

.header-nav-sub-list li a {
	display: block;
	padding: 4px 20px;
}


@media(max-width: 991px) {
	.header {
		top: 0;
	}
	.header-inner {
		align-items: center;
		height: 70px;
	}
	.header-logo img {
		width: 248px;
	}
	.header-nav {
		background: #FFF;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		opacity: 0;
		visibility: hidden;
		z-index: -50;
	}
	body.noscroll .header-nav {
		padding-top: 150px;
		padding-bottom: 50px;
		opacity: 1;
		visibility: visible;
		overflow: scroll;
		z-index: 900;
	}
	body.noscroll .header-nav::before {
		content: "";
		width: 100vw;
		height: 70px;
		background: #FFF;
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		z-index: 900;
	}
	.header-nav-list {
		flex-direction: column;
		gap: 0;
		padding: 0 15px;
		margin-inline: auto;
	}
	.header-nav-list > li {
		width: 100%;
		border-bottom: 1px solid var(--color-body-1);
	}
	.header-nav-list > li > :where(a,span) {
		--fs: 20;
		display: block;
		color: var(--color-theme-1);
		width: 100%;
		padding: 15px;
	}
	.header-nav-list > li:has( .header-nav-sub-list ) > :where(a,span)::after {
		content: none;
	}
	.header-nav-sub-list {
		border: none;
		border-radius: 0;
		position: initial;
		opacity: 1;
		visibility: visible;
		padding-top: 0;
		padding-bottom: 10px;
		transform: none;
	}
	.header-nav-sub-list li a {
		padding: 2px 15px;
	}
	.header-nav-list > li:has( .header-nav-sub-list ) > a {
		padding-bottom: 5px;		
	}
	.header-nav-sub-list li :where(a,span)::before {
		content: "・";
	}
	.header-nav-list > li.header-instagram {
		border-bottom: none;
	}
	.global-nav-button {
		position: fixed;
		top: 0;
		right: 0;
		width: 70px;
		height: 70px;
		background: var(--color-theme-1);
		border: none;
		outline: none;
		padding: 0;
		z-index: 999;
	}
	.global-nav-button::before {
		content: "MENU";
		--fs: 10;
		font-size: var(--font-size);
		color: #FFF;
		position: absolute;
		left: 50%;
		bottom: 10px;
		transform: translateX(-50%);
	}
	.global-nav-button span {
		width: 30px;
		height: 1px;
		background: #FFF;
		position: absolute;
		top: 28px;
		left: 50%;
		transition: 0.3s;
	}
	.global-nav-button span:nth-child(1) {
		transform: translate(-50%,calc(-50% - 8px));
	}
	.global-nav-button span:nth-child(2) {
		transform: translate(-50%,-50%);
	}
	.global-nav-button span:nth-child(3) {
		width: 13px;
		transform: translate(calc(-50% - 8px),calc(-50% + 8px));
	}
	body.noscroll .global-nav-button span:nth-child(1) {
		transform: translate(-50%,-50%) rotate(45deg);
	}
	body.noscroll .global-nav-button span:nth-child(2) {
		opacity: 0;
	}
	body.noscroll .global-nav-button span:nth-child(3) {
		width: 30px;
		transform: translate(-50%,-50%) rotate(-45deg);
	}
}

@media(max-width: 767px) {
	.header {
		padding-block: 5px;
	}
	.header-inner {
		height: auto;
	}
}

@media(max-width: 575px) {
	.global-nav-button {
		width: 55px;
		height: 55px;
	}
	.global-nav-button::before {
		--fs: 8;
		bottom: 5px;
	}
	.global-nav-button span {
		width: 25px;
	}
	.global-nav-button span:nth-child(1) {
		transform: translate(-50%,calc(-50% - 15px));
	}
	.global-nav-button span:nth-child(2) {
		transform: translate(-50%,calc(-50% - 6px));
	}
	.global-nav-button span:nth-child(3){
		width: 13px;
		transform: translate(calc(-50% - 6px),calc(-50% + 3px));
	}
	body.noscroll .global-nav-button span:nth-child(1) {
		width: 25px;
		transform: translate(-50%,calc(-50% - 6px)) rotate(45deg);
	}
	body.noscroll .global-nav-button span:nth-child(3) {
		width: 25px;
		transform: translate(-50%,calc(-50% - 6px)) rotate(-45deg);
	}
}

.fixed-ticket {
	position: fixed;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	z-index: 999;
}

.fixed-ticket a {
	width: 95px;
	height: 103px;
	background: var(--color-theme-2);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	--fs: 12;
	color: #FFF;
	letter-spacing: 0;
	span {
		--fs: 21;
		font-weight: bold;
		font-family: var(--oswald);
	}
	&::before {
		content: "";
		width: 20px;
		height: 20px;
		border-top: 1px solid #FFF;
		border-right: 1px solid #FFF;
		transform: translateX(-25%) rotate(45deg);
		margin-bottom: 15px;
	}
}

.fixed-support {
	position: fixed;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	z-index: 999;
	a {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		width: 95px;
		height: 127px;
		background: #ffff00;
		--fs: 12;
		font-weight: 600;
		text-align: center;
		line-height: calc(15 / 12);
		color: var(--color-theme-1);
	}
}

.fixed-sns {
	display: grid;
	place-items: center;
	gap: 20px;
}

@media(max-width: 991px) {
	.fixed-ticket {
		top: 70px;
		transform: none;
		a {
			--fs: 8;
			width: 70px;
			height: 70px;
			img {
				width: 46px;
			}
			&::before {
				width: 15px;
				height: 15px;
				margin-bottom: 10px;
			}
		}
	}
	.fixed-sns {
		display: none;
	}
	.fixed-support {
		top: 140px;
		right: 0;
		left: auto;
		transform: none;
		a {
			width: 70px;
			height: 90px;
			--fs: 7;
			img {
				width: 50px;
			}
		}
	}
}

@media(max-width: 575px) {
	.fixed-ticket {
		top: 55px;
		a {
			--fs: 7;
			width: 55px;
			height: 55px;
			img {
				width: 40px;
			}
			&::before {
				width: 10px;
				height: 10px;
			}
		}
	}
	.fixed-support {
		top: 110px;
		a {
			--fs: 7;
			gap: 3px;
			width: 55px;
			height: 75px;
			img {
				width: 40px;
			}
		}
	}
}

/*		フッター		*/
.footer {
	padding-top: 40px;
	padding-bottom: 40px;
}

.footer-sns {
	h2 {
		text-align: center;
		margin-bottom: 35px;
	}
	ul {
		display: flex;
		justify-content: center;
		gap: 20px;
		list-style: none;
		padding: 0;
		margin-bottom: 0;
	}
}

.footer-content {
	display: grid;
	grid-template-columns: 1fr auto auto;
	grid-template-rows: 1fr auto;
	align-items: center;
	gap: 0 15px;
}

.footer-logo {
	grid-row: span 2;
	margin-top: -10px;
}

.footer-list {
	grid-row: span 2;
	display: grid;
	grid-template-columns: repeat(2,1fr);
	list-style: none;
	gap: 0 30px;
	padding: 0;
	margin-bottom: 0;
	a {
		--fs: 16;
		font-weight: 300;
		letter-spacing: 0;
		color: #FFF;
		&::before {
			content: "＞";
			display: inline-block;
			margin-right: 2px;
		}
	}
}

.footer-contact a {
	display: grid;
	place-items: center;
	width: 310px;
	min-height: 76px;
	font-weight: bold;
	color: #FFF;
	border: 1px solid #FFF;
	border-radius: 70px;
}

.copyright {
	--fs: 11;
	letter-spacing: 0.05em;
	text-align: center;
	color: #FFF;
	margin-bottom: 0;
}

@media(max-width: 767px) {
	.footer {
		padding-bottom: 25px;
		h2 {
			margin-bottom: 20px;
		}
	}
	.footer-sns {
		margin-bottom: 60px;
	}
	.footer-content {
		grid-template-columns: 1fr;
	}
	.footer-logo {
		text-align: center;
		margin-bottom: 30px;
	}
	.footer-contact {
		order: -2;
		margin-bottom: 15px;
	}
	.footer-contact a {
		margin-inline: auto;
	}
	.footer-list {
		order: -1;
		grid-template-columns: repeat(2,auto);
		max-inline-size: max-content;
		margin-inline: auto;
		margin-bottom: 40px;
	}
}


:where(main) {
	ul {
		list-style: none;
		padding: 0;
		margin-bottom: 0;
		li {
			text-indent: -8px;
			margin-left: 8px;
		}
		&.kome li {
			text-indent: -16px;
			margin-left: 16px;
		}
	}
}
/*		hero		*/

main {
	position: relative;
	overflow: clip;
}

.hero {
	position: relative;
	display: grid;
	gap: 5vw;
	width: 100%;
	aspect-ratio: 2559 / 1897;
	background: url(img/hero-image@2x.png) center bottom / cover, linear-gradient(to bottom, #a49bff 0%, #2ce2d6 53%, #ffffff 70%);
	padding: 10vw 5vw 8vw;
}

.hero-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.hero-text {
	position: relative;
}

.hero-title {
	width: 79%;
	margin-bottom: 0;
	margin-inline: auto;
}

.hero-subtitle {
	width: 27.7vw;
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(-70%,65%);
}

.hero-scroll {
	width: 9.5vw;
	margin-inline: auto;	
}

.hero-scroll img {
	animation: fuwafuwa 1.8s ease-in-out infinite alternate-reverse;
}

@keyframes fuwafuwa {
  0% {
    transform: translateY(-15%);
  }
  100% {
    transform: translateY(15%);
  }
}

.hero-link {
	position: absolute;
	width: 15vw;
	bottom: 20%;
	left: 10%;
}

.hero-slide {
	width: 65%;
	padding-top: 3%;
	padding-left: 5%;
	margin-inline: auto;
}

.main-slider {
	position: relative;
	/* background: var(--color-theme-1); */
	box-shadow: 0px 0px 30px #FFF,0px 0px 30px #FFF,0px 0px 30px #FFF;
	/* padding: 20% 14% 8%; */
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 20px;
	.splide__track {
		position: relative;
		z-index: 1;
	}
	.splide__slide {
		p {
			position: relative;
			display: flex;
			justify-content: center;
			align-items: center;
			--fs: 24;
			font-size: var(--font-size);
			font-weight: 600;
			line-height: 1;
			color: var(--color-theme-2);
			max-width: 90%;
			min-height: 36px;
			background: #FFF;
			border: 3px solid var(--color-theme-2);
			border-radius: 50px;
			padding: 5px 10px;
			margin-inline: auto;
			margin-top: -18px;
			margin-bottom: 0;
			z-index: 5;
		}
	}
	.splide__arrow {
		width: 18px;
		height: 18px;
		background: transparent;
		border-radius: 0;
		opacity: 1;
		z-index: 50;
		&.splide__arrow--prev {
			border-top: 3px solid #FFF;
			border-left: 3px solid #FFF;
			transform: translate(25%,-50%) rotate(-45deg);
		}
		&.splide__arrow--next {
			border-top: 3px solid #FFF;
			border-right: 3px solid #FFF;
			transform: translate(-25%,-50%) rotate(45deg);
		}
	}
	/* &::before {
		content: "";
		width: 50%;
		aspect-ratio: 175 / 57;
		background: url(img/slide-logo.svg) center / cover;
		position: absolute;
		top: 1.5%;
		left: 5%;
	}
	&::after {
		content: "";
		width: 100%;
		height: 100%;
		background: url(img/slide-bg@2x.png) no-repeat center bottom / contain;
		position: absolute;
		top: 0;
		left: 0;
	} */
}

.thumb-slider {
	max-width: 85%;
	margin-inline: auto;
	.splide__track--nav > .splide__list > .splide__slide {
		opacity: 0.7;
		border: none;
		img {
			width: 100%;
			aspect-ratio: 1 / 1;
			object-fit: cover;
		}
		&.is-active {
			opacity: 1;
		}
	}
}

@media(max-width: 767px) {
	.hero {
		background: url(img/hero-image@2x.png) no-repeat center bottom / 115%, linear-gradient(to bottom, #a49bff 0%, #2ce2d6 53%);
		aspect-ratio: 375 / 735;
		gap: 15vw;
		padding-top: 175px;
	}
	.hero-content {
		grid-template-columns: 1fr;
	}
	.hero-text {
		display: none;
	}
	.hero-title {
		width: 80vw;
	}
	.hero-subtitle {
		width: 57vw;
		transform: translate(-10%,-55%);
	}
	.hero-scroll {
		width: 33vw;
	}
	.hero-link {
		width: 26vw;
		bottom: 15%;
		left: 5%;
	}
	.hero-slide {
		width: 100%;
		padding: 0 10px;
	}
}


.section-title {
	display: grid;
	justify-content: center;
	text-align: center;
	gap: 15px;
	margin-bottom: 30px;
}

.section-title-ja {
	--fs: 18;
	font-size: var(--font-size);
	font-weight: 500;
	margin-bottom: 0;
}

.section-title-en {
	order: -1;
}

@media(max-width: 767px) {
	.section-title {
		margin-bottom: 65px;
	}
}

/*		主催者から皆さまへお願い		*/

.intro {
	position: relative;
	background: url(img/blur.png) repeat-x center bottom / auto;
	padding-bottom: 140px;
	margin-top: -17vw;
	margin-bottom: 100px;
	z-index: 1;
	h2:not(.section-title-ja) {
		position: relative;
		display: grid;
		max-width: 385px;
		width: 100%;
		min-height: 60px;
		place-items: center;
		background: var(--color-theme-2);
		--fs: 22;
		font-size: var(--font-size);
		font-weight: 500;
		letter-spacing: 0;
		color: #FFF;
		border-radius: 60px;
		margin-inline: auto;
		margin-bottom: 0;
		z-index: 1;
	}
	.intro-content {
		background: var(--color-theme-1);
		border-radius: 30px 30px 0 0;
		padding-top: 55px;
		padding-bottom: 50px;
		margin-top: -30px;
	}
}

.intro-caution {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 20px;
	margin-bottom: 65px;
}

.intro-caution-item {
	background: var(--color-theme-1-1);
	border: 2px solid #ffff00;
	border-radius: 30px;
	summary {
		position: relative;
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 10px;
		--fs: 20;
		font-size: var(--font-size);
		font-weight: 500;
		line-height: calc(27 / 20);
		color: #ffff00;
		padding: 25px 80px 25px 20px;
		&::after {
			content: "";
			width: 30px;
			aspect-ratio: 1 / 1;
			background: url(img/intro-caution-open.svg) center / cover;
			position: absolute;
			top: 50%;
			right: 40px;
			transform: translateY(-50%);
		}
	}
	summary::-webkit-details-marker,
	summary::marker {
		content: '';
		display: none;
	}
	&[open] summary::after {
		background: url(img/intro-caution-close.svg) center / cover;
	}
	.intro-caution-content {
		opacity: 0;
		visibility: hidden;
		padding: 0 20px 35px;
		transition: 0.5s;
		p {
			font-weight: 400;
			color: #FFF;
		}
		img {
			float: right;
		}
	}
}

.intro-caution-item[open] .intro-caution-content {
	opacity: 1!important;
	visibility: visible!important;
}

.intro-caution-item:nth-child(1) summary {
	padding-block: 35px;
}

.intro-caution-item:nth-child(3) {
	grid-column: span 2;
}

.intro-future {
	aspect-ratio: 2 / 1;
	background: url(img/intro-future-bg@2x.png) center / cover;
	border-radius: 30px;
	padding: 8.5% 4% 12% 12%;
	margin-bottom: 50px;
}

.intro-future-content {
	display: grid;
	grid-template-columns: 1fr 35%;
	align-items: flex-end;
	gap: 2%;
}

.intro-future-text {
	h3 {
		font-size: min(1 3.3vw, 2.0625rem);
		font-family: var(--zenmaru);
		font-weight: 700;
		text-align: center;
		line-height: calc(42 / 33);
		color: var(--color-theme-2);
		letter-spacing: 0.07em;
		margin-bottom: 2%;
		span {
			display: inline-block;
			font-size: min(1.9vw, 1.1875rem);
			font-family: var(--font-family);
			font-weight: 500;
			letter-spacing: 0;
			margin-bottom: 2%;
		}
	}
	h4 {
		font-size: min(1.9vw, 1.1875rem);
		font-family: var(--zenmaru);
		font-weight: 600;
		text-align: center;
		line-height: calc(29 / 19);
		letter-spacing: 0.04em;
		color: var(--color-theme-2);
	}
	p {
		font-size: min(1.6vw, 1rem);
		margin-bottom: 0;
	}
}

.intro-future-image {
	transform: rotate(7deg);
}

.food {
	border-radius: 30px;
	background: var(--color-theme-2);
	padding: 60px 45px;
}

.food-content {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
	margin-bottom: 65px;
	&::before {
		content: "";
		width: 1px;
		height: calc(100% - 30px);
		background: #FFF;
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
	}
}

.food-item {
	.food-item-title {
		--fs: 32;
		font-size: var(--font-size);
		font-family: var(--zenmaru);
		line-height: calc(43 / 32);
		font-weight: bold;
		text-align: start;
		color: #FFF;
		margin-bottom: 15px;
		position: relative;
		z-index: 1;
	}
	p {
		text-align: start;
		color: #FFF;
		&.small {
			--fs: 12;
			font-size: var(--font-size);
			font-weight: 300;
			margin-bottom: 8px;
		}
	}
}

.food-image {
	position: relative;
	&::after {
		content: "";
		width: 108px;
		aspect-ratio: 1 / 1;
		background: url(img/food-deco01.svg) center / cover;
		position: absolute;
		right: 0;
		bottom: 0;
		transform: translate(15%,40%);
	}
}

.food-item:nth-child(2) .food-image::after {
	background: url(img/food-deco02.svg) center / cover;;
}

@media(max-width: 767px) {
	.intro {
		background: url(img/blur_sp.png) repeat-x center bottom / contain;
		margin-top: 25px;
		padding-bottom: 110px;
		margin-bottom: 150px;
		h2:not(.section-title-ja) {
			--fs: 17;
			max-width: 315px;
			min-height: 50px;
		}
	}
	.intro-caution {
		grid-template-columns: 1fr;
	}
	.intro-caution-item {
		summary {
			gap: 15px;
			padding: 10px 70px 10px 20px;
			&::after {
				right: 30px;
			}
		}
		.intro-caution-content {
			padding: 0 20px 20px;
		}
	}
	.intro-caution-item:nth-child(1) summary {
		padding-block: 10px;
	}
	.intro-caution-item:nth-child(3) {
		grid-column: auto;
	}
	.food {
		padding: 50px 20px 70px;
		.section-title {
			margin-bottom: 30px;
		}
		.section-title-en img {
			width: 263px;
		}
	}
	.food-content {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-bottom: 60px;
		&::before {
			content: none;
		}
	}
	.food-item {
		.food-item-title {
			--fs: 19;
		}
	}
	.food-image {
		--bs-gutter-x: 15px;
		&::after  {
			width: 80px;
			transform: translate(-5%,80%);
		}
	}
	.food-text-image img {	
		width: 278px;
	}
}

@media(max-width: 575px) {
	.intro-future {
		aspect-ratio: auto;
		border-radius: 0;
		background: url(img/intro-future-bg01_sp.png) no-repeat center top / 100% auto,url(img/intro-future-bg02_sp.png) no-repeat center bottom / 100% auto,#FFF;
		padding: 100px var(--padding) 130px;
		margin-inline: calc(var(--padding) * -1);
	}
	.intro-future-content {
		grid-template-columns: 1fr;
	}
	.intro-future-text {
		h3 {
			--fs: 30;
			font-size: var(--font-size);
			margin-bottom: 25px;
			span {
				--fs: 20;
				font-size: var(--font-size);
				margin-bottom: 15px;
			}
		}
		h4 {
			--fs: 19;
			font-size: var(--font-size);
			margin-bottom: 25px;
		}
		p {
			--fs: 16;
			font-size: var(--font-size);
			margin-bottom: 15px;
		}
	}
	.intro-future-image {
		text-align: center;
	}
}

/*		出演アーティスト		*/

.artist {
	position: relative;
	padding-top: 60px;
	margin-top: -100px;
	margin-bottom: 85px;
	z-index: 1;
	.section-title-en {
		position: relative;
		z-index: 1;
		&::before {
			content: "";
			width: 135%;
			aspect-ratio: 276 / 190;
			background: url(img/artist-deco.svg) center / cover;
			position: absolute;
			left: 50%;
			transform: translate(-50%,-100%);
			z-index: -1;
		}
	}
}

.artist-inner {
	background: #FFF;
	border-radius: 30px;
	padding: 75px 15px 40px;
}

.artist-content {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 30px;
	max-width: 915px;
	margin-inline: auto;
	margin-bottom: 40px;
}

.artist-item {
	h3 {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 15px;
		margin-bottom: 18px;
		span {
			display: flex;
			justify-content: center;
			width: 100%;
			padding: 4px 10px;
		}
	}
}

.artist-list {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 45px 25px;
	list-style: none;
	padding: 0;
	margin-bottom: 0;
	li {
		text-indent: 0;
		margin: 0;
	}
}

@media(max-width: 767px) {
	.artist {
		padding-top: 50px;
		margin-top: 0;
		margin-bottom: 100px;
		.section-title-en {
			&::before {
				width: 210px;
				top: -10px;
			}
		}
		.section-title-en img {
			width: 166px;
		}
	}
	.artist-inner {
		border-radius: 20px;
		padding-top: 70px;
		padding-bottom: 35px;
	}
	.artist-content {
		grid-template-columns: 1fr;
		gap: 90px;
	}
	.artist-item {
		h3 {
			margin-bottom: 30px;
			img {
				width: 100px;
			}
		}
	}
	.artist-list {
		padding-right: 15px;
		padding-left: 15px;
	}
}

@media(max-width: 575px) {
	.artist-list {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

/*		ニュース		*/
.news {
}

.news-list {
	display: grid;
	gap: 30px;
	max-width: 790px;
	margin-inline: auto;
	margin-bottom: 100px;
}

.news-item summary {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: baseline;
	gap: 5px 15px;
	.news-meta {
		display: flex;
		justify-content: space-between;
		/* width: 215px; */
		width: 110px;
		align-items: center;
		.news-cat {
			display: grid;
			place-items: center;
			width: 110px;
			min-height: 24px;
			--fs: 14;
			color: #FFF;
			border-radius: 30px;
		}
		.news-time {
			display: grid;
			place-items: center;
			width: 110px;
			min-height: 24px;
			--fs: 14;
			color: #FFF;
			background: var(--color-theme-2);
			border-radius: 30px;
		}
	}
	.news-title {
		--fs: 16;
		font-size: var(--font-size);
		font-weight: 300;
		color: #FFF;
		margin-bottom: 0;
	}
	&:hover {
		opacity: 0.6;
	}
}

.news-item summary::-webkit-details-marker,
.news-item summary::marker {
	content: '';
	display: none;
}

.news-content {
	transition: 0.5s;
	opacity: 0!important;
	visibility: hidden!important;
	margin-top: 10px;
	/* margin-left: 245px; */
	margin-left: 125px;
	p {
		--fs: 16;
		font-weight: 300;
		color: #FFF;
		&:last-child {
			margin-bottom: 0;
		}
	}
	a {
		word-break: break-all;
		text-decoration: underline;
	}
}

.news-item[open] .news-content {
	opacity: 1!important;
	visibility: visible!important;
}

.ground-image {
	width: 100vw;
	margin-left: calc((100% - 100vw) / 2);
}

@media(max-width: 767px) {
	.news-list {
		margin-bottom: 50px;
	}
	.news-item summary {
		grid-template-columns: 1fr;
		gap: 10px;
		.news-title {
			line-height: calc(28 / 16);
		}
	}
	.news-content {
		margin-left: 0;
	}
	.ground-image {
		position: relative;
		overflow: hidden;
		img {
			position: relative;
			min-width: 450px;
			left: 50%;
			transform: translateX(-50%);
		}
	}
}

/*		タイムテーブル／プログラム		*/

.time-table {
	overflow-x: clip;
	background: url(img/blur.png) repeat-x center bottom / auto;
	padding-top: 110px;
	padding-bottom: 155px;
	.section-title-en {
		position: relative;
		z-index: 1;
		&::before {
			content: "";
			width: 276px;
			aspect-ratio: 276 / 190;
			background: url(img/time-table-deco01.svg) center / cover;
			position: absolute;
			top: 10px;
			left: 50%;
			transform: translate(-50%,-100%);
			z-index: -1;
		}
	}
}

.time-table-inner {
	position: relative;
	background: #FFF;
	border-radius: 30px;
	padding: 70px 15px 80px;
	&::before {
		content: "";
		max-width: 1346px;
		width: 120vw;
		aspect-ratio: 1346 / 547;
		background: url(img/time-table-deco02.png) center / cover;
		position: absolute;
		top: 0;
		left: 50%;
		transform: translate(-50%,-35%);
		z-index: -1;
	}
	.section-title {
		margin-bottom: 70px;
	}
}

.time-table-content {
	display: grid;
	grid-template-columns: 55% 1fr;
	gap: 20px;
	max-width: 875px;
	margin-inline: auto;
	margin-bottom: 45px;
}

.time-table-item {
	&.day1 {
		--td-color: var(--color-theme-1);
		&.sub {
			--td-color: rgba(0, 190, 0, 0.3);
		}
	}
	&.day2 {
		--td-color: var(--color-theme-2);
		&.sub {
			--td-color: rgba(255, 52, 140, 0.3);
		}
	}
	table {
		width: 100%;
		tr {
			th {
				--fs: 21;
				font-weight: bold;
				text-align: center;
				color: #FFF;
				background: #000;
			}
			td {
				--fs: 17;
				padding: 8px 25px;
				&:first-child {
					width: 80px;
					padding-right: 0;
				}
			}
			&:nth-child(even) td {
				color: #FFF;
				background: var(--td-color);
			}
		}
	}
	&.main td {
		color: var(--td-color);
	}
}

@media(max-width: 767px) {
	.time-table {
		background: url(img/blur_sp.png) repeat-x center bottom / contain;
		padding-top: 75px;
		margin-bottom: 0;
		.section-title-en {
			&::before {
				content: "";
				width: 196px;
				top: -20px;
			}
		}
	}
	.time-table-inner {
		border-radius: 20px;
		padding: 75px 15px 40px;
		h3 img {
			width: 205px;
		}
		&::before {
			transform: translate(-50%,-80%);
		}
	}
	.time-table-content {
		grid-template-columns: 1fr;
		gap: 35px;
		margin-bottom: 90px;
	}
	.time-table-item {
		table {
			tr {
				th {
					--fs: 19;
				}
				td {
					--fs: 16;
					padding: 5px 20px;
				}
			}
		}
	}
}

/*		チケット		*/

.ticket {
	background: url(img/blur.png) repeat-x center bottom -20px / auto,var(--color-theme-2);
	padding-top: 120px;
	padding-bottom: 385px;
	h3 {
		--fs: 38;
		font-size: var(--font-size);
		font-weight: 500;
		color: #FFF;
		margin-bottom: 35px;
	}
	h4 {
		--fs: 24;
		font-size: var(--font-size);
		font-weight: 500;
		line-height: calc(42 / 24);
		color: #FFF;
		letter-spacing: 0.04em;
	}
}

.ticket-content {
	max-width: 835px;
	margin-inline: auto;
}

.ticket-day {
	text-align: center;
	margin-bottom: 115px;
	p {
		--fs: 24;
		font-weight: 500;
		letter-spacing: 0.04em;
		color: #FFF;
		margin-bottom: 0;
	}
}

.ticket-list {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 10px 40px;
	list-style: none;
	padding: 0;
	margin-bottom: 100px;
	li {
		text-indent: 0;
		margin: 0;
	}
	li:nth-child(3) {
		grid-column: span 2;
	}
}

.ticket-link,
.map-link {
	position: relative;
	display: grid;
	place-items: center;
	max-width: 576px;
	min-height: 63px;
	--fs: 24;
	text-align: center;
	line-height: calc(1.2);
	font-size: var(--font-size);
	font-weight: 500;
	letter-spacing: 0.04em;
	color: #FFF;
	background: #edc500;
	border-radius: 60px;
	padding: 5px 100px;
	margin-inline: auto;
	&::after {
		content: "";
		width: 15px;
		height: 15px;
		border-top: 2px solid #FFF;
		border-right: 2px solid #FFF;
		position: absolute;
		top: 50%;
		right: 90px;
		transform: translateY(-45%) rotate(45deg);
	}
}

.map-link {
	background: #ffc417;
}

@media(max-width: 767px) {
	.ticket {
		background: url(img/blur.png) repeat-x center bottom -200px/ 1300px, var(--color-theme-2);
		padding-top: 100px;
		padding-bottom: 255px;
		.section-title-en img {
			width: 163px;
		}
		h3 {
			--fs: 34;
		}
	}
	.ticket-day {
		margin-bottom: 85px;
		img {
			width: 320px;
		}
	}
	.ticket-link,
	.map-link {
		--fs: 22;
		max-width: 330px;
		min-height: 63px;
		padding: 5px 50px;
		&::after {
			right: 35px;
		}
	}
	.ticket-link {
		--fs: 18;
		min-height: 50px;
		&::after {
			right: 20px;
		}
	}
	.map-link {
		--fs: 18;
		min-height: 54px
		border-radius: 23px;
	}
}

@media(max-width: 575px) {
	.ticket-list {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-bottom: 80px;
		li:nth-child(3) {
			grid-column: auto;
			padding: 0;
		}
	} 
}


/*		グッズ・物販情報		*/

.goods {
	background: var(--color-theme-1);
	padding-top: 100px;
	h3 {
		--fs: 24;
		font-size: var(--font-size);
		line-height: calc(42 / 24);
		color: #FFF;
		letter-spacing: 0.04em;
	}
}

.goods-content {
	max-width: 835px;
	margin-inline: auto;
	margin-bottom: 100px;
}

.mountain-image {
	width: 100vw;
	margin-left: calc((100% - 100vw) / 2);
}

@media(max-width: 767px) {
	.goods {
		margin-bottom: 60px;
		.section-title-en img {
			width: 153px;
		}
	}
	.goods-content {
		margin-bottom: 40px;
	}
}


/*		交通案内		*/

.access {
	position: relative;
	margin-top: -110px;
	margin-bottom: 50px;
	z-index: 1;
	h3 {
		--fs: 38;
		font-size: var(--font-size);
		font-weight: 500;
		letter-spacing: 0;
		margin-bottom: 50px;
		span {
			--fs: 16;
			color: #FFF;
			font-weight: bold;
			padding: 2px 35px;
		}
	}
	.lead {
		--fs: 24;
		font-size: var(--font-size);
		font-weight: 500;
		letter-spacing: 0.04em;
		margin-left: -8px;
		margin-right: -8px;
	}
	.ground-image {
		margin-top: -115px;
	}
}

.access-inner {
	background: #FFF;
	border-radius: 30px;
	padding: 90px 15px 135px;
}

.access-nav {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 50px;
	max-width: 750px;
	margin-inline: auto;
	margin-bottom: 125px;
	a {
		position: relative;
		display: grid;
		place-items: center;
		max-width: 350px;
		width: 100%;
		min-height: 50px;
		--fs: 22;
		font-weight: 500;
		letter-spacing: 0.04em;
		color: #FFF;
		border-radius: 50px;
		&::after {
			content: "";
			width: 10px;
			height: 10px;
			border-right: 2px solid #FFF;
			border-bottom: 2px solid #FFF;
			position: absolute;
			top: 50%;
			right: 30px;
			transform: translateY(-50%) rotate(45deg);
		}
	}
}

.access-content {
	max-width: 865px;
	margin-inline: auto;
	margin-bottom: 130px;	
}

.access-caution {
	background: var(--color-theme-2);
	padding: 20px 15px;
	margin-bottom: 70px;
	h4 {
		--fs: 38;
		font-size: var(--font-size);
		font-weight: 500;
	}
}

.access-item {
	display: grid;
	grid-template-columns: 115px 1fr;
	gap: 10px;
	h4 {
		--fs: 16;
		font-size: var(--font-size);
		font-weight: bold;
		line-height: calc(28 / 16);
		margin-bottom: 0;
	}
	+ .access-item {
		margin-top: 40px;
	}
}


@media(max-width: 767px) {
	.access {
		margin-top: 0;
		margin-bottom: 50px;
		.section-title-en img {
			width: 179px;
		}
		h3 {
			--fs: 24;
			margin-bottom: 40px;
			span {
				display: inline-block;
				padding: 2px 15px;
				margin-top: 15px;
			}
		}
		.access-inner {
			border-radius: 20px;
			padding: 85px 15px 170px;
		}
		.lead {
			--fs: 20;
		}
		.ground-image {
			margin-top: -50px;
		}
	}
	.access-content {
		margin-bottom: 80px;
	}
	.access-nav {
		grid-template-columns: 1fr;
		gap: 15px;
		margin-bottom: 85px;
		a {
			--fs: 17;
			max-width: 280px;
			min-height: 40px;
			padding: 5px 40px;
			margin-inline: auto;
			&::after {
				right: 20px;
			}
		}
	}
	.access-item {
		grid-template-columns: 1fr;
		gap: 0;
		+ .access-item {
			margin-top: 35px;
		}
	}
	.access-caution {
		padding: 30px 10px;
		margin-bottom: 30px;
		h4 {
			--fs: 25;
		}
	}
}

/*		よくある質問		*/
.faq {
	background: url(img/blur.png) repeat-x center bottom / auto;
	padding-bottom: 200px;
}

.faq-inner {
	position: relative;
	background: #FFF;
	border-radius: 30px;
	padding: 70px 15px;
}

.faq-list {
	max-width: 835px;
	margin-inline: auto;
}

.faq-item:not(:last-child) {
	margin-bottom: 15px;
}

.faq-question {
	--fs: 16;
	font-size: var(--font-size);
	line-height: calc(22 / 16);
	margin-bottom: 0px;
}

.faq-button {
	position: relative;
	--fs: 16;
	font-size: var(--font-size);
	font-weight: bold;
	text-align: start;
	line-height: calc(22 / 16);
	color: var(--color-theme-1);
	border: none;
	background: transparent;
	outline: none;
	width: 100%;
	padding: 10px 0;
	padding-left: 25px;
	/* pointer-events: none; */
	&::before {
		content: "";
		width: 18px;
		height: 18px;
		background: url(img/icon-question.svg) no-repeat center / cover;
		position: absolute;
		top: 13px;
		left: 0;		
	}
}

/* .faq-item .collapse:not(.show) {
	display: block;
} */

.faq-answer {
	position: relative;
	font-weight: 300;
	padding: 0;
	padding-left: 25px;
	margin-bottom: 0;
	&::before {
		content: "";
		width: 18px;
		height: 18px;
		background: url(img/icon-answer.svg) no-repeat center / cover;
		position: absolute;
		top: 6px;
		left: 0;	
	}
}

@media(max-width: 767px) {
	.faq {
		background: url(img/blur.png) repeat-x center bottom -160px / auto;
		padding-bottom: 170px;
		margin-bottom: 130px;
	}
	.faq-inner {
		border-radius: 20px;
		padding: 60px 15px 85px;
		&::before {
			transform: translate(-50%,-50%);
		}
	}
	.faq-button {
		position: relative;
		width: 100%;
		pointer-events: all;
		padding-right: 25px;
		&::after {
			content: "";
			width: 20px;
			height: 20px;
			background: url(img/icon-minus.svg) no-repeat center / contain;
			position: absolute;
			top: 50%;
			right: 0;
			transform: translateY(-50%);
		}
		&.collapsed::after {
			background: url(img/icon-plus.svg) no-repeat center / contain;
		}
	}
	.faq-item {
		border: 1px solid var(--color-theme-1-1);
		border-radius: 20px;
		padding: 10px 20px;
	}
	.faq-item:not(:last-child) {
		margin-bottom: 20px;
	}
	.faq-item .collapse:not(.show) {
		display: none;
	}
}

/*		協賛企業		*/
.support {
	background: var(--color-theme-1);
	padding-top: 150px;
	.section-title {
		margin-bottom: 100px;
		img {
			width: 215px;
		}
	}
	.coming-soon {
		margin-bottom: 80px;
	}
}

@media(max-width: 767px) {
	.support {
		padding-top: 0;
		.coming-soon {
			margin-bottom: 140px;
		}
	}
}

/*		開催概要		*/

.about {
	position: relative;
	margin-top: -150px;
	margin-bottom: 40px;
	z-index: 1;
}

.about-inner {
	background: #FFF;
	border-radius: 30px;
	padding: 70px 15px 50px;
}

.about-content {
	max-width: 830px;
	margin-inline: auto;
	dl {
		display: grid;
		grid-template-columns: 80px 1fr;
		gap: 5px 10px;
		margin-bottom: 50px;
		dt {
			font-weight: 500;
			color: var(--color-theme-1);
		}
		dd {
			font-weight: 300;
			margin-bottom: 0;
		}
	}
	h3 {
		--fs: 24;
		font-size: var(--font-size);
		font-weight: 500;
		letter-spacing: 0.04em;
		margin-bottom: 15px;
	}
	ul {
		list-style: none;
		padding: 0;
		margin-bottom: 0;
		li {
			line-height: 1.5;
			font-weight: 300;
			text-indent: -4px;
			margin-left: 8px;
			margin-bottom: 5px;
			&:before {
				content: "・";
				display: inline-block;
			}
		}
	}
}

@media(max-width: 767px) {
	.about {
		margin-top: -20px;
		margin-bottom: 20px;
		.section-title {
			margin-bottom: 20px;
		}
		.section-title-en img { 
				width: 158px;
		}
	}
	.about-inner {
		border-radius: 20px;
	}
	.about-content {
		dl {
			grid-template-columns: 1fr;
		}
	}
}



.wow[class*="animate__"]:not(.animate__animated) {
	animation-name: none;
	visibility: hidden;
}

.animate__fadeIn {
	animation-duration: 2s;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0,20px,0);
        transform: translate3d(0,20px,0)
    }

    to {
        opacity: 1;
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}