@charset "UTF-8";
/* ============================================================
   津南ランタンフェスティバル特集LP
   page-slug : lp-tsunan-lantern
   scope id  : #tbx-lp-tsunan-lantern
   方針      : モバイルファースト（min-width）／フォントサイズはpx指定
   ブレークポイント : 768px（タブレット）／1024px（PC）
============================================================ */

/* ------------------------------------------------------------
   カラーパレット（LP固有。夜空 × ランタンの灯り）
   ※旅っくす標準色は --tbx-primary / --tbx-accent として併記
------------------------------------------------------------ */
:root {
  --tbx-primary: #0066CC;
  --tbx-accent:  #FF6600;

  /* 夜 */
  --tsn-night-900: #060A1A;
  --tsn-night-800: #0B1026;
  --tsn-night-700: #141B3A;
  --tsn-night-600: #1F2950;

  /* 灯り */
  --tsn-lantern:   #FFB347;
  --tsn-lantern-d: #F08A1D;
  --tsn-gold:      #FFD98A;

  /* 雪・紙 */
  --tsn-snow:      #FBF8F3;
  --tsn-paper:     #F3EEE6;
  --tsn-line:      #E2DACE;

  /* 文字 */
  --tsn-text:      #2B2A28;
  --tsn-text-sub:  #6A655D;
  --tsn-on-dark:   #F6F2EA;
  --tsn-on-dark-s: #B9B4AC;

  --tsn-radius:    14px;
  --tsn-shadow:    0 6px 24px rgba(6, 10, 26, 0.10);
}

/* ------------------------------------------------------------
   LP用：グローバルナビ非表示（LPページ種別の要件）
   ※実サイトのヘッダーHTML構造に合わせてセレクタ要確認
------------------------------------------------------------ */
body.header-on-light .global-nav,
body.header-on-light .gnav,
body.header-on-light .header__nav { display: none; }

/* ------------------------------------------------------------
   ベース
------------------------------------------------------------ */
#tbx-lp-tsunan-lantern {
  color: var(--tsn-text);
  background: var(--tsn-snow);
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.02em;
  overflow-x: hidden;
}
#tbx-lp-tsunan-lantern img { max-width: 100%; height: auto; display: block; }
#tbx-lp-tsunan-lantern ul,
#tbx-lp-tsunan-lantern ol { list-style: none; margin: 0; padding: 0; }
#tbx-lp-tsunan-lantern a { color: inherit; }

#tbx-lp-tsunan-lantern .section-inner {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

#tbx-lp-tsunan-lantern section { padding: 56px 0; }
@media (min-width: 768px) { #tbx-lp-tsunan-lantern section { padding: 80px 0; } }
@media (min-width: 1024px) { #tbx-lp-tsunan-lantern section { padding: 96px 0; } }

#tbx-lp-tsunan-lantern .section-eyebrow {
  margin: 0 0 6px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tsn-lantern-d);
  font-weight: 700;
}
#tbx-lp-tsunan-lantern .section-title {
  margin: 0 0 28px;
  font-size: 23px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.01em;
}
#tbx-lp-tsunan-lantern .section-title--center { text-align: center; }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .section-title { font-size: 30px; margin-bottom: 36px; }
}

/* ------------------------------------------------------------
   ボタン
------------------------------------------------------------ */
#tbx-lp-tsunan-lantern .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 24px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
  box-sizing: border-box;
}
#tbx-lp-tsunan-lantern .btn:hover { transform: translateY(-1px); }
#tbx-lp-tsunan-lantern .btn--primary {
  background: linear-gradient(135deg, var(--tsn-lantern) 0%, var(--tsn-lantern-d) 100%);
  color: #2B1A05;
  box-shadow: 0 6px 18px rgba(240, 138, 29, 0.32);
}
#tbx-lp-tsunan-lantern .btn--outline {
  background: #FFFFFF;
  color: var(--tsn-text);
  border-color: var(--tsn-line);
}
#tbx-lp-tsunan-lantern .btn--outline:hover { border-color: var(--tsn-lantern-d); color: var(--tsn-lantern-d); }
#tbx-lp-tsunan-lantern .btn--ghost {
  background: rgba(255,255,255,0.08);
  color: var(--tsn-on-dark);
  border-color: rgba(246,242,234,0.5);
  backdrop-filter: blur(4px);
}
#tbx-lp-tsunan-lantern .btn--sm { min-height: 44px; padding: 8px 18px; font-size: 14px; }

/* ============================================================
   01. メインビジュアル
============================================================ */
#tbx-lp-tsunan-lantern .hero {
  position: relative;
  padding: 0;
  background: var(--tsn-night-900);
  color: var(--tsn-on-dark);
  overflow: hidden;
}
#tbx-lp-tsunan-lantern .hero__media { position: absolute; inset: 0; z-index: 0; }
#tbx-lp-tsunan-lantern .hero__video,
#tbx-lp-tsunan-lantern .hero__fallback img {
  width: 100%; height: 100%; object-fit: cover;
}
#tbx-lp-tsunan-lantern .hero__fallback { position: absolute; inset: 0; z-index: 0; }
#tbx-lp-tsunan-lantern .hero__video { position: relative; z-index: 1; }
/* 動画が読めない環境ではfallback画像が見える（videoは領域を持たない） */
#tbx-lp-tsunan-lantern .hero__scrim {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(180deg, rgba(6,10,26,0.55) 0%, rgba(6,10,26,0.25) 38%, rgba(6,10,26,0.88) 100%);
}
#tbx-lp-tsunan-lantern .hero__inner {
  position: relative; z-index: 3;
  max-width: 1120px;
  margin: 0 auto;
  padding: 96px 20px 48px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .hero__inner { padding: 160px 20px 88px; }
}
@media (min-width: 1024px) {
  #tbx-lp-tsunan-lantern .hero__inner { padding: 200px 20px 110px; max-width: 1160px; }
}

#tbx-lp-tsunan-lantern .hero__badge {
  display: inline-block;
  margin: 0 0 18px;
  padding: 6px 16px;
  border: 1px solid var(--tsn-gold);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--tsn-gold);
  background: rgba(11,16,38,0.45);
}
#tbx-lp-tsunan-lantern .hero__title {
  margin: 0 0 18px;
  font-size: 30px;
  line-height: 1.45;
  font-weight: 700;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
#tbx-lp-tsunan-lantern .hero__title em {
  font-style: normal;
  color: var(--tsn-gold);
}
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .hero__title { font-size: 46px; } }
@media (min-width: 1024px) { #tbx-lp-tsunan-lantern .hero__title { font-size: 56px; } }

#tbx-lp-tsunan-lantern .hero__lead {
  margin: 0 0 26px;
  font-size: 15px;
  line-height: 1.9;
  color: var(--tsn-on-dark);
  text-shadow: 0 1px 12px rgba(0,0,0,0.6);
}
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .hero__lead { font-size: 17px; max-width: 42em; } }

#tbx-lp-tsunan-lantern .hero__facts {
  display: grid;
  gap: 8px;
  margin: 0 0 28px;
  padding: 16px 18px;
  border-radius: var(--tsn-radius);
  background: rgba(11,16,38,0.55);
  border: 1px solid rgba(246,242,234,0.18);
  backdrop-filter: blur(6px);
}
#tbx-lp-tsunan-lantern .hero__facts li {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 10px;
  align-items: baseline;
  font-size: 14px;
}
#tbx-lp-tsunan-lantern .hero__facts-label {
  font-size: 12px;
  color: var(--tsn-on-dark-s);
  letter-spacing: 0.06em;
}
#tbx-lp-tsunan-lantern .hero__facts-value strong { font-size: 22px; color: var(--tsn-gold); }
#tbx-lp-tsunan-lantern .hero__facts-value small { display: block; font-size: 11px; color: var(--tsn-on-dark-s); }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .hero__facts { max-width: 560px; }
}

#tbx-lp-tsunan-lantern .hero__cta { display: grid; gap: 10px; }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .hero__cta { display: flex; gap: 14px; }
  #tbx-lp-tsunan-lantern .hero__cta .btn { min-width: 220px; }
}

/* ============================================================
   02. 見どころ
============================================================ */
#tbx-lp-tsunan-lantern .highlights {
  background: var(--tsn-night-800);
  color: var(--tsn-on-dark);
}
#tbx-lp-tsunan-lantern .highlights .section-title { color: var(--tsn-on-dark); }

#tbx-lp-tsunan-lantern .highlights__list { display: grid; gap: 24px; }
@media (min-width: 1024px) {
  #tbx-lp-tsunan-lantern .highlights__list { grid-template-columns: repeat(3, 1fr); gap: 28px; }
}
#tbx-lp-tsunan-lantern .highlight-card {
  position: relative;
  padding: 20px;
  border-radius: var(--tsn-radius);
  background: var(--tsn-night-700);
  border: 1px solid rgba(246,242,234,0.10);
}
#tbx-lp-tsunan-lantern .highlight-card__num {
  position: absolute;
  top: -12px; left: 18px;
  padding: 3px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #2B1A05;
  background: var(--tsn-gold);
}
#tbx-lp-tsunan-lantern .highlight-card__figure { margin: 6px 0 16px; }
#tbx-lp-tsunan-lantern .highlight-card__figure img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 10px;
}
#tbx-lp-tsunan-lantern .highlight-card__title {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--tsn-gold);
}
#tbx-lp-tsunan-lantern .highlight-card__text { margin: 0; font-size: 14px; color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .highlight-card__text strong { color: var(--tsn-gold); }

/* ============================================================
   03. 動画
============================================================ */
#tbx-lp-tsunan-lantern .movie { background: var(--tsn-night-900); color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .movie .section-title { color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .movie__frame {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  border-radius: var(--tsn-radius);
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 16 / 9;
  background: #000;
}
#tbx-lp-tsunan-lantern .movie__poster { width: 100%; height: 100%; object-fit: cover; }
#tbx-lp-tsunan-lantern .movie__play {
  position: absolute;
  top: 50%; left: 50%;
  width: 72px; height: 72px;
  margin: -36px 0 0 -36px;
  border-radius: 50%;
  background: rgba(255,179,71,0.92);
  box-shadow: 0 8px 28px rgba(0,0,0,0.45);
  transition: transform .2s ease;
}
#tbx-lp-tsunan-lantern .movie__play::after {
  content: "";
  position: absolute;
  top: 50%; left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 13px 0 13px 21px;
  border-color: transparent transparent transparent #2B1A05;
}
#tbx-lp-tsunan-lantern .movie__frame:hover .movie__play { transform: scale(1.06); }
#tbx-lp-tsunan-lantern .movie__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
#tbx-lp-tsunan-lantern .movie__note {
  margin: 12px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--tsn-on-dark-s);
}

/* ============================================================
   04. 開催概要
============================================================ */
#tbx-lp-tsunan-lantern .event-info { background: var(--tsn-paper); }
#tbx-lp-tsunan-lantern .info-table {
  margin: 0;
  border-top: 1px solid var(--tsn-line);
  background: #FFFFFF;
  border-radius: var(--tsn-radius);
  overflow: hidden;
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .info-table__row {
  display: grid;
  border-bottom: 1px solid var(--tsn-line);
}
#tbx-lp-tsunan-lantern .info-table dt {
  padding: 14px 18px 4px;
  font-size: 13px;
  font-weight: 700;
  color: var(--tsn-lantern-d);
  letter-spacing: 0.06em;
}
#tbx-lp-tsunan-lantern .info-table dd {
  margin: 0;
  padding: 0 18px 16px;
  font-size: 15px;
}
#tbx-lp-tsunan-lantern .info-table dd small { display: block; font-size: 12px; color: var(--tsn-text-sub); margin-top: 4px; }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .info-table__row { grid-template-columns: 180px 1fr; align-items: start; }
  #tbx-lp-tsunan-lantern .info-table dt { padding: 18px; background: #FAF7F2; height: 100%; box-sizing: border-box; }
  #tbx-lp-tsunan-lantern .info-table dd { padding: 18px; }
}

/* ============================================================
   05. ツアーを探す
============================================================ */
#tbx-lp-tsunan-lantern .tours { background: var(--tsn-snow); }
#tbx-lp-tsunan-lantern .tours__lead { margin: -14px 0 24px; font-size: 14px; color: var(--tsn-text-sub); }

/* 絞り込み */
#tbx-lp-tsunan-lantern .filter {
  padding: 18px;
  margin-bottom: 26px;
  background: #FFFFFF;
  border: 1px solid var(--tsn-line);
  border-radius: var(--tsn-radius);
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .filter__block + .filter__block { margin-top: 18px; }
#tbx-lp-tsunan-lantern .filter__label {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
#tbx-lp-tsunan-lantern .tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
#tbx-lp-tsunan-lantern .tab {
  min-height: 48px;
  padding: 10px 8px;
  border: 2px solid var(--tsn-line);
  border-radius: 10px;
  background: #FFFFFF;
  font-size: 15px;
  font-weight: 700;
  color: var(--tsn-text-sub);
  cursor: pointer;
  transition: all .15s ease;
}
#tbx-lp-tsunan-lantern .tab.is-active {
  background: var(--tsn-night-800);
  border-color: var(--tsn-night-800);
  color: var(--tsn-on-dark);
}
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .tabs { display: flex; }
  #tbx-lp-tsunan-lantern .tab { min-width: 150px; }
}

#tbx-lp-tsunan-lantern .chips { display: flex; flex-wrap: wrap; gap: 8px; }
#tbx-lp-tsunan-lantern .chip {
  min-height: 42px;
  padding: 8px 16px;
  border: 1px solid var(--tsn-line);
  border-radius: 999px;
  background: #FFFFFF;
  font-size: 14px;
  font-weight: 600;
  color: var(--tsn-text-sub);
  cursor: pointer;
  transition: all .15s ease;
}
#tbx-lp-tsunan-lantern .chip:hover { border-color: var(--tsn-lantern-d); color: var(--tsn-lantern-d); }
#tbx-lp-tsunan-lantern .chip.is-active {
  background: linear-gradient(135deg, var(--tsn-lantern) 0%, var(--tsn-lantern-d) 100%);
  border-color: transparent;
  color: #2B1A05;
}
#tbx-lp-tsunan-lantern .chip.is-disabled { opacity: .35; pointer-events: none; }
#tbx-lp-tsunan-lantern .filter__note { margin: 10px 0 0; font-size: 12px; color: var(--tsn-text-sub); }
#tbx-lp-tsunan-lantern .filter__result {
  position: relative;
  margin: 16px -8px 0;
  padding: 14px 8px 4px;
  border-top: 1px dashed var(--tsn-line);
  border-radius: 8px;
  font-size: 13px;
  color: var(--tsn-text-sub);
}
#tbx-lp-tsunan-lantern .filter__result .js-result-count {
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  color: var(--tsn-lantern-d);
}

/* 選択中の条件（例：宿泊 × 静岡発） */
#tbx-lp-tsunan-lantern .filter__cond {
  display: inline-block;
  margin-right: 8px;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--tsn-night-800);
  color: var(--tsn-on-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  vertical-align: 2px;
}
#tbx-lp-tsunan-lantern .filter__cond[hidden] { display: none; }

/* 件数が変わったときのポップ */
#tbx-lp-tsunan-lantern .js-result-count.is-pop { animation: tsn-count-pop 0.45s cubic-bezier(.2,.9,.3,1.2); }
@keyframes tsn-count-pop {
  0%   { transform: scale(1);    color: var(--tsn-lantern-d); }
  35%  { transform: scale(1.5);  color: var(--tsn-lantern); }
  100% { transform: scale(1);    color: var(--tsn-lantern-d); }
}
/* 結果行がひと呼吸ぶん光る */
#tbx-lp-tsunan-lantern .filter__result.is-updated { animation: tsn-result-flash 0.7s ease-out; }
@keyframes tsn-result-flash {
  0%   { background: rgba(255, 179, 71, 0.26); }
  100% { background: transparent; }
}

/* 早見表（PCのみ） */
#tbx-lp-tsunan-lantern .matrix { display: none; }
@media (min-width: 1024px) {
  #tbx-lp-tsunan-lantern .matrix { display: block; margin-bottom: 32px; }
  #tbx-lp-tsunan-lantern .matrix__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #FFFFFF;
    border: 1px solid var(--tsn-line);
    border-radius: var(--tsn-radius);
    overflow: hidden;
    font-size: 14px;
  }
  #tbx-lp-tsunan-lantern .matrix__caption {
    caption-side: top;
    text-align: left;
    padding: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--tsn-text-sub);
  }
  #tbx-lp-tsunan-lantern .matrix__table th,
  #tbx-lp-tsunan-lantern .matrix__table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--tsn-line);
    text-align: center;
  }
  #tbx-lp-tsunan-lantern .matrix__table thead th {
    background: var(--tsn-night-800);
    color: var(--tsn-on-dark);
    font-size: 13px;
    letter-spacing: 0.06em;
  }
  #tbx-lp-tsunan-lantern .matrix__table tbody th { background: #FAF7F2; text-align: left; font-weight: 700; }
  #tbx-lp-tsunan-lantern .matrix__table tbody tr:last-child th,
  #tbx-lp-tsunan-lantern .matrix__table tbody tr:last-child td { border-bottom: 0; }
  #tbx-lp-tsunan-lantern .matrix__table a { color: var(--tsn-lantern-d); font-weight: 700; text-decoration: none; }
  #tbx-lp-tsunan-lantern .matrix__table a:hover { text-decoration: underline; }
}

/* ツアーカード */
#tbx-lp-tsunan-lantern .card-list { display: grid; gap: 20px; }

/* 絞り込みの切替演出
   is-leaving  … いったん全体を薄くする（140ms）
   is-entering … ヒットしたカードだけを下から順に立ち上げる */
#tbx-lp-tsunan-lantern .card-list { transition: opacity 0.14s ease; }
#tbx-lp-tsunan-lantern .card-list.is-leaving { opacity: 0; }
#tbx-lp-tsunan-lantern .card-list.is-entering { transition: none; opacity: 1; }
#tbx-lp-tsunan-lantern .card-list.is-entering .tour-card {
  animation: tsn-card-in 0.36s cubic-bezier(.22,.7,.3,1) both;
  animation-delay: calc(var(--i, 0) * 60ms);
}
@keyframes tsn-card-in {
  from { opacity: 0; transform: translateY(16px) scale(0.985); }
  to   { opacity: 1; transform: none; }
}
@media (min-width: 1024px) {
  #tbx-lp-tsunan-lantern .card-list { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
#tbx-lp-tsunan-lantern .tour-card {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  border: 1px solid var(--tsn-line);
  border-radius: var(--tsn-radius);
  overflow: hidden;
  box-shadow: var(--tsn-shadow);
  scroll-margin-top: 90px;
}
#tbx-lp-tsunan-lantern .tour-card[hidden] { display: none; }
#tbx-lp-tsunan-lantern .tour-card__media { position: relative; }
#tbx-lp-tsunan-lantern .tour-card__media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
#tbx-lp-tsunan-lantern .tour-card__tag {
  position: relative;
  display: inline-block;
  margin: 0 4px 0 0;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}
#tbx-lp-tsunan-lantern .tour-card__media .tour-card__tag { position: absolute; top: 12px; }
#tbx-lp-tsunan-lantern .tour-card__tag--day   { left: 12px; background: #2E6FD9; color: #FFFFFF; }
#tbx-lp-tsunan-lantern .tour-card__tag--stay  { left: 12px; background: #7A4FCB; color: #FFFFFF; }
#tbx-lp-tsunan-lantern .tour-card__tag--bus   { left: 84px; background: rgba(6,10,26,0.78); color: #FFFFFF; }
#tbx-lp-tsunan-lantern .tour-card__tag--jr    { left: 84px; background: rgba(6,10,26,0.78); color: #FFFFFF; }
#tbx-lp-tsunan-lantern .tour-card__tag--pickup{ left: auto; right: 12px; background: var(--tsn-lantern); color: #2B1A05; }

#tbx-lp-tsunan-lantern .tour-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px;
}
#tbx-lp-tsunan-lantern .tour-card__title {
  margin: 0 0 8px;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 700;
}
#tbx-lp-tsunan-lantern .tour-card__dep {
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--tsn-text-sub);
}
#tbx-lp-tsunan-lantern .tour-card__spec {
  margin: 0 0 14px;
  padding: 12px 14px;
  background: #FAF7F2;
  border-radius: 10px;
}
#tbx-lp-tsunan-lantern .tour-card__spec > div + div { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--tsn-line); }
#tbx-lp-tsunan-lantern .tour-card__spec dt { font-size: 12px; color: var(--tsn-text-sub); margin-bottom: 2px; }
#tbx-lp-tsunan-lantern .tour-card__spec dd { margin: 0; font-size: 14px; font-weight: 600; }
#tbx-lp-tsunan-lantern .tour-card__price { font-size: 21px !important; font-weight: 700 !important; color: #C2410C; letter-spacing: 0.01em; }
#tbx-lp-tsunan-lantern .tour-card__desc { margin: 0 0 18px; font-size: 14px; flex: 1; }
#tbx-lp-tsunan-lantern .tour-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#tbx-lp-tsunan-lantern .tour-card__actions .btn { width: 100%; font-size: 14px; padding: 12px 10px; }

/* 空状態 */
#tbx-lp-tsunan-lantern .empty-state {
  margin-top: 8px;
  padding: 36px 20px;
  text-align: center;
  background: #FFFFFF;
  border: 1px dashed var(--tsn-line);
  border-radius: var(--tsn-radius);
}
#tbx-lp-tsunan-lantern .empty-state[hidden] { display: none; }
#tbx-lp-tsunan-lantern .empty-state__title { margin: 0 0 8px; font-size: 16px; font-weight: 700; }
#tbx-lp-tsunan-lantern .empty-state__text { margin: 0 0 18px; font-size: 14px; color: var(--tsn-text-sub); }

/* ============================================================
   06. 当日の流れ
============================================================ */
/* WPテーマのインライン .flow{width:1008px;margin-top:82px;margin-bottom:120px} を打ち消す */
#tbx-lp-tsunan-lantern .flow { width: auto; margin: 0; background: var(--tsn-night-800); color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .flow .section-inner { max-width: 760px; }
#tbx-lp-tsunan-lantern .flow .section-eyebrow,
#tbx-lp-tsunan-lantern .flow .section-title { text-align: center; }
#tbx-lp-tsunan-lantern .flow .section-title { color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .flow__switch { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 28px; }
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .flow__switch { display: flex; justify-content: center; } }
#tbx-lp-tsunan-lantern .flow__switch-btn {
  min-height: 48px;
  padding: 10px 20px;
  border: 1px solid rgba(246,242,234,0.28);
  border-radius: 999px;
  background: transparent;
  color: var(--tsn-on-dark-s);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s ease;
}
#tbx-lp-tsunan-lantern .flow__switch-btn.is-active {
  background: var(--tsn-gold);
  border-color: var(--tsn-gold);
  color: #2B1A05;
}
#tbx-lp-tsunan-lantern .timeline[hidden] { display: none; }
#tbx-lp-tsunan-lantern .timeline { position: relative; padding-left: 26px; }
#tbx-lp-tsunan-lantern .timeline::before {
  content: "";
  position: absolute;
  left: 7px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--tsn-gold), rgba(255,217,138,0.15));
}
#tbx-lp-tsunan-lantern .timeline__item { position: relative; padding-bottom: 26px; }
#tbx-lp-tsunan-lantern .timeline__item::before {
  content: "";
  position: absolute;
  left: -26px; top: 7px;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--tsn-night-800);
  border: 2px solid var(--tsn-gold);
}
#tbx-lp-tsunan-lantern .timeline__item--highlight::before {
  background: var(--tsn-gold);
  box-shadow: 0 0 0 6px rgba(255,217,138,0.18);
}
#tbx-lp-tsunan-lantern .timeline__time {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--tsn-gold);
}
#tbx-lp-tsunan-lantern .timeline__body h3 { margin: 0 0 4px; font-size: 17px; }
#tbx-lp-tsunan-lantern .timeline__body p { margin: 0; font-size: 14px; color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .flow__note { margin: 8px 0 0; font-size: 12px; color: var(--tsn-on-dark-s); }

/* ============================================================
   07. 宿泊・食事
============================================================ */
#tbx-lp-tsunan-lantern .stay-info { background: var(--tsn-snow); }
#tbx-lp-tsunan-lantern .media-block { display: grid; gap: 18px; }
#tbx-lp-tsunan-lantern .media-block + .media-block { margin-top: 40px; }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .media-block { grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
  #tbx-lp-tsunan-lantern .media-block--reverse .media-block__figure { order: 2; }
}
#tbx-lp-tsunan-lantern .media-block__figure { margin: 0; }
#tbx-lp-tsunan-lantern .media-block__figure img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--tsn-radius);
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .media-block__body h3 { margin: 0 0 10px; font-size: 20px; }
#tbx-lp-tsunan-lantern .media-block__body p { margin: 0 0 14px; font-size: 15px; }
#tbx-lp-tsunan-lantern .tag-list { display: flex; flex-wrap: wrap; gap: 8px; }
#tbx-lp-tsunan-lantern .tag-list li {
  padding: 5px 12px;
  border-radius: 999px;
  background: #FFFFFF;
  border: 1px solid var(--tsn-line);
  font-size: 12px;
  color: var(--tsn-text-sub);
}

/* ============================================================
   08. 周辺観光
============================================================ */
#tbx-lp-tsunan-lantern .around { background: var(--tsn-paper); }
#tbx-lp-tsunan-lantern .spot-list { display: grid; gap: 20px; }
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .spot-list { grid-template-columns: repeat(3, 1fr); } }
#tbx-lp-tsunan-lantern .spot-card {
  background: #FFFFFF;
  border-radius: var(--tsn-radius);
  overflow: hidden;
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .spot-card figure { margin: 0; }
#tbx-lp-tsunan-lantern .spot-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
#tbx-lp-tsunan-lantern .spot-card h3 { margin: 14px 16px 6px; font-size: 17px; }
#tbx-lp-tsunan-lantern .spot-card p { margin: 0 16px 18px; font-size: 14px; color: var(--tsn-text-sub); }
#tbx-lp-tsunan-lantern .around__note { margin: 14px 0 0; font-size: 12px; color: var(--tsn-text-sub); }

/* ============================================================
   09. 安心ポイント
============================================================ */
#tbx-lp-tsunan-lantern .assurance { background: var(--tsn-snow); }
#tbx-lp-tsunan-lantern .assurance__list { display: grid; gap: 16px; }
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .assurance__list { grid-template-columns: repeat(2, 1fr); } }
#tbx-lp-tsunan-lantern .assurance__list li {
  padding: 18px;
  background: #FFFFFF;
  border-left: 4px solid var(--tsn-lantern);
  border-radius: 0 10px 10px 0;
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .assurance__list h3 { margin: 0 0 6px; font-size: 16px; }
#tbx-lp-tsunan-lantern .assurance__list p { margin: 0; font-size: 14px; color: var(--tsn-text-sub); }

/* ============================================================
   10. バナー
============================================================ */
#tbx-lp-tsunan-lantern .banners { background: var(--tsn-paper); }
#tbx-lp-tsunan-lantern .banner-list { display: grid; gap: 16px; }
@media (min-width: 768px) { #tbx-lp-tsunan-lantern .banner-list { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
#tbx-lp-tsunan-lantern .banner-item a {
  display: block;
  border-radius: var(--tsn-radius);
  overflow: hidden;
  box-shadow: var(--tsn-shadow);
  transition: transform .15s ease;
}
#tbx-lp-tsunan-lantern .banner-item a:hover { transform: translateY(-2px); }
#tbx-lp-tsunan-lantern .banner-item img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* ============================================================
   11. FAQ
============================================================ */
#tbx-lp-tsunan-lantern .faq { background: var(--tsn-snow); }
#tbx-lp-tsunan-lantern .faq-list {
  border: 1px solid var(--tsn-line);
  border-radius: var(--tsn-radius);
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: var(--tsn-shadow);
}
#tbx-lp-tsunan-lantern .faq-item + .faq-item { border-top: 1px solid var(--tsn-line); }
#tbx-lp-tsunan-lantern .faq-item__q {
  position: relative;
  display: block;
  width: 100%;
  padding: 18px 52px 18px 20px;
  border: 0;
  background: transparent;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  text-align: left;
  color: var(--tsn-text);
  cursor: pointer;
}
#tbx-lp-tsunan-lantern .faq-item__q::before,
#tbx-lp-tsunan-lantern .faq-item__q::after {
  content: "";
  position: absolute;
  right: 22px; top: 50%;
  width: 14px; height: 2px;
  background: var(--tsn-lantern-d);
  transition: transform .2s ease;
}
#tbx-lp-tsunan-lantern .faq-item__q::after { transform: rotate(90deg); }
#tbx-lp-tsunan-lantern .faq-item__q[aria-expanded="true"]::after { transform: rotate(0deg); }
#tbx-lp-tsunan-lantern .faq-item__a { padding: 0 20px 20px; }
#tbx-lp-tsunan-lantern .faq-item__a[hidden] { display: none; }
#tbx-lp-tsunan-lantern .faq-item__a p { margin: 0; font-size: 14px; color: var(--tsn-text-sub); }

/* ============================================================
   12. お問い合わせ
============================================================ */
#tbx-lp-tsunan-lantern .contact { background: var(--tsn-night-800); color: var(--tsn-on-dark); padding-bottom: 110px; }
#tbx-lp-tsunan-lantern .contact .section-title { color: var(--tsn-on-dark); }
#tbx-lp-tsunan-lantern .contact__text { margin: -16px 0 24px; text-align: center; font-size: 14px; color: var(--tsn-on-dark-s); }
#tbx-lp-tsunan-lantern .contact__box {
  max-width: 480px;
  margin: 0 auto;
  padding: 24px 20px;
  text-align: center;
  background: var(--tsn-night-700);
  border: 1px solid rgba(246,242,234,0.14);
  border-radius: var(--tsn-radius);
}
#tbx-lp-tsunan-lantern .contact__tel { margin: 0 0 4px; }
#tbx-lp-tsunan-lantern .contact__tel a {
  font-size: 28px;
  font-weight: 700;
  color: var(--tsn-gold);
  text-decoration: none;
  letter-spacing: 0.02em;
}
#tbx-lp-tsunan-lantern .contact__hours { margin: 0 0 18px; font-size: 13px; color: var(--tsn-on-dark-s); }

/* ============================================================
   固定CTAバー
============================================================ */
#tbx-lp-tsunan-lantern .cta-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  background: rgba(11,16,38,0.96);
  border-top: 1px solid rgba(255,217,138,0.28);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.28);
}
#tbx-lp-tsunan-lantern .cta-bar[hidden] { display: none; }
#tbx-lp-tsunan-lantern .cta-bar__text { margin: 0; font-size: 13px; color: var(--tsn-on-dark); line-height: 1.4; }
#tbx-lp-tsunan-lantern .cta-bar__text strong { display: block; font-size: 19px; color: var(--tsn-gold); }
#tbx-lp-tsunan-lantern .cta-bar .btn { flex: 0 0 auto; }
@media (min-width: 768px) {
  #tbx-lp-tsunan-lantern .cta-bar { justify-content: center; gap: 28px; padding: 12px 24px; }
  #tbx-lp-tsunan-lantern .cta-bar__text { font-size: 14px; }
  #tbx-lp-tsunan-lantern .cta-bar__text strong { display: inline; margin-left: 8px; }
}

/* ============================================================
   アクセシビリティ：モーション低減
============================================================ */
@media (prefers-reduced-motion: reduce) {
  #tbx-lp-tsunan-lantern * { animation: none !important; transition: none !important; }
  #tbx-lp-tsunan-lantern .hero__video { display: none; }
}
