/*!*******************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./src/styles/tng-festival.scss ***!
  \*******************************************************************************************************************************************************************************/
@charset "UTF-8";
/* TNG Festival — rem / px 切り替え
 * $tng-use-rem: true  → rem設計（fluid root）
 * $tng-use-rem: false → px設計（固定 16px root）
 * npm start / build / build:tng いずれもこの変数に従う（強制しない）
 *
 * rem設計時（html font-size は vw 連動・上限 16px）:
 *   desktop: 1120+40+40 = 1200px のとき 1rem = 16px（最大）
 *   mobile : 390px のとき 1rem = 16px（最大）
 */
/* root */
html {
  font-size: min(16px, calc(100vw * 16 / 1200));
}

/* サイト共通 body{font-size:16px/14px} を打ち消し、html の vw 連動に追従 */
html body {
  font-size: 1rem;
}

@media screen and (max-width: 767px) {
  html {
    font-size: min(16px, calc(100vw * 16 / 390));
  }
  html body {
    font-size: 1rem;
  }
}
html {
  scroll-padding: 7.25rem;
  /* オーバーレイ型スクロールバー用のガターを確保し、fixed がバーを覆わないようにする */
  scrollbar-gutter: stable;
}

body {
  scroll-padding: 7.25rem;
}

@media screen and (max-width: 767px) {
  html,
  body {
    scroll-padding: 1rem;
  }
  html {
    scrollbar-gutter: auto;
  }
}
.main {
  padding: 0 !important;
  /* clip は scroll container を作らない（hidden だと overflow-y が auto 化し fixed とバーが重なる） */
  overflow-x: clip;
}

input#tng-header-menu-button-ctl {
  position: fixed;
  opacity: 0;
  pointer-events: none;
}

.tng-page {
  flex: 1;
  color: #15294d;
  font-family: "Gen Interface JP", sans-serif;
  position: relative;
  /* デコ・バッジ等の横はみ出しで横スクロールが出ないようにする */
  overflow-x: clip;
}

/* ページ全体の背景模様（fixed パララックス / JSなし）— desktop のみ */
.tng-bg-pattern {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.1;
  /* CMS制約: 外部パスの background-image は不可。短い SVG のみ data-URI(base64) で埋め込み
     Figma PC 2028:8066 / 8065 / 8068（回転原点は各 rect の左上） */
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDQwIiBoZWlnaHQ9IjE0MDQiIHZpZXdCb3g9IjAgMCAxNDQwIDE0MDQiIGZpbGw9Im5vbmUiPjxnIGZpbGw9IiM1NEJFQkMiPjxyZWN0IHg9IjM1Ny4yOTYiIHk9IjI4IiB3aWR0aD0iMTAxLjQ5MSIgaGVpZ2h0PSIxMDEuNTMyIiB0cmFuc2Zvcm09InJvdGF0ZSgyNi42NTYgMzU3LjI5NiAyOCkiLz48cmVjdCB4PSItNzIiIHk9IjMxNS41ODkiIHdpZHRoPSIxMjMuNTkiIGhlaWdodD0iMTIzLjY2MiIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1LjA2OCAtNzIgMzE1LjU4OSkiLz48cmVjdCB4PSIxNTAzLjc3OCIgeT0iNDM0IiB3aWR0aD0iMjQ5LjA2OCIgaGVpZ2h0PSIyNDkuMDMiIHRyYW5zZm9ybT0icm90YXRlKDUxLjQ0OSAxNTAzLjc3OCA0MzQpIi8+PC9nPjwvc3ZnPg==);
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

@media screen and (max-width: 767px) {
  .tng-bg-pattern {
    /* Figma SP TOP 2035:11057 / section_point 背景obj（390×840 周期・4 rect） */
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOTAiIGhlaWdodD0iODQwIiB2aWV3Qm94PSIwIDAgMzkwIDg0MCIgZmlsbD0ibm9uZSI+PGcgZmlsbD0iIzU0QkVCQyI+PHJlY3QgeD0iLTE5IiB5PSIxMTguMDA0IiB3aWR0aD0iNTAuODUyIiBoZWlnaHQ9IjUwLjc1MSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1LjAyNSAtMTkgMTE4LjAwNCkiLz48cmVjdCB4PSIxNTcuNjcyIiB5PSIwIiB3aWR0aD0iNDEuNzQzIiBoZWlnaHQ9IjQxLjY4NiIgdHJhbnNmb3JtPSJyb3RhdGUoMjYuNTg4IDE1Ny42NzIgMCkiLz48cmVjdCB4PSIzNjguNDQyIiB5PSIzNjYuNDk4IiB3aWR0aD0iODIuNjkyIiBoZWlnaHQ9IjgyLjY5MyIgdHJhbnNmb3JtPSJyb3RhdGUoNTEuNDI4IDM2OC40NDIgMzY2LjQ5OCkiLz48cmVjdCB4PSIyNDIuMzI1IiB5PSI0OTEuNTkzIiB3aWR0aD0iMjMuMDI3IiBoZWlnaHQ9IjIzLjAyNiIgdHJhbnNmb3JtPSJyb3RhdGUoMjYuNjM5IDI0Mi4zMjUgNDkxLjU5MykiLz48L2c+PC9zdmc+);
  }
}
.tng-container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: calc(70rem + 2.5rem + 2.5rem);
  margin: 0 auto;
  padding: 0 2.5rem;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-container {
    padding: 0 1.25rem;
  }
}
.tng-section-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: 6.25rem;
  overflow-x: clip;
}

@media screen and (max-width: 767px) {
  .tng-section-wrapper {
    padding-top: 0;
  }
}
.tng-section {
  width: 100%;
  position: relative;
}

/* ---------- Mid wrap (shops 〜 rules) ---------- */
.tng-mid-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0;
  background: transparent;
  overflow: hidden;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-mid-wrap {
    padding: 0;
  }
}
.tng-mid-wrap > .tng-section {
  position: relative;
  z-index: 1;
  overflow: visible;
}

.tng-mid-wrap .tng-container,
.tng-mid-wrap .tng-map-panels {
  position: relative;
  z-index: 1;
}

/* points: section_point — 透過でページ固定模様を見せる */
.tng-points {
  position: relative;
  /* ABOUT(news z=3) より後ろ。global section{z-index:10} も打ち消し */
  z-index: 1;
  background: transparent;
  overflow: hidden;
  /* Figma section_point: cards y=60 / pickup bottom→pb≈120 */
  padding: 3.75rem 0 7.5rem;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-points {
    /* Figma SP: Frame y=30 / pickup→pb=60 */
    padding: 1.875rem 0 3.75rem;
  }
}
.tng-em {
  font-weight: 700;
}

.tng-show-pc {
  display: inline;
}

.tng-show-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .tng-show-pc {
    display: none;
  }
  .tng-show-sp {
    display: inline;
  }
}
img.tng-show-pc {
  display: block;
}

img.tng-show-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  img.tng-show-pc {
    display: none;
  }
  img.tng-show-sp {
    display: block;
  }
}
br.tng-show-pc {
  display: block;
}

br.tng-show-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  br.tng-show-pc {
    display: none;
  }
  br.tng-show-sp {
    display: block;
  }
}
/* ---------- Header ---------- */
.tng-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: auto;
  z-index: 100;
  height: 6.25rem;
  background: #ffffff;
  /* Figma: stroke inside frame — keep layout height = white area */
  box-shadow: inset 0 -0.375rem 0 #54bebc;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-header {
    position: static;
    height: 5rem;
    box-shadow: inset 0 -0.25rem 0 #54bebc;
  }
}
.tng-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  width: 100%;
  padding: 0 3rem;
  box-sizing: border-box;
  position: relative;
}

@media screen and (max-width: 767px) {
  .tng-header-inner {
    padding: 0 1.25rem;
  }
}
.tng-header-left {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  z-index: 21;
  position: relative;
}

@media screen and (max-width: 767px) {
  .tng-header-left {
    width: 100%;
    justify-content: space-between;
  }
}
.tng-header-logo {
  display: block;
  line-height: 0;
  text-decoration: none;
}

.tng-header-logo-image {
  display: block;
  width: auto;
  height: 3.25rem;
}

@media screen and (max-width: 767px) {
  .tng-header-logo-image {
    height: 2.5rem;
  }
}
.tng-header-right {
  width: fit-content;
  flex-shrink: 0;
}

@media screen and (max-width: 767px) {
  .tng-header-right {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    margin: 0;
    background: #ffffff;
    padding: 7.375rem 1.25rem 3.75rem;
    box-sizing: border-box;
    transition: transform 0.3s ease-in-out, visibility 0.3s;
    transform: translateY(-100%);
    visibility: hidden;
    z-index: 20;
    overflow-y: auto;
    box-shadow: inset 0 -0.25rem 0 #54bebc;
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }
}
.tng-header-nav-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media screen and (max-width: 767px) {
  .tng-header-nav-list {
    flex-direction: column;
    gap: 2rem;
    align-items: center;
    justify-content: center;
  }
}
.tng-header-nav-item {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tng-header-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #15294d;
  text-decoration: none;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  padding: 0 0 0.5rem;
  border-bottom: 0.125rem dashed #54bebc;
  transition: color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-header-nav-link {
    font-size: 1rem;
    border-bottom-color: #7fcecd;
  }
}
.tng-header-nav-link:hover {
  color: #54bebc;
}

.tng-header-menu-button {
  display: none;
  cursor: pointer;
  line-height: 0;
}

@media screen and (max-width: 767px) {
  .tng-header-menu-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    z-index: 22;
  }
}
.tng-header-menu-button .is-close {
  display: block;
}

.tng-header-menu-button .is-open {
  display: none;
}

.tng-header-menu-button img {
  display: block;
  width: 2rem;
  height: 2rem;
}

@media screen and (max-width: 767px) {
  #tng-header-menu-button-ctl:checked + .tng-page .tng-header {
    position: fixed;
    width: 100%;
    background: transparent;
    box-shadow: none;
  }
  #tng-header-menu-button-ctl:checked + .tng-page .tng-header + .tng-section-wrapper {
    margin-top: 5rem;
  }
  #tng-header-menu-button-ctl:checked + .tng-page .tng-header-right {
    transform: translateY(0);
    visibility: visible;
  }
}
#tng-header-menu-button-ctl:checked + .tng-page .tng-header-menu-button .is-close {
  display: none;
}

#tng-header-menu-button-ctl:checked + .tng-page .tng-header-menu-button .is-open {
  display: block;
}

/* ---------- MV ---------- */
/*
  z-index 設計（MV〜POINT）:

  [MV 内の同一スタッキング文脈 — container-type により section が SC を形成]
    0  bg
    1  wave
    2  開催日程（.tng-mv-day / .tng-schedule）— wave より手前
    5  drinks / pudding / parfait — 開催日程より手前

  [MV 外 — global section z-index:10 を打ち消して比較]
    1  POINT
    3  ABOUT (.tng-news) — POINT より手前ではみ出しフードを見せる
*/
/* Figma PC 1440×922 / SP 390×250(bg) within 390×268 */
.tng-mv {
  position: relative;
  margin-top: 0;
  /* Figma: section_MV bottom(1252) → main_contents(1316) = 64px。これがないとプリンと寿司が重なる */
  margin-bottom: 4.4444444444%;
  padding: 0;
  overflow: visible;
  /* 子孫の z は canvas 内で完結。外の ABOUT とは DOM 順で分離 */
  z-index: auto;
  flex-shrink: 0;
  background: #ffffff;
}

@media screen and (max-width: 767px) {
  .tng-mv {
    padding: 0;
    /* SP: MV bottom(80+363=443) → main(473) = 30px */
    margin-bottom: 7.6923076923%;
  }
}
/* 配置基準を Figma 1440 にクランプ。広幅は中央固定・狭幅は比例縮小 */
.tng-mv-canvas {
  position: relative;
  width: 100%;
  max-width: 1440px; /* desktop は固定。rem 設計時もスケールさせない */
  margin-inline: auto;
  container-type: inline-size;
  container-name: tng-mv;
  overflow: visible;
  z-index: auto;
}

@media screen and (max-width: 767px) {
  .tng-mv-canvas {
    max-width: 100%;
  }
}
.tng-mv-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1440/922;
  overflow: visible;
  z-index: auto;
}

@media screen and (max-width: 767px) {
  .tng-mv-stage {
    aspect-ratio: 390/250;
  }
}
.tng-mv-bg {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
  width: 100vw;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center bottom; /* 広幅 cover 時は下端を軸にクロップ */
  z-index: 0;
  pointer-events: none;
}

.tng-mv-bubble {
  position: absolute;
  left: 6.9444444444%;
  top: 8.6767895879%;
  width: 18.0555555556%;
  height: auto;
  z-index: 2;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-mv-bubble {
    left: 2.5641025641%;
    top: 4%;
    width: 20.5128205128%;
  }
}
.tng-mv-sun {
  position: absolute;
  left: 73.6111111111%;
  top: 4.3383947939%;
  width: 18.0555555556%;
  height: auto;
  z-index: 2;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-mv-sun {
    left: 73.0769230769%;
    top: 2%;
    width: 25.641025641%;
  }
}
/* Figma Group 664 Rectangle: ロゴ背後の白い雲靄（logo と同座標・同寸） */
.tng-mv-logo-mist {
  position: absolute;
  left: 22.6388888889%;
  top: 0.1084598698%;
  width: 54.7222222222%;
  height: auto;
  z-index: 1;
  display: block;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-mv-logo-mist {
    left: 19.2307692308%;
    top: -2%;
    width: 61.5384615385%;
  }
}
.tng-mv-logo {
  position: absolute;
  left: 22.6388888889%;
  top: 0.1084598698%;
  width: 54.7222222222%;
  height: auto;
  z-index: 2;
  display: block;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-mv-logo {
    left: 19.2307692308%;
    top: -2%;
    width: 61.5384615385%;
  }
}
.tng-mv-drinks {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  top: 46.0416666667cqw;
  width: 41.6666666667cqw;
  max-width: 37.5rem; /* Figma PC 飲み物イラスト */
  height: auto;
  /* 開催日程(2)・wave(1) より手前 */
  z-index: 5;
  display: block;
  pointer-events: none;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  .tng-mv-drinks {
    left: 0;
    right: 0;
    margin: auto;
    top: 50.7692307692cqw;
    width: 40.5128205128cqw;
    max-width: 9.875rem; /* Figma SP 飲み物イラスト */
    height: auto;
  }
}
.tng-mv-wave {
  position: absolute;
  left: 0;
  top: 89.8047722343%;
  width: 100%;
  z-index: 1;
  line-height: 0;
  pointer-events: none;
}
.tng-mv-wave img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1440/320;
}

@media screen and (max-width: 767px) {
  .tng-mv-wave {
    top: 90.4%;
  }
  .tng-mv-wave img {
    aspect-ratio: 390/87;
  }
}
.tng-mv-food {
  position: absolute;
  /* 開催日程の白帯より手前（drinks と同じ層） */
  z-index: 5;
  pointer-events: none;
  overflow: visible;
}

.tng-mv-food img {
  display: block;
  max-width: none !important; /* global img{max-width:100%} を打ち消し */
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}

/* Figma PC: プリン 260×298 @ (0,805) / パフェ 280×321 @ (1160,779)
   SP: プリン 100×115 @ (5,200) / パフェ 80×92 @ (310,220) ※topはMV起点
   回転はアセット側に焼済 */
.tng-mv-food--pudding {
  left: -2.75rem;
  right: auto;
  margin: auto;
  top: 55.9027777778cqw;
  width: 18.0555555556cqw;
  max-width: 16.25rem; /* Figma PC obj_プリン */
  height: auto;
}

.tng-mv-food--parfait {
  left: auto;
  right: 0; /* Figma: 1440 − 1160 − 280 */
  margin: auto;
  top: 53.597222cqw;
  width: 19.4444444444cqw;
  max-width: 17.5rem; /* Figma PC obj_パフェ */
  height: auto;
}

@media screen and (max-width: 767px) {
  .tng-mv-food--pudding {
    left: 0.282051cqw;
    right: auto;
    margin: auto;
    top: 56.282051cqw;
    width: 19.641026cqw;
    max-width: 6.25rem; /* Figma SP obj_プリン */
    height: auto;
  }
  .tng-mv-food--parfait {
    left: auto;
    right: 1cqw;
    margin: auto;
    top: 54.410256cqw;
    width: 20.5128205128cqw;
    max-width: 5rem; /* Figma SP obj_パフェ */
    height: auto;
  }
}
/* 768〜1530: schedule-day との重なり回避（SP≤767 は除外） */
@media screen and (min-width: 768px) and (max-width: 1530px) {
  .tng-mv-food--pudding {
    top: 49.902778cqw;
  }
  .tng-mv-food--parfait {
    top: 47.902778cqw;
  }
}
/* ---------- Intro / schedule / news ---------- */
/* Figma: section_day は MV 内。stage 下端(922)→day(867) へ引き上げ
   canvas 内でも白帯はビューポート全幅にする */
.tng-mv-day {
  position: relative;
  /* z-index は付けない（SC を作ると wave より手前の白帯になりカーブが消える） */
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -3.8194444444%;
  background: #ffffff;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-mv-day {
    /* SP: stage 250 / Frame 690 y=243 */
    margin-top: -1.7948717949%;
  }
}
/* Figma PC section_day 1437×285 / SP Frame 690 390×120 */
.tng-schedule {
  position: relative;
  /* wave(1) より手前・foods/drinks(5) より後ろ */
  z-index: 2;
  text-align: center;
  /* Figma section_day: head y=40 / content bottom flush */
  padding: 2.5rem 0 3rem;
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .tng-schedule {
    /* Figma SP Frame 690: head y=23 / content bottom flush */
    padding: 1.4375rem 0 1.5rem;
  }
}
.tng-schedule-head {
  position: relative;
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  margin: 0 auto 1.5rem;
}

@media screen and (max-width: 767px) {
  .tng-schedule-head {
    margin-bottom: 0.75rem;
    /* Figma SP: 見出し Group x=137（中央寄せより8px左）→ badge x=258 */
    transform: translateX(-2.0512820513cqw);
  }
}
.tng-schedule-heading {
  margin: 0;
  line-height: 0;
}

.tng-schedule-title {
  display: block;
  width: 15.75rem;
  height: auto;
}

@media screen and (max-width: 767px) {
  .tng-schedule-title {
    width: 25.641025641cqw;
  }
}
.tng-schedule-badge {
  position: absolute;
  top: -2.5rem;
  /* Figma: title Group右端 829 / badge左 883 → gap 54 */
  left: calc(100% + 3.375rem);
  width: 7.6875rem;
  height: auto;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-schedule-badge {
    top: -5.8974358974cqw;
    /* Figma SP: title右 237 / badge左 258 → gap 21 */
    left: calc(100% + 5.3846153846cqw);
    width: 15.3846153846cqw;
  }
}
.tng-schedule-day {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 0 auto;
  max-width: 57.125rem;
}

@media screen and (max-width: 767px) {
  .tng-schedule-day {
    gap: 0.5rem;
    max-width: 21.3125rem;
    margin-top: 0.5rem;
  }
}
.tng-schedule-ribbon {
  display: block;
  flex-shrink: 0;
  width: 3rem;
  height: auto;
}

.tng-schedule-ribbon--r {
  transform: scaleX(-1);
}

@media screen and (max-width: 767px) {
  .tng-schedule-ribbon {
    width: 1.25rem;
  }
}
.tng-schedule-main {
  margin: 0;
  color: #15294d;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.2em;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-schedule-main {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
  }
}
.tng-schedule-num {
  font-size: 2.5rem;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .tng-schedule-num {
    font-size: 0.875rem;
  }
}
.tng-schedule-sub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin: 1.5rem auto 0;
  padding: 0.5rem 1rem;
  min-height: 3.375rem;
  max-width: 46.625rem;
  border-radius: 0.625rem;
  background: #54bebc;
  color: #ffffff;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-schedule-sub {
    margin-top: 0.5rem;
    padding: 0.25rem 0.5rem;
    min-height: 1.5625rem;
    max-width: 19.8125rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    line-height: 1.4;
  }
}
.tng-schedule-sub-label {
  color: #fff395;
}

.tng-intro {
  position: relative;
  /* global section{z-index:10} を解除し、子 .tng-news の z を POINT と比較可能に */
  z-index: auto;
  background: transparent;
  overflow: visible;
}

.tng-news {
  position: relative;
  /* POINT(1) より手前 = 四隅フードのはみ出しが白帯に隠れない */
  z-index: 3;
  width: 100%;
  /* Figma section_ABOUT: Frame y=48 / pb=48（デコは枠外はみ出し） */
  padding: 3rem 1.5rem;
  background: #fcf4dd;
  overflow: visible;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-news {
    /* Figma SP News: Frame y≈51 / pb≈51 */
    padding: 3.1875rem 1.25rem;
  }
}
.tng-news-stage {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 70rem;
  margin: 0 auto;
  overflow: visible;
  container-type: inline-size;
  container-name: tng-news;
}

.tng-news-deco {
  position: absolute;
  z-index: 2;
  display: block;
  max-width: none !important;
  pointer-events: none;
  object-fit: contain;
}

/*
  カード（stage = Figma Frame 668 / 1120）四隅に追従。
  section 座標 → Frame 相対に換算（Frame x=160 y=48）
  PC: 寿司(-227,-162) 280×270 / オムレツ right-180 top-179 340×239
       おにぎり(-110, bottom-102) 180×157 / 餃子 right-180 bottom-148 280×237
  狭幅でもカードと比例縮小するよう cqw(1120) 化
*/
.tng-news-deco--tl {
  left: -20.2678571429cqw;
  top: -14.4642857143cqw;
  width: 25cqw;
  height: 24.1071428571cqw;
}

.tng-news-deco--tr {
  left: auto;
  right: -16.0714285714cqw;
  top: -15.9821428571cqw;
  width: 30.3571428571cqw;
  height: 21.3392857143cqw;
  transform: rotate(-3.56deg);
}

.tng-news-deco--bl {
  left: -9.8214285714cqw;
  top: auto;
  bottom: -9.1071428571cqw;
  width: 16.0714285714cqw;
  height: 14.0178571429cqw;
  transform: rotate(-8.4deg);
}

.tng-news-deco--br {
  left: auto;
  right: -16.0714285714cqw;
  top: auto;
  bottom: -13.2142857143cqw;
  width: 25cqw;
  height: 21.1607142857cqw;
}

@media screen and (max-width: 767px) {
  /* SP Frame 668 w=350 — stage 相対を cqw 化 */
  .tng-news-deco--tl {
    /* (-12,-21) → (-32, -72), 90×87 */
    left: -9.1428571429cqw;
    top: -20.5714285714cqw;
    width: 25.7142857143cqw;
    height: 24.8571428571cqw;
    transform: none;
  }
  .tng-news-deco--tr {
    /* (274,-22) w120 → right: 20+350-(274+120)= -24, top: -22-51= -73 */
    left: auto;
    right: -6.8571428571cqw;
    top: -20.8571428571cqw;
    width: 34.2857142857cqw;
    height: 24cqw;
    transform: rotate(-3.54deg);
  }
  .tng-news-deco--bl {
    /* (7,349) h70 → left: 7-20= -13, bottom: (51+304)-(349+70)= -64 */
    left: -3.7142857143cqw;
    top: auto;
    bottom: -18.2857142857cqw;
    width: 22.8571428571cqw;
    height: 20cqw;
    transform: rotate(-8.42deg);
  }
  .tng-news-deco--br {
    /* (294,345) w120 h101 → right: 370-(294+120)= -44, bottom: 355-(345+101)= -91 */
    left: auto;
    right: -12.5714285714cqw;
    top: auto;
    bottom: -26cqw;
    width: 34.2857142857cqw;
    height: 28.8571428571cqw;
    transform: none;
  }
}
.tng-news-card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  width: 100%;
  padding: 3rem 1.5rem;
  background: #ffffff;
  border-radius: 0.625rem;
  box-sizing: border-box;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .tng-news-card {
    gap: 1rem;
    padding: 2.5rem 2.25rem 2.5rem;
  }
}
.tng-news-title {
  position: relative;
  z-index: 1;
  max-width: 100%;
  margin: 0;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.4;
  color: #15294d;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-news-title {
    font-size: 1.3125rem;
  }
}
.tng-news-title-text {
  display: inline;
  background-image: linear-gradient(transparent 55%, #faeaef 55%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  padding: 0 0.05em;
}

@media screen and (max-width: 767px) {
  .tng-news-title-text {
    display: inline-block;
    /* SPは2行目 .tng-news-title-mark 側でマーカーを付ける */
    background-image: none;
    padding: 0;
  }
}
/* SP: 2行目マーカーは見出しブロック全幅（Figma Rectangle 239 / 285） */
.tng-news-title-mark {
  display: inline;
}

@media screen and (max-width: 767px) {
  .tng-news-title-mark {
    position: relative;
    display: block;
    width: 100%;
    text-align: center;
    z-index: 0;
  }
  .tng-news-title-mark::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.375rem;
    height: 1rem;
    background: #faeaef;
    z-index: -1;
    pointer-events: none;
  }
}
.tng-news-body {
  margin: 0;
  width: 100%;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.6;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-news-body {
    max-width: 19.375rem;
    font-size: 0.875rem;
  }
}
.tng-news-body-line {
  margin: 0;
}

.tng-news-body .tng-em {
  font-weight: 700;
}

/* Coming soon 用 ABOUT カード（Figma 2035:17739 / 2035:19786） */
.tng-news-card--comingsoon {
  gap: 2.5rem;
  justify-content: center;
  /* Figma Frame 668: py=48 → 高さ≈300 */
  min-height: 18.75rem;
}

@media screen and (max-width: 767px) {
  .tng-news-card--comingsoon {
    gap: 1.5rem;
    padding: 1.5rem 1.25rem;
    min-height: 19rem;
  }
}
.tng-news-card--comingsoon .tng-news-title {
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .tng-news-card--comingsoon .tng-news-title {
    line-height: 1.4;
  }
}
.tng-news-comingsoon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 1rem 7.5rem;
  background: #f7f7f7;
  border-radius: 3.125rem;
  box-sizing: border-box;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.6;
  color: #15294d;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-news-comingsoon {
    width: 17.875rem;
    max-width: 100%;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
  }
}
/* ---------- Section headings ---------- */
.tng-section-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.75rem;
  padding-left: 6.75rem;
  padding-right: 6.75rem;
  box-sizing: border-box;
  overflow: visible;
}

@media screen and (max-width: 767px) {
  .tng-section-heading {
    padding-left: 3.375rem;
    padding-right: 3.375rem;
    margin-bottom: 1.25rem;
    word-break: keep-all;
  }
}
.tng-section-heading-title {
  position: relative;
  z-index: 1;
  margin: 0;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 600;
  color: #15294d;
  line-height: 1;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-section-heading-title {
    font-size: 1.25rem;
  }
}
.tng-section-heading-text {
  display: inline;
  background-image: linear-gradient(transparent 60%, #ffe3ec 60%);
  padding: 0 0.1em;
}

.tng-section-heading-deco {
  position: absolute;
  inset: auto;
  bottom: 0;
  display: block;
  width: 5rem;
  height: 3.125rem;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-section-heading-deco {
    width: 2.5rem;
    height: 1.5625rem;
  }
}
.tng-section-heading-deco--l {
  left: 0;
}

.tng-section-heading-deco--r {
  right: 0;
}

.tng-section-heading--in-card {
  margin-bottom: 1.5rem;
  padding-left: 0;
  padding-right: 0;
}

.tng-section-heading--in-card .tng-section-heading-deco {
  display: none;
}

.tng-section-heading--in-card .tng-section-heading-title {
  font-size: 1.75rem;
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .tng-section-heading--in-card .tng-section-heading-title {
    font-size: 1.125rem;
  }
}
/* ---------- POINT / pickup ---------- */
.tng-points .tng-container {
  position: relative;
  z-index: 1;
}

.tng-point-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.625rem;
  list-style: none;
  margin: 0 0 3rem;
  padding: 0;
  align-items: stretch;
}

@media screen and (max-width: 767px) {
  .tng-point-list {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
  }
}
.tng-point-card,
.tng-pickup-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 0.625rem;
  overflow: hidden;
  box-shadow: 0 0.25rem 0.875rem rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.tng-point-bar {
  position: relative;
  height: 0.625rem;
  background: #54bebc;
  flex-shrink: 0;
}

.tng-point-card .tng-point-bar {
  background: #e84b7d;
}

.tng-point-notch-wrap {
  position: absolute;
  left: 50%;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.625rem;
  height: 1.75rem;
  transform: translateX(-50%);
  pointer-events: none;
}

.tng-point-notch {
  display: block;
  width: 1.75rem;
  height: 1.625rem;
  transform: rotate(90deg);
  max-width: none;
}

.tng-point-body,
.tng-pickup-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 2rem 1.5rem 1.75rem;
  text-align: center;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-point-body,
  .tng-pickup-body {
    padding: 2rem 1.5rem 1.75rem;
  }
}
.tng-point-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding-bottom: 1.5rem;
  border-bottom: 0.0625rem solid #d8d8d8;
  box-sizing: border-box;
}

.tng-point-label {
  margin: 0 0 0.5rem;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.4;
  color: #ea628d;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 767px) {
  .tng-point-label {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
  }
}
.tng-point-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  color: #333333;
}

@media screen and (max-width: 767px) {
  .tng-point-title {
    font-size: 1.25rem;
  }
}
.tng-point-text {
  margin: 1.5rem 0 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-point-text {
    margin-top: 1.25rem;
  }
}
.tng-pickup-body {
  padding: 2rem 1.5rem 1.75rem;
}

.tng-pickup-label {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.4;
  color: #54bebc;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 767px) {
  .tng-pickup-label {
    font-size: 1.125rem;
    margin-bottom: 0.375rem;
  }
}
.tng-pickup-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  color: #333333;
}

@media screen and (max-width: 767px) {
  .tng-pickup-title {
    font-size: 1.25rem;
  }
}
.tng-pickup-content {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.6;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-pickup-content {
    margin-top: 1.25rem;
  }
}
.tng-pickup-meta {
  margin: 0;
}

.tng-pickup-meta-label {
  font-weight: 700;
  color: #54bebc;
}

.tng-pickup-text {
  margin: 0;
}

/* ---------- STEPs ---------- */
.tng-howto {
  background: #95d6d5;
  /* Figma: 見出し文字「TNG FESTIVALの楽しみ方」y=112 / steps→pb=120 */
  padding: 7rem 0 7.5rem;
}

@media screen and (max-width: 767px) {
  .tng-howto {
    /* Figma SP: 見出し文字 y=76 / steps→pb=60 */
    padding: 4.75rem 0 3.75rem;
  }
}
.tng-section-heading--howto {
  padding-top: 0;
}

@media screen and (max-width: 767px) {
  .tng-section-heading--howto {
    padding-top: 0;
    margin-bottom: 2rem;
  }
}
.tng-howto-fun {
  position: absolute;
  left: 50%;
  /* PC: eyebrow y=64 → 見出し文字 y=112 の 48px 上 */
  top: -3rem;
  transform: translateX(-50%);
  width: 9.875rem;
  height: 2rem;
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .tng-howto-fun {
    /* SP: Union y=40 → 文字 y=76 の 36px 上 */
    top: -2.25rem;
    width: 7.5rem;
    height: 1.5rem;
  }
}
.tng-howto .tng-section-heading-text {
  background-image: linear-gradient(transparent 60%, rgba(199, 255, 255, 0.4) 60%);
}

.tng-step-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 16.375rem));
  justify-content: center;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: none;
}

@media screen and (max-width: 767px) {
  .tng-step-list {
    grid-template-columns: minmax(0, 16.375rem);
    gap: 1.25rem;
  }
}
.tng-step-item {
  position: relative;
  background: #ffffff;
  border-radius: 0.625rem;
  padding: 2rem 0;
  text-align: center;
  min-height: 17rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  box-sizing: border-box;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .tng-step-item {
    min-height: 0;
    padding: 2rem 0;
  }
}
.tng-step-num-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
}

.tng-step-label {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.125rem;
  color: #54bebc;
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .tng-step-label {
    font-size: 1.125rem;
  }
}
.tng-step-icon {
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: #f5fbfb;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  flex-shrink: 0;
}
.tng-step-icon img {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
}

@media screen and (max-width: 767px) {
  .tng-step-icon {
    width: 5rem;
    height: 5rem;
  }
  .tng-step-icon img {
    width: 2.5rem;
    height: 2.5rem;
  }
}
.tng-step-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-step-title {
    font-size: 1.25rem;
  }
}
.tng-step-arrow {
  position: absolute;
  top: 50%;
  right: 0;
  width: 3.75rem;
  height: 1.25rem;
  transform: translate(63%, -50%) rotate(90deg);
  pointer-events: none;
  z-index: 1;
}
.tng-step-arrow img {
  display: block;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 767px) {
  .tng-step-arrow {
    top: auto;
    right: auto;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 76%) rotate(180deg);
  }
}
/* ---------- Ticket / tables ---------- */
.tng-ticket {
  /* Figma: 見出し文字「チケットのご購入について」y=80 / table→pb=120 */
  padding: 5rem 0 7.5rem;
}

@media screen and (max-width: 767px) {
  .tng-ticket {
    /* Figma SP: 見出し文字 y=48 / →pb=60 */
    padding: 3rem 0 3.75rem;
  }
}
.tng-ticket .tng-table {
  margin-bottom: 3rem;
}

.tng-ticket .tng-table--schedule {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .tng-ticket .tng-table {
    margin-bottom: 1.875rem;
  }
  .tng-ticket .tng-table--schedule {
    margin-bottom: 0;
  }
}
.tng-table {
  background: #ffffff;
  border: 0.0625rem solid #d8d8d8;
  border-radius: 0.625rem;
  overflow: hidden;
  margin-bottom: 0;
  box-sizing: border-box;
}

.tng-table-row {
  display: grid;
  grid-template-columns: 16.5625rem 1fr;
}

.tng-table-row:last-child .tng-table-th {
  border-bottom: none;
}

@media screen and (max-width: 767px) {
  .tng-table-row {
    grid-template-columns: 1fr;
  }
}
.tng-table-th {
  background: #e95082;
  color: #ffffff;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.8;
  min-height: 3.8125rem;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  border-bottom: 0.0625rem solid #ffffff;
}

@media screen and (max-width: 767px) {
  .tng-table-th {
    min-height: 3.3125rem;
    padding: 0 1rem;
    border-bottom: none;
  }
}
.tng-table-td {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 1rem 2.5rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  color: #15294d;
  box-sizing: border-box;
  background: #ffffff;
  border-left: 0.0625rem solid #d8d8d8;
  border-bottom: 0.0625rem solid #d8d8d8;
}

.tng-table-row:last-child .tng-table-td {
  border-bottom: none;
}

.tng-table-row:nth-child(even) .tng-table-td {
  background: #fefdf6;
}

@media screen and (max-width: 767px) {
  .tng-table-td {
    min-height: 3.125rem;
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
    line-height: 1.6;
    border-left: none;
    border-top: 0.0625rem solid #d8d8d8;
    border-bottom: 0.0625rem solid #d8d8d8;
    background: #ffffff;
  }
  .tng-table-row:nth-child(even) .tng-table-td {
    background: #ffffff;
  }
  .tng-table-row:last-child .tng-table-td {
    background: #fefdf6;
    border-bottom: none;
  }
}
.tng-ticket .tng-table-td > p {
  margin: 0;
}

.tng-ticket-price-br {
  display: none;
}

@media screen and (max-width: 767px) {
  .tng-ticket-price-br {
    display: block;
  }
}
.tng-ticket-type-list,
.tng-ticket-schedule-list {
  margin: 0.5rem 0 0;
  padding: 0 0 0 1.5rem;
  list-style: disc;
}

.tng-ticket-type-list li,
.tng-ticket-schedule-list li {
  margin: 0;
  padding: 0;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .tng-ticket-type-list,
  .tng-ticket-schedule-list {
    margin-top: 0.4375rem;
  }
  .tng-ticket-type-list li,
  .tng-ticket-schedule-list li {
    line-height: 1.6;
  }
}
.tng-ticket-schedule-list {
  margin-top: 0;
}

.tng-ticket-schedule-title {
  margin: 0 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  color: #333;
}

@media screen and (max-width: 767px) {
  .tng-ticket-schedule-title {
    margin-bottom: 1.25rem;
    font-size: 1rem;
  }
}
/* ---------- Shops ---------- */
.tng-shops {
  /* Figma section_参加店舗一覧: heading y=64 / cards→pb=120 */
  padding: 4rem 0 7.5rem;
}

@media screen and (max-width: 767px) {
  .tng-shops {
    /* Figma SP: heading y=40 / cards→pb=80 */
    padding: 2.5rem 0 5rem;
  }
}
.tng-shops .tng-section-heading-text {
  background-image: linear-gradient(transparent 60%, #d8f1f1 60%);
}

.tng-shop-tabs {
  position: relative;
}

.tng-shop-tab-labels {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

@media screen and (max-width: 767px) {
  .tng-shop-tab-labels {
    flex-wrap: nowrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
    margin-left: -1.25rem;
    margin-right: -1.25rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tng-shop-tab-labels::-webkit-scrollbar {
    display: none;
  }
}
.tng-shop-tab {
  flex-shrink: 0;
}

.tng-shop-tab-ctl {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tng-shop-tab-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.5rem;
  border-radius: 3.75rem;
  background: #ffffff;
  border: 0.0625rem solid #d8d8d8;
  color: #15294d;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  text-align: center;
  box-sizing: border-box;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .tng-shop-tab-label {
    padding: 0.75rem 1.25rem;
    font-size: 0.875rem;
  }
}
.tng-shop-tab-ctl:checked + .tng-shop-tab-label {
  background: #54bebc;
  border-color: #54bebc;
  color: #ffffff;
}

.tng-shop-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 3rem 2.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media screen and (max-width: 767px) {
  .tng-shop-list {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}
.tng-shop-card {
  min-width: 0;
  background: #ffffff;
  border-radius: 0.625rem;
  overflow: hidden;
  box-shadow: 0 0.25rem 0.875rem rgba(0, 0, 0, 0.1);
}

.tng-shop-card.is-hidden {
  display: none;
}

.tng-shop-details {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.tng-shop-media {
  position: relative;
  width: 100%;
  height: 19rem;
  background: #f2f3f3;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .tng-shop-media {
    height: 12.25rem;
  }
}
.tng-shop-media-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tng-shop-media-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.tng-shop-media-placeholder {
  display: block;
  width: 8.375rem;
  height: 7.5rem;
}

@media screen and (max-width: 767px) {
  .tng-shop-media-placeholder {
    width: 5.4375rem;
    height: 4.875rem;
  }
}
.tng-shop-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem 2rem 0;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-shop-body {
    padding: 0.9375rem 0.9375rem 0;
  }
}
.tng-shop-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  width: 100%;
}

.tng-shop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  min-height: 2rem;
}

.tng-shop-name {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  color: #15294d;
}

.tng-shop-map {
  flex-shrink: 0;
  display: block;
  width: 1.875rem;
  height: 1.875rem;
  line-height: 0;
}

.tng-shop-map img {
  display: block;
  width: 100%;
  height: 100%;
}

.tng-shop-rows {
  width: 100%;
}

.tng-shop-extra {
  width: 100%;
  order: 1;
}

.tng-shop-row {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.75rem 0;
  border-bottom: 0.0625rem solid #d8d8d8;
  box-sizing: border-box;
}

.tng-shop-row--multi {
  align-items: flex-start;
}

.tng-shop-row-label {
  flex-shrink: 0;
  width: 6.875rem;
  min-height: 1.375rem;
}

.tng-shop-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  border-radius: 2.5rem;
  background: #54bebc;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  box-sizing: border-box;
  white-space: nowrap;
}

.tng-shop-row-value {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  color: #15294d;
  word-break: break-word;
}

.tng-shop-row--multi .tng-shop-row-value {
  line-height: 1.4;
}

.tng-shop-link {
  color: #1eadaa;
  text-decoration: underline;
  word-break: break-all;
}

.tng-shop-row--tags {
  border-bottom: 0.0625rem solid #d8d8d8;
}

.tng-shop-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tng-shop-tag {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  color: #15294d;
  white-space: nowrap;
}

.tng-shop-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  order: 2;
  width: 15rem;
  max-width: 100%;
  margin: 1.5rem auto 2rem;
  padding: 0.625rem 1.5rem;
  border: 0.0625rem solid #54bebc;
  border-radius: 3.125rem;
  background: transparent;
  color: #54bebc;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  cursor: pointer;
  list-style: none;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-shop-more {
    margin-bottom: 0.9375rem;
  }
}
.tng-shop-more::-webkit-details-marker {
  display: none;
}

.tng-shop-more::marker {
  content: "";
  display: none;
}

.tng-shop-more-label--close {
  display: none;
}

.tng-shop-details[open] .tng-shop-more-label--open {
  display: none;
}

.tng-shop-details[open] .tng-shop-more-label--close {
  display: inline;
}

.tng-shop-more-icon {
  display: block;
  width: 0.75rem;
  height: 0.5rem;
  transition: transform 0.2s;
}

.tng-shop-details[open] .tng-shop-more-icon {
  transform: scaleY(-1);
}

/* ---------- Map ---------- */
.tng-map {
  /* Figma: 見出し文字「回遊マップ」y=15 / panels 下端まで */
  padding: 0.9375rem 0 0;
}

@media screen and (max-width: 767px) {
  .tng-map {
    /* Figma SP: 見出し文字 y=8 */
    padding: 0.5rem 0 0;
  }
}
.tng-map .tng-section-heading-text {
  background-image: linear-gradient(transparent 60%, #d8f1f1 60%);
}

.tng-map .tng-section-heading {
  /* PC: 文字 bottom(15+40=55) → panels y=107 → gap 52 */
  margin-bottom: 3.25rem;
}

@media screen and (max-width: 767px) {
  .tng-map .tng-section-heading {
    /* SP: 文字 bottom(8+20=28) → panels y=53 → gap 25 */
    margin-bottom: 1.5625rem;
  }
}
.tng-map-panels {
  display: flex;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .tng-map-panels {
    flex-direction: column;
  }
}
.tng-map-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 50%;
  min-width: 0;
  padding: 3rem 1.25rem 3rem;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-map-panel {
    flex: none;
    width: 100%;
    padding: 1.875rem 0.3125rem 2.5rem;
  }
}
.tng-map-panel--kiyose {
  background: #c0d975;
}

.tng-map-panel--higashikurume {
  background: #f388a8;
}

.tng-map-panel-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1.5rem;
}

@media screen and (max-width: 767px) {
  .tng-map-panel-label {
    margin-bottom: 1.25rem;
  }
}
.tng-map-panel-label-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25rem;
  max-width: 100%;
  padding: 0.375rem 4rem;
  border-radius: 3.125rem;
  background: #ffffff;
  color: #15294d;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-map-panel-label-text {
    width: 18.75rem;
    font-size: 1.125rem;
  }
}
.tng-map-panel-label-arrow {
  display: block;
  width: 2rem;
  height: 1rem;
  margin-top: 0;
  transform: scaleY(-1);
}

.tng-map-frame {
  width: 100%;
  aspect-ratio: 680/600;
  height: auto;
  border: 0.25rem solid #ffffff;
  overflow: hidden;
  background: rgba(21, 41, 77, 0.06);
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .tng-map-frame {
    width: calc(100% - 0.625rem);
    border-width: 0.125rem;
  }
}
.tng-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---------- Rules ---------- */
.tng-rules {
  /* Figma: card Frame y=80 / pb=80 */
  padding: 5rem 0;
}

@media screen and (max-width: 767px) {
  .tng-rules {
    /* Figma SP: card y=40 / pb=50 */
    padding: 2.5rem 0 3.125rem;
  }
}
.tng-rules-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  /* Figma Frame 668 内: heading Group y=48 */
  padding: 3rem 0;
  background: #ffffff;
  border-radius: 0.625rem;
  overflow: hidden;
  box-shadow: 0 0.25rem 0.875rem rgba(0, 0, 0, 0.1);
}

@media screen and (max-width: 767px) {
  .tng-rules-card {
    gap: 1rem;
    /* Figma SP: heading Group y=40 within card */
    padding: 2.5rem 0 1.875rem;
  }
}
.tng-rules-card .tng-point-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0.625rem;
  background: #54bebc;
  flex-shrink: 0;
}

.tng-rules .tng-section-heading-text {
  background-image: linear-gradient(transparent 60%, #d8f1f1 60%);
}

.tng-rules-card .tng-section-heading {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0 1.25rem;
}

.tng-rules-card .tng-section-heading--in-card .tng-section-heading-title {
  font-size: 2.5rem;
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .tng-rules-card .tng-section-heading--in-card .tng-section-heading-title {
    font-size: 1.25rem;
  }
}
.tng-rules-list {
  position: relative;
  z-index: 1;
  width: 65rem;
  max-width: calc(100% - 5rem);
  margin: 0;
  padding: 0 0 0 1.875rem;
  list-style-type: disc;
  list-style-position: outside;
  box-sizing: border-box;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-rules-list {
    width: 19.375rem;
    max-width: calc(100% - 2.5rem);
    padding-left: 1.3125rem;
  }
}
.tng-rules-list li {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.6;
  color: #15294d;
}

@media screen and (max-width: 767px) {
  .tng-rules-list li {
    font-size: 0.875rem;
  }
}
.tng-rules-list li::marker {
  color: #15294d;
}

/* ---------- Organizer ---------- */
.tng-organizer {
  background: #fcf4dd;
  /* Figma section_運営情報: heading y=65 / table→pb=120 */
  padding: 4.0625rem 0 7.5rem;
}

@media screen and (max-width: 767px) {
  .tng-organizer {
    /* Figma SP: heading y=40 / table→pb≈120 */
    padding: 2.5rem 0 7.5rem;
  }
}
.tng-organizer .tng-table-td p {
  margin: 0;
}

/* ---------- Footer ---------- */
.tng-footer {
  position: relative;
  background: #ffffff;
  color: #15294d;
  box-shadow: inset 0 -0.375rem 0 #54bebc;
  box-sizing: border-box;
}

.tng-footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding: 3rem 2.5rem;
  box-sizing: border-box;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .tng-footer-inner {
    gap: 1.5rem;
    padding: 2.5rem 1.25rem;
  }
}
.tng-footer-logo {
  display: block;
  line-height: 0;
  text-decoration: none;
  flex-shrink: 0;
}

.tng-footer-logo-image {
  display: block;
  width: 8.75rem;
  height: 6.375rem;
}

.tng-footer-copy {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  max-width: 100%;
  color: #15294d;
  font-family: "Gen Interface JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .tng-footer-copy {
    width: 100%;
    max-width: 21.25rem;
  }
}
.tng-footer-copy-line {
  margin: 0;
}

.tng-footer-pagetop {
  position: absolute;
  right: 2.5rem;
  bottom: 0;
  display: block;
  line-height: 0;
  z-index: 1;
}

@media screen and (max-width: 767px) {
  .tng-footer-pagetop {
    right: 0.625rem;
  }
}
.tng-footer-pagetop-image {
  display: block;
}

.tng-footer-pagetop-image--pc {
  width: 3rem;
  height: 3rem;
}

.tng-footer-pagetop-image--sp {
  display: none;
  width: 2rem;
  height: 2rem;
}

@media screen and (max-width: 767px) {
  .tng-footer-pagetop-image--pc {
    display: none;
  }
  .tng-footer-pagetop-image--sp {
    display: block;
  }
}
/* coming soon: ナビ無しでも通常ページ同様ロゴは左寄せ */
