/* reset & base
----------------------------------------------------------------- */
	*,
	*::before,
	*::after {
		box-sizing: border-box;
		backface-visibility: hidden;
		-moz-osx-font-smoothing: grayscale;
		-webkit-font-smoothing: antialiased;
	}
	* {
		margin: 0;
		padding: 0;
	}
	html,
	body {
		height: 100%;
	}
	html {
		font-size: 62.5%;
	}
	body {
		overflow-x: hidden;
		/* overscroll-behavior-y: none; */
		-webkit-text-size-adjust: 100%;
		-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	}
	img,
	picture,
	video,
	canvas,
	svg {
		display: block;
		max-width: 100%;
	}
	input,
	button,
	textarea,
	select {
		font: inherit;
	}
	p,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		overflow-wrap: break-word;
	}
	a:focus {
		outline: none;
	}

/* 変数
----------------------------------------------------------------- */
	:root {
		/* Font Family */
		--font-primary: 'Noto Sans JP', '游ゴシック', 'Yu Gothic', '游ゴシック体', 'YuGothic', YuGothic, Avenir, Verdana, Arial, 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'メイリオ', Roboto, Meiryo, sans-serif;
		--font-secondary: 'ab-kirigirisu', sans-serif;

		/* Font Size */
		--font-size-xs: 1.4rem;
		--font-size-sm: 1.6rem;
		--font-size-md: 2rem;
		--font-size-lg: 2.2rem;
		--font-size-xl: 3.6rem;
		--font-size-xxl: 6.2rem;


		--font-size-base: var(--font-size-sm);
		--font-size-sec-ttl: 7.4rem;
		--font-size-sec-subttl: 2.6rem;

		/* Font Weight */
		--font-weight: 400;
		--font-weight-bold: 700;

		/* Line Height */
		--line-height-body: 1.75;
		--line-height-sec-ttl: 1.2;

		/* Colors */
		--color-white: #fff;
		--color-black: #000;
		--color-yellow : #ffe138;
		--color-red : #E71B1A;

		/* Body text color */
		--color-primary: var(--color-white);
		--bgcolor-primary: var(--color-white);

		/* Spacing */
		--spacing-unit: 74px;
		--spacing-vertical: 140px;

		/* Transition */
		--transition: .3s ease-out;
		--transition-slow: .6s ease-out;

		/* head-logo*/
		--head-logo-height: 62px;

		/* base content width */
		--content-width-l: 960px;
		--content-width-m: 640px;
	}


/* common
----------------------------------------------------------------- */
	body {
		font-family: var(--font-primary);
		font-size: var(--font-size-base);
		font-weight: var(--font-weight);
		line-height: var(--line-height-body);
		color: var(--color-primary);
		background-color: var(--bgcolor-primary);
	}
	.-inBlock {
		display: inline-block;
	}
	.pc-only {
		display: block !important;
	}
	.sp-only {
		display: none !important;
	}
	@media screen and (max-width: 768px) {
		.pc-only {
			display: none !important;
		}
		.sp-only {
			display: block !important;
		}
	}

	.inner {
		max-width: var(--content-width-l);
		margin: auto;
		padding-left: 30px;
		padding-right: 30px;
		box-sizing: content-box;
	}
	.sec-box {
		position: relative;
		margin: var(--spacing-vertical) 0;
	}

	.sec-ttl {
		text-align: center;
		font-family: var(--font-secondary);
		font-weight: var(--font-weight);
		font-size: var(--font-size-sec-ttl);
		line-height: 1;
		margin-bottom: var(--spacing-unit);
		letter-spacing: -.2em;
		text-indent: -.2em;
		text-shadow: 2px 2px 10px #444;
	}
	.sec-ttl > span {
		display: block;
		font-size: var(--font-size-sec-subttl);
		letter-spacing: initial;
		text-indent: initial;
	}
	.sec-btn {
		font-size: var(--font-size-md);
		font-weight: var(--font-weight-bold);
		display: flex;
		max-width: 450px;
		min-height: 60px;
		margin: 15px auto 0;
		text-decoration: none;
		color: var(--color-red);
		background: var(--color-white);
		line-height: var(--line-height-sec-ttl);
		justify-content: center;
		align-items: center;
		border-radius: 5px;
		border: 2px solid var(--color-white);
		transition: all var(--transition);
	}
	.sec-btn:hover {
		color: var(--color-white);
		background: transparent;
	}
	.sec-item-name {
		font-size: var(--font-size-xl);
		font-weight: var(--font-weight-bold);
		line-height: var(--line-height-sec-ttl);
		margin-top: calc(var(--spacing-unit) / 5);
	}
	.sec-item-txt {
		margin-top: calc(var(--spacing-unit) / 5);
	}
	.bg {
		position: fixed;
		top: 50%;
		left: 50%;
		width: 130vw;
		height: 130vw;
		background: url('./../img/base.png') no-repeat;
		background-position: center;
		background-size: cover;
		animation:bgRotate 240s linear 0s infinite;
	}
	@media screen and (orientation: portrait) {
		.bg {
			width: 130vh;
			height: 130vh;
		}
	}
	@keyframes bgRotate {
		0% {
			transform: translate(-50%, -50%) rotate(0deg);
		}
		100% {
			transform: translate(-50%, -50%) rotate(360deg);
		}
	}
	#wrapper {
		overflow: hidden;
		position: relative;
		top: 0;
		background-color: var(--color-red)
	}
	.main {
		position: relative;
		overflow: hidden;
		top: 0;
	}


/* fadeIn
----------------------------------------------------------------- */
	.fadeIn {
		position: relative;
		z-index: 1;
		transition: opacity 1s, transform 1s ease-out;
		transform: translate3d(0, 120px, 0);
		opacity: 0;
	}

	.fadeIn.animated {
		transform: translate3d(0, 0, 0);
		opacity: 1;
	}

/* mv
----------------------------------------------*/
	#mv {
		position: relative;
		top: 0;
		width: 100%;
		height: calc(100vh - var(--head-logo-height));
		max-height: 75vw;
		min-height: 500px;
		background: url('./../img/main_pc.png') no-repeat;
		background-size: contain;
		background-position: center bottom;
		animation: mvZoom 2s backwards;
		overflow: hidden;
		text-indent: 100%;
		white-space: nowrap;
	}
	@keyframes mvZoom {
		0% {
			transform: scale(0);
			opacity: 0;
		}
		30% {
			transform: scale(0);
			opacity: 0;
		}
		80% {
			transform: scale(1.1);
			opacity: 1;
		}
		90% {
			transform: scale(.9);
		}
		100% {
			transform: scale(1);
		}
	}
	.logo-seibu-leisure {
		margin: 37px 37px 0;
		width: 252px;
		height: 25px;
	}
	.logo-seibu-leisure .logo {
		fill: var(--color-white)
	}

/* about
----------------------------------------------*/
	#about p {
		font-size: var(--font-size-lg);
		font-weight: var(--font-weight-bold);
		text-align: justify;
	}

/* lineup
----------------------------------------------*/
	.lineup-date {
		display: flex;
		align-items: center;
		font-size: var(--font-size-xxl);
		font-weight: var(--font-weight-bold);
		line-height: var(--line-height-sec-ttl);
		margin: 0 auto calc(var(--spacing-unit) / 5);
		letter-spacing: .06em;
		max-width: var(--content-width-m);
	}
	.lineup-date-week {
		font-size: 72%;
	}
	.lineup-date-time {
		font-size: var(--font-size-md);
		line-height: var(--line-height-sec-ttl);
		flex: 1 0 auto;
		text-align: right;
	}
	.lineup-item {
		text-align: center;
		margin: auto;
	}
	.lineup-item + .lineup-item {
		margin-top: var(--spacing-unit);
	}
	.lineup-item + .lineup-date {
		margin-top: calc(var(--spacing-unit) * 1.8);
	}
	.lineup-item-img {
		overflow: hidden;
		transition: opacity var(--transition-slow);
	}
	.lineup-item-img > span {
		position: relative;
		display: block;
		width: 100%;
		transition: transform var(--transition-slow);
		transform: scale(1);
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
	}
	.lineup-item-img > span::before {
		display: block;
		padding-top: 54.6875%;
		content: '';
	}
	.lineup-item-lnk {
		position: relative;
		display: block;
		max-width: var(--content-width-m);
		margin: auto;
	}
	a.lineup-item-lnk:hover .lineup-item-img {
		opacity: .8;
	}
	a.lineup-item-lnk:hover .lineup-item-img > span {
		transform: scale(1.1);
	}
	.lineup-item-btn {
		position: absolute;
		right: -30px;
		bottom: -30px;
		display: block;
		width: 60px;
		height: 60px;
	}
	.lineup-item-lnk .btn-plus {
		fill: transparent;
	}
	.lineup-item-lnk .btn-plus-p {
		transition: fill var(--transition);
		fill: var(--color-white);
	}
	.lineup-item-lnk .btn-plus-c {
		transition: fill var(--transition-slow);
		fill: transparent;
		stroke: var(--color-white);
		stroke-width: 2px;
	}
	.lineup-item-lnk:hover .btn-plus-p {
		fill: var(--color-red);
	}
	.lineup-item-lnk:hover .btn-plus-c {
		fill: var(--color-white);
	}

/* access
----------------------------------------------*/
	#access {
		text-align: center;
	}
	.access-map-wrap {
		max-width: var(--content-width-m);
		margin: auto;
	}
	.access-map {
		position: relative;
		width: 100%;
		padding-top: 62.5%;
	}
	.access-map > iframe {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}

/* outline
----------------------------------------------*/
	#outline.sec-box {
		margin-bottom: var(--spacing-unit);
	}
	.outline-date {
		display: flex;
		justify-content: center;
		font-size: var(--font-size-lg);
		font-weight: var(--font-weight-bold)
	}
	.outline-note {
		padding-top: var(--spacing-unit);
		text-align: center;
	}
	.outline-note p {
		display: inline-block;
		font-size: var(--font-size-sm);
		text-align: left;
	}
	.outline-btn-wrap {
		margin: var(--spacing-vertical) auto var(--spacing-unit);
	}
	.outline-btn-wrap .sec-btn {
		height: 90px;
	}
	.outline-btn-wrap .sec-btn > span {
		width: 212px;
		height: 22px;
	}
	.sec-btn .logo {
		fill: var(--color-red);
		transition: all var(--transition);
	}
	.sec-btn:hover .logo {
		fill: var(--color-white);
	}


/* footer
----------------------------------------------*/
	.footer {
		position: relative;
		color: var(--color-primary);
		width: 100%;
		height: 90px;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.copyright {
		text-align: center;
		line-height: var(--line-height-sec-ttl);
	}

/* for TABLET and SP
----------------------------------------------------------------- */
@media screen and (max-width: 768px) {
/* 変数
----------------------------------------------------------------- */
	:root {
		--font-size-md: 1.6rem;
		--font-size-lg: 2rem;
		--font-size-xl: 2.8rem;
		--font-size-xxl: 3.8rem;

		--font-size-sec-ttl: 6.2rem;
		--font-size-sec-subttl: 2.2rem;

		--spacing-unit: 64px
	}

/* mv
----------------------------------------------*/
	#mv {
		height: 132vw;
		max-height: 100%;
		min-height: auto;
		background-image: url('./../img/main_sp.png');
	}
	.logo-seibu-leisure {
		margin: 4.82vw 4.82vw 2.6vw;
		width: 32.81vw;
		height: 3.26vw;
	}

/* lineup
----------------------------------------------*/
	.lineup-date-time {
		font-size: var(--font-size-xs);
	}

}

/* for SP
----------------------------------------------------------------- */
@media screen and (max-width: 480px) {
/* 変数
----------------------------------------------------------------- */
	:root {
		/* Font Size */
		--font-size-xs: 1.2rem;
		--font-size-sm: 1.4rem;
		--font-size-md: 1.6rem;
		--font-size-lg: 1.6rem;
		--font-size-xl: 2.4rem;
		--font-size-xxl: 2.1rem;

		--font-size-sec-ttl: 4.0rem;
		--font-size-sec-subttl: 1.6rem;

		/* Spacing */
		--spacing-unit: 40px;
		--spacing-vertical: 80px;

	}

/* common
----------------------------------------------------------------- */
	.inner {
		padding-left: 20px;
		padding-right: 20px;
	}

/* lineup
----------------------------------------------------------------- */
	.lineup-date {
		flex-wrap: wrap;
	}

/* outline
----------------------------------------------------------------- */
	.outline-date {
		flex-wrap: wrap;
	}
	.outline-date-ttl {
		text-align: center;
		flex-basis: 100%;
	}
	.outline-date-ttl span {
		display: none;
	}
	.outline-btn-wrap .sec-btn {
		height: 60px;
	}

}

