@charset 'utf-8';

/* ============================================================
   LION FES TOP  —  PC 1440px 固定
   ============================================================ */
body{
	min-width: 144rem;
	background: #000;
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 2rem; /* line-height未指定箇所の既定（明示指定があればそちら優先）PC/SP共通 */
}
main{
	display: block;
	padding: 0;
	background: #000;
}
/* リキッド化：admin.cssの固定 min-width(1280/320px) と body min-width を解除し幅を画面に追従させる */
body,
main,
header,
.eyecatch_inc.top{
	min-width: 0;
}
main img{
	display: block;
	width: 100%;
	height: auto;
}

/* ---- font-weight ユーティリティ (Noto Sans JP: Medium/SemiBold/Bold/ExtraBold) ---- */
.w4{ font-weight: 400; }
.w5{ font-weight: 500; }
.w6{ font-weight: 600; }
.w7{ font-weight: 700; }
.w8{ font-weight: 800; }
.w9{ font-weight: 900; }

/* ---- 共通ボタン ---- */
.btn_more{
	width: 16.8rem;
	height: 4.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #fff;
	border-radius: 2.3rem;
	color: #000;
	font-size: 1.5rem;
	letter-spacing: 0.2rem;
}
.btn_dl{
	width: 18.2rem;
	height: 4.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.8rem;
	background: #fff;
	border-radius: 2.3rem;
	color: #289500;
	font-size: 1.6rem;
	letter-spacing: 1px;
}
.btn_dl .ic{
	width: 2rem;
	line-height: 0;
}
.btn_dl .ic img{
	width: 2rem;
}
.btn_map{
	width: 25.6rem;
	height: 5.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #f9c501;
	border-radius: 2.8rem;
	color: #1a1a1a;
	font-size: 1.7rem;
	letter-spacing: 1px;
}
/* ---- ボタン カラー反転ホバー ---- */
.btn_more,
.btn_dl,
.btn_map{
	transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}
.btn_more:hover{
	background: #000;
	color: #fff;
	box-shadow: inset 0 0 0 1px #fff;
}
.btn_dl:hover{
	background: #289500;
	color: #fff;
}
/* 公開前：DLボタンはグレーアウト＆クリック不可 */
.btn_dl.is-disabled{
	background: #cfcfcf;
	color: #7d7d7d;
	pointer-events: none;
	cursor: default;
}
.btn_dl.is-disabled .ic img{
	filter: grayscale(1);
	opacity: 0.55;
}
.btn_map:hover{
	background: #1a1a1a;
	color: #f9c501;
	box-shadow: inset 0 0 0 1px #f9c501;
}

/* ---- 共通 見出し(左カラム: EN画像 + 下線 + 和文) ---- */
.text02{
	margin-top: 0.4rem;
}
.text02 .line{
	display: block;
}
.contents08 .text02 .line{ width: 24.1rem; }
.contents09 .text02 .line{ width: 40rem; }
.contents_qa .text02 .line{ width: 12rem; margin: 0 auto; }
.text02 span{
	display: block;
	margin-top: 2rem;
	color: #f9c501;
	font-size: 2.1rem;
	letter-spacing: 0.416rem;
}

/* ============================================================
   HEADER
   ============================================================ */
.header{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100vw;
	height: 6.4583vw;
	margin: 0 auto;
	z-index: 100;
	transform: translateY(-100%);
	background: #000;
	opacity: 0;
	visibility: hidden;
	transition: transform .4s ease, opacity .4s ease, visibility .4s;
}
.header.is-show{
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
}
.header .mv_deco{
	position: absolute;
}
.header .mv_deco img{
	width: 100%;
}
.header_logo{
	position: absolute;
	top: 1.1111vw;
	left: 1.3889vw;
	width: 7.0139vw;
}
.header_logo img{
	width: 7.0139vw;
}
.header_nav{
	position: absolute;
	top: 0;
	left: auto;
	right: 10.5vw; /* NEWS追加で7項目。SNSアイコン(left:91.6667vw)の手前で右揃え→左へ伸長 */
	height: 6.4583vw;
	display: flex;
	align-items: center;
}
.header_nav a{
	font-family: 'Anton', sans-serif;
	font-size: 1.25vw;
	color: #fff;
	letter-spacing: 0.125vw;
	transition: color 0.25s ease;
}
.header_nav a.is-active{
	color: #ff0000;
}
/* 子ページ（アーカイブ/詳細）では該当ナビを赤に固定 */
body.page-news .header_nav a[data-spy="news"],
body.page-lineup .header_nav a[data-spy="lineup"],
body.page-food-shop .header_nav a[data-spy="shop"]{
	color: #ff0000;
}
.header_nav .sep{
	margin: 0 0.625vw;
	color: #fff;
	font-size: 1.0417vw;
}
.header_sns{
	position: absolute;
	top: 2.0833vw;
	left: 91.6667vw;
	right: 0.9028vw;
	display: flex;
	justify-content: flex-end; /* アイコンをコンテナ右端(=GUNMAロゴと同じ右0.9028vw)に揃える */
	gap: 0.6944vw;
}
.header_sns a{
	width: 2.4306vw;
}
.header_sns img{
	width: 2.4306vw;
}

/* ============================================================
   HERO  contents00
   ============================================================ */
.contents00{
	width: 100%;
	height: 66.94vw; /* ver02: 100vhをやめ、デザイン比率（1440:964）に固定。全幅コラージュのまま全内容が収まる */
	position: relative;
	overflow: hidden;
	background: #000;
}
.contents00_inner{
	width: 100vw;
	height: 100%;
	margin: 0 auto;
	position: relative;
	background: #000;
}
/* ヒーロー演出中は、ヒーロー以降のコンテンツ（NEWS〜フッター）を隠し、演出完了(intro-hold解除)でフェードイン。
   JS無効/演出しない環境ではintro-holdが付かないため常時表示（グレースフル） */
.contents00 ~ *,
body > footer,
main ~ footer{
	transition: opacity 0.7s ease;
}
html.intro-hold .contents00 ~ *,
html.intro-hold footer{
	opacity: 0;
	pointer-events: none;
}
.contents00_kv{
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100%;
	z-index: 1;
}
.mv_bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100%;
	z-index: 0;
}
.mv_bg picture{
	display: block;
	width: 100%;
	height: 100%;
}
.mv_bg img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.contents00_kv .mv_ar,
.contents00_kv .mv_deco,
.contents00_kv .mv_collage,
.contents00_kv .mv_name,
.contents00_kv .mv_title{
	position: absolute;
}
.contents00_kv .mv_ar img,
.contents00_kv .mv_deco img,
.contents00_kv .mv_collage img,
.contents00_kv .mv_collage picture,
.contents00_kv .mv_name img,
.contents00_kv .mv_title img{
	display: block;
	width: 100%;
}
/* ver02: デザイン比率固定なので縮小不要。全幅コラージュ＋XD絶対座標（上端基準・1440基準実測） */
.mv_stage{ position: absolute; top: 0; left: 0; width: 100vw; height: 100%; }
.mv_collage{ top: 9.306vw; left: 0; width: 100vw; z-index: 1; } /* XD y134 */
.mv_name{ top: 15.278vw; left: 9.306vw; width: 79.583vw; z-index: 2; } /* XD x134 y220 w1146 */
/* C案：切り抜き下端フェードは画像のアルファに焼き込み済み（旧: 実行時mask-image。パフォーマンスのため撤去。フェード量を変える時は img を再生成） */
.mv_gunma{ top: 7.5694vw; right: 0.9028vw; width: 6.25vw; display: flex; align-items: center; } /* マーク＋テキストを分離配置 */
.header .mv_gunma .mv_gunma_mark{ width: 2.1617vw; will-change: transform; } /* 92/266*6.25vw 円マーク（スクロールで回転） */
.header .mv_gunma .mv_gunma_text{ width: 3.6654vw; margin-left: 0.4229vw; } /* 156/266*6.25vw ＋間隔18/266 */
.mv_baas{ top: 7.7778vw; left: 1.3889vw; width: 8.8194vw; }
.mv_ar01{ top: 7.7778vw; left: 18.6806vw; width: 18.125vw; }
.mv_ar02{ top: 7.0833vw; left: 31.25vw; width: 14.5139vw; }
.mv_ar03{ top: 14.1667vw; left: 29.0278vw; width: 15.625vw; }
.mv_ar04{ top: 9.5139vw; left: 68.8889vw; width: 15.2778vw; }
.mv_ar05{ top: 7.3611vw; left: 50vw; width: 16.3194vw; }
.mv_ar06{ top: 8.75vw; left: 60.1389vw; width: 15.9028vw; }
.mv_ar07{ top: 8.5417vw; left: 37.4306vw; width: 29.7222vw; z-index: 4; } /* img06を切り抜きの中で一番前に（タイトルz5より下） */
.mv_ar08{ top: 15.0694vw; left: 9.8611vw; width: 17.9167vw; }
.mv_ar09{ top: 19.7222vw; left: 17.2222vw; width: 15.1389vw; }
.mv_ar10{ top: 23.1944vw; left: 10.7639vw; width: 15.3472vw; }
.mv_ar11{ top: 14.1667vw; left: 75.5556vw; width: 14.9306vw; }
.mv_ar12{ top: 17.5694vw; left: 65.1389vw; width: 13.3333vw; }
.mv_ar13{ top: 27.5694vw; left: 22.6389vw; width: 13.4028vw; }
.mv_ar14{ top: 25.2083vw; left: 68.6111vw; width: 12.1528vw; }
.mv_title{ top: 26.737vw; left: 23.194vw; width: 54.375vw; } /* ver02: XD title x334 y385 w783 */
.mv_mascot{ top: 33.5417vw; left: 67.4306vw; width: 10.625vw; z-index: 5; } /* img016をRyo(mv_ar07 z4)より前面に */
.mv_ar15{ top: 25.0694vw; left: 72.0833vw; width: 18.4722vw; }
/* 追加ロゴ（左下：UNKNOWN SOUND／右下：修道院SOUND）。大体の位置・DevToolsで微調整可 */
.mv_slogo01{ top: 38.8889vw; left: 19.0972vw; width: 8.3333vw; z-index: 5; }
.mv_slogo02{ top: 39.2361vw; left: 77.4306vw; width: 8.3333vw; z-index: 5; }

/* ヒーロー：タイトル(item01)＋各カット写真がフェード＋わずかに上昇・拡大して定位置へ（最終位置は現状のまま） */
.contents00_kv .mv_ar,
.contents00_kv .mv_collage,
.contents00_kv .mv_title{
	animation: kvIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes kvIn{
	0%{ opacity: 0; transform: translateY(1.8056vw) scale(0.94); }
	100%{ opacity: 1; transform: translateY(0) scale(1); }
}
/* 黒幕が上り切る少し前（約2.35s）からカット写真が順に登場 */
.contents00_kv > *:nth-child(1){ animation-delay: 2.95s; }
.contents00_kv > *:nth-child(2){ animation-delay: 3.01s; }
.contents00_kv > *:nth-child(3){ animation-delay: 3.07s; }
.contents00_kv > *:nth-child(4){ animation-delay: 3.13s; }
.contents00_kv > *:nth-child(5){ animation-delay: 3.19s; }
.contents00_kv > *:nth-child(6){ animation-delay: 3.25s; }
.contents00_kv > *:nth-child(7){ animation-delay: 3.31s; }
.contents00_kv > *:nth-child(8){ animation-delay: 3.37s; }
.contents00_kv > *:nth-child(9){ animation-delay: 3.43s; }
.contents00_kv > *:nth-child(10){ animation-delay: 3.49s; }
.contents00_kv > *:nth-child(11){ animation-delay: 3.55s; }
.contents00_kv > *:nth-child(12){ animation-delay: 3.61s; }
.contents00_kv > *:nth-child(13){ animation-delay: 3.67s; }
.contents00_kv > *:nth-child(14){ animation-delay: 3.73s; }
.contents00_kv > *:nth-child(15){ animation-delay: 3.79s; }
.contents00_kv > *:nth-child(16){ animation-delay: 3.85s; }
.contents00_kv > *:nth-child(17){ animation-delay: 3.91s; }
/* 追加ロゴ（18・19番目）は最後に続けて登場 */
.contents00_kv .mv_slogo01{ animation-delay: 3.97s; }
.contents00_kv .mv_slogo02{ animation-delay: 4.03s; }

/* ver02: コラージュ群は .mv_stage 内に入ったため、登場ディレイを明示（nth-child直下ではなくなった） */
.contents00_kv .mv_collage{ animation-delay: 2.95s; }
.contents00_kv .mv_title{ animation-delay: 3.05s; }

/* ver02: 名前ラベルはオープニングの最後に、下からシュッと一括で登場（kvInではなく専用） */
.contents00_kv .mv_name{
	opacity: 0;
	animation: nameUp 0.55s cubic-bezier(0.16, 1, 0.3, 1) 3.55s both;
}
@keyframes nameUp{
	0%{ opacity: 0; transform: translateY(2.6vw); }
	100%{ opacity: 1; transform: translateY(0); }
}

/* ===== オープニング（黒幕が上へ流れて抜ける＋雷フラッシュ。タイトルは残す） ===== */
/* タイトル(item01)：黒幕の下でカット写真より先に登場（z-indexで手前に保つ） */
.contents00_kv .mv_title{
	z-index: 5;
}
/* オープニング中央ロゴ：黒幕より上でフェードイン→フェードアウト（残らない） */
.mv_logo{
	position: fixed; /* ver02: ヒーロー比率固定後もビューポート中央に出すため fixed */
	inset: 0;
	z-index: 25;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	animation: logoInOut 1.55s ease 1.35s both; /* 稲妻ストームの後に出現 */
}
.mv_logo img{
	display: block;
	width: 33.3333vw; /* ver02: 従来の1.5倍 */
}
@keyframes logoInOut{
	0%{ opacity: 0; transform: scale(1.1); }
	22%{ opacity: 1; transform: scale(1); }
	65%{ opacity: 1; transform: scale(1); }
	100%{ opacity: 0; transform: scale(0.97); }
}
/* 黒幕：ヒーロー全面を覆い、上へ流れて抜ける（カット写真より上・タイトルより下） */
.mv_cover{
	position: fixed; /* ver02: ビューポート全面を覆う */
	inset: 0;
	z-index: 10;
	background: #000;
	pointer-events: none;
	animation: coverUp 0.85s cubic-bezier(0.7, 0, 0.25, 1) 2.5s forwards;
}
@keyframes coverUp{
	to{ transform: translateY(-100%); }
}
/* 雷フラッシュ（全面・最前面） */
.mv_flash{
	position: fixed; /* ver02: ビューポート全面 */
	inset: 0;
	z-index: 30;
	background: #fff;
	opacity: 0;
	pointer-events: none;
	animation: opLightning 1.7s ease-out 0.1s both;
}
/* 白フラッシュ＝稲妻の照明。ストーム中は控えめ、ロゴ出現(≈1.35s)で大きな一閃 */
@keyframes opLightning{
	0%{ opacity: 0; }
	4%{ opacity: 0.42; }
	8%{ opacity: 0.06; }
	13%{ opacity: 0.5; }
	18%{ opacity: 0.05; }
	26%{ opacity: 0.4; }
	32%{ opacity: 0.08; }
	41%{ opacity: 0.55; }
	47%{ opacity: 0.05; }
	57%{ opacity: 0.48; }
	63%{ opacity: 0.1; }
	73%{ opacity: 0.95; }
	80%{ opacity: 0.3; }
	90%{ opacity: 0.12; }
	100%{ opacity: 0; }
}
/* ===== オープニング 稲妻（SVG。黒幕/フラッシュより前面で走る） ===== */
.mv_bolts{
	position: fixed; /* ver02: ビューポート全面 */
	inset: 0;
	z-index: 31;
	pointer-events: none;
	overflow: hidden;
}
.mv_bolts svg{
	display: block;
	width: 100%;
	height: 100%;
}
.mv_bolts .bolt{
	fill: none;
	stroke: #fff;
	stroke-width: 3.5;
	stroke-linejoin: round;
	stroke-linecap: round;
	opacity: 0;
	filter: drop-shadow(0 0 0.2778vw #e2efff) drop-shadow(0 0 0.6944vw #7fb3ff) drop-shadow(0 0 1.3889vw #4d84ff);
}
/* 縦・横・斜めを時間差で連続落雷（ストーム。各strikeは瞬間点灯＋明滅→消灯） */
.mv_bolts .bolt1{  animation: strike 0.5s  ease-out 0.10s both; }
.mv_bolts .boltD1{ animation: strike 0.5s  ease-out 0.24s both; }
.mv_bolts .boltH1{ animation: strike 0.55s ease-out 0.40s both; }
.mv_bolts .bolt2,
.mv_bolts .bolt2b{  animation: strike 0.55s ease-out 0.56s both; }
.mv_bolts .boltD2{ animation: strike 0.5s  ease-out 0.72s both; }
.mv_bolts .bolt3{  animation: strike 0.5s  ease-out 0.88s both; }
.mv_bolts .boltH2{ animation: strike 0.6s  ease-out 1.02s both; }
@keyframes strike{
	0%{ opacity: 0; }
	6%{ opacity: 1; }
	16%{ opacity: 0.12; }
	24%{ opacity: 0.9; }
	40%{ opacity: 0.08; }
	55%{ opacity: 0.5; }
	100%{ opacity: 0; }
}
@media (prefers-reduced-motion: reduce){
	.contents00_kv .mv_ar,
	.contents00_kv .mv_title,
	.mv_flash{ animation: none; }
	.mv_cover,
	.mv_logo,
	.mv_bolts{ display: none; }
}
/* オープニング演出スキップ（初回以外＝同一セッション内の遷移/再読込）：雷なし・ヒーロー即最終表示 */
html.no-intro .contents00_kv .mv_ar,
html.no-intro .contents00_kv .mv_collage,
html.no-intro .contents00_kv .mv_name,
html.no-intro .contents00_kv .mv_title,
html.no-intro .mv_flash{ animation: none; }
html.no-intro .contents00_kv .mv_name{ opacity: 1; } /* 名前ラベルは初期opacity:0のため明示表示 */
html.no-intro .mv_cover,
html.no-intro .mv_logo,
html.no-intro .mv_bolts{ display: none; }
html.no-intro .header{ animation: none; transform: none; opacity: 1; visibility: visible; } /* ヘッダーも即表示 */
/* reduced-motion時：SPヘッダーは演出待ちせず即表示（モーション無効） */
@media (prefers-reduced-motion: reduce) and (max-width: 767px){
	.header{ animation: none; opacity: 1; visibility: visible; }
}
/* オープニング演出中はスクロール禁止（JSで is-opening を付与／演出後に解除） */
html.is-opening{ overflow: hidden; }
html.is-opening body{ overflow: hidden; touch-action: none; }

/* ============================================================
   NEWS  contents01
   ============================================================ */
.contents01_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid #fff;
}
.contents01_01{
	width: 21rem;
	text-align: center;
}
.contents01_01 .text01 img{
	width: 21rem;
}
.contents01_01 .btn_more{
	margin: 2rem auto 0;
}
.contents01_02{
	width: 92.7rem;
	margin-top: 2.7rem;
}
.news_list li{
	border-bottom: 0;
	overflow: hidden;
	padding-bottom: 0.6rem; /* 下線(offset4px)がマスクで切れないための余白 */
}
.news_list li + li{
	margin-top: 2.4rem; /* 24 + 前項目のpadding6 = 従来の30px間隔を維持 */
}
.news_list a{
	display: flex;
	align-items: baseline;
	color: #fff;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 1件ずつ下から迫り上がる（マスク）表示。JS有効時のみ隠す＝reveal-ready */
.contents01_02.reveal-ready .news_list a{
	transform: translateY(160%);
}
.contents01_02.reveal-ready.is-inview .news_list a{
	transform: translateY(0);
}
.news_list .date{
	width: 11.1rem;
	flex-shrink: 0;
	font-size: 1.7rem;
}
.news_list .ttl{
	font-size: 1.5rem;
	text-decoration: underline;
	text-underline-offset: 0.4rem;
	text-align: left;
	line-height: 3rem;
}

/* ============================================================
   ABOUT  contents02
   ============================================================ */
.contents02_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	display: flex;
	border-bottom: 1px solid #fff;
}
.contents02_01{
	width: 23rem;
	text-align: center;
}
.contents02_01 .text01 img{
	width: 23rem;
}
.contents02_01 .logo{
	width: 21.3rem;
	margin: 4rem auto 0;
}
.contents02_02{
	width: 61.8rem;
	margin-top: 0;
	margin-left: 4.3rem;
}
.contents02_02 .text03{
	color: #f9c501;
	font-size: 3.8rem;
	line-height: 1.3;
}
.contents02_02 .text04{
	margin-top: 2.2rem;
	font-size: 1.6rem;
	line-height: 3.1rem;
}
.contents02_02 .text04 .red{
	color: #ff0000;
	font-size: 2.2rem;
}
/* まとめて軽くフェードアップ（ABOUT/LINE UPテキスト共通）。JS有効時のみ隠す＝reveal-ready */
.rl{
	display: block;
}
.rl-in{
	display: block;
	transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-ready .rl-in{
	opacity: 0;
	transform: translateY(2rem);
}
.reveal-ready.is-inview .rl-in{
	opacity: 1;
	transform: translateY(0);
}
.contents02_03{
	width: 28.3rem;
	margin-top: 0;
	margin-left: 2.6rem;
}

/* ============================================================
   LINE UP  contents03
   ============================================================ */
.contents03_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	border-bottom: 1px solid #fff;
}
.contents03_head{
	display: flex;
}
.contents03_01{
	width: 24.6rem;
	flex-shrink: 0;
	text-align: center;
}
.contents03_01 .text01 img{
	width: 24.6rem;
}
.contents03_01 .btn_more{
	margin: 2rem auto 0;
}
.contents03_02{
	margin-left: 2.7rem;
	padding-left: 2.3rem;
	border-left: 1px solid #fff;
}
.contents03_02 .text03{
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.9rem;
	line-height: 3.2rem;
	letter-spacing: 0.038rem;
}
.contents03_02 .text03 .y{ color: #ffeb00; }
.contents03_02 .text03 .r{ color: #ff0000; }
.contents03_02 .text03 .r2{ color: #bf2d25; }
.contents03_02 .text03 .g{ color: #289500; }
.contents03_02 .text03 .lb{ color: #F9C501; } /* 出演者ラベル：1色統一（ブランドゴールド） */
.contents03_photos{
	width: 120rem;
	margin-top: 4.9rem;
	position: relative;
}
.lineup_slider .swiper-slide{
	position: relative;
	overflow: hidden; /* カードを下からマスク表示するためのマスク枠 */
}
.lineup_slider .ls_inner{
	position: relative;
	border: 1px solid #fff;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 左のカードから1枚ずつ下から迫り上がる。JS有効時のみ隠す＝reveal-ready */
.lineup_slider.reveal-ready .ls_inner{
	transform: translateY(102%);
}
.lineup_slider.reveal-ready.is-inview .ls_inner{
	transform: translateY(0);
}
.lineup_slider .ls_img{
	position: relative;
	overflow: hidden;
}
.lineup_slider .ls_img img{
	display: block;
	width: 100%;
	height: auto; /* 親要素の横幅に対して縦横比を保持。クロップはWP側で登録した切り抜きサイズに委ねる */
	transition: transform 0.45s ease;
}
/* ホバー：ズーム＋暗幕＋「＋」 */
.lineup_slider .ls_img::before{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 1;
	pointer-events: none;
}
.lineup_slider .ls_img::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4rem;
	height: 4rem;
	transform: translate(-50%, -50%);
	background:
		linear-gradient(#fff, #fff) center / 2px 40px no-repeat,
		linear-gradient(#fff, #fff) center / 4rem 0.2rem no-repeat;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
	pointer-events: none;
}
.lineup_slider .swiper-slide:hover .ls_img img{
	transform: scale(1.08);
}
.lineup_slider .swiper-slide:hover .ls_img::before{
	opacity: 1;
}
.lineup_slider .swiper-slide:hover .ls_img::after{
	opacity: 1;
}
.lineup_slider .ls_name{
	position: absolute;
	left: 2.8rem;
	bottom: 0.7rem;
	z-index: 3;
	transform-origin: left bottom;
	transform: rotate(-90deg);
	white-space: nowrap;
	color: #fff;
	font-family: 'Anton', 'Noto Sans JP', sans-serif;
	font-size: 2.2rem;
	letter-spacing: 1px;
	-webkit-text-stroke: 0.6rem #000;
	paint-order: stroke fill;
}
.contents03_photos .lineup_prev,
.contents03_photos .lineup_next{
	width: 1.7rem;
	height: 3.3rem;
	padding: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.contents03_photos .lineup_prev{
	left: -4.4rem;
}
.contents03_photos .lineup_next{
	right: -4.4rem;
}
.contents03_photos .lineup_prev img,
.contents03_photos .lineup_next img{
	display: block;
	width: 1.7rem;
	height: auto;
}

/* ============================================================
   FOOD & SHOP  contents04
   ============================================================ */
.contents04_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	border-bottom: 1px solid #fff;
}
.contents04_head{
	display: flex;
	align-items: center;
}
.contents04_head .text01 img{
	width: 47.2rem;
}
.contents04_head .text02{
	flex-shrink: 0;
	margin-top: 0;
	margin-left: 2.1rem;
	padding-left: 2.1rem;
	border-left: 1px solid #fff;
	font-size: 2rem;
	line-height: 3.2rem;
	letter-spacing: 0.2rem;
	white-space: nowrap;
}
.contents04_head .text02 .big{
	display: inline;
	margin: 0;
	color: #e4ad00;
	font-size: 2.9rem;
	letter-spacing: 0.2rem;
}
.contents04_slider{
	margin-top: 9rem;
	position: relative;
}
.contents04_list{
	overflow: hidden;
}
.contents04_item{
	width: 21.7rem;
}
.contents04_item .img{
	width: 21.7rem;
	height: 17.9rem;
	position: relative;
	overflow: hidden;
}
.contents04_item .img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}
/* ホバー：ズーム＋暗幕＋「＋」（LINE UPと同系統） */
.contents04_item .img::before{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 1;
	pointer-events: none;
}
.contents04_item .img::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 3rem;
	height: 3rem;
	transform: translate(-50%, -50%);
	background:
		linear-gradient(#fff, #fff) center / 2px 30px no-repeat,
		linear-gradient(#fff, #fff) center / 3rem 0.2rem no-repeat;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
	pointer-events: none;
}
.contents04_item:hover .img img{
	transform: scale(1.08);
}
.contents04_item:hover .img::before{
	opacity: 1;
}
.contents04_item:hover .img::after{
	opacity: 1;
}
.contents04_item .text03{
	margin-top: 1.3rem;
	text-align: center;
	font-size: 2.0rem;
}
.shop_prev,
.shop_next{
	width: 1.7rem;
	height: 3.3rem;
	padding: 0;
	position: absolute;
	top: 9rem;
	transform: translateY(-50%);
	z-index: 5;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.shop_prev{
	left: -4.4rem;
}
.shop_next{
	right: -4.4rem;
}
.shop_prev img,
.shop_next img{
	display: block;
	width: 1.7rem;
	height: auto;
}
.shop_prev.swiper-button-disabled,
.shop_next.swiper-button-disabled{
	opacity: 0.35;
	cursor: default;
}
.contents04 .btn_more{
	margin: 3rem auto 0;
}

/* ============================================================
   TIME TABLE  contents05
   ============================================================ */
.contents05_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	display: flex;
	border-bottom: 1px solid #fff;
}
.contents05_01{
	width: 21.5rem;
	flex-shrink: 0;
	text-align: center;
}
.contents05_01 .text01 img{
	width: 21.5rem;
}
.contents05_01 .btn_dl{
	margin: 2rem auto 0;
}
.contents05_02{
	margin-left: 9.5rem;
}
.contents05_02 .pdf_box{
	width: 80.1rem;
	height: 29.3rem;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #fff;
}
.contents05_02 .pdf_box .text03{
	font-family: 'Anton', 'Noto Sans JP', sans-serif;
	font-size: 6rem;
	color: #289500;
	letter-spacing: 0.2rem;
}
/* タイムテーブル COMING SOON プレースホルダー（ラスタカラー） */
.contents05_02 .pdf_box.is-soon{
	background:
		radial-gradient(130% 120% at 50% 8%, rgba(249,197,1,.12), transparent 62%),
		linear-gradient(180deg, #171717 0%, #070707 100%);
	position: relative;
	overflow: hidden;
}
.pdf_box.is-soon::before,
.pdf_box.is-soon::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 0.6rem;
	background: linear-gradient(90deg, #e33a2e 0 33.33%, #f9c501 33.33% 66.66%, #289500 66.66% 100%);
}
.pdf_box.is-soon::before{ top: 0; }
.pdf_box.is-soon::after{ bottom: 0; }
.pdf_box.is-soon .cs{
	position: relative;
	text-align: center;
	z-index: 1;
}
.pdf_box.is-soon .cs_ttl{
	font-family: 'Anton', 'Noto Sans JP', sans-serif;
	font-size: 7.8rem;
	line-height: 1;
	letter-spacing: 0.5rem;
	background: linear-gradient(92deg, #e33a2e, #f9c501 50%, #289500);
	-webkit-background-clip: text;
	        background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0.4rem 1rem rgba(0,0,0,.55));
}
.pdf_box.is-soon .cs_sub{
	margin-top: 1.6rem;
	font-family: 'Anton', 'Noto Sans JP', sans-serif;
	font-size: 2.1rem;
	letter-spacing: 0.35rem;
	color: #f9c501;
}
/* 斜めシャイン（transformのみ＝GPUで軽量） */
.pdf_box.is-soon .cs::after{
	content: "";
	position: absolute;
	top: -50%;
	bottom: -50%;
	left: 0;
	width: 30%;
	background: linear-gradient(105deg, transparent, rgba(255,255,255,.22), transparent);
	transform: translateX(-260%) skewX(-16deg);
	animation: csShine 4.5s ease-in-out infinite;
	pointer-events: none;
}
@keyframes csShine{
	0%   { transform: translateX(-260%) skewX(-16deg); }
	55%, 100% { transform: translateX(560%) skewX(-16deg); }
}
.contents05_02 .text04{
	margin-top: 2.7rem;
	font-size: 1.3rem;
}

/* ============================================================
   ACCESS  contents06
   ============================================================ */
.contents06_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	border-bottom: 1px solid #fff;
}
.contents06_head{
	display: flex;
}
.contents06_01{
	width: 27.3rem;
	flex-shrink: 0;
	text-align: center;
}
.contents06_01 .text01 img{
	width: 27.3rem;
}
.contents06_01 .btn_map{
	margin: 2rem auto 0;
}
.contents06_02{
	margin-left: 3.3rem;
	padding-left: 2.9rem;
	border-left: 1px solid #fff;
	width: 40rem;
}
.ac_row{
	display: flex;
	align-items: center; /* アイコンとテキストを縦中央揃え */
}
.ac_row + .ac_row{
	margin-top: 2.2rem;
}
.ac_row dt{
	width: 3.4rem;
	flex-shrink: 0;
	margin-right: 1.1rem;
	display: flex;
	justify-content: center;
}
.ac_row dt .ic_pin{
	width: 3.3rem;
}
.ac_row dt .ic_train{
	width: 3.3rem;
}
.ac_row dt .ic_car{
	width: 3.4rem;
}
.ac_row dd .l1{
	display: block;
	font-size: 2rem;
	line-height: 1.4;
}
.ac_row dd .l2{
	display: block;
	font-size: 1.5rem;
	line-height: 1.6;
}
.ac_note{
	margin-top: 2rem;
	font-size: 2.2rem;
	line-height: 3.1rem;
	white-space: nowrap;
}
.ac_note .red{
	color: #ff0000;
}
.contents06_03{
	width: 37.8rem;
	margin-left: 3.2rem;
	margin-top: 0.3rem;
}
/* ACCESS MAP（ヘッダー右）を残り幅いっぱいに拡大＝右端に合わせる（PC限定・SPは従来サイズ維持） */
@media screen and (min-width:768px){
	.contents06_03{ flex: 1; width: auto; }
	.contents06_03 img{ width: 100%; } /* SVGマップを枠いっぱいに */
}
.contents06_map{
	width: 120rem;
	margin-top: 5rem;
	position: relative;
	display: flex;
	gap: 50px;
}
.contents06_map .cmap_gmap,
.contents06_map .cmap_custom{
	position: static; /* admin.css の iframe{position:absolute} を打ち消してフレックスの通常フローに戻す */
	width: calc(50% - 25px); /* iframe/imgを直接それぞれ50%（50px gapの半分を差引） */
	height: 37.3rem;
	border: 0;
	display: block;
	object-fit: cover;
	flex: none;
}

/* ============================================================
   Q&A  contents_qa
   ============================================================ */
.contents_qa_inner{
	width: 120rem;
	margin: 0 auto;
	padding: 7rem 0;
	height: auto;
	display: flex;
	border-bottom: 1px solid #fff;
}
.contents_qa_01{
	width: 16.3rem;
	flex-shrink: 0;
	text-align: center;
}
.contents_qa_01 .text01 img{
	width: 14.5rem;
}
.contents_qa_02{
	margin-left: 14.3rem;
	padding-left: 2.9rem;
	border-left: 1px solid #fff;
	flex: 1;
	min-width: 0;
}
.qa_list{
	list-style: none;
}
.qa_item:not(:last-child)::after{
	content: "";
	display: block;
	height: 1px;
	background: rgba(255, 255, 255, 0.22);
}
/* 初期は5件表示。6件目以降は「さらに見る」まで隠す（最後の可視項目の区切り線も非表示） */
.qa_list:not(.is-expanded) .qa_item:nth-child(n+6){
	display: none;
}
.qa_list:not(.is-expanded) .qa_item:nth-child(5)::after{
	display: none;
}
.qa_more_wrap{
	margin-top: 3.4rem;
	text-align: center;
}
button.qa_more{
	margin: 0 auto;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	-webkit-appearance: none;
	appearance: none;
}
/* 5件以下（JSが件数判定して付与）ではボタンを隠す */
.qa_more_wrap.is-hidden{
	display: none;
}
.qa_item details{
	overflow: hidden;
}
.qa_q{
	display: flex;
	align-items: center;
	gap: 1.6rem;
	padding: 2.4rem 0;
	cursor: pointer;
	list-style: none;
}
.qa_q::-webkit-details-marker{ display: none; }
.qa_mark{
	flex: none;
	width: 3.6rem;
	height: 3.6rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-family: 'Anton', sans-serif;
	font-size: 2.2rem;
	line-height: 1;
	color: #000;
	background: #f9c501;
}
.qa_mark-a{
	background: #289500;
	color: #fff;
}
.qa_txt{
	flex: 1;
	font-size: 2.1rem;
	line-height: 1.5;
}
.qa_ico{
	flex: none;
	position: relative;
	width: 2.2rem;
	height: 2.2rem;
}
.qa_ico::before,
.qa_ico::after{
	content: "";
	position: absolute;
	background: #f9c501;
}
.qa_ico::before{
	top: 50%;
	left: 0;
	width: 100%;
	height: 0.2rem;
	transform: translateY(-50%);
}
.qa_ico::after{
	left: 50%;
	top: 0;
	width: 0.2rem;
	height: 100%;
	transform: translateX(-50%);
	transition: transform 0.3s ease;
}
.qa_item details[open] .qa_ico::after{
	transform: translateX(-50%) scaleY(0);
}
.qa_a{
	display: flex;
	gap: 1.6rem;
	padding: 0 0 2.4rem;
}
.qa_a p{
	flex: 1;
	padding-top: 0.5rem;
	font-size: 1.7rem;
	line-height: 1.9;
}

/* ============================================================
   INFO / CONTACT  contents07
   ============================================================ */
.contents07_inner{
	width: 120rem;
	margin: 0 auto;
	padding: 7rem 0;
	height: auto;
	display: flex;
	border-bottom: 1px solid #fff;
}
.contents07_01{
	width: 16.3rem;
	flex-shrink: 0;
	text-align: center;
}
.contents07_01 .text01 img{
	width: 16.3rem;
}
.contents07_02{
	margin-left: 14.3rem;
	padding-left: 2.9rem;
	border-left: 1px solid #fff;
}
.contents07_02 .text03{
	font-size: 3rem;
	line-height: 1.4; /* 継承の固定line-height(20px)だと30px文字がマスクで上下切れするため */
}
.contents07_02 .text04{
	margin-top: 1.2rem;
	font-size: 1.8rem;
}
.ct_row{
	overflow: hidden; /* 枠ごと下からマスク表示 */
}
.ct_row .ct_in{
	display: flex;
	align-items: center;
}
.ct_head{
	overflow: hidden; /* 見出し枠のマスク */
	padding: 0.6rem 0; /* 文字の上下のはみ出しがマスクで切れないための余白 */
	margin: -0.6rem 0; /* padding分をレイアウト上で相殺 */
}
.ct_in{
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 枠ごとに下から迫り上がる。JS有効時のみ隠す＝reveal-ready */
.contents07.reveal-ready .ct_in{
	transform: translateY(115%);
}
.contents07.reveal-ready.is-inview .ct_in{
	transform: translateY(0);
}
.ct_head + .ct_row{
	margin-top: 3.8rem;
}
.ct_row + .ct_row{
	margin-top: 2.6rem;
}
.ct_row .qr{
	width: 14.3rem;
	flex-shrink: 0;
}
.ct_body{
	margin-left: 1.9rem;
}
.ct_ttl{
	display: flex;
	align-items: center;
}
.ct_ttl .ic{
	width: 5.7rem;
	flex-shrink: 0;
	margin-right: 1.7rem;
}
.ct_ttl .tx{
	font-size: 3rem;
}
.ct_url{
	display: inline-block;
	margin-top: 2.2rem;
	font-size: 2.2rem;
	text-decoration: underline;
	text-underline-offset: 0.4rem;
}

/* ============================================================
   SPONSOR  contents08
   ============================================================ */
.contents08_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	height: auto;
	text-align: center;
}
.contents08 .text01{
	font-family: 'Anton', sans-serif;
	font-size: 7.2rem;
	line-height: 1;
}
.contents08 .text02{
	margin-top: 0;
}
.contents08 .text02 .line{
	display: inline-block;
	margin: 0 auto;
}
.contents08 .text02 span{
	margin-top: 1rem;
}
.sp_block{
	margin-top: 6rem;
	overflow: hidden; /* 枠ごと下からマスク表示するためのマスク */
	padding-bottom: 1rem; /* 大きめ文字の下側はみ出しがマスクで切れないための余白 */
	margin-bottom: -1rem; /* padding分をレイアウト上で相殺（間隔・位置を維持） */
}
.sp_block_in{
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 枠ごとに下から迫り上がる。JS有効時のみ隠す＝reveal-ready */
.contents08.reveal-ready .sp_block_in{
	transform: translateY(115%);
}
.contents08.reveal-ready.is-inview .sp_block_in{
	transform: translateY(0);
}
.sp_block .pill{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 26.5rem;
	height: 3.7rem;
	background: #f9c501;
	border-radius: 0.6rem;
	color: #000;
	font-size: 2rem;
	letter-spacing: 0.2rem;
}
.sp_block .list{
	color: #fff;
}
.sp_block:nth-child(4){
	margin-top: 6rem;
}
.sp_block .list.lv1{
	margin-top: 2rem;
	font-size: 4rem;
	line-height: 1;
	letter-spacing: 0.4rem;
}
.sp_block .list.lv2{
	margin-top: 2rem;
	font-size: 2.9rem;
	line-height: 1.4;
	letter-spacing: 0.29rem;
}
.sp_block .list.lv3{
	margin-top: 2.6rem;
	font-size: 1.9rem;
	line-height: 1.5;
	letter-spacing: 0.19rem;
}

/* ============================================================
   SPECIAL THANX  contents09
   ============================================================ */
.contents09_inner{
	width: 120rem;
	margin: 0 auto;
	padding-top: 7rem;
	padding-bottom: 7rem;
	text-align: center;
}
.contents09 .text01{
	font-family: 'Anton', sans-serif;
	font-size: 7.2rem;
	line-height: 1;
}
.contents09 .text02{
	margin-top: 0;
}
.contents09 .text02 .line{
	display: inline-block;
}
.contents09 .text02 span{
	margin-top: 1rem;
}
.contents09 .endo{
	width: 37.1rem;
	margin: 6rem auto 0;
}
.contents09 .text03{
	margin-top: 3rem;
	font-size: 4rem;
	line-height: 1;
	letter-spacing: 0.4rem;
}
.contents09 .text04{
	margin-top: 2rem;
	font-size: 1.7rem;
	line-height: 2.8rem;
}

/* ============================================================
   FOOTER  (admin.css の緑フッターを上書き)
   ============================================================ */
footer{
	width: 100%;
	height: auto;
	padding: 0;
	margin: 0;
	background: #000;
	display: block;
}
.footer_inner{
	width: 119.7rem;
	margin: 0 auto 4rem;
	padding: 4rem 0;
	display: flex;
	align-items: flex-end;
	border-top: 1px solid #fff;
	border-bottom: 1px solid #fff;
	position: relative;
}
.footer_inner .ttl{
	font-size: 1.4rem;
	letter-spacing: 0.14rem;
}
.footer_inner .name{
	margin-top: 2rem;
	font-size: 1.7rem;
	letter-spacing: 0.17rem;
}
.footer_01{
	width: 40.2rem;
	padding-left: 3.6rem;
}
.footer_02{
	width: 32.7rem;
	padding-left: 4.7rem;
	border-left: 1px solid #fff;
}
.footer_02 .name_wrap{
	display: flex;
	align-items: center;
	gap: 1.6rem;
}
.footer_02 .logo{
	width: 4.8rem;
}
.footer_03{
	padding-left: 4.6rem;
	border-left: 1px solid #fff;
}
.footer_03 .sns{
	margin-top: 1.4rem;
	display: flex;
	gap: 1.5rem;
}
.footer_03 .sns a{
	width: 3.4rem;
}
.footer_copy{
	position: absolute;
	right: 0;
	font-size: 1.4rem;
	letter-spacing: 1px;
}

/* ============================================================
   ARTIST POPUP
   ============================================================ */
.artist_pop{
	position: fixed;
	inset: 0;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	/* 閉じるときは速く */
	transition: opacity 0.15s ease, visibility 0s linear 0.15s;
}
.artist_pop.is-open{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	/* 開くときはふわっと */
	transition: opacity 0.35s ease, visibility 0s;
}
.artist_pop_bg{
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.9);
}
.artist_pop_scroll{
	position: absolute;
	inset: 0;
	overflow-y: auto;
	display: flex;
}
.artist_pop_inner{
	width: 69.7rem;
	margin: auto;
	padding: 7.6rem 6rem 33.6rem;
	background: #000;
	box-sizing: content-box;
	position: relative;
	will-change: transform, opacity;
}
.ap_top{
	display: flex;
	justify-content: space-between;
}
.ap_photo{
	width: 33.2rem;
}
.ap_photo img{
	display: block;
	width: 100%;
	height: auto; /* 親幅に対し比率保持。クロップはWP側の切り抜きサイズに委ねる */
}
.ap_info{
	width: 33.2rem;
}
.ap_info .ap_name{
	color: #fff;
	font-family: 'Anton', sans-serif;
	font-size: 3.2rem;
	letter-spacing: 1px;
	line-height: 1;
}
.ap_info .ap_profile{
	margin-top: 1.8rem;
	color: #fff;
	font-size: 1.6rem;
	line-height: 2.9rem;
	white-space: pre-line; /* プロフィールの改行をそのまま反映 */
}
.ap_sns{
	margin-top: 2.2rem;
	display: flex;
	align-items: center;
	gap: 2.4rem;
}
.ap_sns a{
	display: block;
}
.ap_sns a img{
	display: block;
	width: auto;
	height: 3.2rem;
}
.ap_links{
	margin-top: 2.6rem;
}
.ap_link + .ap_link{
	margin-top: 2rem;
}
.ap_link .ap_link_ttl{
	display: block;
	color: #f9c501;
	font-size: 1.5rem;
	font-weight: 700;
}
.ap_link .ap_link_url{
	display: inline-block;
	margin-top: 0.4rem;
	color: #fff;
	font-size: 1.5rem;
	text-decoration: underline;
	text-underline-offset: 0.3rem;
}
.ap_movie{
	width: 69.7rem;
	height: 39.2rem;
	margin-top: 3rem;
	position: relative;
	overflow: hidden;
}
.ap_movie iframe{
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
/* 閉じる×・矢印 */
.artist_pop_close{
	position: fixed;
	top: 4rem;
	right: 15.5rem;
	width: 4rem;
	height: 4rem;
	z-index: 2;
	padding: 0;
	border: 0;
	background: transparent; /* パネル背景色変更に伴い黒箱を除去（白×のみ表示） */
	cursor: pointer;
}
.artist_pop_close::before,
.artist_pop_close::after{
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4rem;
	height: 0.2rem;
	background: #fff;
}
.artist_pop_close::before{
	transform: translate(-50%, -50%) rotate(45deg);
}
.artist_pop_close::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}
.artist_pop_prev,
.artist_pop_next{
	position: fixed;
	top: 50%;
	width: 2.6rem;
	height: 2.6rem;
	margin-top: -1.3rem;
	z-index: 2;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.artist_pop_prev{
	left: calc(50% - 39.2rem);
}
.artist_pop_next{
	right: calc(50% - 39.2rem);
}
.artist_pop_prev::before,
.artist_pop_next::before{
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.6rem;
	height: 1.6rem;
	border-top: 0.2rem solid #fff;
}
.artist_pop_prev::before{
	border-left: 0.2rem solid #fff;
	transform: translate(-30%, -50%) rotate(-45deg);
}
.artist_pop_next::before{
	border-right: 0.2rem solid #fff;
	transform: translate(-70%, -50%) rotate(45deg);
}
html.pop-open{
	overflow: hidden;
}
.lineup_slider .swiper-slide{
	cursor: pointer;
}

/* ============================================================
   SHOP ポップアップ（別機構・挙動はARTISTと共通）
   ============================================================ */
.shop_pop{
	position: fixed;
	inset: 0;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	/* 閉じるときは速く */
	transition: opacity 0.15s ease, visibility 0s linear 0.15s;
}
.shop_pop.is-open{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	/* 開くときはふわっと */
	transition: opacity 0.35s ease, visibility 0s;
}
.shop_pop_bg{
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.9);
}
.shop_pop_scroll{
	position: absolute;
	inset: 0;
	overflow-y: auto;
	display: flex;
}
.shop_pop_inner{
	width: 81.8rem;
	margin: auto;
	padding: 6.8rem 7.2rem 4.4rem;
	box-sizing: border-box;
	background: #000;
	text-align: center;
	position: relative;
	will-change: transform, opacity;
}
.sp_photos{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.8rem;
}
.sp_photo{
	width: 32.3rem;
}
.sp_photo img{
	display: block;
	width: 100%;
	height: auto; /* セル幅固定、高さは画像比率（WP側の切り抜き）に委ねる */
}
.sp_name{
	margin-top: 2.9rem;
	margin-bottom: 1.2rem;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 700;
	font-size: 2.6rem;
	color: #fff;
	letter-spacing: 1px;
}
.sp_genre{
	margin-top: 0.8rem;
	font-size: 1.4rem;
	color: #fff;
	letter-spacing: 1px;
}
.sp_profile{
	max-width: 44.6rem;
	margin: 2.6rem auto 0;
	font-size: 1.5rem;
	line-height: 2.2rem;
	color: #fff;
	text-align: left;
}
.sp_sns{
	margin-top: 4rem;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2.8rem;
}
.sp_sns a{
	line-height: 0;
}
.sp_sns img{
	height: 3.2rem;
	width: auto;
}
.sp_link{
	margin-top: 4.2rem;
}
.sp_link .sp_link_ttl{
	display: block; /* タイトルを別行にしてURLを下に改行 */
}
.sp_link a{
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.05rem;
}
/* 閉じる×・矢印（ARTISTと共通の見た目） */
.shop_pop_close{
	position: fixed;
	top: 4rem;
	right: 15.5rem;
	width: 4rem;
	height: 4rem;
	z-index: 2;
	padding: 0;
	border: 0;
	background: transparent; /* アーティストに合わせ黒箱を除去（白×のみ） */
	cursor: pointer;
}
.shop_pop_close::before,
.shop_pop_close::after{
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4rem;
	height: 0.2rem;
	background: #fff;
}
.shop_pop_close::before{
	transform: translate(-50%, -50%) rotate(45deg);
}
.shop_pop_close::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}
.shop_pop_prev,
.shop_pop_next{
	position: fixed;
	top: 50%;
	width: 1.7rem;
	height: 3.2rem;
	margin-top: -1.6rem;
	z-index: 2;
	padding: 0;
	border: 0;
	cursor: pointer;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.shop_pop_prev{
	left: calc(50% - 38.4rem);
	background-image: url(../img/index/arrow01.webp);
}
.shop_pop_next{
	right: calc(50% - 38.4rem);
	background-image: url(../img/index/arrow02.webp);
}
.contents04_item{
	cursor: pointer;
}

/* ============================================================
   リンク共通ホバー（未設定箇所にフェード）
   ============================================================ */
.header_logo a,
.header_nav a,
.header_sns a,
.footer_03 .sns a,
.ct_url,
.ap_sns a,
.ap_link_url,
.sp_sns a,
.sp_link a{
	transition: opacity 0.25s ease, color 0.25s ease;
}
.header_logo a:hover,
.header_nav a:hover,
.header_sns a:hover,
.footer_03 .sns a:hover,
.ct_url:hover,
.ap_sns a:hover,
.ap_link_url:hover,
.sp_sns a:hover,
.sp_link a:hover{
	opacity: 0.7;
}

/* ============================================================
   SP ハンバーガーメニュー（PCは pc_none で非表示）
   ============================================================ */
.sp_menu_btn{
	position: absolute;
	top: 1.9rem;
	right: 1rem;
	width: 3.3rem;
	height: 2.4rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	z-index: 101;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.sp_menu_btn span{
	display: block;
	width: 100%;
	height: 0.2rem;
	background: #fff;
}
.sp_menu{
	position: fixed;
	inset: 0;
	z-index: 1500;
	background: #313131;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s 0.4s;
}
.sp_menu.is-open{
	transform: translateX(0);
	visibility: visible;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s 0s;
}
.sp_menu_nav{
	position: absolute;
	top: 8rem;
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.sp_menu_nav a{
	line-height: 5rem; /* 項目数9対応（Q&A追加）：SNS(top:57rem)と重ならないよう間隔を調整 */
	color: #fff;
	font-family: 'Anton', sans-serif;
	font-size: 2.1rem;
	letter-spacing: 0.2rem;
	transition: opacity 0.25s ease;
}
.sp_menu_nav a:hover{
	opacity: 0.7;
}
.sp_menu_sns{
	position: absolute;
	top: 57rem;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 1.9rem;
}
.sp_menu_sns a{
	width: 3.8rem;
}
.sp_menu_sns img{
	width: 3.8rem;
}
.sp_menu_close{
	position: absolute;
	top: 1.8rem;
	right: 2.1rem;
	width: 2.6rem;
	height: 2.6rem;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.sp_menu_close::before,
.sp_menu_close::after{
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2.6rem;
	height: 0.2rem;
	background: #fff;
}
.sp_menu_close::before{
	transform: translate(-50%, -50%) rotate(45deg);
}
.sp_menu_close::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}
html.menu-open{
	overflow: hidden;
}

/* ============================================================
   SP (375px 基準・単一ソース上書き)  @media max-width:767px
   ここから各セクションのSP上書きを追記していく
   ============================================================ */
@media only screen and (max-width: 767px){
	body{
		min-width: 0;
	}
	/* サブタイトル（お知らせ 等）SP */
	.text02 span{
		margin-top: 1rem;
		font-size: 1.5rem;
		letter-spacing: 0.3rem;
	}
	.contents09 .text02 span{
		font-size: 1.5rem;
	}
	/* 見出し画像（各セクションEN題字）を中央寄せ（block+固定幅のため margin auto が必要） */
	.contents01_01 .text01 img,
	.contents02_01 .text01 img,
	.contents02_01 .logo,
	.contents03_01 .text01 img,
	.contents04_head .text01 img,
	.contents06_01 .text01 img,
	.contents_qa_01 .text01 img,
	.contents07_01 .text01 img,
	.contents08 .text02 .line,
	.contents09 .text02 .line{
		width: 25.6rem;
		display: inline-block;
		margin-left: auto;
		margin-right: auto;
	}
	/* SPONSORの横線は見出し「SPONSOR」の文字幅に合わせる */
	.contents08 .text02 .line{
		width: 15.4rem;
	}
	/* ---- ヘッダー（ロゴ＋ハンバーガー・常時表示・透過） ---- */
	.header{
		width: 100%;
		height: 16vw;
		transform: none;
		background: transparent;
		opacity: 0;              /* オープニング演出中は非表示 */
		visibility: hidden;
		animation: spHeaderIn 0.5s ease 3.6s both; /* 演出後（黒幕が抜けた後）に表示 */
	}
	@keyframes spHeaderIn{
		0%{ opacity: 0; visibility: hidden; }
		1%{ visibility: visible; }
		100%{ opacity: 1; visibility: visible; }
	}
	.header.is-show{
		transform: none;
	}
	.header_logo{
		top: 3.2vw;
		left: 2.1333vw;
		width: 14.9333vw;
	}
	.header_logo img{
		width: 14.9333vw;
	}
	.header_nav,
	.header_sns,
	.header .mv_deco{
		display: none;
	}

	/* ---- 全セクション共通：単一カラム・中央寄せ・幅319(左右28) ---- */
	.contents01_inner,
	.contents02_inner,
	.contents03_inner,
	.contents04_inner,
	.contents05_inner,
	.contents06_inner,
	.contents_qa_inner,
	.contents07_inner,
	.contents08_inner,
	.contents09_inner{
		width: 100%;
		height: auto;
		min-height: 0;
		padding: 0 2.8rem;
		box-sizing: border-box;
		display: block;
		text-align: center;
	}

	/* ---- ヒーロー（ver02 SP：bg01_sp/hero01_sp/name_sp/main_title_sp をSP座標で配置） ---- */
	.contents00{
		height: 134vw; /* ver02 SP: デザイン比率(≈134vw)固定。タイトル下端に合わせて下部余白を詰める */
		min-height: 0;
		overflow: hidden;
	}
	.contents00_inner{
		width: 100%;
		height: 134vw;
		min-height: 0;
	}
	.mv_bg{
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
	}
	.mv_bg img{
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	.contents00_kv{
		position: absolute;
		inset: 0;
		transform: none; /* PCの縦センター指定をSPでは解除（SPは全面配置） */
		width: 100%;
		height: 100%;
	}
	/* SPもオープニング演出あり（PC共通のkvIn/黒幕/フラッシュ/中央ロゴ）。ロゴのみSPサイズに調整 */
	.mv_logo img{
		width: 64vw;
	}
	/* ver02 SP：コラージュ(hero01_sp)／名前(name_sp)／タイトル(main_title_sp) をSP座標で配置 */
	.mv_stage{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; transform: none; }
	.mv_collage{ top: 8vw; left: 0; width: 100%; z-index: 1; }
	.mv_name{ top: 19vw; left: 2vw; width: 96vw; z-index: 2; }
	.contents00_kv .mv_title{ top: 63vw; left: 3vw; width: 93.9vw; z-index: 19; }
	.mv_name picture,
	.mv_title picture{ display: block; }

	/* ---- NEWS(contents01) ---- */
	.contents01_inner{
		padding-top: 4rem;
		border-bottom: 0;
		display: flex;
		flex-direction: column;
	}
	.contents01_01{
		display: contents;
	}
	.contents01_02{
		width: 100%;
		order: 0;
	}
	.contents01 .btn_more{
		order: 1;
	}
	.news_list li:nth-child(4){
		display: none;
	}
	.contents01_01 .text01 img{
		width: 13.1rem;
	}
	.contents01_02{
		margin-top: 3rem;
	}
	.news_list a{
		flex-direction: column;
		align-items: flex-start;
	}
	.news_list .date{
		width: auto;
	}
	.contents01 .btn_more{
		margin: 3.4rem auto 0;
	}

	/* ---- ABOUT(contents02) ---- */
	.contents02_inner{
		padding-top: 0;
		flex-direction: column;
		border-bottom: 0;
	}
	.contents02_01,
	.contents02_02,
	.contents02_03{
		width: 100%;
		margin-left: 0;
	}
	.contents02_01 .text01 img{
		width: 14.4rem;
	}
	.contents02_02{
		margin-top: 3rem;
	}
	.contents02_02 .text03{
		font-size: 2rem;
		text-align: center;
	}
	.contents02_02 .text04{
		font-size: 1.55rem;
		line-height: 3.2rem;
		text-align: center;
	}
	.contents02_03{
		width: 21.4rem;
		margin: 3.4rem auto 0;
	}

	/* ---- 区切り線（各セクション下部の白線） ---- */
	.contents03_inner,
	.contents04_inner,
	.contents05_inner,
	.contents06_inner,
	.contents_qa_inner,
	.contents07_inner{
		border-bottom: 0;
	}
	/* セクション間の白い横棒（320px中央・デザイン準拠） */
	.contents01::after,
	.contents02::after,
	.contents03::after,
	.contents04::after,
	.contents05::after,
	.contents06::after,
	.contents_qa::after,
	.contents07::after{
		content: "";
		display: block;
		width: 32rem;
		height: 1px;
		margin: 5rem auto;
		background: #fff;
	}

	/* ---- LINE UP(contents03) 並び順: 題字→サブ→スライダー→一覧→テキスト ---- */
	.contents03_inner{
		padding-top: 0;
		display: flex;
		flex-direction: column;
	}
	.contents03_head{
		display: contents;
	}
	.contents03_01{
		display: contents;
	}
	.contents03_01 .text01{ order: 0; }
	.contents03_01 .text02{ order: 1; }
	.contents03_photos{ order: 2; }
	.contents03_01 .btn_more{ order: 3; }
	.contents03_02{ order: 4; }
	.contents03_01,
	.contents03_02{
		width: 100%;
		margin-left: 0;
		padding-left: 0;
		border-left: 0;
	}
	.contents03_01 .text01 img{
		width: 15.5rem;
	}
	.contents03_photos{
		width: 100%;
		margin-top: 2.6rem;
	}
	.lineup_slider .ls_img img{
		height: 25.9rem;
	}
	.lineup_slider .ls_name{
		font-size: 1.4rem;
		left: 2.1rem;
		bottom: 0.5rem;
		-webkit-text-stroke: 0.4rem #000;
	}
	.contents03_photos .lineup_prev{
		left: -2.5rem;
	}
	.contents03_photos .lineup_next{
		right: -2.5rem;
	}
	.contents03_01 .btn_more{
		margin-top: 2.6rem;
		order: 3;
	}
	.contents03_02{
		margin-top: 3rem;
	}
	.contents03_02 .text03{
		max-width: 30rem;
		margin-left: auto;
		margin-right: auto;
		max-height: 15.6rem;
		overflow: hidden;
		font-size: 1.5rem;
		line-height: 2.1rem;
		text-align: center;
		transition: max-height 0.4s ease;
	}
	.contents03_02.is-expanded .text03{
		max-height: 120rem;
	}
	.lineup_more{
		display: inline-block;
		margin-top: 2.7rem;
		padding: 0;
		color: #ef0606;
		font-family: 'Noto Sans JP', sans-serif;
		font-size: 1.9rem;
		font-weight: 900;
		letter-spacing: 1px;
		background: transparent;
		border: 0;
		cursor: pointer;
	}
	.lineup_more::before{
		content: "\25BC";
		margin-right: 0.5rem;
		font-size: 1.4rem;
		vertical-align: 1px;
	}
	.contents03_02.is-expanded .lineup_more::before{
		content: "\25B2";
	}

	/* ---- FOOD & SHOP(contents04) ---- */
	.contents04_inner{
		padding-top: 0;
	}
	.contents04_head{
		flex-direction: column;
		align-items: center;
	}
	.contents04_head .text01 img{
		width: 30rem;
	}
	.contents04_head .text02{
		margin-left: 0;
		margin-top: 1.6rem;
		padding-left: 0;
		border-left: 0;
		white-space: normal;
		font-size: 1.7rem;
		line-height: 2.7rem;
		text-align: center;
	}
	.contents04_head .text02 .big{
		font-size: 2.5rem;
	}
	.contents04_slider{
		margin-top: 3rem;
	}
	.contents04_item{
		width: 15rem;
	}
	.contents04_item .img{
		width: 15rem;
		height: 12.4rem;
	}
	.shop_prev{
		left: -2.5rem;
	}
	.shop_next{
		right: -2.5rem;
	}
	.contents04 .btn_more{
		margin-top: 3rem;
	}

	/* ---- TIME TABLE(contents05) ---- */
	.contents05_inner{
		padding-top: 0;
		flex-direction: column;
		align-items: center;
	}
	.contents05_01,
	.contents05_02{
		width: 100%;
		margin-left: 0;
	}
	.contents05_01 .text01 img.pc_none{
		width: 25.5rem;
		margin: 0 auto;
	}
	.contents05_02{
		margin-top: 2.6rem;
	}
	.contents05_02 .pdf_box{
		width: 100%;
		height: 22rem;
	}
	.contents05_02 .pdf_box .text03{
		font-size: 3.4rem;
	}
	.pdf_box.is-soon .cs_ttl{
		font-size: 4.6rem;
		letter-spacing: 0.3rem;
	}
	.pdf_box.is-soon .cs_sub{
		margin-top: 1rem;
		font-size: 1.5rem;
		letter-spacing: 0.2rem;
	}
	.contents05_02 .text04{
		text-align: left;
	}

	/* ---- ACCESS(contents06) 並び順: 題字→サブ→情報行→地図→ボタン→note→トゥクトゥク ---- */
	.contents06_inner{
		padding-top: 0;
		display: flex;
		flex-direction: column;
	}
	.contents06_head{
		display: contents;
	}
	.contents06_01{
		display: contents;
	}
	.contents06_01 .text01{ order: 0; }
	.contents06_01 .text02{ order: 1; }
	.contents06_02{ display: contents; }
	.contents06_02 .ac_row{ order: 2; }
	.contents06_03{ order: 3; }
		.contents06_map{ order: 4; }
	.contents06_01 .btn_map{ order: 5; margin-top: 2.4rem; }
	.contents06_02 .ac_note{ order: 5; }
	.contents06_03{ order: 3; } /* イラスト案内図はテキスト案内の直後に表示 */
	.contents06_01,
	.contents06_02,
	.contents06_03{
		width: 100%;
		margin-left: 0;
		padding-left: 0;
		border-left: 0;
	}
	.contents06_01 .text01 img{
		width: 20rem;
	}
	.contents06_02 .ac_row:first-child{
		margin-top: 2.4rem;
	}
	.ac_row dd,
	.ac_note{
		text-align: left;
	}
	.ac_note{
		white-space: normal;
		font-size: 1.8rem;
		line-height: 2.8rem;
		text-align: center;
		margin-top: 3rem;
	}
	.contents06_03{
		width: 100%; /* SP：下の地図と同じ全幅に */
		margin: 2.4rem 0 0;
	}
	.contents06_map{
		width: 100%;
		height: auto;
		margin-top: 3rem;
		flex-direction: column; /* SPは上下に並べる */
		gap: 2rem;
	}
	.contents06_map .cmap_gmap,
	.contents06_map .cmap_custom{
		width: 100%;
		height: auto;
		aspect-ratio: 576 / 373; /* SPは縦積み・全幅 */
	}

	/* ---- Q&A(contents_qa) ---- */
	.contents_qa_inner{
		padding-top: 0;
	}
	.contents_qa_01,
	.contents_qa_02{
		width: 100%;
		margin-left: 0;
		padding-left: 0;
		border-left: 0;
	}
	.contents_qa_02{
		text-align: left;
	}
	.contents_qa_01 .text01 img{
		width: 9.6rem;
	}
	.contents_qa_02{
		margin-top: 2.8rem;
	}
	.qa_q{
		gap: 1.2rem;
		padding: 2rem 0;
	}
	.qa_mark{
		width: 3rem;
		height: 3rem;
		font-size: 1.8rem;
	}
	.qa_txt{
		font-size: 1.6rem;
	}
	.qa_ico{
		width: 1.8rem;
		height: 1.8rem;
	}
	.qa_a{
		gap: 1.2rem;
		padding: 0 0 2rem;
	}
	.qa_a p{
		font-size: 1.4rem;
		line-height: 1.8;
	}

	/* ---- INFO(contents07) ---- */
	.contents07_inner{
		padding-top: 0;
		flex-direction: column;
		align-items: center;
	}
	.contents07_01,
	.contents07_02{
		width: 100%;
		margin-left: 0;
		padding-left: 0;
		border-left: 0;
	}
	.contents07_01 .text01 img{
		width: 11rem;
	}
	.contents07_02{
		margin-top: 2.4rem;
	}
	.contents07_02 .text03{
		font-size: 2rem;
	}
	.contents07_02 .text04{
		font-size: 1.5rem;
		line-height: 2.5rem;
	}
	/* INFO(contents07) SP: QR・見出し内テキスト・URLを隠し、ロゴ2つをflexで中央に横並び */
	.contents07_02 .ct_row .qr,
	.contents07_02 .ct_ttl .tx,
	.contents07_02 .ct_url{
		display: none;
	}
	.contents07_02{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: 2rem;      /* ロゴ間の余白 */
		text-align: center;
	}
	.contents07_02 .ct_head{
		width: 100%;           /* 見出しは全幅で1行、ロゴは次の行へ */
	}
	.contents07_02 .ct_row{
		width: 5rem;
		margin-top: 2.8rem;
		overflow: visible;
	}
	.contents07_02 .ct_body{
		margin-left: 0;        /* PC用の左余白を打ち消し */
	}
	.contents07_02 .ct_ttl .ic{
		width: 5rem;
		height: 5rem;
		margin: 0;             /* PC用の右余白を打ち消し */
	}
	.contents07_02 .ct_ttl .ic img{
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	/* ---- SPONSOR(contents08) ---- */
	.contents08_inner{
		padding-top: 0;
	}
	.contents08 .text01{
		font-size: 4.6rem;
	}
	.sp_block .pill{
		font-size: 1.5rem;
	}
	.sp_block .list.lv1{
		font-size: 2rem;
		line-height: 3rem;
		letter-spacing: 0.12rem;
	}
	.sp_block .list.lv2{
		font-size: 1.8rem;
		line-height: 3rem;
		letter-spacing: 0.09rem;
	}
	.sp_block .list.lv3{
		font-size: 1.5rem;
		line-height: 2.2rem;
		letter-spacing: 0.07rem;
	}

	/* ---- SPECIAL THANX(contents09) ---- */
	.contents09_inner{
		padding-top: 7rem;
		padding-bottom: 7rem;
	}
	.contents09 .text01{
		font-size: 4.6rem;
		width: auto;
	}
	.contents09 .endo{
		width: 20rem;
	}
	.contents09 .text03{
		font-size: 2.4rem;
	}
	.contents09 .text04{
		font-size: 1.4rem;
		line-height: 2.5rem;
	}

	/* ---- フッター ---- */
	.footer_inner{
		width: 100%;
		flex-direction: column;
		align-items: center;
		padding: 3rem 2.8rem;
		box-sizing: border-box;
		text-align: center;
	}
	.footer_01,
	.footer_02,
	.footer_03{
		width: 100%;
		padding-left: 0;
		border-left: 0;
	}
	.footer_02,
	.footer_03{
		margin-top: 2.4rem;
		padding-top: 2.4rem;
		border-top: 1px solid #fff;
	}
	.footer_02 .name_wrap{
		justify-content: center;
	}
	.footer_03 .sns{
		justify-content: center;
	}
	.footer_inner .name{
		font-size: 1.6rem;
	}
	.footer_copy{
		position: static;
		width: 100%;
		margin-top: 2.4rem;
		padding-top: 2.4rem;
		border-top: 1px solid #fff;
		font-size: 1.1rem;
		text-align: center;
	}

	/* ---- ARTIST ポップアップ SP ---- */
	.artist_pop_inner{
		width: 100%;
		padding: 6rem 3rem 4rem;
		box-sizing: border-box;
		background: #000; /* SP背景はアーティスト・shopとも#000（トップ／アーカイブ共通） */
	}
	.ap_top{
		flex-direction: column;
	}
	.ap_info{
		width: 100%;
	}
	/* 写真はデザインの画角 290×432 に固定（実運用はcropプラグインでこの枠にクロップ） */
	.ap_photo{
		width: 29rem;
		margin-left: auto;
		margin-right: auto;
	}
	.ap_photo img{
		height: auto;
	}
	.ap_info{
		margin-top: 2rem;
	}
	.ap_movie{
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}
	.artist_pop_prev{
		left: 0;
	}
	.artist_pop_next{
		right: 0;
	}
	/* PCで位置を調整(top:4rem/right:15.5rem)したが、SPは元の位置に戻す */
	.artist_pop_close{
		top: 1rem;
		right: 0.5rem;
	}

	/* ---- SHOP ポップアップ SP ---- */
	.shop_pop_inner{
		width: 100%;
		padding: 5.6rem 2rem 3.6rem;
		background: #000;
	}
	/* SPの×位置は元のまま（PCのtop:4rem/right:15.5remを引き継がない） */
	.shop_pop_close{
		top: 1rem;
		right: 1rem;
	}
	.sp_name{
		font-size: 2.3rem;
	}
	.sp_photos{
		gap: 1.2rem;
	}
	.sp_photo{
		width: 14rem;
	}
	/* 写真1枚のみの時はデザインどおり全幅で大きく表示 */
	.sp_photo:only-child{
		width: 100%;
	}
	.sp_profile{
		max-width: 100%;
	}
	/* SP: SHOPポップアップの矢印をARTISTポップアップと同じ大きさ・位置に */
	.shop_pop_prev,
	.shop_pop_next{
		width: 2.6rem;
		height: 2.6rem;
		margin-top: -1.3rem;
		background-image: none;
	}
	.shop_pop_prev{
		left: 0;
	}
	.shop_pop_next{
		right: 0;
	}
	.shop_pop_prev::before,
	.shop_pop_next::before{
		content: '';
		position: absolute;
		top: 50%;
		left: 50%;
		width: 1.6rem;
		height: 1.6rem;
		border-top: 0.2rem solid #fff;
	}
	.shop_pop_prev::before{
		border-left: 0.2rem solid #fff;
		transform: translate(-30%, -50%) rotate(-45deg);
	}
	.shop_pop_next::before{
		border-right: 0.2rem solid #fff;
		transform: translate(-70%, -50%) rotate(45deg);
	}
}

/* ============================================================
   FOOD & SHOP アーカイブ（archive-shop.php）
   ============================================================ */
.page-food-shop .header,
.page-news .header{ animation: none; transform: none; opacity: 1; visibility: visible; } /* サブページはヘッダー常時表示 */
.archive_shop{ background: #000; padding-top: 6.4583vw; padding-bottom: 12rem; }
.archive_shop_inner{ width: 119.7rem; margin: 0 auto; }
.archive_shop_head{ text-align: center; padding: 11rem 0 5.5rem; }
/* フォント数値はXD(FOOD ARCHIVE)実測。1px=0.1rem */
.as_ttl{ font-family: 'Anton', 'Noto Sans JP', sans-serif; font-size: 10.7rem; letter-spacing: 0.2rem; line-height: 1; color: #fff; }
.as_lead{ margin-top: 4rem; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 3.8rem; color: #F9C501; }
.as_desc{ margin-top: 2.6rem; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 1.6rem; line-height: 2.8rem; color: #fff; }
.archive_shop_list{ display: grid; grid-template-columns: repeat(5, 1fr); column-gap: 1.8rem; row-gap: 4.4rem; }
.archive_shop_item{ cursor: pointer; text-align: center; } /* 店名・ジャンルは中央揃え */
.archive_shop_item .img{ width: 100%; overflow: hidden; background: #111; } /* プラグインのクロップ画像をそのまま表示（object-fitなし） */
.archive_shop_item .img img{ width: 100%; height: auto; display: block; transition: transform .45s ease; }
.archive_shop_item:hover .img img{ transform: scale(1.06); }
.as_name{ margin-top: 1.3rem; text-align: center; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 2.0rem; line-height: 1.35; color: #fff; }
.as_genre{ margin-top: 0.5rem; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 1.2rem; line-height: 1.7; color: #fff; }
.archive_shop_empty{ grid-column: 1 / -1; text-align: center; padding: 6rem 0; color: #aaa; }
.archive_shop_pager{ display: none; justify-content: center; align-items: center; gap: 0.8rem; margin-top: 5rem; }
.archive_shop_pager button{ min-width: 4.4rem; height: 4.4rem; padding: 0 1rem; border: 0.1rem solid #555; background: #000; color: #fff; font-size: 1.6rem; border-radius: 0.6rem; cursor: pointer; }
.archive_shop_pager .pg_num.is-current{ background: #f9c501; color: #000; border-color: #f9c501; }
.archive_shop_pager button[disabled]{ opacity: .35; cursor: default; }

@media only screen and (max-width: 767px){
	.archive_shop{ padding-top: 16vw; padding-bottom: 8rem; }
	.archive_shop_inner{ width: 89.3333vw; }
	.archive_shop_head{ text-align: center; padding: 5rem 0 3.4rem; } /* SP: タイトル・リードは中央 */
	.as_ttl{ font-size: 4.5rem; }
	.as_lead{ margin-top: 1.8rem; font-size: 1.8rem; }
	.as_desc{ margin-top: 3.5rem; font-size: 1.4rem; line-height: 2.4rem; text-align: left; } /* 説明のみ左揃え */
	.archive_shop_list{ grid-template-columns: repeat(2, 1fr); column-gap: 1.6rem; row-gap: 2.8rem; }
	.as_name{ font-size: 1.5rem; }
	.as_genre{ font-size: 1.2rem; }
	.contents04_item .text03{ font-size: 1.5rem; } /* SP: トップのショップ名も一覧に合わせて */
}

/* ============ LINE UP アーカイブ ============ */
.page-lineup .header{ animation: none; transform: none; opacity: 1; visibility: visible; } /* サブページはヘッダー常時表示 */
.archive_lineup{ background: #000; padding-top: 6.4583vw; padding-bottom: 12rem; }
.archive_lineup_inner{ width: 119.7rem; margin: 0 auto; }
.archive_lineup_head{ text-align: center; padding: 11rem 0 5.5rem; } /* タイトル/リード/説明ともに中央（.as_ttl/.as_lead/.as_descはFOODと共通） */
.archive_lineup_list{ display: grid; grid-template-columns: repeat(5, 1fr); column-gap: 2rem; row-gap: 2rem; }
.archive_lineup_item{ cursor: pointer; text-align: center; }
.archive_lineup_item .img{ width: 100%; overflow: hidden; background: #111; } /* main_photo(332:502)をプラグインのクロップのまま表示（object-fitなし） */
.archive_lineup_item .img img{ width: 100%; height: auto; display: block; transition: transform .45s ease; }
.archive_lineup_item:hover .img img{ transform: scale(1.06); }
.al_name{ margin-top: 1rem; font-family: 'Noto Sans JP', sans-serif; font-weight: 900; font-size: 1.7rem; line-height: 1.4; letter-spacing: 0.02em; color: #fff; }
.archive_lineup_empty{ grid-column: 1 / -1; text-align: center; padding: 6rem 0; color: #aaa; }
.archive_lineup_pager{ display: none; justify-content: center; align-items: center; gap: 0.8rem; margin-top: 5rem; }
.archive_lineup_pager button{ min-width: 4.4rem; height: 4.4rem; padding: 0 1rem; border: 0.1rem solid #555; background: #000; color: #fff; font-size: 1.6rem; border-radius: 0.6rem; cursor: pointer; }
.archive_lineup_pager .pg_num.is-current{ background: #f9c501; color: #000; border-color: #f9c501; }
.archive_lineup_pager button[disabled]{ opacity: .35; cursor: default; }
@media screen and (max-width:767px){
	.archive_lineup{ padding-top: 16vw; padding-bottom: 8rem; }
	.archive_lineup_inner{ width: 89.3333vw; }
	.archive_lineup_head{ text-align: center; padding: 5rem 0 3.4rem; } /* SP: タイトル・リードは中央 / 説明は.as_descで左揃え */
	.archive_lineup_list{ grid-template-columns: repeat(2, 1fr); column-gap: 1.6rem; row-gap: 2.8rem; }
	.al_name{ font-size: 1.3rem; }
}

/* ============================================================
   NEWS アーカイブ / 詳細（archive-news.php / single-news.php）
   ============================================================ */
/* 本文が短くてもフッターを最下部に固定（スティッキーフッター） */
body.page-news{ display: flex; flex-direction: column; min-height: 100vh; }
body.page-news > .archive_news,
body.page-news > .single_news{ flex: 1 0 auto; }
body.page-news > footer{ flex-shrink: 0; }

.archive_news,
.single_news{ background: #000; padding-top: 6.4583vw; padding-bottom: 12rem; }
.archive_news_inner,
.single_news_inner{ width: 84rem; margin: 0 auto; }
.archive_news_head{ text-align: center; padding: 11rem 0 6rem; }
.nw_ttl{ font-family: 'Anton', 'Noto Sans JP', sans-serif; font-size: 10.7rem; letter-spacing: 0.2rem; line-height: 1; color: #fff; }

/* ---- 一覧 ---- */
.archive_news_list{ display: flex; flex-direction: column; }
.news_row{ display: flex; align-items: baseline; gap: 2.4rem; padding: 1.7rem 0; text-decoration: none; transition: opacity .3s ease; }
.news_row:hover{ opacity: .6; }
.news_date{ flex: none; color: #F9C501; font-family: 'Noto Sans JP', sans-serif; font-weight: 600; font-size: 1.5rem; letter-spacing: 0.04em; text-decoration: underline; text-underline-offset: 0.4rem; white-space: nowrap; }
.news_title{ flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; color: #fff; font-family: 'Noto Sans JP', sans-serif; font-weight: 500; font-size: 1.6rem; line-height: 1.6; text-decoration: underline; text-underline-offset: 0.4rem; }
.archive_news_empty{ text-align: center; padding: 6rem 0; color: #aaa; }

/* ---- ページネーション（paginate_links） ---- */
.archive_news_pager{ display: flex; justify-content: center; align-items: center; gap: 0.8rem; margin-top: 6rem; }
.archive_news_pager .page-numbers{ display: inline-flex; justify-content: center; align-items: center; min-width: 4.4rem; height: 4.4rem; padding: 0 1rem; border: 0.1rem solid #555; background: #000; color: #fff; font-size: 1.6rem; border-radius: 0.6rem; text-decoration: none; transition: opacity .3s ease; }
.archive_news_pager a.page-numbers:hover{ opacity: .6; }
.archive_news_pager .page-numbers.current{ background: #f9c501; color: #000; border-color: #f9c501; }
.archive_news_pager .page-numbers.dots{ border-color: transparent; background: transparent; }

/* ---- 詳細 ---- */
.single_news_body{ }
.sn_date{ color: #F9C501; font-family: 'Noto Sans JP', sans-serif; font-weight: 600; font-size: 1.5rem; letter-spacing: 0.04em; text-decoration: underline; text-underline-offset: 0.4rem; }
.sn_title{ margin-top: 1.6rem; color: #fff; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 2.6rem; line-height: 1.5; }
.sn_content{ margin-top: 4rem; color: #fff; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 1.6rem; line-height: 2; }
.sn_content p{ margin: 0 0 2rem; }
.sn_content p:last-child{ margin-bottom: 0; }
.sn_content a{ color: #F9C501; text-decoration: underline; }
.sn_content img{ max-width: 100%; height: auto; display: block; margin: 1rem auto; }
.sn_content figure{ margin: 2.4rem 0; }
.sn_content figure img{ margin: 0 auto; }
.sn_content figcaption{ margin-top: 0.8rem; font-size: 1.3rem; color: #bbb; text-align: center; }
.sn_content h2, .sn_content h3, .sn_content h4{ margin: 3rem 0 1.2rem; color: #fff; font-weight: 700; }
.sn_content h2{ font-size: 2rem; }
.sn_content h3{ font-size: 1.8rem; }
.sn_content ul, .sn_content ol{ margin: 0 0 2rem; padding-left: 1.6em; }
.sn_content li{ margin-bottom: 0.6rem; }
.sn_back{ text-align: center; margin-top: 8rem; }
.sn_back_btn{ display: inline-block; background: #fff; color: #000; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 1.5rem; padding: 1.3rem 4.4rem; border-radius: 5rem; text-decoration: none; transition: opacity .3s ease; }
.sn_back_btn:hover{ opacity: .7; }

@media screen and (max-width:767px){
	.archive_news,
	.single_news{ padding-top: 16vw; padding-bottom: 8rem; }
	.archive_news_inner,
	.single_news_inner{ width: 89.3333vw; }
	.archive_news_head{ text-align: center; padding: 5rem 0 3.6rem; }
	.nw_ttl{ font-size: 4.5rem; }

	/* 一覧：日付を上・タイトルを下に縦積み */
	.news_row{ flex-direction: column; align-items: flex-start; gap: 0.8rem; padding: 1.6rem 0; }
	.news_date{ font-size: 1.4rem; }
	.news_title{ width: 100%; font-size: 1.5rem; line-height: 1.5; }
	.archive_news_pager{ margin-top: 4rem; gap: 0.6rem; }
	.archive_news_pager .page-numbers{ min-width: 3.8rem; height: 3.8rem; font-size: 1.4rem; }

	/* 詳細 */
	.sn_title{ font-size: 2rem; margin-top: 1.2rem; }
	.sn_content{ margin-top: 3rem; font-size: 1.5rem; }
	.sn_back{ margin-top: 6rem; }
}
