@charset "UTF-8";

* { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 10px; }
body { color: #111; font-family: "Noto Sans JP", メイリオ, Meiryo, 'ＭＳ ゴシック', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif; font-size: 1.6rem; font-weight: 400; line-height: 1.5; -webkit-text-size-adjust: 100%; }
img { border: 0; vertical-align: top; -ms-interpolation-mode: bicubic; }
a { outline: none; transition: all 0.3s ease; }
a:link { color: #000000; text-decoration: none; }
a:visited { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: underline; }
a:hover img { opacity: 0.8; transition: all 0.3s ease; }
button { background: transparent; border: none; appearance: none; cursor: pointer; outline: none; }
.clearfix::after { content: ''; display: block; clear: both; }

body.open-menu {
	height: 100%;
	overflow: hidden;
}
.antonio {
	font-family: "Antonio", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
	letter-spacing: 0.02em;
}
.bold {
	font-weight: 700;
}

main {
	overflow: hidden;
}
h1 {
	font-family: "Antonio", sans-serif;
	font-size: 5.0rem;
	font-weight: 700;
}
h2 {
	color: #E73273;
	font-family: "Antonio", sans-serif;
	font-size: 3.0rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}
h2 span {
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
}
h3 {
	font-family: "Antonio", sans-serif;
	font-size: 2.4rem;
	font-weight: 700;
}
.flex {
	display: flex;
}
.inner {
	margin: 0 auto;
	width: 100%;
	max-width: 1080px;
}
@media screen and (max-width: 1080px) {
	.inner {
		padding: 0 16px;
	}
}
@media screen and (max-width: 767px) {
	body {
		font-size: 1.3rem;
	}
	h2 {
		font-size: 2.4rem;
	}
}

/* --------------------------------------------------
	Header 
-------------------------------------------------- */
#globalHeader {
	width: 100%;
	height: 70px;
	display: flex;
	justify-content: space-between;
	position: fixed;
	top: 0;
	left: 0;
    z-index: 145;
}
.header_logo {
	height: 100%;
	background: #1D1F29;
}
.header_logo a {
	display: block;
	height: 100%;
}
.header_logo img {
	width: auto;
	height: 100%;
}
#Menubtn {
	width: 70px;
	height: 70px;
	display: block;
	background: #E73273;
	color: #fff;
	font-family: "Antonio", sans-serif;
	font-weight: 700;
	font-size: 1.2rem;
	letter-spacing: 0.1em;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
}
#Menubtn span {
	margin: 3px 0;
	width: 30px;
	height: 2px;
	display: block;
	background: #fff;
	transition: all .3s;
}
#Menubtn::after {
	content: 'Menu';
}
#Menubtn:hover {
	text-decoration: none;
}
#Menu.open #Menubtn {
	background: none;
}
#Menu.open #Menubtn::after {
	content: 'Close';
}
#Menu.open #Menubtn span:first-of-type {
	transform: rotate(-15deg) translateY(4px);
	transform-origin: center center;
}
#Menu.open #Menubtn span:last-of-type {
	transform: rotate(15deg) translateY(-4px);
	transform-origin: center center;
}

#Menu #globalMenu {
	transform: translateX(100%);
	transition: all .2s;
}
#Menu.open #globalMenu {
	transform: translateX(0);
}
#globalMenu {
	width: 100vw;
	height: 100vh;
	background: rgba(231, 50, 115, 1.0);
	display: flex;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}
#globalMenu .inner {
	max-width: 820px;
}
#globalMenu .en {
	color: #fff;
	font-family: "Antonio", sans-serif;
	font-weight: 700;
}
#globalMenu .catchcopy {
	margin-bottom: 40px;
	color: #fff;
	font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-size: 1.6rem;
}
#globalMenu .catchcopy strong {
	font-size: 2.0rem;
	line-height: 2;
}
#globalMenu .menu01 {
	margin-bottom: 70px;
	display: flex;
	list-style: none;
}
#globalMenu .menu01 li {
	width: 25%;
	border-right: solid 1px #000;
}
#globalMenu .menu01 li:first-of-type {
	border-left: solid 1px #000;
}
#globalMenu .menu01 li a {
	height: 80px;
	display: flex;
	justify-content: center;
	color: #fff;
}
#globalMenu .menu01 li a:hover {
	text-decoration: none;
	opacity: 0.8;
}
#globalMenu .menu01 li p {
	display: inline-block;
	font-size: 1.2rem;
	letter-spacing: 0.04em;
}
#globalMenu .menu01 li span.en {
	display: block;
	font-size: 2.8rem;
	letter-spacing: 0.02em;
}
#globalMenu .menu02 {
	margin-bottom: 60px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 20px;
	list-style: none;
}
#globalMenu .menu02 a {
	width: 300px;
	height: 90px;
	display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
	background: #000000;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.04em;
	text-align: center;
  position: relative;
  transition: all .3s;
}
#globalMenu .menu02 a:hover {
	text-decoration: none;
}
#globalMenu .menu02 a::before {
  content: '';
  width: 72px;
  height: 100%;
  clip-path: polygon(45px 0%, 100% 0, 100% 100%, 0% 100%);
  background: #C5C8CE;
  position: absolute;
  top: 0;
  right: 0;
}
#globalMenu .menu02 a::after {
  content: '';
  display: block;
  width: 56px;
  height: 20px;
  background: url(../img/common/btn_more_wh.svg);
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: all .3s;
}
#globalMenu .menu02 a:hover::after {
  transform: translateX(3px) translateY(-50%);
}
#globalMenu .menu02 span {
	margin-top: 5px;
	font-size: 1.2rem;
	letter-spacing: 0.02em;
}
#globalMenu .menu02 .ticket {
	padding-top: 17px;
	position: relative;
	overflow: hidden;
}
#globalMenu .menu02 .ticket img {
	position: absolute;
	top: 0;
	left: 6px;
	width: 93px;
	z-index: 1;
}
#globalMenu .menu03 {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
#globalMenu .menu03 .SNS {
	display: flex;
	align-items: center;
	gap: 20px;
}
#globalMenu .menu03 .link {
	display: flex;
	align-items: center;
	gap: 40px;
}
#globalMenu .menu03 .link a {
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: 0.04em;
}

@media screen and (max-width: 767px) {
	#globalHeader {
		height: 50px;
	}
	.header_logo a {
		display: flex;
		align-items: center;
	}
	.header_logo img {
		height: 40px;
		line-height: 50px;
	}
	#Menubtn {
		width: 50px;
		height: 50px;
		font-size: 1.0rem;
	}
	#globalMenu {
		overflow: scroll;
		display: block;
	}
	#globalMenu .inner {
		padding: 30px 30px 50px;
	}
	#globalMenu .menu01 {
		margin-bottom: 40px;
		padding: 0;
		display: block;
	}
	#globalMenu .menu01 li {
		width: 100%;
		border-right: none;
		border-bottom: solid 1px #000;
	}
	#globalMenu .menu01 li:first-of-type {
		border-left: none;
		border-top: solid 1px #000;
	}
	#globalMenu .menu01 li a {
		height: auto;
		justify-content: flex-start;
	}
	#globalMenu .menu01 li p {
		padding: 13px 0;
		display: flex;
		align-items: flex-end;
		justify-content: flex-end;
		gap: 10px;
	}
	#globalMenu .menu02 {
		margin-bottom: 30px;
		display: block;
	}
	#globalMenu .menu02 .ticket {
		margin-bottom: 10px;
	}
	#globalMenu .menu03 {
		flex-direction: column;
	}
	#globalMenu .menu03 .SNS {
		margin-bottom: 30px;
		width: 100%;
		justify-content: center;
	}
	#globalMenu .menu03 .link {
		display: flex;
		flex-direction: column;
		gap: 10px;
	}
	#globalMenu .menu03 .link a {
		color: #000000;
	}
}

/* --------------------------------------------------
	Footer
-------------------------------------------------- */
#globalFooter {
	border-bottom: solid 10px #000;
	background: #F0F0F0;
}
#globalFooter .inner {
	width: 100%;
	max-width: 1280px;
	justify-content: space-between;
}
#globalFooter .footer_logo {
	width: 250px;
}
#globalFooter .footer_contents {
	padding: 40px 0 60px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}
#globalFooter .btn_top {
	padding-top: 32px;
	padding-right: 20px;
	display: inline-block;
	color: #E73273;
	font-size: 1.6rem;
	position: relative;
}
#globalFooter .btn_top::after {
	content: '';
	display: block;
	width: 56px;
	height: 20px;
	background: url(../img/common/btn_more_pk.svg);
	transform: rotate(-90deg);
	transform-origin: left bottom;
	position: absolute;
  bottom: 0;
  right: -56px;
	transition: all .3s;
}
#globalFooter .btn_top:hover {
	text-decoration: none;
}
#globalFooter .btn_top:hover::after {
	transform: rotate(-90deg) translateX(3px);
}
#globalFooter .sns {
	margin: 60px 0 30px;
	display: flex;
	align-items: center;
	gap: 20px;
}
#globalFooter .link {
	display: flex;
	gap: 40px;
	list-style: none;
}
#globalFooter p.copyright {
	width: 100%;
	height: 30px;
	background: #E73273;
	color: #fff;
	font-size: 0.8rem;
	line-height: 30px;
	text-align: center;
}
@media screen and (max-width: 767px) {
	#globalFooter .inner {
		padding-top: 40px; 
		display: block;
		text-align: center;
		position: relative;
	}
	#globalFooter .btn_top {
		position: absolute;
		top: 20px;
		right: 16px;
	}
	#globalFooter .footer_contents {
		padding: 0 0 50px;
		align-items: center;
	}
	#globalFooter .sns {
		margin: 0 0 30px;
		gap: 30px;
	}
	#globalFooter .link {
		flex-direction: column;
		align-items: center;
		gap: 15px;
	}
}

/* --------------------------------------------------
	Btn
-------------------------------------------------- */
.btn_wrap{}
a.btn {
	margin: 80px auto 0;
	width: 400px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	background: #E73273;
	color: #fff;
	font-size: 2.0rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	position: relative;
	transition: all .3s;
}
a.btn::before {
	content: '';
	width: 75px;
	height: 100%;
	clip-path: polygon(35px 0%, 100% 0, 100% 100%, 0% 100%);
	background: #C92B63;
	position: absolute;
	top: 0;
	right: 0;
}
a.btn::after {
	content: '';
	display: block;
	width: 56px;
	height: 20px;
	background: url(../img/common/btn_more_wh.svg);
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	transition: all .3s;
}
a.btn span {
	display: block;
	color: #000;
	font-size: 1.6rem;
}
a.btn:hover {
	text-decoration: none;
	opacity: 0.8;
}
a.btn:hover::after {
	transform: translateX(3px) translateY(-50%);
}
@media screen and (max-width: 767px) {
	a.btn {
		margin-top: 50px;
		width: 280px;
		font-size: 1.5rem;
	}
	a.btn span {
		font-size: 1.2rem;
	}
}
/* --------------------------------------------------
	Btn_more
-------------------------------------------------- */
.btn_more {
	font-family: "Antonio", sans-serif;
	font-size:1.6rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.0;
	display: flex;
	align-items: center;
	transition: all .3s;
}
.btn_more::after {
	content: '';
	display: block;
	margin-left: 10px;
	width: 56px;
	height: 20px;
	background: url(../img/common/btn_more_pk.svg);
	transition: all .3s;
}
a.btn_more.pink {
	color: #E73273;
}
a.btn_more.white {
	color: #fff;
}
.btn_more.white::after {
	background: url(../img/common/btn_more_wh.svg);
}
.btn_more:hover {
	text-decoration: none;
	opacity: 0.8;
}
.btn_more:hover::after {
	transform: translateX(3px);
}
.btn_more.small {
	font-size: 1.0rem;
}
/* --------------------------------------------------
	Slide arrow
-------------------------------------------------- */
.arrows .slick-arrow {
	font-size: 0rem;
	width: 40px;
	height: 40px;
	transition: all .3s;
}
.arrows .slick-arrow:hover {
	opacity: 0.5;
}
.arrows .slick-prev {
	margin-right: 10px;
	background: url(../img/common/slide_prev.svg);
	background-size: contain;
}
.arrows .slick-next {
	margin-left: 10px;
	background: url(../img/common/slide_next.svg);
	background-size: contain;
}
/* --------------------------------------------------
	Slide dots
-------------------------------------------------- */
.dots_common .slick-dots {
	display: flex;
	align-items: center;
}
.dots_common .slick-dots li {
	margin: 0 2px;
	list-style: none;
}
.dots_common .slick-dots button {
	font-size: 0rem;
	width: 20px;
	height: 1px;
	background: #fff;
	opacity: 0.5;
	transition: all .3s;
}
.dots_common .slick-dots li.slick-active button {
	height: 3px;
	background: #E73273;
	opacity: 1;
}


/* --------------------------------------------------
	アニメーション
-------------------------------------------------- */
.delay-time02{
	animation-delay: 0.2s;
}

.delay-time04{
animation-delay: 0.4s;
}

.fadeUp {
	opacity: 0;
}
.fadeUp.action {
	animation-name: fadeUpAnime;
	animation-duration: 0.6s;
	animation-fill-mode: forwards;
	transition-timing-function: ease-in;
	position: static;
}
@keyframes fadeUpAnime { 
	from{
		opacity: 0;
		transform: translateY(30px);
	}
	to{
		opacity: 1;
		transform: translateY(0);
	}
}

.fadeRight {
	opacity: 0;
}
.fadeRight.action {
	animation-name: fadeRightAnime;
	animation-duration: 0.6s;
	animation-fill-mode: forwards;
	transition-timing-function: ease-in;
	position: static;
}
@keyframes fadeRightAnime { 
	from{
		opacity: 0;
		transform: translateX(-30px);
	}
	to{
		opacity: 1;
		transform: translateX(0);
	}
}