/* =========================================================
   ページローダー
   ========================================================= */

.page-loader {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #080b12;
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-loader.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .7s ease, visibility .7s ease;
}

.page-loader__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 36rem;
}

.page-loader__logo {
	filter: drop-shadow(0 0 18rem rgba(0, 153, 203, .55));
	animation: loader-breathe 2s ease-in-out infinite;
}

.page-loader__logo svg {
	display: block;
	width: 72rem;
	height: auto;
}

@keyframes loader-breathe {
	0%, 100% { transform: scale(1);    opacity: 1; }
	50%       { transform: scale(1.12); opacity: 0.7; }
}

.page-loader__dots {
	display: flex;
	gap: 10rem;
	align-items: center;
}

.page-loader__dot {
	width: 7rem;
	height: 7rem;
	border-radius: 50%;
	background: var(--logo_blue, #0099CB);
	animation: loader-dot 1.4s ease-in-out infinite;
}

.page-loader__dot:nth-child(1) { animation-delay: 0s; }
.page-loader__dot:nth-child(2) { animation-delay: .22s; }
.page-loader__dot:nth-child(3) { animation-delay: .44s; }

@keyframes loader-dot {
	0%, 60%, 100% { transform: scale(0.6); opacity: 0.2; }
	30%            { transform: scale(1);   opacity: 1; }
}

@media (min-width: 768px) {
	.page-loader__logo svg {
		width: 96rem;
	}
}


/* =========================================================
   トップページ: ヘッダーをMVに重ねる
   ========================================================= */

/* ヘッダー分の padding を除去してMVを最上部へ */
main.top {
	padding-top: 0;
}

/* ヘッダー背景を透明に（スクロール前） */
.header__inner {
	background: transparent;
	transition: background .35s ease;
}

/* スクロール後: JS で is-scrolled クラスが付与される */
.header__inner.is-scrolled {
	background: var(--Blue, #0B2D7D);
}

/* =========================================================
   メインビジュアル（フォトギャラリースライドショー）
   common.css の .top__mv-* を上書き
   ========================================================= */

.top__mv-body {
	padding: 0;
	background: #000;
	overflow: hidden;
}

/* スライドショーラッパー */
.top__mv-slideshow {
	position: relative;
	width: 100%;
	/* SP: 4:3 */
	aspect-ratio: 4 / 3;
	background: #000;
	overflow: hidden;
}

/* スライドコンテナ */
.top__mv-slides {
	position: absolute;
	inset: 0;
}

/* 各スライド */
.top__mv-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	overflow: hidden;
	transition: opacity .9s ease;
}

.top__mv-slide.is-active {
	opacity: 1;
}

/* 画像ラッパー（全面表示） */
.top__mv-slide-img-wrap {
	width: 100%;
	height: 100%;
}

.top__mv-slide-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	will-change: transform;
}

/* Ken Burns: ズームイン */
.top__mv-slide.is-zoom-in .top__mv-slide-img {
	animation: mv-zoom-in 5s ease-in-out forwards;
}

/* Ken Burns: ズームアウト */
.top__mv-slide.is-zoom-out .top__mv-slide-img {
	animation: mv-zoom-out 5s ease-in-out forwards;
}

@keyframes mv-zoom-in {
	from { transform: scale(1.0); }
	to   { transform: scale(1.04); }
}

@keyframes mv-zoom-out {
	from { transform: scale(1.08); }
	to   { transform: scale(1.0); }
}

/* プログレスバー */
.top__mv-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 5rem;
	background: rgba(255, 255, 255, .2);
	z-index: 10;
}

.top__mv-progress-bar {
	height: 100%;
	width: 0%;
	background: var(--logo_blue, #0099CB);
	transform-origin: left;
}

.top__mv-progress-bar.is-running {
	animation: top-mv-progress linear forwards;
}

@keyframes top-mv-progress {
	from { width: 0%; }
	to   { width: 100%; }
}

/* グラデーションオーバーレイ（下からじんわり暗く） */
.top__mv-overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(to top, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .25) 20%, transparent 50%),
		linear-gradient(to bottom, rgba(0, 0, 0, .4) 0%, rgba(0, 0, 0, .1) 25%, transparent 45%);
}

/* 開催終了メッセージ：PC = 写真上オーバーレイ / SP = 非表示 */
.top__mv-ended {
	display: none;
}

/* SP用：写真の下に黒帯として表示 */
.top__mv-ended-sp {
	background: #080b12;
	padding: 20rem 24rem 24rem;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, .07);
}

.top__mv-ended-sp-text {
	font: var(--font-headline);
	font-size: 13rem;
	font-weight: 700;
	color: rgba(255, 255, 255, .85);
	line-height: 1.9;
	letter-spacing: .06em;
}

/* キャプション */
.top__mv-caption-wrap {
	display: none;
}

.top__mv-caption {
	font: var(--font-caption);
	color: rgba(255, 255, 255, .8);
	letter-spacing: .04em;
	line-height: 1.5;
	transition: opacity .4s ease;
}

/* 矢印ナビ */
.top__mv-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 36rem;
	height: 36rem;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, .35);
	background: rgba(0, 0, 0, .45);
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease;
	-webkit-tap-highlight-color: transparent;
}

.top__mv-arrow svg {
	width: 16rem;
	height: 16rem;
}

.top__mv-arrow--prev { left: 10rem; }
.top__mv-arrow--next { right: 10rem; }

/* ドットインジケーター */
.top__mv-dots {
	position: absolute;
	bottom: 14rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	gap: 6rem;
	align-items: center;
}

.top__mv-dot {
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, .4);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: background .25s ease, transform .25s ease;
	-webkit-tap-highlight-color: transparent;
}

.top__mv-dot.is-active {
	background: var(--white, #FFF);
	transform: scale(1.3);
}

/* フォトギャラリーリンク：SP非表示、PCのみ */
.top__mv-gallery-cta {
	display: none;
}

.top__mv-gallery-link {
	display: inline-flex;
	align-items: center;
	gap: 5rem;
	font: 600 9rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .12em;
	color: rgba(255, 255, 255, .75);
	text-decoration: none;
	padding: 5rem 10rem;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 20rem;
	background: rgba(0, 0, 0, .35);
	transition: color .2s ease, border-color .2s ease, background .2s ease;
	-webkit-tap-highlight-color: transparent;
}

.top__mv-gallery-link svg {
	width: 12rem;
	height: 12rem;
	flex-shrink: 0;
}

/* フォールバック（写真なし） */
.top__mv-empty {
	aspect-ratio: 4 / 3;
	background: linear-gradient(160deg, #0a1a3a 0%, #0B2D7D 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.top__mv-empty-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24rem;
}

.top__mv-empty-logo {
	width: 160rem;
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	/* PC: 16:9 */
	.top__mv-slideshow {
		aspect-ratio: 16 / 9;
	}

	.top__mv-empty {
		aspect-ratio: 16 / 9;
	}

	/* 矢印: ホバー時のみ表示 */
	.top__mv-arrow {
		width: 48rem;
		height: 48rem;
		opacity: 0;
		transition: opacity .25s ease, background .2s ease;
	}

	.top__mv-slideshow:hover .top__mv-arrow {
		opacity: 1;
	}

	.top__mv-arrow:hover {
		background: rgba(0, 0, 0, .75);
		border-color: rgba(255, 255, 255, .6);
	}

	.top__mv-arrow svg {
		width: 22rem;
		height: 22rem;
	}

	.top__mv-arrow--prev { left: 20rem; }
	.top__mv-arrow--next { right: 20rem; }

	/* PC: 開催終了メッセージをオーバーレイで表示 */
	.top__mv-ended {
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 6;
		pointer-events: none;
		text-align: center;
		padding: 0 40rem 68rem;
	}

	.top__mv-ended-text {
		font-size: 36rem;
		font-weight: 700;
		color: #fff;
		line-height: 1.8;
		letter-spacing: .06em;
	}

	/* PC: SP帯を非表示 */
	.top__mv-ended-sp {
		display: none;
	}

	/* PC: キャプションはオーバーレイと干渉しないよう非表示 */
	.top__mv-caption-wrap {
		display: none;
	}

	.top__mv-dots {
		bottom: 24rem;
		gap: 8rem;
	}

	.top__mv-dot {
		width: 7rem;
		height: 7rem;
	}

	/* PC: ギャラリーCTAを表示 */
	.top__mv-gallery-cta {
		display: block;
		position: absolute;
		bottom: 20rem;
		right: 24rem;
		z-index: 10;
	}

	.top__mv-gallery-link {
		font-size: 10rem;
		padding: 6rem 14rem;
		gap: 6rem;
	}

	.top__mv-gallery-link svg {
		width: 14rem;
		height: 14rem;
	}

	.top__mv-gallery-link:hover {
		color: #fff;
		border-color: rgba(255, 255, 255, .6);
		background: rgba(0, 0, 0, .55);
	}

	.top__mv-empty-logo {
		width: 240rem;
	}

}

/* =========================================================
   カウントダウンタイマー
   ========================================================= */

.top__countdown-block {
	margin-top: 24rem;
	background:
		radial-gradient(ellipse at 20% 80%, rgba(0, 153, 203, .25) 0%, transparent 50%),
		radial-gradient(ellipse at 80% 20%, rgba(0, 153, 203, .15) 0%, transparent 50%),
		linear-gradient(135deg, var(--Blue, #0B2D7D), var(--logo_blue, #0099CB));
	padding: 28rem 12rem;
	text-align: center;
	overflow: hidden;
}

.top__countdown-body {
	max-width: 900rem;
	margin: 0 auto;
}

.top__countdown-sub {
	font: var(--font-body);
	color: rgba(255, 255, 255, .8);
}

.top__countdown-label {
	font: var(--font-title);
	color: rgba(255, 255, 255, .9);
	margin-top: 16rem;
}

.top__countdown-timer {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 2rem;
	margin-top: 8rem;
}

.top__countdown-unit {
	display: flex;
	align-items: baseline;
}

.top__countdown-unit--ms {
	opacity: .6;
}

.top__countdown-unit--ms::before {
	content: ".";
	font: 600 28rem/1 "Bebas Neue", sans-serif;
	color: var(--white, #FFF);
}

.top__countdown-number {
	font: 600 40rem/1 "Bebas Neue", sans-serif;
	color: var(--white, #FFF);
	font-variant-numeric: tabular-nums;
	text-shadow:
		0 0 20rem rgba(0, 153, 203, .6),
		0 0 40rem rgba(0, 153, 203, .3);
}

.top__countdown-number--ms {
	font-size: 28rem;
}

.top__countdown-suffix {
	font: var(--font-title);
	color: rgba(255, 255, 255, .85);
	margin-right: 2rem;
}

.top__countdown-finished {
	font: var(--font-display);
	color: var(--white, #FFF);
	animation: countdown-pulse 2s ease-in-out infinite;
}

@keyframes countdown-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .75; transform: scale(1.04); }
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__countdown-block {
		margin-top: 40rem;
		padding: 48rem 24rem;
	}

	.top__countdown-label {
		font: var(--font-headline);
		color: rgba(255, 255, 255, .9);
		margin-top: 24rem;
	}

	.top__countdown-timer {
		gap: 4rem;
		margin-top: 12rem;
	}

	.top__countdown-number {
		font-size: 120rem;
		text-shadow:
			0 0 30rem rgba(0, 153, 203, .6),
			0 0 60rem rgba(0, 153, 203, .3);
	}

	.top__countdown-number--ms {
		font-size: 72rem;
	}

	.top__countdown-unit--ms::before {
		font-size: 72rem;
	}

	.top__countdown-suffix {
		font: var(--font-title);
		color: rgba(255, 255, 255, .85);
		margin-right: 4rem;
	}
}


/* =========================================================
   ハイライト（スケジュール）
   ========================================================= */

.top__schedule-block {
	padding: 40rem 0 48rem;
	background: linear-gradient(160deg, #0a1f3f 0%, var(--Blue, #0B2D7D) 100%);
}

.top__schedule-body {
	max-width: 1108rem;
	margin: 0 auto;
}

.top__schedule-content {
	padding: 0 20rem;
}

.top__schedule-title {
	font: var(--font-display);
	color: var(--white, #FFF);
	text-align: center;
	letter-spacing: 0;
	margin-bottom: 20rem;
}

/* タブ */
.top__schedule-tabs {
	display: flex;
	gap: 8rem;
	justify-content: center;
	margin-bottom: 24rem;
}

.top__schedule-tab {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 10rem 20rem;
	border: 2px solid rgba(255, 255, 255, .3);
	border-radius: 8rem;
	background: transparent;
	color: rgba(255, 255, 255, .7);
	cursor: pointer;
	transition: all .2s ease;
}

.top__schedule-tab--active {
	border-color: var(--logo_blue, #0099CB);
	background: var(--logo_blue, #0099CB);
	color: var(--white, #FFF);
}

.top__schedule-tab-date {
	font: 600 18rem/1.2 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .02em;
}

.top__schedule-tab-dow {
	font: var(--font-caption);
}

.top__schedule-tab--active .top__schedule-tab-dow {
	color: rgba(255, 255, 255, .85);
}

/* パネル */
.top__schedule-day {
	display: none;
}

.top__schedule-day--active {
	display: block;
}

.top__schedule-empty {
	font: var(--font-body);
	color: rgba(255, 255, 255, .6);
	text-align: center;
	padding: 40rem 0;
}

/* カードリスト */
.top__schedule-list {
	margin-bottom: 24rem;
}

.top__schedule-item-inner {
	display: flex;
	gap: 12rem;
	padding: 16rem;
	background: rgba(255, 255, 255, .07);
	border-radius: 8rem;
	border-left: 4px solid var(--logo_blue, #0099CB);
	text-decoration: none;
	color: inherit;
	transition: background .2s ease;
}

a.top__schedule-item-inner:hover {
	background: rgba(255, 255, 255, .13);
}

/* サムネイル */
.top__schedule-item-thumb {
	width: 72rem;
	min-width: 72rem;
	aspect-ratio: 1 / 1;
	border-radius: 4rem;
	overflow: hidden;
}

.top__schedule-item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 情報 */
.top__schedule-item-info {
	display: flex;
	flex-direction: column;
	gap: 4rem;
	min-width: 0;
}

.top__schedule-item-meta {
	display: flex;
	align-items: center;
	gap: 8rem;
	flex-wrap: wrap;
}

.top__schedule-item-time {
	font: 600 14rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	color: var(--logo_blue, #0099CB);
	letter-spacing: .02em;
}

.top__schedule-item-venue {
	font: var(--font-caption);
	color: rgba(255, 255, 255, .55);
}

.top__schedule-item-title {
	font: var(--font-title);
	color: var(--white, #FFF);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.top__schedule-item-cat {
	display: inline-block;
	font: var(--font-caption);
	color: var(--white, #FFF);
	background-color: rgba(255, 255, 255, .15);
	padding: 2rem 8rem;
	border-radius: 4rem;
	width: fit-content;
}

/* もっと見るボタン（白抜き） */
.top__schedule-more-button {
	border-color: rgba(255, 255, 255, .35);
}

.top__schedule-more-button .top__news-more-button-text {
	color: var(--white, #FFF);
}

.top__schedule-more-button .top__news-more-button-text::after {
	border-top-color: var(--white, #FFF);
	border-right-color: var(--white, #FFF);
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__schedule-block {
		padding: 60rem 0 64rem;
	}

	.top__schedule-title {
		margin-bottom: 32rem;
	}

	.top__schedule-tabs {
		gap: 12rem;
		margin-bottom: 32rem;
	}

	.top__schedule-tab {
		padding: 12rem 32rem;
		border-radius: 10rem;
	}

	.top__schedule-tab:not(.top__schedule-tab--active):hover {
		border-color: var(--logo_blue, #0099CB);
		color: var(--white, #FFF);
	}

	.top__schedule-tab-date {
		font-size: 28rem;
	}

	.top__schedule-list {
		margin-bottom: 32rem;
	}

	.top__schedule-item-inner {
		gap: 20rem;
		padding: 20rem 24rem;
	}

	.top__schedule-item-thumb {
		width: 96rem;
		min-width: 96rem;
	}

	.top__schedule-item-time {
		font-size: 20rem;
	}

	a.top__schedule-item-inner:hover .top__schedule-item-title {
		color: var(--logo_blue, #0099CB);
	}

	.top__schedule-more-button:hover {
		border-color: var(--white, #FFF);
	}
}


/* =========================================================
   デジタルガイドブック
   ========================================================= */

.top__guidebook-block {
	position: relative;
	padding: 48rem 0 56rem;
	background:
		radial-gradient(ellipse at 30% 100%, rgba(255, 172, 61, .08) 0%, transparent 50%),
		radial-gradient(ellipse at 70% 0%, rgba(0, 153, 203, .06) 0%, transparent 50%),
		linear-gradient(170deg, #0c0f1a 0%, #111936 50%, #0c1225 100%);
	overflow: hidden;
}

.top__guidebook-block::before {
	content: '';
	position: absolute;
	top: -1px;
	left: 0;
	right: 0;
	height: 4rem;
	background: linear-gradient(90deg,
		var(--logo_blue, #0099CB) 0%,
		var(--Color-6, #ffac3d) 50%,
		var(--logo_blue, #0099CB) 100%);
}

.top__guidebook-body {
	max-width: 1108rem;
	margin: 0 auto;
	padding: 0 20rem;
	align-items: center;
}

/* 表紙画像 */
.top__guidebook-visual {
	display: flex;
	justify-content: center;
}

.top__guidebook-cover {
	width: 200rem;
	height: auto;
	border-radius: 4rem;
	box-shadow:
		0 8rem 32rem rgba(0, 0, 0, .4),
		0 2rem 8rem rgba(0, 0, 0, .2);
}

/* テキスト */
.top__guidebook-info {
	text-align: center;
}

.top__guidebook-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8rem;
	font: 600 14rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .16em;
	color: var(--Color-6, #ffac3d);
}

.top__guidebook-eyebrow-icon {
	width: 22rem;
	height: 22rem;
	color: var(--Color-6, #ffac3d);
}

.top__guidebook-heading {
	font: var(--font-display);
	color: var(--white, #FFF);
	letter-spacing: .04em;
	margin-top: 12rem;
}

.top__guidebook-lead {
	font: var(--font-body);
	color: rgba(255, 255, 255, .7);
	margin-top: 14rem;
}

.top__guidebook-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8rem;
	margin-top: 28rem;
	padding: 14rem 32rem;
	font: var(--font-title);
	color: #0c0f1a;
	background: linear-gradient(135deg, #ffac3d 0%, #ffc46b 100%);
	border-radius: 40rem;
	text-decoration: none;
	box-shadow: 0 4rem 20rem rgba(255, 172, 61, .3);
	transition: transform .2s ease, box-shadow .2s ease;
}

.top__guidebook-cta-arrow {
	width: 18rem;
	height: 18rem;
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__guidebook-block {
		padding: 64rem 0 72rem;
	}

	.top__guidebook-body {
		padding: 0 40rem;
	}

	.top__guidebook-visual {
		perspective: 800px;
	}

	.top__guidebook-cover {
		width: 280rem;
		border-radius: 6rem;
		transform: rotateY(-8deg);
		box-shadow:
			0 16rem 48rem rgba(0, 0, 0, .5),
			0 4rem 12rem rgba(0, 0, 0, .3);
		transition: transform .4s ease, box-shadow .4s ease;
	}

	.top__guidebook-visual:hover .top__guidebook-cover {
		transform: rotateY(-2deg);
		box-shadow:
			0 20rem 56rem rgba(0, 0, 0, .5),
			0 6rem 16rem rgba(0, 0, 0, .3);
	}

	.top__guidebook-info {
		text-align: left;
	}

	.top__guidebook-eyebrow {
		justify-content: flex-start;
		font-size: 16rem;
	}

	.top__guidebook-eyebrow-icon {
		width: 26rem;
		height: 26rem;
	}

	.top__guidebook-heading {
		margin-top: 16rem;
	}

	.top__guidebook-lead {
		margin-top: 18rem;
	}

	.top__guidebook-cta {
		margin-top: 32rem;
		padding: 16rem 40rem;
		font: var(--font-headline);
	}

	.top__guidebook-cta:hover {
		transform: translateY(-2rem);
		box-shadow: 0 8rem 32rem rgba(255, 172, 61, .4);
	}

	.top__guidebook-cta-arrow {
		width: 20rem;
		height: 20rem;
	}
}


/* =========================================================
   チケットハイライト
   ========================================================= */

.top__ticket-block {
	position: relative;
	padding: 48rem 0 56rem;
	background:
		radial-gradient(ellipse at 30% 100%, rgba(255, 172, 61, .1) 0%, transparent 50%),
		radial-gradient(ellipse at 70% 0%, rgba(0, 153, 203, .08) 0%, transparent 50%),
		linear-gradient(170deg, #0c0f1a 0%, #111936 50%, #0c1225 100%);
	overflow: hidden;
}

.top__ticket-block::before {
	content: '';
	position: absolute;
	top: -1px;
	left: 0;
	right: 0;
	height: 4rem;
	background: linear-gradient(90deg,
		var(--logo_blue, #0099CB) 0%,
		var(--Color-6, #ffac3d) 50%,
		var(--logo_blue, #0099CB) 100%);
}

.top__ticket-body {
	max-width: 1108rem;
	margin: 0 auto;
}

.top__ticket-content {
	padding: 0 20rem;
	text-align: center;
}

.top__ticket-eyebrow {
	font: 600 12rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .16em;
	color: var(--Color-6, #ffac3d);
}

.top__ticket-heading {
	font: var(--font-display);
	color: var(--white, #FFF);
	letter-spacing: .04em;
	margin-top: 10rem;
}

.top__ticket-lead {
	font: var(--font-body);
	color: rgba(255, 255, 255, .7);
	margin-top: 14rem;
}

.top__ticket-lead strong {
	color: var(--Color-6, #ffac3d);
	font-weight: 600;
}

/* カード群 */
.top__ticket-cards {
	display: flex;
	flex-direction: column;
	gap: 12rem;
	margin-top: 28rem;
}

.top__ticket-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6rem;
	padding: 24rem 16rem 20rem;
	border-radius: 12rem;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .1);
}

.top__ticket-card--featured {
	background:
		radial-gradient(ellipse at 50% 100%, rgba(255, 172, 61, .12) 0%, transparent 70%),
		rgba(255, 255, 255, .08);
	border-color: rgba(255, 172, 61, .35);
}

/* バッジ */
.top__ticket-card-badge {
	font: 600 9rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .14em;
	color: rgba(255, 255, 255, .55);
	background: rgba(255, 255, 255, .08);
	padding: 4rem 12rem;
	border-radius: 20rem;
}

.top__ticket-card-badge--gold {
	color: var(--Color-6, #ffac3d);
	background: rgba(255, 172, 61, .14);
}

.top__ticket-card-title {
	font: var(--font-title);
	color: var(--white, #FFF);
	line-height: 1.5;
}

.top__ticket-card-desc {
	font: var(--font-caption);
	color: rgba(255, 255, 255, .5);
	line-height: 1.5;
}

/* 価格表示 */
.top__ticket-card-price-block {
	display: flex;
	align-items: baseline;
	margin-top: 4rem;
}

.top__ticket-card-yen {
	font: 600 14rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	color: var(--white, #FFF);
	margin-right: 2rem;
}

.top__ticket-card-price {
	font: 600 36rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	color: var(--white, #FFF);
	letter-spacing: .02em;
	font-variant-numeric: tabular-nums;
}

.top__ticket-card--featured .top__ticket-card-yen,
.top__ticket-card--featured .top__ticket-card-price {
	color: var(--Color-6, #ffac3d);
}

.top__ticket-card-sub {
	font: var(--font-caption);
	color: rgba(255, 255, 255, .45);
}

/* CTA ボタン */
.top__ticket-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8rem;
	margin-top: 32rem;
	padding: 16rem 36rem;
	font: var(--font-title);
	color: #0c0f1a;
	background: linear-gradient(135deg, #ffac3d 0%, #ffc46b 100%);
	border-radius: 40rem;
	text-decoration: none;
	box-shadow: 0 4rem 20rem rgba(255, 172, 61, .3);
	transition: transform .2s ease, box-shadow .2s ease;
}

.top__ticket-cta-arrow {
	width: 18rem;
	height: 18rem;
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__ticket-block {
		padding: 64rem 0 72rem;
	}

	.top__ticket-heading {
		margin-top: 14rem;
	}

	.top__ticket-lead {
		font: var(--font-body);
		margin-top: 18rem;
	}

	.top__ticket-cards {
		flex-direction: row;
		justify-content: center;
		gap: 16rem;
		margin-top: 40rem;
	}

	.top__ticket-card {
		flex: 1;
		max-width: 320rem;
		padding: 32rem 24rem 28rem;
		border-radius: 16rem;
		gap: 8rem;
		transition: transform .2s ease, border-color .2s ease;
	}

	.top__ticket-card:hover {
		transform: translateY(-4rem);
		border-color: rgba(255, 255, 255, .25);
	}

	.top__ticket-card--featured:hover {
		border-color: rgba(255, 172, 61, .55);
	}

	.top__ticket-card-badge {
		font-size: 10rem;
	}

	.top__ticket-card-title {
		font: var(--font-headline);
		line-height: 1.5;
	}

	.top__ticket-card-yen {
		font-size: 18rem;
	}

	.top__ticket-card-price {
		font-size: 52rem;
	}

	.top__ticket-cta {
		margin-top: 48rem;
		padding: 18rem 48rem;
		font: var(--font-headline);
	}

	.top__ticket-cta:hover {
		transform: translateY(-2rem);
		box-shadow: 0 8rem 32rem rgba(255, 172, 61, .4);
	}

	.top__ticket-cta-arrow {
		width: 20rem;
		height: 20rem;
	}
}
