@charset "utf-8";

:root {
	--themeBlack:#333;
	--themeWhite:whitesmoke;
	--themeBack:#333;
}

/* =======================================
	reset
======================================= */
html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;font-weight:normal;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ul{list-style:none !important}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid silver;margin:1em 0;padding:0}input,select{vertical-align:middle} button {background:none;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0;}

* {-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;word-break:break-all;}


/* =======================================
	common
======================================= */
body{
	position:relative;
	width:100%;
	min-height:100svh;
	margin:0 auto;
	text-align:center;
	color:var(--themeBlack);
	background:var(--themeBack);
	line-height:1;
	font-family:"Noto Sans JP", sans-serif;
	letter-spacing:1px;
}

img {max-width:100%;height:auto;vertical-align:bottom;}
table {width:100%;}
tr, td {vertical-align:top;}

a {outline:none;text-decoration:underline;}
a:link {color:var(--themeWhite);text-decoration:none;}
a:visited {color:var(--themeWhite);text-decoration:none;}
a:hover {color:var(--themeWhite);text-decoration:none;}

main a:link {color:var(--themeBlack);text-decoration:none;}
main a:visited {color:var(--themeBlack);text-decoration:none;}
main a:hover {color:var(--themeBlack);text-decoration:none;}

.pc {display:none !important;}
.sp {display:inline-block !important;}


/* =======================================
	video
======================================= */
#video-area{
	position:fixed;
	z-index:-1;
	top:0;
	right:0;
	left:0;
	bottom:0;
	overflow:hidden;
}

#video {
	position:absolute;
	z-index:-1;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	width:177.77777778vh;
	height:56.25vw;
	min-height:100%;
	min-width:100%;
}


/* =======================================
	navigation
======================================= */
nav {
	width:100%;
	margin:0 auto;
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	background:steelblue;
}

nav ul {
	width:90%;
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin:0 auto;
	padding:1em 0;
	gap:2%;
}

nav ul li:nth-child(3) {
	flex:1;
}

nav ul li:nth-child(4) {
	min-width:10%;;
}

nav ul li:nth-child(3) a {
	font-family:"Train One", system-ui;
	font-size:clamp(1.5rem, 1.318rem + 0.91vw, 2rem);
	display:block;
	width:100%;
	height:100%;
	color:var(--themeWhite);
	border-radius:8px;
	padding:0.5em 0;
}

nav ul li:nth-child(1) a,
nav ul li:nth-child(2) a,
nav ul li:nth-child(4) a {
	display:block;
	width:100%;
	height:100%;
}

nav ul li:nth-child(1) i,
nav ul li:nth-child(2) i {
	font-size:clamp(1rem, 0.927rem + 0.36vw, 1.2rem);
	border-radius:50%;
	background:black;
	padding:12px;
}

nav ul li:nth-child(4) i {
	font-size:clamp(2rem, 1.927rem + 0.36vw, 2.2rem);
}

nav {
	transform:translateY(100%);
	transition:transform 0.5s ease-in-out;
}

nav.show-nav {
	transform:translateY(0);
}


/* =======================================
	loading
======================================= */
.loading {
	width:100%;
	height:100%;
	background:rgba(0,0,0,1.0);
	position:fixed;
	top:0;
	left:0;
	z-index:99999;
}
.loading img {
	width:128px;
	height:128px;
	position:absolute;
	top:50%;
	left:50%;
	margin-top:-64px;
	margin-left:-64px;
}


/* =======================================
	layout
======================================= */
header {
	width:100%;
	height:100svh;
	margin:0 auto;
	position:relative;
}

header.sub {
	height:auto;
}

main {
	width:100%;
	margin:0 auto;
	padding:2em 0;
	background:var(--themeWhite);
}

section {
	width:100%;
	margin:0 auto;
	text-align:center;
}

section:not(:last-of-type) {
	margin:0 auto 4em;
}

.inner {
	width:90%;
	margin:0 auto;
	text-align:center;
}

.inner.innerW100 {
	width:100%;
}


/* =======================================
	text
======================================= */
h1 {
	color:var(--themeWhite);
	font-family:"Noto Serif JP", serif;
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	height:100%;
	margin:0 auto;
	text-align:center;
	font-size:clamp(3rem, 1.182rem + 9.09vw, 8rem);
	font-weight:bold;
	line-height:1.2;
	letter-spacing:-1px;
	mix-blend-mode:overlay;
	text-shadow:2px 3px 3px rgba(0, 0, 0, 0.4);
}

h1.sub {
	font-size:7.2vw;
	padding:5em 0;
}

h2 {
	display:flex;
	align-items:center;
	font-family:"Train One", system-ui;
	font-size:clamp(1.5rem, 0.591rem + 4.55vw, 4rem);
	letter-spacing:4px;
	line-height:1.5;
	color:var(--themeBlack);
	margin:0 auto 1em;
	position:relative;
	text-align:center;
	z-index:0;
}

h2::before,
h2::after {
	content:"";
	flex:1;
	border-bottom:1px solid var(--themeBlack);
	margin:0 0.5em;
}

h3 {
	width:100%;
	font-size:clamp(1.4rem, 1.182rem + 1.09vw, 2rem);
	font-weight:bold;
	margin:0 auto 1em;
	position:relative;
	text-align:center;
}

h3.small {
	font-size:clamp(1.2rem, 0.982rem + 1.09vw, 1.8rem);
}

h3.mt2em {
	margin-top:2em;
}

h3.h3opening {
	margin-top:3em;
	font-size:clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
}

h3.h3opening span {
	letter-spacing:0;
	font-size:clamp(0.6rem, 0.455rem + 0.73vw, 1rem);
}

h4 {
	width:90%;
	margin:0 auto;
	font-size:clamp(1rem, 0.891rem + 0.55vw, 1.3rem);
	font-weight:bold;
	text-align:left;
	line-height:1.2;
}

h4:not(:first-of-type) {
	margin-top:1em;
}

p {
	width:100%;
	margin:0 auto;
	text-align:left;
	line-height:1.2;
}

p.notice {
	font-size:90%;
	color:#555;
}

p.center {
	text-align:center;
}

p.gakuwari {
	text-align:left;
}

p.gakuwari i {
	font-size:2em;
}

p.gakuwari span.pcenter {
	width:100%;
	display:inline-block;
	text-align:center;
}

p.information {
	margin:5em auto 0;
	text-align:center;
}

.rgbaBox {
	width:100%;
	margin:2em auto;
	padding:5% 2%;
	background:rgba(30,0,0,0.5);
}


/* =======================================
	info
======================================= */
.info {
	position:absolute;
	bottom:5%;
	left:0;
	right:0;
	margin:0 auto;
}

.infoDate {
	font-size:clamp(1.8rem, 1.582rem + 1.09vw, 2.4rem);
	font-weight:bold;
	margin:0 auto 1rem;
	text-align:center;
}

.infoDate span {
	font-size:72%;
}

.infoTime {
	font-size:clamp(0.9rem, 0.755rem + 0.73vw, 1.3rem);
	font-weight:bold;
	margin:0 auto 1rem;
	text-align:center;
}

.infoVenue {
	font-size:clamp(1.5rem, 1.318rem + 0.91vw, 2rem);
	font-weight:bold;
	margin:0 auto 1rem;
	text-align:center;
}

.infoDate,
.infoTime,
.infoVenue,
.infoVenue a {
	color:var(--themeWhite);
	text-shadow:2px 3px 3px rgba(0, 0, 0, 0.4);
}


/* =======================================
	lineup
======================================= */
ul.artists li {
	font-size:clamp(1.4rem, 1.182rem + 1.09vw, 2rem);
	font-weight:bold;
	margin:0 auto 1rem;
	text-align:center;
}

ul.artists li.andmore {
	font-weight:normal;
	margin-top:2em;
}

ul.artists li span.new {
	font-size:50%;
	color:var(--themeWhite);
	background:red;
	padding:3px 6px;
	font-weight:bold;
	margin-right:0.3em;
	vertical-align:middle;
}


/* =======================================
	movie
======================================= */
ul.movies li p {
	font-size:clamp(1.2rem, 0.982rem + 1.09vw, 1.8rem);
	font-weight:bold;
	margin:0.3em auto 1rem;
	text-align:center;
}

.youtube {
	position:relative;
	width:100%;
	margin:0 auto;
	padding-top:56.25%;
}
.youtube iframe {
	position:absolute;
	top:0;
	right:0;
	width:100% !important;
	height:100% !important;
}


/* =======================================
	tickets
======================================= */
table {
	width:100%;
	margin:1em auto 2em;
	text-align:left;
	width:auto;
	border-collapse:collapse; 
}

table td {
	font-size:clamp(1.2rem, 1.091rem + 0.55vw, 1.5rem);
	vertical-align:middle;
	padding-bottom:0.5em;
	font-weight:bold;
	white-space:nowrap; 
}

table td.price {
	font-size:clamp(1.2rem, 1.091rem + 0.55vw, 1.5rem);
	vertical-align:middle;
	white-space:nowrap;
	padding-left:1em;
}

table td.price span.finished {
	color:whitesmoke;
	background:red;
	font-size:60%;
	padding:3px 8px;
	vertical-align:middle;
	white-space:nowrap;
}

.bordersNotice {
	width:100%;
	margin:2em auto;
	padding:10% 5%;
	border-top:3px solid var(--themeBlack);
	border-bottom:3px solid var(--themeBlack);
}

.hayawari {
	width:80%;
	margin:1em auto 0;
	text-align:center;
}

.hayawari a {
	display:block;
	width:100%;
	height:100%;
}

.hayawari a img {
	width:80%;
	box-shadow:6px 6px 10px 0px rgba(0, 0, 0, 0.4);
}

.playguide ul {
	display:flex;
	justify-content:space-around;
	align-items:center;
	gap:4%;
	margin:1em auto 0;
}

.playguide ul li {
	width:50%;
}

.playguide ul li a {
	display:block;
	width:100%;
	height:100%;
}

.playguide ul li a img {
	box-shadow:6px 6px 10px 0px rgba(0, 0, 0, 0.4);
}


/* =======================================
	.openingact
======================================= */
.headOpening {
	position:absolute;
	top:5%;
	right:0;
	left:0;
	margin:auto;
	display:flex;
	justify-content:center;
	font-size:24px;
}

.headOpening a {
	font-size:clamp(0.938rem, 0.733rem + 1.02vw, 1.5rem);
	letter-spacing:0;
	display:inline-block;
	color:var(--themeBlack);
	background:rgba(255,255,255,0.6);
	border:3px solid var(--themeBlack);
	padding:0.5em 2em;
}

p.opening {
	width:90%;
	font-size:clamp(1rem, 0.891rem + 0.55vw, 1.3rem);
	margin:0 auto;
	text-align:left;
}

.openingTitle {
	width:90%;
	margin:0 auto 2em;
	text-align:center;
	font-size:clamp(1.2rem, 0.9rem + 1.5vw, 1.8rem);
	font-weight:bold;
	letter-spacing:0;
	line-height:1.3;
}

.openingBox {
	width:100%;
	margin:2em auto;
	padding:5% 2%;
	border-top:3px solid #555;
	border-bottom:3px solid #555;
}

.openingNotice {
	width:90%;
	margin'0 auto;
	text-align:left;
	padding-left:2em;
	text-indent:-0.7em;
	margin-bottom:0.8em;
	font-size:clamp(1rem, 0.927rem + 0.36vw, 1.2rem);
}

.openingNotice i {
	margin-right:0.3em;
}

.openingNoticeText {
	margin:2em auto 0;
	text-align:center;
}


/* =======================================
	footer
======================================= */
footer {
	color:white;
	background:rgba(0,0,0,0.6);
	margin:0 auto;
	padding:10% 0 5%;
	text-align:center;
	position:relative;
}

footer ul {
	margin:0 auto;
}

footer ul li {
	margin:0 auto 1em;
	text-align:center;
	line-height:1.5;
}

footer ul li div {
	font-size:1.3em;
	margin-bottom:0.5em;
}

.copyright  {
	margin:4em auto 8em;
}


/* =======================================
	.pagetop
======================================= */
.pagetop {
	z-index:9999;
	display:none;
	position:fixed;
	bottom:2%;
	right:2%;
	width:48px;
	height:48px;
}

@media screen and (min-width:768px) {

.pc {display:inline-block !important;}
.sp {display:none !important;}

a {
	cursor:pointer;
	-webkit-transition:all 0.3s ease;
	-moz-transition:all 0.3s ease;
	-o-transition:all 0.3s ease;
	transition:all  0.3s ease;
}

a:hover {
	 -moz-opacity:0.5;
	 opacity:0.5;
}

main {
	padding:2em 0 4em;
}

section:not(:last-of-type) {
	margin:0 auto 8em;
}

.inner {
	max-width:960px;
}

p.pcCenter {
	text-align:center;
}

ul.movies {
	width:100%;
	margin:0 auto 2em;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:start;
	gap:4%;
}

ul.movies li {
	width:48%;
}

table {
	max-width:640px;
	margin:1em auto 2em;
	text-align:left;
}

.hayawari a img {
	max-width:285px;
}

.playguide ul {
	width:420px;
}

h1.sub {
	padding:1em 0;
}

h4 {
	text-align:center;
}

p.opening {
	width:100%;
	text-align:center;
}

.openingTitle {
	width:100%;
	margin:0 auto 2em;
	text-align:center;
}

.openingNotice {
	width:90%;
	max-width:960px;
	padding-left:2em;
	text-indent:-0.6em;
	margin-bottom:0.8em;
}

.openingNoticeText {
	margin:4em auto 0;
}

footer {
	padding:6% 0 3%;
}

footer ul li div {
	font-size:1.8em;
}

p.gakuwari {
	text-align:center;
}

}