/* ===== MAIZURU PLAYBACK FES. 舞鶴花火祭り ファーストビュー（front-page HERO用） ===== */
/* はんなり明朝で全文統一。未収録字・数字はShippori/Noto Serif明朝でフォールバック */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;600;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600;900&display=swap');

.mz-cs, .mz-cs * { margin:0; padding:0; box-sizing:border-box; }

.mz-cs {
  --bg-pc: url('../images/hero_pc.webp');
  --bg-sp: url('../images/hero_sp.webp');
  --gold-1: #ffe9bd;
  --gold-2: #f4b24a;
  --mz-serif: "Noto Serif JP", "Shippori Mincho", serif;

  position: absolute;   /* カミングスーンはfixed→本体はヒーロー内(.hero)に収める */
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  color: #fff;
  font-family: var(--mz-serif);
  -webkit-font-smoothing: antialiased;
  display: grid;
  place-items: center;
  background: #03050f;
}

/* 背景写真：画面に固定（fixed）→スクロールで背後に残り、JSでぼかす */
.mz-cs__bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.mz-cs__bg::before {
  content: "";
  position: absolute;
  inset: -4vw;                    /* blur時の縁欠け防止に少し広げる */
  background-image: var(--bg-pc);
  background-size: cover;
  background-position: center 38%;
  transform: scale(1.2);
  transition: transform 950ms cubic-bezier(.6,0,.2,1), filter 300ms ease;
  will-change: transform, filter;
}
.mz-cs__bg.is-in::before { transform: scale(1); }
.mz-cs.static .mz-cs__bg::before { transform: scale(1); transition: filter 300ms ease; }   /* transformの初期transitionだけ消す。filterのぼかしは0.3sアニメを維持 */
/* スクロールでぼかし＋減光：is-blurクラスの有無でfilter値が変わり、::beforeのtransitionでアニメーション */
.mz-cs__bg::before { filter: blur(0px) brightness(1); }
.mz-cs__bg.is-blur::before { filter: blur(7px); }

/* 背景のチカチカ（明滅するスパークル・常時ループ）も固定に追従 */
.mz-cs__spark { position: fixed; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.mz-spark {
  position: absolute;
  border-radius: 50%;
  background: #fff;
  opacity: 0;
  will-change: opacity, transform;
  animation: mzTwinkle 2s ease-in-out infinite;
}
@keyframes mzTwinkle {
  0%, 100% { opacity: 0; transform: scale(.4); }
  50%      { opacity: 1; transform: scale(1.15); }
}
@media (prefers-reduced-motion: reduce) {
  .mz-cs__spark { display: none; }
}

/* ---- コンテンツ ---- */
.mz-cs__inner { position: relative; z-index: 2; text-align: center; padding: 30px 24px; }

.mz-cs__maizuru {
  font-family: var(--mz-serif);
  font-weight: 600;
  letter-spacing: .22em;
  line-height: 1;
  font-size: clamp(22px, 5.4vw, 56px);
  text-indent: .22em;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.85), 0 0 30px rgba(0,0,0,.5);
}
.mz-cs__logo {
  display: block;
  width: clamp(210px, 40vw, 400px);
  height: auto;
  margin: clamp(10px, 1.8vh, 16px) auto 0;
  filter: drop-shadow(0 3px 16px rgba(0,0,0,.8));
}

/* 舞鶴花火祭り（縦書きロゴ画像 logo_v.svg） */
.mz-cs__jp {
  display: block;
  margin: clamp(16px, 3.2vh, 28px) auto clamp(18px, 3.4vh, 30px);
}
.mz-cs__jp-logo {
  display: block;
  height: clamp(240px, 50vh, 480px);
  width: auto;
  margin: 0 auto;
  filter: drop-shadow(0 2px 12px rgba(0,0,0,.85)) drop-shadow(0 0 40px rgba(0,0,0,.5));
}
/* 画像が未設置のときのテキストフォールバック（縦書き） */
.mz-cs__jp-fallback {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: var(--mz-serif);
  font-weight: 800;
  letter-spacing: .12em;
  font-size: clamp(28px, 6.6vw, 58px);
  line-height: 1;
  text-shadow: 0 2px 12px rgba(0,0,0,.85), 0 0 40px rgba(0,0,0,.5);
}
.mz-cs__jp-fallback .mz-ch { display: inline-block; }

/* 日付 */
.mz-cs__date {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-family: var(--mz-serif);
  font-weight: 600;
  letter-spacing: .04em;
  font-size: clamp(28px, 8vw, 54px);
  line-height: 1;
}
.mz-slot { display: inline-block; height: 1em; line-height: 1; overflow: hidden; font-variant-numeric: tabular-nums; text-align: center; }
.mz-slot__col { display: flex; flex-direction: column; will-change: transform; }
.mz-slot__it { display: block; height: 1em; line-height: 1; }
.mz-dot { display: block; line-height: 1; padding: 0 .04em; }
.mz-slot--wk { font-size: .42em; letter-spacing: .3em; text-indent: .3em; color: rgba(255,255,255,.9); margin-left: 0; margin-bottom: .6em; }

/* 開催に際して（ゴールドバッジ） */
.mz-cs__badge {
  display: inline-block;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  margin-top: clamp(18px, 3.6vh, 30px);
  font-family: var(--mz-serif);
  font-weight: 600;
  letter-spacing: .3em;
  text-indent: .3em;
  font-size: clamp(14px, 3.4vw, 22px);
  color: #221200;
  background: linear-gradient(105deg,
    #e0a02e 0%, #f4b24a 22%, #ffe9bd 42%, #fffaf0 50%, #ffe9bd 58%, #f4b24a 78%, #e0a02e 100%);
  background-size: 220% 100%;
  background-position: 0% 0;
  animation: mzGold 4.5s ease-in-out infinite;
  padding: .72em 1.9em;
  border-radius: 999px;
  box-shadow: 0 6px 24px rgba(0,0,0,.5);
}
@keyframes mzGold {
  0%, 100% { background-position: 0% 0; }
  50%      { background-position: 100% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mz-cs__badge { animation: none; }
}

/* 飲食出店者募集ボタン */
.mz-cs__vendor {
  display: inline-block;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  margin-top: clamp(12px, 2.4vh, 18px);
  font-family: var(--mz-serif);
  font-weight: 600;
  letter-spacing: .12em;
  text-indent: .12em;
  font-size: clamp(13px, 3.2vw, 16px);
  color: #fff;
  background: rgba(0,0,0,.55);
  border: 1.5px solid var(--gold-2);
  padding: .68em 1.5em;
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0,0,0,.45);
}
.mz-cs__vendor:active { background: rgba(0,0,0,.72); }
.mz-cs__vendor .mz-cs__vendor-badge { display: inline-block; margin-left: .5em; font-size: .82em; font-weight: 500; color: var(--gold-1); letter-spacing: .04em; }

/* 2ボタンの横幅を揃える */
.mz-cs__badge, .mz-cs__vendor { width: min(300px, 82vw); box-sizing: border-box; text-align: center; }

/* ===== モーダル共通（開催に際して / 飲食募集） ===== */
.mz-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;   /* ヘッダーより前面 */
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0,0,0,.72);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
.mz-modal.is-open { opacity: 1; visibility: visible; }
.mz-modal__panel {
  position: relative;
  width: min(640px, 92vw);
  max-height: 82vh;
  overflow: hidden;
  background: rgba(12,14,22,.97);
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.6);
  transform: translateY(24px);
  transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
.mz-modal.is-open .mz-modal__panel { transform: translateY(0); }
.mz-modal__scroll { max-height: 82vh; overflow-y: scroll; padding: clamp(30px, 5vw, 48px); box-sizing: border-box; scrollbar-width: none; }
.mz-modal__scroll::-webkit-scrollbar { width: 0; height: 0; display: none; }
.mz-modal__bar { position: absolute; top: 54px; right: 8px; bottom: 16px; width: 6px; border-radius: 999px; background: rgba(255,255,255,.16); z-index: 3; }
.mz-modal__thumb { position: absolute; left: 0; top: 0; width: 6px; border-radius: 999px; background: rgba(244,178,74,.92); }
.mz-modal__close {
  position: absolute;
  top: 8px; right: 8px;
  z-index: 10;
  width: 46px; height: 46px;
  display: grid;
  place-items: center;
  background: none;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: rgba(255,255,255,.72);
  font-size: 22px;
  line-height: 1;
}
.mz-modal__title { font-family: var(--mz-serif); font-weight: 800; color: var(--gold-2); font-size: clamp(20px, 5vw, 30px); letter-spacing: .1em; text-indent: .1em; text-align: center; margin-bottom: clamp(18px, 3vh, 28px); }
.mz-modal__title-en { display: block; font-family: var(--mz-serif); font-weight: 400; font-size: clamp(11px, 2.6vw, 14px); letter-spacing: .2em; text-indent: .2em; color: rgba(255,255,255,.72); margin-bottom: .7em; }
.mz-modal__body { font-family: var(--mz-serif); font-weight: 400; color: rgba(255,255,255,.9); font-size: clamp(13.5px, 3.2vw, 15px); line-height: 1.9; letter-spacing: .02em; text-align: left; }
.mz-modal__body p { margin-bottom: 1.3em; }
.mz-modal__body p:last-child { margin-bottom: 0; }
.mz-modal__body h3 { font-family: var(--mz-serif); font-weight: 800; color: var(--gold-2); font-size: clamp(15px, 4vw, 18px); letter-spacing: .04em; margin: 1.7em 0 .5em; padding-bottom: .35em; border-bottom: 1px solid rgba(255,255,255,.2); }
.mz-modal__body h3:first-child { margin-top: 0; }
.mz-modal__body ul { list-style: disc; margin: 0 0 1.2em; padding-left: 1.4em; }
.mz-modal__body li { list-style: disc; margin-bottom: .55em; }
.mz-modal__body li::marker { color: var(--gold-2); }
.mz-modal__body li ul { list-style: circle; margin: .5em 0 .2em; }
.mz-modal__body li li { list-style: circle; }
.mz-modal__body strong { color: #fff; font-weight: 700; }
.mz-modal__body .mz-note { font-size: .88em; color: rgba(255,255,255,.7); }
.mz-modal__body .mz-office { margin-top: 1.7em; font-size: .9em; color: rgba(255,255,255,.75); line-height: 1.9; }
.mz-modal__body a { color: var(--gold-2); text-decoration: underline; text-underline-offset: 3px; word-break: break-all; }
.mz-modal__body .mz-dl,
.mz-modal__body .mz-form { display: block; text-align: center; text-decoration: none; margin: 1.3em auto; padding: .95em 1.2em; border-radius: 999px; font-weight: 700; letter-spacing: .04em; word-break: keep-all; }
.mz-modal__body .mz-dl { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.5); color: #fff; }
.mz-modal__body .mz-form { background: linear-gradient(105deg,#e0a02e,#ffe9bd 50%,#e0a02e); color: #221200; box-shadow: 0 6px 20px rgba(0,0,0,.4); }

/* スマホは縦写真に切替＋少し拡大 */
@media (max-width: 767px) {
  .mz-cs__bg::before { background-image: var(--bg-sp); background-position: center 42%; }
  .mz-cs__maizuru { font-size: clamp(26px, 7vw, 60px); }
  .mz-cs__logo    { width: clamp(235px, 62vw, 400px); }
  .mz-cs__jp-logo { height: clamp(280px, 54vh, 460px); }
  .mz-cs__jp-fallback { font-size: clamp(34px, 9vw, 60px); }
  .mz-cs__date    { font-size: clamp(31px, 9vw, 54px); }
  .mz-cs__badge   { font-size: clamp(15px, 4.2vw, 22px); }
}

/* イントロ中はFV全体をヘッダーより前面に（黒背景がヘッダーを覆う）。背景出現と同時にJSでis-coverを外し通常レイヤー(z1)へ→ヘッダーが背景と同じタイミングで出現 */
/* padding-top:56px＝fixed(画面全体)時とabsolute(.hero=ヘッダー下)時でロゴの中央位置を一致させ、is-cover除去時のカクつきを防ぐ */
.mz-cs.is-cover { position: fixed; z-index: 2000; }

/* ---- イントロ用の初期非表示（is-animのときだけ隠す） ---- */
.mz-cs.is-anim .mz-cs__bg,
.mz-cs.is-anim .mz-cs__spark,
.mz-cs.is-anim .mz-cs__maizuru,
.mz-cs.is-anim .mz-cs__logo,
.mz-cs.is-anim .mz-cs__jp,
.mz-cs.is-anim .mz-cs__jp-fallback .mz-ch,
.mz-cs.is-anim .mz-cs__date,
.mz-cs.is-anim .mz-cs__badge,
.mz-cs.is-anim .mz-cs__vendor { opacity: 0; }

/* ============================================================
   front-page 下層セクション
   （開催概要 / チケット / アクセス / 出店 / NEWS / お問い合わせ）
   ダーク＋はんなり明朝＋ゴールドアクセント
   ============================================================ */
:root { --mz-g1: #ffe9bd; --mz-g2: #f4b24a; --gold-1: #ffe9bd; --gold-2: #f4b24a; }

.mz-sec {
  position: relative;
  z-index: 2;
  color: #ffffff;
  padding: clamp(40px, 7vw, 80px) 20px;
  font-family: "Noto Serif JP", "Shippori Mincho", serif;
}
/* 半透明黒パネル＋白枠＋角丸：背後の（ぼけた）花火を透かして見せる */
.mz-sec__inner {
  max-width: 920px;
  margin: 0 auto;
  background: rgba(0,0,0,.7);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 16px;
  padding: clamp(32px, 6vw, 60px) clamp(20px, 5vw, 52px);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

/* 見出し（日本語のみ） */
.mz-sec__head {
  text-align: center;
  margin-bottom: clamp(28px, 5vw, 46px);
  font-size: clamp(22px, 5.6vw, 34px);
  letter-spacing: .16em; text-indent: .16em;
  color: #fff; line-height: 1.35; font-weight: 800;
}
.mz-sec__head::after {
  content: ""; display: block;
  width: clamp(34px, 8vw, 46px); height: clamp(34px, 8vw, 46px);
  margin: clamp(10px, 2.2vw, 16px) auto 0;
  background: url('../svg/hanabi.svg') no-repeat center / contain;
}

/* ===== 見出しのスクロール登場アニメ ===== */
/* 見出し本体：フェードインアップ（JSが .mz-anim を付与→画面内で .is-inview） */
.mz-sec__head.mz-anim { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.mz-sec__head.mz-anim.is-inview { opacity: 1; transform: none; }
/* 見出し下の花火アイコン：タイトルの後にバンっと弾ける */
.mz-sec__head.mz-anim::after { transform: scale(0); opacity: 0; }
.mz-sec__head.mz-anim.is-inview::after { animation: mz-hanabi-burst .85s .34s cubic-bezier(.2,.8,.3,1) both; }
@keyframes mz-hanabi-burst {
  0%   { transform: scale(0); opacity: 0; filter: drop-shadow(0 0 0 rgba(255,220,140,0)); }
  45%  { transform: scale(1.45); opacity: 1; filter: drop-shadow(0 0 16px rgba(255,224,150,.95)); }
  68%  { transform: scale(.88); filter: drop-shadow(0 0 8px rgba(244,178,74,.6)); }
  100% { transform: scale(1); opacity: 1; filter: drop-shadow(0 0 4px rgba(244,178,74,.3)); }
}

/* ボタン共通 */
.mz-sec__btns { margin: clamp(30px, 5vw, 44px) auto 0; display: flex; flex-direction: column; align-items: stretch; gap: 14px; width: 100%; max-width: 320px; }
.mz-btn {
  display: inline-block; cursor: pointer;
  font-family: "Noto Serif JP", "Shippori Mincho", serif;
  font-size: clamp(14px, 3.6vw, 16px);
  letter-spacing: .12em; text-indent: .12em;
  padding: .95em 2.2em; border-radius: 999px; text-align: center;
  -webkit-tap-highlight-color: transparent;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.mz-btn--gold {
  color: #221200; border: none;
  background: linear-gradient(105deg,#e0a02e 0%,#f4b24a 25%,#ffe9bd 50%,#f4b24a 75%,#e0a02e 100%);
  background-size: 200% 100%;
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
.mz-btn--gold:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.55); opacity: 1; }
.mz-btn--ghost { color: #ffffff; background: rgba(255,255,255,.04); border: 1px solid var(--mz-g2); }
.mz-btn--ghost:hover { background: rgba(244,178,74,.12); opacity: 1; }
.mz-btn--silver {
  color: #1a1d22; border: none;
  background: linear-gradient(105deg,#8b929c 0%,#c3c9d1 25%,#f2f5f9 50%,#c3c9d1 75%,#8b929c 100%);
  background-size: 200% 100%;
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
.mz-btn--silver:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.55); opacity: 1; }

/* ABOUT */
.mz-about__lead { text-align: center; line-height: 2.1; font-size: clamp(15px, 3.8vw, 18px); color: rgba(255,255,255,.9); margin-bottom: clamp(34px, 6vw, 52px); }
.mz-info { max-width: 680px; margin: 0 auto; }
.mz-info__row { display: flex; gap: 20px; padding: 16px 4px; border-bottom: 1px solid rgba(255,255,255,.1); }
.mz-info__row dt { flex: 0 0 92px; color: var(--mz-g2); font-size: clamp(13px, 3.4vw, 15px); letter-spacing: .08em; }
.mz-info__row dd { flex: 1; font-size: clamp(14px, 3.6vw, 16px); line-height: 1.7; }

/* TICKET */
.mz-onsale { text-align: center; margin-bottom: clamp(30px, 5vw, 44px); display: flex; flex-direction: column; gap: 6px; }
.mz-onsale__label { align-self: center; font-size: 12px; letter-spacing: .2em; color: #221200; background: var(--mz-g2); padding: .3em 1.2em; border-radius: 999px; }
.mz-onsale__date { font-size: clamp(22px, 5.6vw, 34px); color: #fff; letter-spacing: .04em; }
.mz-onsale__guide { font-size: clamp(12px, 3vw, 13px); color: rgba(255,255,255,.65); }
.mz-tickets { display: grid; gap: 14px; }
.mz-tk { border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: clamp(18px, 4vw, 24px); background: rgba(255,255,255,.02); }
.mz-tk__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: .5em; }
.mz-tk__rank { font-size: clamp(13px, 3.4vw, 15px); letter-spacing: .1em; color: #221200; background: linear-gradient(105deg,#e0a02e,#ffe9bd 50%,#e0a02e); padding: .2em .9em; border-radius: 999px; }
.mz-tk__name { font-size: clamp(16px, 4.2vw, 20px); color: #fff; }
.mz-tk__price { font-size: clamp(22px, 5.6vw, 30px); color: var(--mz-g1); letter-spacing: .02em; margin: .1em 0 .5em; }
.mz-tk__unit { font-size: .46em; color: rgba(255,255,255,.75); letter-spacing: .04em; white-space: nowrap; }
.mz-tk__note { font-size: clamp(13px, 3.4vw, 14px); line-height: 1.8; color: rgba(255,255,255,.8); }
.mz-ticket__cap { margin-top: clamp(20px, 4vw, 28px); font-size: clamp(12px, 3vw, 13px); color: rgba(255,255,255,.6); line-height: 1.8; text-align: center; }

/* チケット：会場エリアマップ */
.mz-areamap { position: relative; margin: 0 0 clamp(22px, 4vw, 34px); }
.mz-areamap img { display: block; width: 100%; height: auto; cursor: zoom-in; }
.mz-areamap__hint { position: absolute; right: 10px; bottom: 10px; font-size: 11px; letter-spacing: .08em; color: #fff; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.3); padding: .3em .8em; border-radius: 999px; pointer-events: none; }

/* 画像クリック拡大 ライトボックス */
.mz-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.94); cursor: zoom-out; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; will-change: opacity; }
.mz-lightbox.is-open { opacity: 1; visibility: visible; }
.mz-lightbox img { max-width: 96vw; max-height: 92vh; width: auto; height: auto; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.6); transform: scale(.9) translateZ(0); transition: transform .34s cubic-bezier(.2,.7,.2,1); will-change: transform; backface-visibility: hidden; }
.mz-lightbox.is-open img { transform: scale(1) translateZ(0); }
.mz-lightbox__close { position: fixed; top: 16px; right: 16px; width: 46px; height: 46px; display: grid; place-items: center; background: rgba(0,0,0,.4); border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; }

/* ACCESS */
.mz-access__place { text-align: center; font-size: clamp(17px, 4.4vw, 22px); color: #fff; line-height: 1.6; margin-bottom: clamp(24px, 4vw, 32px); }
.mz-access__place span { display: block; font-size: clamp(12px, 3.2vw, 14px); color: rgba(255,255,255,.6); margin-top: .5em; }
.mz-map { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); }
.mz-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.2) contrast(1.05); }
.mz-access__note { margin-top: clamp(28px, 5vw, 40px); }
.mz-access__note h3 { font-size: clamp(15px, 4vw, 18px); color: var(--mz-g2); letter-spacing: .06em; margin-bottom: .8em; padding-bottom: .4em; border-bottom: 1px solid rgba(255,255,255,.16); }
.mz-access__note ul { list-style: disc; padding-left: 1.4em; }
.mz-access__note li { list-style: disc; font-size: clamp(13px, 3.4vw, 14px); line-height: 1.9; color: rgba(255,255,255,.8); margin-bottom: .5em; }
.mz-access__note li::marker { color: var(--mz-g2); }

/* FOOD */
.mz-food__lead { text-align: center; line-height: 2.1; font-size: clamp(15px, 3.8vw, 18px); color: rgba(255,255,255,.9); }

/* NEWS */
.mz-news__list { max-width: 720px; margin: 0 auto; }
.mz-news__item { display: flex; align-items: center; gap: 16px; padding: 18px 6px; border-bottom: 1px solid rgba(255,255,255,.1); flex-wrap: wrap; }
.mz-news__item:hover { opacity: 1; background: rgba(255,255,255,.02); }
.mz-news__date { color: var(--mz-g2); font-size: 13px; letter-spacing: .04em; }
.mz-news__tag { font-size: 11px; letter-spacing: .1em; color: #ffffff; border: 1px solid rgba(255,255,255,.3); padding: .2em .8em; border-radius: 999px; }
.mz-news__title { flex: 1 1 100%; font-size: clamp(14px, 3.6vw, 16px); color: #ffffff; line-height: 1.6; }
.mz-news__empty { text-align: center; color: rgba(255,255,255,.5); }

/* CONTACT */
.mz-contact__lead { text-align: center; line-height: 2; font-size: clamp(15px, 3.8vw, 17px); color: rgba(255,255,255,.9); }

/* INFO 新着情報：セクション背景は黒、ボックスは白、4件分でスクロール */
.mz-info-sec { background: #000; }
.mz-info-sec .mz-sec__inner--light {
  background: #fff;
  border: 1px solid rgba(0,0,0,.1);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.mz-sec__head--dark { color: #1a1a1a !important; }
.mz-infolist { max-height: 440px; overflow-y: auto; text-align: left; padding-right: 10px; }
.mz-infoitem { padding: 18px 2px; border-bottom: 1px solid rgba(0,0,0,.12); }
.mz-infoitem:first-child { border-top: 1px solid rgba(0,0,0,.12); }
.mz-infoitem__date { display: block; font-size: 13px; color: #999; margin-bottom: .5em; letter-spacing: .04em; font-family: var(--mz-serif); }
.mz-infoitem__body,
.mz-infoitem__body p,
.mz-infoitem__body li { color: #222 !important; font-family: var(--mz-sans); font-size: clamp(14px, 3.6vw, 15px); line-height: 1.9; }
.mz-infoitem__body p { margin-bottom: .6em; }
.mz-infoitem__body p:last-child { margin-bottom: 0; }
.mz-infoitem__body a { color: #1560b0 !important; text-decoration: underline; text-underline-offset: 2px; word-break: break-all; }
.mz-infoitem__body strong { font-weight: 700; color: #000 !important; }
.mz-infoitem__empty { text-align: center; color: #999 !important; }
.mz-infolist::-webkit-scrollbar { width: 6px; }
.mz-infolist::-webkit-scrollbar-thumb { background: rgba(0,0,0,.28); border-radius: 999px; }
.mz-infolist::-webkit-scrollbar-track { background: rgba(0,0,0,.06); }

@media (min-width: 640px) {
  .mz-tickets { grid-template-columns: 1fr 1fr; }
  .mz-tk--park { grid-column: 1 / -1; }
  .mz-news__title { flex: 1; }
}

/* GREETING（開催に際して）：PLAYBACK FES.の花火写真を背景に */
.mz-greeting { background: #000 url('../images/pbs2025_hanabi.jpg') center / cover no-repeat; }
.mz-greeting__body { max-width: 720px; margin: 0 auto; }
@media (max-width: 767px) {
  .mz-greeting { background-position: center right -580px; }
  .mz-greeting__body p, .mz-greeting__coda { text-align: left !important; }
}
.mz-greeting__body p {
  font-size: clamp(15px, 3.8vw, 17px);
  line-height: 2.2;
  color: rgba(255,255,255,.88);
  margin-bottom: 1.7em;
  text-align: center;
}
.mz-greeting__body p:last-child { margin-bottom: 0; }
.mz-greeting__coda {
  color: var(--mz-g1) !important;
  font-size: clamp(18px, 4.6vw, 22px) !important;
  letter-spacing: .12em;
  line-height: 1.9 !important;
  margin: 2em 0 !important;
}
