@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}._fl{float:left}._fr{float:right}@media screen and (min-width: 744px),print{._pc_fl{float:left}._pc_fr{float:right}}@media screen and (max-width: 743px){._sp_fl{float:left}._sp_fr{float:right}}._tal{text-align:left!important}._tac{text-align:center!important}._tar{text-align:right!important}@media screen and (min-width: 744px),print{._pc_tal{text-align:left!important}._pc_tac{text-align:center!important}._pc_tar{text-align:right!important}}@media screen and (max-width: 743px){._sp_tal{text-align:left!important}._sp_tac{text-align:center!important}._sp_tar{text-align:right!important}}


/* 変数
====================================================================== */
:root {
	--color-base: #fff;
	--color-black: #000;
	--color-theme: #1c3d91;
	--color-red: #fa0000;
	--bg-base: #000;
	--pc-min-window: 1500;
	--sp-base-padding: 2rem;
	--font-family-jp: 'M PLUS 1p', sans-serif;
	--font-weight-reg: 500;
	--font-weight-bold: 700;
	--font-weight-exb: 800;
	--font-weight: var(--font-weight-reg);
	--ls: 0.01em;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--header-height: 10rem;
}
@media screen and (max-width: 743px) {
	:root {
		--header-height: 6rem
	}
}

/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}
@media screen and (min-width: 744px), print {
	html {
		font-size: min(calc(10px - ((var(--pc-min-window) * 1px) - 100vw) * (10 / var(--pc-min-window))), 10px);
	}
}
@media screen and (max-width: 743px) {
	html {
		font-size: calc((10 / 375) * 100vw)
	}
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body {
	background-color: var(--bg-base);
	font-size: 1.8rem;
	line-height: 2;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-optical-sizing: auto;
	/* font-feature-settings: "palt"; */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}
@media screen and (max-width: 743px) {
	body {
		font-size: 1.5rem;
	}
}
* {
	letter-spacing: var(--ls);
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
:where(address,caption,cite,code,dfn,em,th,var) {
	font-style: normal;
	font-weight: var(--font-weight);
}
:where(h1,h2,h3,h4,h5,h6,strong) {
	font-weight: var(--font-weight-bold);
}
:where(img) {
	width: 100%;
	max-width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a[href], a[data-modal]) {
	--a-color: var(--color-base);
	color: var(--a-color);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--a-color);
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
}
@media screen and (min-width: 744px), print {
	:where(a[href^="tel:"]) {
		text-decoration: none
	}
}
@media (hover) {
	:where(a,button,._basic_trs,._hl),
	:where(a,button,._basic_trs,._hl)::before,
	:where(a,button,._basic_trs,._hl)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(a svg, button svg) {
		transition: fill var(--transition);
	}
	:where(a[href]:hover, a[data-modal]:hover) {
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
	}
	:where(a[href]._a_reverse, a[data-modal]._a_reverse, ._a_reverse a[href], ._a_reverse a[data-modal]):hover {
		text-decoration-color: var(--a-color);
	}
	:where(a[href]._a_reverse.-hvw),
	:where(._a_reverse.-hvw a[href]) {
		text-decoration-color: rgba(255,255,255,0);
	}
	:where(a[href]._a_reverse.-hvw):hover,
	:where(._a_reverse.-hvw a[href]):hover {
		text-decoration-color: #fff;
	}
	:where(a[href]._a_reverse.-hvbk),
	:where(._a_reverse.-hvbk a[href]) {
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
	}
	:where(a[href]._a_reverse.-hvbk):hover,
	:where(._a_reverse.-hvbk a[href]):hover {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._a_reverse) {
		text-decoration-line: underline;
		text-decoration-style: solid;
		text-decoration-thickness: 1px;
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
		text-underline-offset: .3em;
	}
	:where(a[href] ._a_reverse) {
		transition: text-decoration-color .2s ease-in-out;
	}
	:where(a[href]:hover ._a_reverse) {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._hl) {
		text-decoration-line: underline;
		text-decoration-style: solid;
		text-decoration-thickness: 1px;
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
		text-underline-offset: .3em;
	}
	:where(a[href]:hover ._hl) {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._hl.-hvw) {
		text-decoration-color: rgba(255,255,255,0);
	}
	:where(a[href]:hover ._hl.-hvw) {
		text-decoration-color: #fff;
	}
}

:where(label) {
	cursor: pointer;
}
:where(input, select, textarea, button) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	font-weight: inherit;
	font-feature-settings: inherit;
	outline: none;
	font-size: 100%;
}
::placeholder {
	color: #ccc;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	display: block;
}

/* pc / sp
====================================================================== */
@media screen and (min-width: 744px), print {
	._sp {
		display: none !important;
	}
	._pc_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
	._pc_hidden {
		position: relative;
		overflow: hidden;
		display: block;
		height: 0;
	}
}
@media screen and (max-width: 743px) {
	._pc {
		display: none !important;
	}
	._sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* color
====================================================================== */
._c_white {
	color: var(--color-base) !important;
}
._c_black {
	color: var(--color-black) !important;
}

/* font
====================================================================== */
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 744px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 743px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}

/* display
====================================================================== */
._db {
	display: block;
}
._dib {
	display: inline-block;
}
._dfcc {
	display: flex !important;
	justify-content: center;
	align-items: center;
}
@media screen and (min-width: 744px), print {
	._pc_dib {
		display: inline-block;
	}
	._pc_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}
@media screen and (max-width: 743px) {
	._sp_dib {
		display: inline-block;
	}
	._sp_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}

/* object-fit
====================================================================== */
img._of {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
img._of.-abs {
	position: absolute;
	top: 0;
	left: 0;
}
img._of.-bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
img._of.-top {
	object-position: 50% 0;
}
img._of.-bottom {
	object-position: 50% 100%;
}
img._of.-contain {
	object-fit: contain;
}
@media screen and (min-width: 744px), print {
	img._of.-pc_none {
		object-fit: none;
	}
	img._of.-pc_top {
		object-position: 50% 0;
	}
	img._of.-pc_bottom {
		object-position: 50% 100%;
	}
}
@media screen and (max-width: 743px) {
		img._of.-sp_top {
			object-position: 50% 0;
		}
		img._of.-sp_bottom {
			object-position: 50% 100%;
		}
	}
@media screen and (min-width: 744px), print {
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._pc_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._pc_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._pc_of.-top {
		object-position: 50% 0;
	}
	img._pc_of.-none {
		object-fit: none;
	}
}
@media screen and (max-width: 743px) {
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._sp_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._sp_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._sp_of.-top {
		object-position: 50% 0;
	}
}

/* hover
====================================================================== */
@media (hover) {
	a[href] ._hv_op {
		transition: opacity var(--transition);
	}
	a:is([href], [data-modal])._hv_op:hover,
	a[href]:hover ._hv_op,
	button._hv_op:hover,
	._hv_op a[href]:hover {
		opacity: 0.7;
	}
	a[href]._hv_op.-a50:hover,
	a[href]:hover ._hv_op.-a50,
	._hv_op.-a50 a[href]:hover {
		opacity: 0.5;
	}
	a[href]._hv_op.-a20:hover,
	a[href]:hover ._hv_op.-a20,
	._hv_op.-a20 a[href]:hover {
		opacity: 0.8;
	}
	a[href]._hv_op.-a10:hover,
	a[href]:hover ._hv_op.-a10,
	._hv_op.-a10 a[href]:hover {
		opacity: 0.9;
	}
}

._hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
}
._hv_zoom > * {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}
._hv_zoom.-static > * {
	position: relative;
}
@media (hover) {
	a[href]._hv_zoom > *,
	a[href] ._hv_zoom > * {
		transition: transform 0.5s, opacity .3s;
	}
	a[href]:hover ._hv_zoom.-s > * {
		transform: scale(1.03);
	}
	a[href]:hover ._hv_zoom.-l > * {
		transform: scale(1.1);
	}
	a[href]:hover._hv_zoom > *,
	a[href]:hover ._hv_zoom > * {
		transform: scale(1.05);
	}
}


/* _target
====================================================================== */
/*
._target {
	display: block;
	scroll-margin-top: calc(var(--header-height) + 3rem);
}
:where([id]:not(style):not(script)) {
	scroll-margin-top: calc(var(--header-height) + 3rem);
}
:where([id]._scroll-margin-top0, #header) {
	scroll-margin-top: 0 !important;
}
:where([id]._scroll-margin-top-fit) {
	scroll-margin-top: var(--header-height);
}
*/

/* spパディング
====================================================================== */
@media screen and (max-width: 743px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_pd-l {
		padding-inline: 3rem !important;
	}
}

/* contents
====================================================================== */
#contents {
	position: relative;
	overflow: clip;
}

/* kv
====================================================================== */
#kv {
	--kv-rem: min(1rem, calc(100vh / 1080px * 1rem));
	position: relative;
	height: 100svh;
	clip-path: inset(0);
	overflow: hidden;
}
#kv .bg {
	position: absolute;
	inset: 0;
	z-index: -1;
}
#kv .bg img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
#kv .kv1,
#kv .kv2,
#kv .kv3,
#kv .kv4 {
	position: absolute;
	inset: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
#kv .kv1 .txt {
	width: calc(86.3 * var(--kv-rem));
}
#kv .kv2 .txt {
	width: calc(85.8 * var(--kv-rem));
}
#kv .kv3 .txt {
	width: calc(100 * var(--kv-rem));
}
#kv .kv4 .txt {
	width: calc(49.2 * var(--kv-rem));
	transform: translateY(calc(22 * var(--kv-rem)));
	filter: drop-shadow(.3rem .3rem .4rem #000);
}
#kv .fang {
	--height: 40;
	position: absolute;
	left: 0;
	right: 0;
	height: calc(var(--height) * 6 * var(--kv-rem));
}
#kv .fang.-top {
	bottom: calc(100% - var(--height) * var(--kv-rem));
}
#kv .fang.-bottom {
	top: calc(100% - var(--height) * var(--kv-rem));
}
@media screen and (max-width: 743px) {
	#kv {
		--kv-rem: 1rem;
	}
	#kv .kv1 .txt {
		width: calc(44.7 * var(--kv-rem));
	}
	#kv .kv2 .txt {
		width: calc(32.4 * var(--kv-rem));
	}
	#kv .kv3 .txt {
		width: calc(34.8 * var(--kv-rem));
	}
	#kv .kv4 .txt {
		width: calc(29.2 * var(--kv-rem));
		transform: translateY(calc(11 * var(--kv-rem)));
		filter: drop-shadow(.14rem .14rem .2rem #000);
	}
	#kv .fang {
		--height: 18;
	}
}
@media screen {
	#kv .kv_inner {
		position: fixed;
		inset: 0;
	}
	#kv .txt {
		opacity: 0;
	}
	#kv .bg {
		opacity: 0;
	}

	#kv.loading::before {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 5rem;
		height: 5rem;
		margin: -2.5rem 0 0 -2.5rem;
		border-top: 1rem solid rgba(255,255,255,0.2);
		border-right: 1rem solid rgba(255,255,255,0.2);
		border-bottom: 1rem solid rgba(255,255,255,0.2);
		border-left: 1rem solid #fff;
		border-radius: 100%;
		transform: translateZ(0);
		animation: loading 1.1s infinite linear;
		z-index: 3;
	}
	#kv.hide-loading::before {
		opacity: 0;
		transition: opacity .3s;
	}


	#kv .kv1 .txt {
		transform: scale(.8);
	}
	#kv .kv2 .txt {
		transform: scale(.9);
	}
	#kv .kv3 .txt {
		transform: scale(1.8);
	}
	#kv .kv4 .txt {
	}
	#kv .fang.-top {
		transform: translateY(calc(var(--height) * var(--kv-rem) * -1));
	}
	#kv .fang.-bottom {
		transform: translateY(calc(var(--height) * var(--kv-rem)));
	}
	#kv.start1 .kv1 .txt {
		transition: transform .6s ease-out, opacity .6s linear;
		transform: scale(1);
		opacity: 1;
	}
	#kv.start1 .kv1 .txt img {
		transition: transform 3s linear;
		transform: scale(1.2);
	}
	#kv.start2 .kv1 .txt {
		transition: transform .3s ease-in, opacity .3s ease-in;
		transform: scale(1.2);
		opacity: 0;
	}
	#kv.start2 .kv2 .txt {
		transition: transform .4s .4s ease-out, opacity .4s .4s linear;
		transform: scale(1);
		opacity: 1;
	}
	#kv.start2 .kv2 .txt img {
		transition: transform 3s .4s linear;
		transform: scale(1.2);
	}
	#kv.start2 .kv2 .bg {
		transition: opacity 1s .4s linear;
		opacity: 1;
	}
	#kv.start3 .kv2 .txt {
		transition: transform .3s ease-in, opacity .3s ease-in;
		transform: scale(1.2);
		opacity: 0;
	}
	#kv.start3 .kv3 .txt {
		transition: transform .6s .6s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .4s .6s linear;
		transform: scale(1);
		opacity: 1;
	}
	#kv.start3 .kv3 .bg {
		transition: opacity 1s .2s linear;
		opacity: 1;
	}
	#kv.start3 .fang.-top {
		transition: transform .5s 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
		transform: translateY(calc(50vh - 10 * var(--kv-rem)));
	}
	#kv.start3 .fang.-bottom {
		transition: transform .5s 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
		transform: translateY(calc(-50vh + 10 * var(--kv-rem)));
	}
	#kv.start4 .fang.-top {
		transition: transform .8s ease-in-out;
		transform: translateY(0);
	}
	#kv.start4 .fang.-bottom {
		transition: transform .8s ease-in-out;
		transform: translateY(0);
	}
	#kv.start4 .kv4 .txt {
		transition: opacity .4s .4s linear;
		opacity: 1;
	}
	#kv.start4 .kv3 .txt {
		transition: transform .4s .4s ease-in-out;
		transform: translateY(calc(-4 * var(--kv-rem)));
	}
	@media screen and (max-width: 743px) {
		#kv.start4 .kv3 .txt {
			transform: translateY(0);
		}
	}

	body {
		overflow-y: scroll;
	}
	#contents,
	#footer {
		position: fixed;
		width: 100%;
		left: -200%;
	}
	.end-opening #contents,
	.end-opening #footer {
		position: relative;
		left: 0;
	}
}
@keyframes loading {
	0% {transform: rotate(0deg);}
	100% {transform: rotate(360deg);}
}
@media print {
	#kv {
		z-index: 3;
	}
	#kv .kv1,
	#kv .kv2 {
		display: none;
	}
	#kv .kv3 .txt {
		transform: translateY(calc(-4 * var(--kv-rem)));
	}
}

#kv .scroll {
	overflow: hidden;
	position: absolute;
	bottom: 0;
	right: 5rem;
	text-decoration: none;
	color: #fff;
	font-size: 1.4rem;
	height: 19.2rem;
	width: 8rem;
	color: #fff;
	z-index: 3;
}
#kv .scroll::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	border-left: 1px solid;
	animation: scroll 1.5s infinite ease-in-out;
	transition: none;
}
#kv .scroll span {
	position: absolute;
	top: 1rem;
	left: 100%;
	transform-origin: 0 0;
	transform: rotate(90deg);
	letter-spacing: 0.1em;
}
@keyframes scroll {
	0% {transform: translateY(-100%);}
	20%,80% {transform: translateY(0);}
	100% {transform: translateY(110%);}
}
@media (hover) {
	#kv .scroll:hover {
		color: #ffd700;
	}
}
@media screen {
	#kv .scroll {
		pointer-events: none;
		opacity: 0;
	}
	#kv.start4 .scroll {
		transition: opacity 1s .6s linear, color var(--transition);
		pointer-events: auto;
		opacity: 1;
	}
	@media screen and (max-width: 743px) {
		#kv .scroll {
			right: calc(50% - 4rem);
			font-size: 1.2rem;
			width: 8rem;
			height: 10rem;
		}
		#kv .scroll span {
			top: 0;
			left: calc(100% - 1rem);
		}
	}
}
@media print {
	#kv .scroll {
		display: none;
	}
}


/* fix_btn
====================================================================== */
.fix_btn {
	position: fixed;
	right: 3rem;
	bottom: 0;
	z-index: 10;
}
.fix_btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32.6rem;
	height: 8.8rem;
	padding-left: 9rem;
	background: #fa0000 url(../img/ico-ticket.svg) no-repeat 3.2rem;
	background-size: 8rem;
	border-radius: 2rem 2rem 0 0;
	color: #fff;
	font-size: 2.4rem;
	font-weight: var(--font-weight-exb);
	text-shadow: 1.5px 1.5px 0 #000;
	text-decoration: none;
}
@media print {
	.fix_btn {
		display: none;
	}
}
@media (hover) {
	.fix_btn a:hover {
		background-color: color-mix(in srgb, #fa0000 70%, #fff 30%);
	}
}
@media screen and (max-width: 743px) {
	.fix_btn {
		right: .7rem;
	}
	.fix_btn a {
		width: 20rem;
		height: 5.4rem;
		padding-left: 5rem;
		padding-top: 0.3rem;
		background-position: 1.5rem;
		background-size: 5rem;
		border-radius: 1.8rem 1.8rem 0 0;
		font-size: 1.5rem;
		text-shadow: 1px 1px 0 #000;
	}
}
@media screen {
	.fix_btn {
		transform: translateY(120%);
		transition: transform .7s ease-out;
	}
	.show-fix-bnr .fix_btn {
		transform: translateY(0%);
	}
}

/* exhibition_contents
====================================================================== */
.exhibition_contents {
	position: relative;
	padding-block: 7.5rem 30rem;
	clip-path: inset(0);
}
.exhibition_contents::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: -2px;
	height: 3rem;
	background: repeat-x 50% 100%;
	background-size: auto 100%;
}
.exhibition_contents .bg {
	position: fixed;
	inset: 0;
	z-index: -1;
}

.exhibition_contents h2 {
	width: 60rem;
	margin-bottom: 6rem;
	margin-inline: auto;
	text-align: center;
}
.exhibition_contents .upcoming {
	margin-top: 38rem;
	font-size: 3rem;
	line-height: calc(50 / 30);
	font-weight: var(--font-weight-exb);
	text-shadow: 2px 2px 0 #000;
	text-align: center;
}
@media screen and (min-width: 744px), print {
	.exhibition_contents::after {
		background-image: url(../img/bg-bottom.png);
	}
}
@media screen and (max-width: 743px) {
	.exhibition_contents {
		padding: 3rem var(--sp-base-padding) 10rem;
	}
	.exhibition_contents::after {
		background-image: url(../img/bg-bottom_sp.png);
	}
	.exhibition_contents .bg_top {
		position: fixed;
		inset: 0;
		z-index: -1;
	}
	.exhibition_contents h2 {
		width: 30rem;
		margin-bottom: .4rem;
	}
	.exhibition_contents .upcoming {
		margin-top: 4rem;
		font-size: 1.6rem;
		line-height: calc(26 / 16);
		text-shadow: 1px 1px 0 #000;
	}
}

.highlights_section {
	--shadow-color: #000;
	position: relative;
	max-width: 116rem;
	margin-inline: auto;
	border-radius: 5rem;
	font-size: 2rem;
	line-height: calc(46 / 20);
	font-weight: var(--font-weight-exb);
	text-shadow: 1px 1px 0 var(--shadow-color);
	z-index: 2;
}
.highlights_section .tag {
	width: 33rem;
	margin-bottom: 1rem;
}
.highlights_section h3 {
	margin-bottom: 4rem;
	font-size: 4.4rem;
	line-height: 1.5;
	font-weight: var(--font-weight-exb);
	text-shadow: 2px 2px 0 var(--shadow-color);
}
.highlights_section h3 .red {
	color: var(--color-red);
}
.highlights_section .img {
	position: absolute;
	filter: drop-shadow(0 0 2rem rgba(0,0,0,.5));
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
.highlights_section.-highlights1 {
	background-color: rgba(0,0,0,0.6);
}
.highlights_section.-highlights2 {
	--shadow-color: #fff;
	margin-top: 29rem;
	background-color: rgba(255,255,255,0.5);
	color: var(--color-black);
}
@media screen and (min-width: 744px), print {
	.highlights_section {
		padding-top: 8rem;
	}
	.highlights_section.-highlights1 {
		height: 78.8rem;
		padding-left: 8.5rem;
	}
	.highlights_section.-highlights2 {
		height: 74.2rem;
		padding-left: 58rem;
	}
	.highlights_section .img.-img1 {
		width: 70rem;
		top: -20.2rem;
		right: -12.2rem;
	}
	.highlights_section .img.-img2 {
		width: 92.9rem;
		top: 27.4rem;
		right: -40rem;
	}
	.highlights_section .img.-img3 {
		width: 176.8rem;
		top: -12rem;
		left: -95rem;
	}
	.highlights_section .img.-img4 {
		width: 108.5rem;
		top: 18rem;
		left: -46.6rem;
	}
}
@media screen and (max-width: 743px) {
	.highlights_section {
		padding: 4rem var(--sp-base-padding);
		border-radius: 2rem;
		font-size: 1.5rem;
		line-height: calc(28 / 15);
	}
	.highlights_section .tag {
		width: 18rem;
	}
	.highlights_section h3 {
		margin-bottom: 2.5rem;
		font-size: 2.8rem;
		line-height: calc(40 / 28);
		text-shadow: 1px 1px 0 var(--shadow-color);
	}
	.highlights_section .img {
		filter: drop-shadow(0 0 1rem rgba(0,0,0,.5));
	}
	.highlights_section.-highlights1 {
		padding-bottom: 50rem;
	}
	.highlights_section.-highlights2 {
		margin-top: 10rem;
		padding-bottom: 33rem;
	}
	.highlights_section .img.-img1 {
		width: 35rem;
		bottom: 8rem;
		left: -2.6rem;
	}
	.highlights_section .img.-img2 {
		width: 46rem;
		bottom: -7rem;
		left: .4rem;
	}
	.highlights_section .img.-img3 {
		width: 59rem;
		bottom: 13.8rem;
		left: -23rem;
	}
	.highlights_section .img.-img4 {
		width: 44.7rem;
		bottom: -2rem;
		left: -11rem;
	}
}


/* outline_contents
====================================================================== */
.outline_contents {
	margin-top: 26rem;
	max-width: 90rem;
	margin-inline: auto;
}
.outline_contents h2 {
	margin-bottom: 6rem;
	font-size: 4rem;
	line-height: 1.2;
	text-align: center;
	font-weight: var(--font-weight-exb);
}
.outline_contents .table {
	border-top: 1px solid #333;
	font-weight: var(--font-weight-bold);
	line-height: 1.67;
}
.outline_contents .table dl {
	padding: 2.2rem 0;
	border-bottom: 1px solid #333;
}
.outline_contents .table dt {
	color: #ffd700;
}
.outline_contents .table .s {
	font-size: 1.4rem;
	font-weight: var(--font-weight-reg);
}
@media screen and (min-width: 744px), print {
	.outline_contents .table dl {
		display: flex;
		padding-left: 3rem;
	}
	.outline_contents .table dt {
		width: 13rem;
		flex-shrink: 0;
	}
}
@media screen and (max-width: 743px) {
	.outline_contents {
		margin-top: 7rem;
		padding-inline: var(--sp-base-padding);
	}
	.outline_contents h2 {
		margin-bottom: 3rem;
		font-size: 2.5rem;
	}
	.outline_contents .table dl {
		padding: 2.5rem 1rem;
	}
	.outline_contents .table dt {
		margin-bottom: 0.5em;
	}
	.outline_contents .table .s {
		display: block;
		font-size: 1.2rem;
	}
}

/* ticket_contents
====================================================================== */
.ticket_contents {
	position: relative;
	margin-top: 28rem;
}
.ticket_contents .badge {
	position: absolute;
	width: 21.4rem;
}
.ticket_contents .price_notes {
	margin-block: 2.2rem;
	text-align: center;
	color: var(--color-black);
	font-size: 1.6rem;
	line-height: 1.6;
}
.ticket_contents .btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 56.4rem;
	height: 11.8rem;
	margin-inline: auto;
	background-color: var(--color-red);
	border: .5rem solid #fff;
	border-radius: 100rem;
	font-size: 3.8rem;
	line-height: 1;
	font-weight: var(--font-weight-exb);
	color: #fff;
	text-decoration: none;
	box-shadow: .2rem .2rem 0 #000;
}
.ticket_contents .bg img {
	border-radius: 4rem;
}
.ticket_contents .scratch {
	position: absolute;
	right: 0.8rem;
	bottom: 3.8rem;
	width: 20rem;
	z-index: -1;
}
.ticket_contents .img {
	position: absolute;
	filter: drop-shadow(0 0 2rem rgba(0,0,0,.5));
	pointer-events: none;
	user-select: none;
}
@media (hover) {
	.ticket_contents .btn a {
		position: relative;
		overflow: hidden;
	}
	.ticket_contents .btn a::before {
		content: "";
		position: absolute;
		top: -50%;
		left: -130%;
		width: 30%;
		height: 200%;
		background: linear-gradient(
			to right,
			transparent 0%,
			rgba(255,255,255,0.8) 50%,
			transparent 100%
		);
		transform: skewX(-25deg);
		pointer-events: none;
	}
	.ticket_contents .btn a:hover::before {
		left: 150%;
		transition: left 0.4s ease-out;
	}
	.ticket_contents .btn a::after {
		content: "";
		position: absolute;
		inset: 0;
		background-color: #fff;
		opacity: 0;
		pointer-events: none;
	}
	.ticket_contents .btn a:hover::after {
		animation: shine 0.6s ease;
	}
}
@keyframes shine {
	0%   { opacity: 0; }
	30%   { opacity: .4; }
	100% { opacity: 0; }
}
@media screen and (min-width: 744px), print {
	.ticket_contents {
		width: 106rem;
		height: 72.4rem;
		margin-inline: auto;
		padding: 11.5rem 7.6rem 0;
	}
	.ticket_contents .badge {
		left: 2.2rem;
		top: -10.6rem;
	}
	.ticket_contents h2 {
		position: absolute;
		width: 54rem;
		left: 25rem;
		top: -3.5rem;
	}
	.ticket_contents .price {
		display: flex;
		justify-content: space-between;
	}
	.ticket_contents .price li {
		width: 43rem;
	}
	.ticket_contents .img.-img1 {
		width: 50.8rem;
		top: -19.2rem;
		right: -21.6rem;
	}
	.ticket_contents .img.-img2 {
		width: 50rem;
		bottom: -22.8rem;
		left: -24.2rem;
	}
}
@media screen and (max-width: 743px) {
	.ticket_contents {
		margin-top: 12rem;
		margin-inline: var(--sp-base-padding);
		padding: 8.8rem var(--sp-base-padding) 10rem;
	}
	.ticket_contents .badge {
		left: -1.2rem;
		top: -5rem;
		width: 12.8rem;
	}
	.ticket_contents h2 {
		margin-bottom: 3rem;
	}
	.ticket_contents .price {
		display: flex;
		flex-direction: column;
		gap: 2rem;
		width: 27rem;
		margin-inline: auto;
	}
	.ticket_contents .price_notes {
		margin-block: 2rem;
		font-size: 1.4rem;
	}
	.ticket_contents .btn a {
		width: 27rem;
		height: 9.4rem;
		border-width: 0.3rem;
		font-size: 2.3rem;
		line-height: calc(27 / 23);
		text-align: center;
	}
	.ticket_contents .bg img {
		border-radius: 2rem;
	}
	.ticket_contents .scratch {
		right: -0.2rem;
		bottom: 19rem;
		width: 10rem;
	}
	.ticket_contents .img {
		filter: drop-shadow(0 0 1rem rgba(0,0,0,.5));
	}
	.ticket_contents .img.-img1 {
		width: 31rem;
		top: -11.2rem;
		right: -8.6rem;
	}
	.ticket_contents .img.-img2 {
		width: 30rem;
		bottom: -22rem;
		left: -6.2rem;
	}
}

/* contact_box
====================================================================== */
.contact_box {
	margin-top: 14rem;
	margin-inline: auto;
	padding-block: 4rem 2rem;
	background-color: #fff;
	border-radius: 4rem;
	color: var(--color-black);
	text-align: center;
	font-size: 1.6rem;
	line-height: calc(27 / 16);
	font-weight: var(--font-weight-bold);
}
.contact_box h2 {
	margin-bottom: 1rem;
	font-size: 3rem;
	line-height: 1.3;
	font-weight: var(--font-weight-exb);
}
.contact_box .tel {
	margin-bottom: .5rem;
	font-size: 4.4rem;
	line-height: 1.2;
	font-weight: var(--font-weight-exb);
}
.contact_box .tel a {
	color: var(--color-black);
	text-decoration: none;
}
@media screen and (min-width: 744px), print {
	.contact_box {
		width: 58.6rem;
	}
}
@media screen and (max-width: 743px) {
	.contact_box {
		width: 29.4rem;
		margin-top: 18rem;
		padding-block: 2rem 1.5rem;
		border-radius: 2rem;
		font-size: 1.2rem;
		line-height: calc(17 / 12);
	}
	.contact_box h2 {
		margin-bottom: 1rem;
		font-size: 1.7rem;
	}
	.contact_box .tel {
		font-size: 2.6rem;
	}
}

/* footer
====================================================================== */
#footer {
	margin-top: 11rem;
}
#footer .sns {
	display: flex;
	justify-content: center;
	gap: 5rem;
}
#footer .sns a {
	display: block;
	width: 5.4rem;
}
@media (hover) {
	#footer .sns a:hover {
		opacity: 0.5;
	}
}
@media screen and (min-width: 744px), print {
}
@media screen and (max-width: 743px) {
	#footer {
		margin-top: 5rem;
	}
	#footer .sns {
		gap: 4rem;
	}
	#footer .sns a {
		width: 4.2rem;
	}
}

#footer .bnr {
	position: relative;
	margin-top: 10.5rem;
	padding-bottom: 10.5rem;
	display: flex;
	justify-content: center;
	gap: 1.5rem;
}
@media (hover) {
	#footer .bnr a:hover {
		opacity: 0.7;
	}
}
@media screen and (min-width: 744px), print {
	#footer .bnr li {
		width: 25rem;
	}
}
@media screen and (max-width: 743px) {
	#footer .bnr {
		flex-direction: column;
		width: 22rem;
		margin-inline: auto;
		margin-top: 5.5rem;
		padding-bottom: 14rem;
	}
}
#footer .copyright {
	position: relative;
	display: flex;
	justify-content: center;
	gap: 2em;
	padding-block: 3.2rem;
	border-top: 1px solid #fff;
	font-size: 1.3rem;
	line-height: 1.5;
}
#footer .copyright small {
	font-size: 100%;
}
#footer .copyright .bg {
	position: absolute;
	right: 0;
	bottom: calc(100% + 1px);
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
#footer .copyright .bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media screen and (min-width: 744px), print {
	#footer .copyright .bg {
		height: 32rem;
		left: calc(50% + 34rem);
		max-width: 103.7rem;
	}
	#footer .copyright .bg img {
		object-position: 0;
	}
}
@media screen and (max-width: 743px) {
	#footer .copyright {
		font-size: 1.2rem;
		padding-bottom: 8rem;
	}
	#footer .copyright .bg {
		width: 33rem;
		height: 12.4rem;
	}
}


/* mov show
====================================================================== */
@media screen {
	._mov_fadein {
		opacity: 0;
	}
	._mov_fadein._mov_showed {
		transition: opacity 1s linear;
		opacity: 1;
	}

	._mov_fadeup {
		opacity: 0;
		transform: translateY(3rem);
	}
	._mov_fadeup._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateY(0);
	}

	._mov_fadeup_b {
		opacity: 0;
		transform: translateY(5rem);
	}
	._mov_fadeup_b._mov_showed {
		transition: transform .7s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .7s linear;
		opacity: 1;
		transform: translateY(0);
	}

	._mov_fadeleft {
		opacity: 0;
		transform: translateX(-5rem);
	}
	._mov_fadeleft._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateX(0);
	}

	._mov_faderight {
		opacity: 0;
		transform: translateX(5rem);
	}
	._mov_faderight._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateX(0);
	}

	._mov_zoomin {
		opacity: 0;
		transform: scale(.2);
	}
	._mov_zoomin.-zomms {
		transform: scale(.6);
	}
	._mov_zoomin._mov_showed {
		transition: transform .6s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .6s linear;
		opacity: 1;
		transform: scale(1);
	}

	._mov_zoomout {
		opacity: 0;
		transform: scale(3);
		display: inline-block;
	}
	._mov_zoomout._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: scale(1);
	}

	._mov_delay1 {
		transition-delay: .2s !important;
	}
	._mov_delay2 {
		transition-delay: .4s !important;
	}
	._mov_delay3 {
		transition-delay: .6s !important;
	}
	._mov_delay4 {
		transition-delay: .8s !important;
	}
	._mov_delay5 {
		transition-delay: 1s !important;
	}
	._mov_delay6 {
		transition-delay: .2s !important;
	}
	._mov_delay1s {
		transition-delay: .1s !important;
	}
	._mov_delay2s {
		transition-delay: .2s !important;
	}
	._mov_delay3s {
		transition-delay: .3s !important;
	}
	._mov_delay4s {
		transition-delay: .4s !important;
	}
	._mov_delay5s {
		transition-delay: .5s !important;
	}
	._mov_delay6s {
		transition-delay: .6s !important;
	}
	@media screen and (min-width: 768px), print {
		._mov_pc_delay1 {
			transition-delay: .2s !important;
		}
		._mov_fadeup.-sp-mov_show {
			opacity: 1;
			transform: translateY(0);
		}
	}
	._mov_showed + ._mov_fadeup._mov_before {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		transition-delay: .4s !important;
		opacity: 1;
		transform: translateY(0);
	}

	.ticket_contents .scratch {
		-webkit-mask-image: url(../img/ticket_scratch.svg);
		mask-image: url(../img/ticket_scratch.svg);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-position: -20rem -26rem;
		mask-position: -20rem -26rem;
		-webkit-mask-size: 100%;
		mask-size: 100%;
	}
	@media screen and (max-width: 743px) {
		.ticket_contents .scratch {
			-webkit-mask-position: -10rem -13rem;
			mask-position: -10rem -13rem;
		}
	}
	.ticket_contents .scratch._mov_showed {
		transition: mask-position .3s ease-out;
		-webkit-mask-position: 0 0;
		mask-position: 0 0;
	}
}
