/* ==========================================================================
 * esprit tour  /  tour.css      ★本番用（子テーマ配置版）
 * --------------------------------------------------------------------------
 * 置き場所：/wp-content/themes/swell_child/tour.css
 * 効かせ方：functions.php で body に .tour-page が付いたページだけ読み込む。
 *
 * テスト環境版（追加CSS欄に貼ってあるもの）との違いは2点だけ。
 *   1. 全セレクタの .postid-2539 を .tour-page に置き換えてある。
 *      → 投稿IDに縛られないので、ツアーページが増えても $tour_ids に
 *        IDを足すだけでよい。
 *   2. 第24章（Contact Form 7 の全ページ共通9行）を削除してある。
 *      → あの9行は全ページに効かせる必要があり、本番の追加CSS欄に
 *        すでに入っている。子テーマ側にも置くと二重定義になる。
 *      ※ 第21章の .tour-contact div.wpcf7 〜 はツアーページ専用の
 *        フォーム装飾なので、こちらは残してある。消さないこと。
 *
 * ツアーページ共通デザイン
 * ベース：esprittour_masters_Acatalog.html（A案・カタログ型）
 *
 * 2026-09-01 版（西村さんの調整を取り込み）
 *   ・追従バーの項目を等幅に（.p-toc__list > li を flex: 1）
 *   ・ヒーロー見出しを 50px 固定、SPは 9.25vw
 *   ・先行予約の番号を 30px に拡大
 *   ・SPのカラム下余白を !important で確実に効かせる
 *   ・SWELL側の余白打ち消しを追加（第25章）
 *
 * 2026-08-24 版
 *   ・追従目次を SWELL の目次機能（.p-toc）へ置き換え（第2章）
 *   ・フルワイド内側を1080pxまで開放（第23章）
 *   ・.tour-lead / .tour-editorial / .tour-gallery に max-width を追加
 *   ・文字サイズを一段拡大（本文14px→16px ほか）
 *
 * デザイントークン
 *   深緑        #1f3d2b   基調色（CTA帯・罫線・ステップ枠）
 *   濃緑        #162e20   オーバーレイ
 *   金          #a8894f   英字ラベル・ボタン・アクセント罫
 *   生成り      #faf8f4   交互背景・ボックス背景
 *   薄グレー    #efede8   旅程セクション背景
 *   本文        #26241f ／ 補助 #5c574d
 *   罫線        #e3ded4
 *   見出し書体  明朝（游明朝／ヒラギノ明朝）
 *
 * 目次（ページの上から下の順）
 *    0. 変数
 *    1. 共通（見出し・セクション見出し・ボタン・セクション間の余白）
 *    2. 追従目次
 *    3. ヒーロー
 *    4. 告知帯
 *    5. リード
 *    6. 先行予約
 *    7. プラン（タブ）
 *    8. 料金表
 *    9. 含まれるもの
 *   10. プラン選びのご案内
 *   11. 旅程
 *   12. コース紹介
 *   13. サポート
 *   14. 歴史
 *   15. ここが違います（アコーディオン）
 *   16. CTA帯
 *   17. オプション
 *   18. 観戦レポート＋ギャラリー
 *   19. お客様の声
 *   20. FAQ
 *   21. お問合せ
 *   22. 実務フッター
 *   22b. 見出しの2層構成（追従バー用ラベル＋編集見出し）
 *   23. 投稿ごとの表示調整
 *   25. レイアウト微調整（西村さん追記）
 *   26. 資料型ページの部品（パターンA・B）
 *
 * ブレークポイント
 *   スマートフォン  max-width: 782px
 *   タブレット      max-width: 1024px and min-width: 783px
 *
 * 全ページに効く記述は 2 の scroll-behavior だけ。
 * それ以外はすべて tour- クラスで囲ってあるため、他ページに影響しない。
 * ========================================================================== */


/* ==========================================================================
 *  0. 変数
 * ========================================================================== */

:root {
  --tour-green: #1f3d2b;
  --tour-green-deep: #162e20;
  --tour-gold: #a8894f;
  --tour-gold-light: #cbb075;
  --tour-ivory: #faf8f4;
  --tour-gray: #efede8;
  --tour-ink: #26241f;
  --tour-ink-soft: #5c574d;
  --tour-line: #e3ded4;

  --tour-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN",
    "Hiragino Mincho Pro", "Noto Serif JP", serif;

  /* 追従目次 */
  --tour-sticky-top: 72px;
  --tour-anchor-offset: 165px;
}


/* ==========================================================================
 *  1. 共通
 * ========================================================================== */

/* --- tour- 系の見出しを明朝にする ------------------------------------------
 * テーマ既定の装飾（縦バー・下線・背景）も外す。
 * tour- で始まるブロックの中だけが対象なので、他ページには影響しない。
 * -------------------------------------------------------------------------- */

.tour-sec-head h2,
.tour-sec-head h3,
.tour-hero h1,
.tour-lead h2,
.tour-lead h3,
.tour-editorial h2,
.tour-editorial h3,
.tour-story h2,
.tour-story h3,
.tour-contact h2,
.tour-contact h3,
.tour-presale-card h3,
.tour-includes-box h3,
.tour-support-note h3,
.tour-itinerary-day h3 {
  padding: 0;
  background: none;
  border: 0;

  font-family: var(--tour-serif);
  font-weight: 500;
  letter-spacing: 0.06em;
}

.tour-sec-head h2::before,
.tour-sec-head h3::before,
.tour-sec-head h2::after,
.tour-sec-head h3::after,
.tour-hero h1::before,
.tour-hero h1::after,
.tour-lead h2::before,
.tour-lead h3::before,
.tour-lead h2::after,
.tour-lead h3::after,
.tour-editorial h2::before,
.tour-editorial h3::before,
.tour-editorial h2::after,
.tour-editorial h3::after,
.tour-story h2::before,
.tour-story h3::before,
.tour-story h2::after,
.tour-story h3::after,
.tour-contact h2::before,
.tour-contact h3::before,
.tour-contact h2::after,
.tour-contact h3::after,
.tour-presale-card h3::before,
.tour-presale-card h3::after,
.tour-includes-box h3::before,
.tour-includes-box h3::after,
.tour-support-note h3::before,
.tour-support-note h3::after {
  display: none;
}

/* --- セクション見出し（中央寄せ＋英字ラベル） ----------------------------- */

.tour-sec-head {
  margin: 0 auto 52px;
  text-align: center;
}

.tour-sec-head .tour-sec-en,
p.tour-sec-en {
  display: block;
  margin: 0 0 14px;

  color: var(--tour-gold);

  font-family: var(--tour-serif);
  font-size: 12px;
  letter-spacing: 0.3em;
  line-height: 1.6;
}

.tour-sec-head h2,
.tour-sec-head h3 {
  margin: 0;

  color: var(--tour-ink);

  font-size: 25px;
  line-height: 2;
}

/* 濃い背景の上に置く場合 */
.tour-sec-head.is-onDark h2,
.tour-sec-head.is-onDark h3 {
  color: #ffffff;
}

.tour-sec-head.is-onDark .tour-sec-en {
  color: var(--tour-gold-light);
}

/* フルワイドの外に直接置くセクション見出しには上余白を足す
 * （フルワイドの中に入れる場合はフルワイド側のパディングが効く） */
.post_content > .tour-sec-head {
  margin-top: 96px;
}

/* --- ボタン（SWELLボタンの見た目を合わせる） ------------------------------ */

.tour-cta .swell-block-button a.swell-block-button__link,
.tour-plan-help .swell-block-button a.swell-block-button__link,
.tour-contact .swell-block-button a.swell-block-button__link {
  display: inline-block;

  min-width: 0;
  padding: 15px 44px;

  color: #ffffff !important;
  background: var(--tour-gold);
  border: 0;
  border-radius: 2px;

  font-family: inherit;
  font-size: 15.5px;
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 1.6;

  text-decoration: none !important;

  transition: opacity 0.2s ease;
}

.tour-cta .swell-block-button a.swell-block-button__link:hover,
.tour-plan-help .swell-block-button a.swell-block-button__link:hover,
.tour-contact .swell-block-button a.swell-block-button__link:hover {
  opacity: 0.85;
}

/* --- スマートフォン ------------------------------------------------------- */

@media (max-width: 782px) {
  .tour-sec-head {
    margin-bottom: 36px;
  }

  .tour-sec-head h2,
.tour-sec-head h3 {
    font-size: 20px;
    line-height: 1.75;
  }

  .tour-sec-head .tour-sec-en,
  p.tour-sec-en {
    margin-bottom: 11px;
    font-size: 11px;
  }

  .post_content > .tour-sec-head {
    margin-top: 56px;
  }
}


/* ==========================================================================
 *  2. 追従目次（SWELLの目次機能を使う）
 *     SWELLが自動生成する .p-toc を、追従バーの見た目に作り替えている。
 *     H2からページごとに自動生成されるので、ツアーごとの手作業は不要。
 *
 *     ■ 投稿側に必要な設定（これが揃っていないと目次が出ない）
 *       ・表示の上書き設定 → 目次        = 表示
 *       ・表示の上書き設定 → 目次抽出対象 = h2
 *       ・本文のいちばん外側の階層に、見出し（H2）を1つ置き、
 *         追加CSSクラスに tour-toc-anchor を付ける
 *         → SWELLは「最初のH2の直前」に目次を挿すため、
 *           そこが追従バーの出現位置になる。見出し自体はCSSで隠す。
 *
 *     ■ セレクタについて
 *       SWELLが #main_content .p-toc というIDセレクタで
 *       max-width と width を指定しているため、
 *       こちらも #main_content を含めて specificity を上げてある。
 *       また .post_content > .p-toc に限定して、
 *       SWELLの目次モーダル（.p-indexModal）には当てない。
 * ========================================================================== */

/* ページ内リンクのゆっくりした移動を無効化
 * ※このファイルで唯一、全ページに効く記述。徳永さんの元CSSから引き継いでいる。
 *   SWELLのスムーススクロールはJS側で動いているため、この指定を入れても
 *   ページ内リンクの挙動は変わらない（テスト環境で検証済み）。 */
html,
body {
  scroll-behavior: auto !important;
}

/* 旧・カスタムHTMLの追従ナビ。目次版に置き換えたので非表示。
 * 動作確認が取れたら、投稿からカスタムHTMLブロックごと削除してよい。 */
.tour-page .tour-sticky-nav { display: none; }

/* 目次を出すためだけの見出し。画面には出さない */
.tour-page .tour-toc-anchor {
  position: absolute;

  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;

  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* 見出しより上に置く専用アンカー（旧方式・残置分の保険） */
.tour-anchor-marker {
  position: relative;
  top: calc(0px - var(--tour-anchor-offset));

  display: block;
  width: 1px;
  height: 0;

  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
}

/* --- バー本体 ------------------------------------------------------------ */
/* 画面幅いっぱいに敷く。transform を使うと position: sticky が効かなくなるため、
 * 左右のマイナスマージンで広げている。 */
.tour-page #main_content .post_content > .p-toc {
  display: block;

  position: sticky;
  top: var(--tour-sticky-top);
  z-index: 1000;

  width: 100vw;
  max-width: 100vw;

  margin-top: 0;
  margin-right: calc(50% - 50vw);
  margin-bottom: 48px;
  margin-left: calc(50% - 50vw);

  padding: 12px 0;

  background: #ffffff;
  border: 0;
  border-bottom: 1px solid var(--tour-line);
  border-radius: 0;

  /* SWELLの「省略表示」が重ねてくるフェードを解除する */
  max-height: none;
  opacity: 1;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;

  /* 覆いかぶさる疑似要素がクリックを吸うのを防ぐ（下でリンクだけ復帰させる） */
  pointer-events: none;
}

.tour-page.admin-bar #main_content .post_content > .p-toc {
  top: calc(var(--tour-sticky-top) + 23px);
}

/* SWELLが重ねてくる装飾用の疑似要素を消す */
.tour-page #main_content .post_content > .p-toc::before,
.tour-page #main_content .post_content > .p-toc::after,
.tour-page #main_content .post_content > .p-toc .p-toc__list::before,
.tour-page #main_content .post_content > .p-toc .p-toc__list::after {
  content: none !important;
  display: none !important;
}

/* 「目次」の見出しと「もっと見る」ボタンは使わない */
.tour-page #main_content .post_content > .p-toc .p-toc__ttl,
.tour-page #main_content .post_content > .p-toc .p-toc__expandBtn {
  display: none;
}

/* --- 項目の並び ---------------------------------------------------------- */
.tour-page #main_content .post_content > .p-toc .p-toc__list {
  display: flex;
  gap: 8px;

  width: auto;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 16px;

  list-style: none;

  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;

  max-height: none;
  opacity: 1;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;

  pointer-events: auto;
}

.tour-page #main_content .post_content > .p-toc .p-toc__list::-webkit-scrollbar {
  display: none;
}

/* 11項目目以降も表示する（SWELLの省略設定を無効化） */
.tour-page #main_content .post_content > .p-toc.is-omitted .p-toc__list > li[data-omit] {
  display: block;
}

.tour-page #main_content .post_content > .p-toc .p-toc__list > li {
  flex: 1;
  margin: 0;
  padding: 0;
  list-style: none;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.tour-page #main_content .post_content > .p-toc .p-toc__list > li::before,
.tour-page #main_content .post_content > .p-toc .p-toc__list > li::marker {
  content: none;
  display: none;
}

/* 1項目目は tour-toc-anchor の見出しなので表示しない */
.tour-page #main_content .post_content > .p-toc .p-toc__list > li:first-child {
  display: none;
}

/* --- 各項目 -------------------------------------------------------------- */
.tour-page #main_content .post_content > .p-toc a.p-toc__link {
  display: flex;
  align-items: center;
  justify-content: center;

  height: 100%;
  padding: 13px 16px;

  color: var(--tour-ink);
  background: #ffffff;
  border: 1px solid var(--tour-line);

  font-size: 15.5px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4;

  white-space: nowrap;
  text-decoration: none !important;
  opacity: 1;

  pointer-events: auto;
  transition: border-color 0.2s ease;
}

.tour-page #main_content .post_content > .p-toc a.p-toc__link:hover,
.tour-page #main_content .post_content > .p-toc a.p-toc__link:focus-visible {
  color: var(--tour-ink);
  border-color: var(--tour-gold);
}

/* 最後の項目（ご相談・お問い合わせ）は金ベタのボタンにする */
.tour-page #main_content .post_content > .p-toc .p-toc__list > li:last-child a.p-toc__link {
  color: #ffffff;
  background: var(--tour-gold);
  border-color: var(--tour-gold);
}

.tour-page #main_content .post_content > .p-toc .p-toc__list > li:last-child a.p-toc__link:hover {
  color: #ffffff;
  opacity: 0.85;
}

/* 見出しへ飛んだとき、追従バーの下に隠れないようにする */
.tour-page #main_content .post_content h2[id],
.tour-page #main_content .post_content h3[id] {
  scroll-margin-top: calc(var(--tour-sticky-top) + 76px);
}



/* --- スマートフォン ------------------------------------------------------ */
@media (max-width: 782px) {
  :root {
    --tour-anchor-offset: 145px;
  }

  .tour-page #main_content .post_content > .p-toc {
    padding: 7px 0;
    margin-bottom: 32px;
  }

  .tour-page.admin-bar #main_content .post_content > .p-toc {
    top: calc(var(--tour-sticky-top) + 21px);
  }

  .tour-page #main_content .post_content > .p-toc .p-toc__list {
    gap: 5px;
    padding: 0 8px;
  }

  .tour-page #main_content .post_content > .p-toc a.p-toc__link {
    padding: 9px 11px;
    font-size: 13px;
  }
}


/* ==========================================================================
 *  3. ヒーロー
 *     フルワイド（背景画像＋オーバーレイ #162e20 / 50%）の中のグループへ付与
 * ========================================================================== */

.tour-hero {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;

  text-align: center;
}

.tour-hero-en {
  margin: 0 0 20px;

  color: rgba(255, 255, 255, 0.8);

  font-family: var(--tour-serif);
  font-size: 15px;
  letter-spacing: 0.35em;
  line-height: 1.6;
}

.tour-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: 50px;
    line-height: 1.24;
}

@media (max-width: 782px) {
.tour-hero h1 {
    font-size: 9.25vw;
}
}

.tour-hero-lead {
  margin: 20px 0 0;

  color: rgba(255, 255, 255, 0.92);

  font-size: clamp(13px, 1.7vw, 16px);
  letter-spacing: 0.1em;
  line-height: 2;
}

/* 撮影クレジット */
.tour-hero-credit {
  margin: 28px 0 0;

  color: rgba(255, 255, 255, 0.6);

  font-size: 11px;
  letter-spacing: 0.1em;
}

@media (max-width: 782px) {
  .tour-hero {
    padding: 0 18px;
  }

  .tour-hero-en {
    margin-bottom: 14px;
    font-size: 12px;
    letter-spacing: 0.3em;
  }

  .tour-hero-lead {
    margin-top: 16px;
    line-height: 2;
  }
}


/* ==========================================================================
 *  4. 告知帯
 *     フルワイド（背景 #faf8f4 ／ 上下パディング 20）の中の段落へ付与
 * ========================================================================== */

.tour-notice {
  margin: 0;

  color: var(--tour-ink);

  font-size: 15.5px;
  letter-spacing: 0.06em;
  line-height: 2;

  text-align: center;
}

.tour-notice a {
  color: var(--tour-green);

  text-decoration: underline;
  text-decoration-color: var(--tour-gold);
  text-underline-offset: 4px;
}

.tour-notice a:hover {
  color: var(--tour-gold);
}

@media (max-width: 782px) {
  .tour-notice {
    font-size: 13.5px;
    line-height: 2;
  }
}


/* ==========================================================================
 *  5. リード（文＋縦長写真の2カラム）
 *     カラムブロック（左 55% ／ 右 45%）へ付与
 * ========================================================================== */

.wp-block-columns.tour-lead {
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 24px;
  padding-left: 24px;
  align-items: center;
  gap: 60px;

  margin-top: 80px;
  margin-bottom: 80px;
}

.tour-lead h2,
.tour-lead h3 {
  margin: 0 0 30px;

  color: var(--tour-ink);

  font-size: 22px;
  line-height: 2;
}

.tour-lead p:not(.tour-sec-en) {
  margin: 0;

  color: var(--tour-ink);

  font-size: 17px;
  letter-spacing: 0.02em;
  line-height: 2.35;
}

.tour-lead p + p {
  margin-top: 1.6em;
}

/* 右カラムの画像は縦長にトリミング */
.tour-lead .wp-block-image {
  margin: 0;
}

.tour-lead .wp-block-image img {
  display: block;

  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;

  object-fit: cover;
}

.tour-lead figcaption {
  margin-top: 8px;

  color: var(--tour-ink-soft);

  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-align: right;
}

@media (max-width: 1024px) and (min-width: 783px) {
  .wp-block-columns.tour-lead {
    gap: 36px;
  }

  .tour-lead p:not(.tour-sec-en) {
    font-size: 16px;
    line-height: 2.2;
  }
}

@media (max-width: 782px) {
  .wp-block-columns.tour-lead {
    display: block;

    margin-top: 48px;
    margin-bottom: 48px;
  }

  .wp-block-columns.tour-lead > .wp-block-column {
    margin-bottom: 36px;
  }

  .wp-block-columns.tour-lead > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-lead h2,
.tour-lead h3 {
    margin-bottom: 20px;
    font-size: 21px;
  }

  .tour-lead p:not(.tour-sec-en) {
    font-size: 16.5px;
    line-height: 2.15;
  }

  .tour-lead .wp-block-image img {
    aspect-ratio: 4 / 3;
  }
}


/* ==========================================================================
 *  6. 先行予約
 *     フルワイド（背景画像＋オーバーレイ #162e20 / 87%）の中に
 *     セクション見出し → 導入文 → カラム3 → 注記
 * ========================================================================== */

.tour-presale-lead {
  max-width: 680px;
  margin: 0 auto 44px;

  color: rgba(255, 255, 255, 0.9);

  font-size: 16.5px;
  line-height: 2.1;

  text-align: center;
}

.wp-block-columns.tour-presale {
  align-items: stretch;
  gap: 24px;

  max-width: 900px;
  margin: 0 auto;
}

.wp-block-columns.tour-presale > .wp-block-column {
  display: flex;
  min-width: 0;
}

.tour-presale-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;

  width: 100%;

  margin: 0;
  padding: 32px 28px;

  color: var(--tour-ink);
  background: rgba(250, 248, 244, 0.97);
  border: 1px solid var(--tour-line);

  text-align: center;
}

.tour-presale-no {
    display: block;
    margin: 0 0 14px;
    color: var(--tour-gold);
    font-family: var(--tour-serif);
    font-size: 30px;
    letter-spacing: 0.1em;
    line-height: 1.4;
}

.tour-presale-card h3 {
  margin: 0 0 12px;

  color: var(--tour-ink);

  font-size: 18px;
  line-height: 2;
}

.tour-presale-card p:not(.tour-presale-no) {
  margin: 0;

  color: var(--tour-ink-soft);

  font-size: 15px;
  line-height: 2;

  text-align: left;
}

/* セクション末尾の注記 */
.tour-presale-note {
  margin: 36px 0 0;

  color: rgba(255, 255, 255, 0.85);

  font-size: 15.5px;
  line-height: 2;

  text-align: center;
}

.tour-presale-note a {
  color: #e8d9b8;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 1024px) and (min-width: 783px) {
  .wp-block-columns.tour-presale {
    gap: 16px;
  }

  .tour-presale-card {
    padding: 26px 20px;
  }
}

@media (max-width: 782px) {
  .tour-presale-lead {
    margin-bottom: 30px;
    font-size: 15.5px;
    line-height: 2;
  }

  .wp-block-columns.tour-presale {
    display: block;
  }

  .wp-block-columns.tour-presale > .wp-block-column {
    display: block;
    margin-bottom: 20px!important;
  }

  .wp-block-columns.tour-presale > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-presale-card {
    padding: 26px 22px;
  }

  .tour-presale-note {
    margin-top: 26px;
    font-size: 13.5px;
  }
}


/* ==========================================================================
 *  7. プラン（タブ）
 *     SWELLタブブロックへ .tour-plans を付与。
 *     SWELLの内部構造は
 *       .swell-block-tab > ul.c-tabList > li.c-tabList__item > button
 *       .swell-block-tab > .c-tabBody
 *     選択中は button[aria-selected="true"]。
 * ========================================================================== */

.tour-plans-intro {
  max-width: 720px;
  margin: 0 auto 56px;

  color: var(--tour-ink);

  font-size: 16.5px;
  line-height: 2.1;

  text-align: center;
}

/* --- タブの見出し部分 ------------------------------------------------------ */

.tour-plans .c-tabList {
  display: flex;
  gap: 0;

  margin: 0;
  padding: 0;

  list-style: none;
  border-bottom: 1px solid var(--tour-green);
}

.tour-plans .c-tabList__item {
  flex: 1 1 0;
  min-width: 0;

  margin: 0;
  padding: 0;
}

/* 隣り合う枠線が二重にならないように重ねる */
.tour-plans .c-tabList__item + .c-tabList__item {
  margin-left: -1px;
}

.tour-plans .c-tabList__button {
  width: 100%;
  padding: 16px 8px;

  color: var(--tour-ink-soft);
  background: var(--tour-ivory);
  border: 1px solid var(--tour-line);
  border-bottom: none;
  border-radius: 0;

  font-family: var(--tour-serif);
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.6;

  text-align: center;
}

.tour-plans .c-tabList__button:hover {
  color: var(--tour-ink);
}

/* 選択中のタブ */
.tour-plans .c-tabList__button[aria-selected="true"] {
  position: relative;
  z-index: 1;

  margin-bottom: -1px;

  color: var(--tour-ink);
  background: #ffffff;
  border-color: var(--tour-green);
  border-bottom: 1px solid #ffffff;

  font-weight: 500;
}

.tour-plans .c-tabBody {
  padding-top: 40px;
}

/* --- タブの中身 ------------------------------------------------------------ */

/* 各タブの冒頭説明 */
.tour-plan-desc {
  margin: 0 0 28px;

  color: var(--tour-ink-soft);

  font-size: 15.5px;
  line-height: 2;

  text-align: center;
}

/* 各タブの帯状バナー画像 */
.tour-plan-banner {
  margin: 0 0 36px;
}

.tour-plan-banner img {
  display: block;

  width: 100%;
  aspect-ratio: 16 / 5;

  object-fit: cover;
}

@media (max-width: 782px) {
  .tour-plans-intro {
    margin-bottom: 32px;
    font-size: 15.5px;
  }

  /* タブは縦積み */
  .tour-plans .c-tabList {
    flex-direction: column;
    border-bottom: none;
  }

  .tour-plans .c-tabList__item + .c-tabList__item {
    margin-top: -1px;
    margin-left: 0;
  }

  .tour-plans .c-tabList__button {
    padding: 13px 8px;
    border-bottom: 1px solid var(--tour-line);

    font-size: 16px;
  }

  .tour-plans .c-tabList__button[aria-selected="true"] {
    margin-bottom: 0;
    border-color: var(--tour-green);
  }

  .tour-plans .c-tabBody {
    padding-top: 28px;
  }

  .tour-plan-desc {
    margin-bottom: 20px;
    font-size: 15px;
  }

  .tour-plan-banner {
    margin-bottom: 26px;
  }

  .tour-plan-banner img {
    aspect-ratio: 16 / 7;
  }
}


/* ==========================================================================
 *  8. 料金表
 *     テーブルブロックへ .tour-price-tbl を付与（外枠のグループは不要）
 * ========================================================================== */

.wp-block-table.tour-price-tbl {
  margin: 0;
  overflow-x: auto;
}

.tour-price-tbl table {
  width: 100%;
  min-width: 620px;
  margin: 0;

  border-collapse: collapse;

  font-size: 16px;
  line-height: 2;
}

/* 見出し行（表の1行目） */
.tour-price-tbl table tr:first-child > * {
  padding: 16px 12px;

  color: var(--tour-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--tour-green);

  font-family: var(--tour-serif);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;

  text-align: left;
}

/* データ行 */
.tour-price-tbl table tr:not(:first-child) > * {
  padding: 20px 12px;

  color: var(--tour-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--tour-line);

  vertical-align: top;
}

/* 価格列（最終列）は右寄せ・明朝 */
.tour-price-tbl table tr > *:last-child {
  font-family: var(--tour-serif);
  font-size: 17px;
  text-align: right;
  white-space: nowrap;
}

.tour-price-tbl table tr:first-child > *:last-child {
  font-size: 16px;
}

/* 表の下の注記 */
.tour-price-note {
  margin: 18px 0 0;

  color: var(--tour-ink-soft);

  font-size: 13.5px;
  line-height: 2;
}

@media (max-width: 782px) {
  .tour-price-tbl table {
    min-width: 560px;
    font-size: 15px;
  }

  .tour-price-tbl table tr:first-child > * {
    padding: 13px 10px;
    font-size: 15px;
  }

  .tour-price-tbl table tr:not(:first-child) > * {
    padding: 15px 10px;
  }

  .tour-price-tbl table tr > *:last-child {
    font-size: 16px;
  }

  .tour-price-note {
    font-size: 13px;
    line-height: 2;
  }
}


/* ==========================================================================
 *  9. 含まれるもの／含まれないもの
 *     カラムブロック（2列）へ .tour-includes、
 *     各カラム内のグループへ .tour-includes-box
 * ========================================================================== */

.wp-block-columns.tour-includes {
  align-items: stretch;
  gap: 32px;

  max-width: 820px;
  margin: 64px auto 0;
}

.wp-block-columns.tour-includes > .wp-block-column {
  display: flex;
  min-width: 0;
}

.tour-includes-box {
  flex: 1 1 auto;

  margin: 0;
  padding: 32px 32px 28px;

  background: #ffffff;
  border: 1px solid var(--tour-line);
}

.tour-includes-box h3 {
  margin: 0 0 18px;
  padding: 0 0 12px;

  color: var(--tour-ink);
  border-bottom: 1px solid var(--tour-line);

  font-size: 17px;
  letter-spacing: 0.12em;
  line-height: 1.7;
}

.tour-includes-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tour-includes-box li {
  position: relative;

  margin: 0;
  padding: 7px 0 7px 20px;

  color: var(--tour-ink);

  font-size: 15.5px;
  line-height: 2;
}

.tour-includes-box li::before {
  position: absolute;
  top: 17px;
  left: 2px;

  width: 8px;
  height: 1px;

  background: var(--tour-gold);

  content: "";
}

@media (max-width: 782px) {
  .wp-block-columns.tour-includes {
    display: block;
    margin-top: 40px;
  }

  .wp-block-columns.tour-includes > .wp-block-column {
    display: block;
    margin-bottom: 20px!important;
  }

  .wp-block-columns.tour-includes > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-includes-box {
    padding: 26px 22px 22px;
  }
}


/* ==========================================================================
 * 10. プラン選びのご案内
 *     グループへ付与（中は段落＋SWELLボタン）
 * ========================================================================== */

.tour-plan-help {
  max-width: 760px;
  margin: 64px auto 96px;
  padding: 30px 36px 34px;

  background: var(--tour-ivory);
  border: 1px solid var(--tour-line);

  text-align: center;
}

.tour-plan-help p {
  margin: 0;

  color: var(--tour-ink);

  font-size: 16px;
  line-height: 2.1;
}

.tour-plan-help .swell-block-button {
  margin-top: 22px;
}

@media (max-width: 782px) {
  .tour-plan-help {
    margin: 40px auto 56px;
    padding: 24px 22px 26px;
  }

  .tour-plan-help p {
    font-size: 15.5px;
  }
}


/* ==========================================================================
 * 11. 旅程（ステップ）
 *     フルワイド（背景 #efede8）の中に
 *     グループ .tour-itinerary → 1日ぶんのグループ .tour-itinerary-day
 *
 *     .tour-itinerary-day の中は
 *       H3（数字だけ）→ 段落（その日の見出し）→ 段落（説明）
 *     の順。「DAY」の文字はCSSが付ける。
 * ========================================================================== */

.tour-itinerary {
  max-width: 680px;
  margin: 0 auto;
  padding: 0;
}

.tour-itinerary-day {
  position: relative;

  margin: 0;
  padding: 0 0 44px;
}

.tour-itinerary-day:last-child {
  padding-bottom: 0;
}

/* 日付間を結ぶ縦線 */
.tour-itinerary-day:not(:last-child)::before {
  position: absolute;
  top: 60px;
  bottom: 0;
  left: 29px;

  width: 1px;

  background: var(--tour-line);

  content: "";
}

/* WordPressが生成する内部コンテナを2列にする */
.tour-itinerary-day > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  column-gap: 28px;
  align-items: start;

  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}

/* 内部コンテナが生成されない場合の予備 */
.tour-itinerary-day:not(:has(> .wp-block-group__inner-container)) {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  column-gap: 28px;
  align-items: start;
}

/* DAY番号の枠 */
.tour-itinerary-day > h3,
.tour-itinerary-day > .wp-block-group__inner-container > h3 {
  position: relative;
  z-index: 1;

  grid-column: 1;
  grid-row: 1 / span 20;
  align-self: start;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 58px;
  height: 58px;

  margin: 0;
  padding: 14px 0 0;

  color: var(--tour-green) !important;
  background: #ffffff;
  border: 1px solid var(--tour-green);
  border-radius: 0;

  font-family: var(--tour-serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.1;

  text-align: center;
}

/* 枠の上に添える「DAY」の小さい文字
 * テーマ既定の装飾が bottom / background などを持っているので打ち消す */
.tour-itinerary-day > h3::before,
.tour-itinerary-day > .wp-block-group__inner-container > h3::before {
  position: absolute;
  top: 12px;
  right: 0;
  bottom: auto;
  left: 0;

  display: block;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;

  color: inherit;
  background: none;
  border: 0;
  transform: none;

  font-size: 10px;
  letter-spacing: 0.2em;
  line-height: 1;

  text-align: center;

  content: "DAY";
}

.tour-itinerary-day > h3::after,
.tour-itinerary-day > .wp-block-group__inner-container > h3::after {
  display: none;
}

/* 右側の要素 */
.tour-itinerary-day > p,
.tour-itinerary-day > ul,
.tour-itinerary-day > .wp-block-group__inner-container > p,
.tour-itinerary-day > .wp-block-group__inner-container > ul {
  grid-column: 2;

  width: 100%;
  max-width: none !important;
}

/* その日の見出し（H3直後の段落） */
.tour-itinerary-day > h3 + p,
.tour-itinerary-day > .wp-block-group__inner-container > h3 + p {
  margin: 0 0 8px;
  padding: 6px 0 0;

  color: var(--tour-ink);
  background: none;
  border: 0;

  font-family: var(--tour-serif);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.7;
}

/* 説明文 */
.tour-itinerary-day > p:not(:first-of-type),
.tour-itinerary-day > .wp-block-group__inner-container > p:not(:first-of-type) {
  margin: 0;
  padding: 0;

  color: var(--tour-ink-soft);
  background: none;
  border: 0;
  box-shadow: none;

  font-size: 16px;
  line-height: 2.1;
}

/* 宿泊の行（使う場合） */
.tour-itinerary-day p.tour-itinerary-stay {
  margin-top: 10px;

  color: var(--tour-green);

  font-size: 13.5px;
  letter-spacing: 0.06em;
}

@media (max-width: 1024px) and (min-width: 783px) {
  .tour-itinerary-day > .wp-block-group__inner-container {
    column-gap: 22px;
  }
}

@media (max-width: 782px) {
  .tour-itinerary-day {
    padding-bottom: 32px;
  }

  .tour-itinerary-day:not(:last-child)::before {
    top: 52px;
    left: 24px;
  }

  .tour-itinerary-day > .wp-block-group__inner-container,
  .tour-itinerary-day:not(:has(> .wp-block-group__inner-container)) {
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 18px;
  }

  .tour-itinerary-day > h3,
  .tour-itinerary-day > .wp-block-group__inner-container > h3 {
    width: 48px;
    height: 48px;
    font-size: 17px;
  }

  .tour-itinerary-day > h3 + p,
  .tour-itinerary-day > .wp-block-group__inner-container > h3 + p {
    padding-top: 2px;
    font-size: 17.5px;
  }

  .tour-itinerary-day > p:not(:first-of-type),
  .tour-itinerary-day
    > .wp-block-group__inner-container
    > p:not(:first-of-type) {
    font-size: 15.5px;
    line-height: 2;
  }
}


/* ==========================================================================
 * 12. コース紹介（写真と文の2カラム・左右交互）
 *     フルワイド（白／生成りを交互）の中のカラム2列へ .tour-editorial
 *     文章側のカラム内に .tour-sec-en（英字）と h2 を置く
 * ========================================================================== */

.wp-block-columns.tour-editorial {
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 24px;
  padding-left: 24px;
  align-items: center;
  gap: 64px;

  margin-top: 0;
  margin-bottom: 0;
}

.tour-editorial h2,
.tour-editorial h3 {
  margin: 0 0 24px;

  color: var(--tour-ink);

  font-size: 23px;
  line-height: 2;
}

.tour-editorial p:not(.tour-sec-en) {
  margin: 0;

  color: var(--tour-ink);

  font-size: 16.5px;
  line-height: 2.3;
}

.tour-editorial p:not(.tour-sec-en) + p:not(.tour-sec-en) {
  margin-top: 1.5em;
}

/* 英字ラベルは左寄せ（セクション見出しと違い中央寄せにしない） */
.tour-editorial .tour-sec-en {
  text-align: left;
}

.tour-editorial .wp-block-image {
  margin: 0;
}

.tour-editorial .wp-block-image img {
  display: block;

  width: 100%;
  aspect-ratio: 4 / 3;

  object-fit: cover;
}

.tour-editorial figcaption {
  margin-top: 8px;

  color: var(--tour-ink-soft);

  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-align: right;
}

@media (max-width: 1024px) and (min-width: 783px) {
  .wp-block-columns.tour-editorial {
    gap: 36px;
  }

  .tour-editorial h2,
.tour-editorial h3 {
    font-size: 20px;
  }

  .tour-editorial p:not(.tour-sec-en) {
    font-size: 16px;
    line-height: 2.2;
  }
}

@media (max-width: 782px) {
  .wp-block-columns.tour-editorial {
    display: block;
  }

  .wp-block-columns.tour-editorial > .wp-block-column {
    margin-bottom: 32px;
  }

  .wp-block-columns.tour-editorial > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-editorial h2,
.tour-editorial h3 {
    margin-bottom: 18px;
    font-size: 21px;
  }

  .tour-editorial p:not(.tour-sec-en) {
    font-size: 16px;
    line-height: 2.15;
  }
}


/* ==========================================================================
 * 13. サポート
 *     フルワイド（背景 #faf8f4）の中に
 *     セクション見出し → カラム2（写真＋文） → グループ .tour-support-note
 * ========================================================================== */

.wp-block-columns.tour-support {
  align-items: center;
  gap: 48px;

  max-width: 1000px;
  margin: 0 auto;
}

.tour-support p {
  margin: 0;

  color: var(--tour-ink);

  font-size: 16px;
  line-height: 2.2;
}

.tour-support ul {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.tour-support li {
  position: relative;

  margin: 0;
  padding: 10px 0 10px 24px;

  color: var(--tour-ink);
  border-bottom: 1px dotted var(--tour-line);

  font-size: 16px;
  line-height: 2;
}

.tour-support li::before {
  position: absolute;
  top: 21px;
  left: 4px;

  width: 10px;
  height: 1px;

  background: var(--tour-gold);

  content: "";
}

.tour-support .wp-block-image {
  margin: 0;
}

.tour-support .wp-block-image img {
  display: block;

  width: 100%;
  aspect-ratio: 4 / 3;

  object-fit: cover;
}

.tour-support figcaption {
  margin-top: 8px;

  color: var(--tour-ink-soft);

  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-align: right;
}

/* お1人様参加などの補足ボックス */
.tour-support-note {
  max-width: 1000px;
  margin: 56px auto 0;
  padding: 32px 36px;

  background: #ffffff;
  border: 1px solid var(--tour-line);
}

.tour-support-note h3 {
  margin: 0 0 12px;

  color: var(--tour-ink);

  font-size: 19px;
  line-height: 2;
}

.tour-support-note p {
  margin: 0;

  color: var(--tour-ink-soft);

  font-size: 16px;
  line-height: 2.1;
}

@media (max-width: 1024px) and (min-width: 783px) {
  .wp-block-columns.tour-support {
    gap: 32px;
  }
}

@media (max-width: 782px) {
  .wp-block-columns.tour-support {
    display: block;
  }

  .wp-block-columns.tour-support > .wp-block-column {
    margin-bottom: 28px;
  }

  .wp-block-columns.tour-support > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-support-note {
    margin-top: 36px;
    padding: 24px 22px;
  }

  .tour-support-note h3 {
    font-size: 17.5px;
  }
}


/* ==========================================================================
 * 14. 歴史
 *     フルワイド（背景画像＋オーバーレイ #162e20 / 88%）の中のグループ
 * ========================================================================== */

.tour-story {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;

  text-align: center;
}

.tour-story h2,
.tour-story h3 {
  margin: 0 0 28px;

  color: #ffffff;

  font-size: 24px;
  line-height: 2;
}

.tour-story p {
  max-width: 620px;
  margin: 0 auto;

  color: rgba(255, 255, 255, 0.9);

  font-size: 16.5px;
  line-height: 2.3;

  text-align: left;
}

.tour-story p + p {
  margin-top: 1.5em;
}

@media (max-width: 782px) {
  .tour-story {
    padding: 0 18px;
  }

  .tour-story h2,
.tour-story h3 {
    margin-bottom: 20px;
    font-size: 21px;
  }

  .tour-story p {
    font-size: 15.5px;
    line-height: 2.15;
  }
}


/* ==========================================================================
 * 15. ここが違います（アコーディオン）
 *     WordPress標準のアコーディオンブロック4つを囲むグループへ .tour-diff
 *     内部構造は
 *       .wp-block-accordion-item
 *         > h3.wp-block-accordion-heading
 *           > button.wp-block-accordion-heading__toggle
 *             > span.…__toggle-title / span.…__toggle-icon
 *         > .wp-block-accordion-panel
 * ========================================================================== */

.tour-diff {
  max-width: 760px;
  margin: 0 auto 96px;
}

/* 1項目ごとの下罫線 */
.tour-diff .wp-block-accordion-item {
  border-bottom: 1px solid var(--tour-line);
}

/* 見出しからテーマ既定の装飾を外す */
.tour-diff .wp-block-accordion-heading {
  margin: 0;
  padding: 0;

  background: none;
  border: 0;
}

.tour-diff .wp-block-accordion-heading::before,
.tour-diff .wp-block-accordion-heading::after {
  display: none;
}

/* タイトル行（タイトルとアイコンを左右に振り分ける） */
.tour-diff .wp-block-accordion-heading__toggle {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;

  width: 100%;
  padding: 24px 8px 24px 0;

  background: none;
  border: 0;

  text-align: left;
}

.tour-diff .wp-block-accordion-heading__toggle-title {
  flex: 1 1 auto;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-size: 17.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
}

.tour-diff .wp-block-accordion-heading__toggle-icon {
  flex: 0 0 auto;

  color: var(--tour-ink-soft);

  font-size: 16px;
  line-height: 2;
}

/* 開いたときの本文 */
.tour-diff .wp-block-accordion-panel {
  padding: 0 40px 26px 0;

  color: var(--tour-ink-soft);

  font-size: 16px;
  line-height: 2.1;
}

.tour-diff .wp-block-accordion-panel p {
  margin: 0;
}

@media (max-width: 782px) {
  .tour-diff {
    margin-bottom: 56px;
  }

  .tour-diff .wp-block-accordion-heading__toggle {
    padding: 18px 4px 18px 0;
  }

  .tour-diff .wp-block-accordion-heading__toggle-title {
    font-size: 16.5px;
  }

  .tour-diff .wp-block-accordion-panel {
    padding-right: 8px;
    padding-bottom: 20px;
    font-size: 15.5px;
  }
}


/* ==========================================================================
 * 16. CTA帯
 *     フルワイド（背景色 #1f3d2b ／ 上下パディング 60）の中のグループ
 * ========================================================================== */

.tour-cta {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 24px;

  text-align: center;
}

.tour-cta p {
  margin: 0;

  color: rgba(255, 255, 255, 0.9);

  font-size: 16px;
  line-height: 2.1;
}

.tour-cta .swell-block-button {
  margin-top: 26px;
}

.tour-cta-note {
  margin: 20px 0 0;

  color: rgba(255, 255, 255, 0.75);

  font-size: 13.5px;
  line-height: 2;
}

@media (max-width: 782px) {
  .tour-cta {
    padding: 0 18px;
  }

  .tour-cta p {
    font-size: 15.5px;
  }

  .tour-cta .swell-block-button {
    margin-top: 20px;
  }
}


/* ==========================================================================
 * 17. オプション
 *     フルワイド（背景 #faf8f4）の中に
 *     セクション見出し → 段落 .tour-option-intro → リスト .tour-option-list
 * ========================================================================== */

.tour-option-intro {
  max-width: 680px;
  margin: 0 auto 40px;

  color: var(--tour-ink);

  font-size: 16.5px;
  line-height: 2.1;

  text-align: center;
}

.tour-option-list {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;

  columns: 2;
  column-gap: 48px;

  list-style: none;
}

.tour-option-list li {
  position: relative;

  margin: 0;
  padding: 10px 0 10px 24px;

  color: var(--tour-ink);
  border-bottom: 1px dotted var(--tour-line);

  font-size: 16px;
  line-height: 2;

  break-inside: avoid;
}

.tour-option-list li::before {
  position: absolute;
  top: 21px;
  left: 4px;

  width: 10px;
  height: 1px;

  background: var(--tour-gold);

  content: "";
}

.tour-option-note {
  margin: 32px 0 0;

  color: var(--tour-ink-soft);

  font-size: 15.5px;
  line-height: 2;

  text-align: center;
}

@media (max-width: 782px) {
  .tour-option-intro {
    margin-bottom: 26px;
    font-size: 15.5px;
  }

  .tour-option-list {
    columns: 1;
  }

  .tour-option-note {
    margin-top: 24px;
    font-size: 13.5px;
  }
}


/* ==========================================================================
 * 18. 観戦レポート＋ギャラリー
 *     セクション見出し → グループ .tour-report-intro → ギャラリー .tour-gallery
 * ========================================================================== */

.tour-report-intro {
  max-width: 680px;
  margin: 0 auto 48px;

  color: var(--tour-ink);

  font-size: 16.5px;
  line-height: 2.3;
}

.tour-report-intro p {
  margin: 0;
}

.tour-report-intro p + p {
  margin-top: 1.5em;
}

.tour-gallery.wp-block-gallery,
.tour-gallery .wp-block-gallery {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  gap: 8px;
  margin: 0;
}

.tour-gallery img {
  width: 100%;
  aspect-ratio: 1 / 1;

  object-fit: cover;
}

.tour-gallery-note {
  margin: 10px 0 0;

  color: var(--tour-ink-soft);

  font-size: 12px;
  letter-spacing: 0.1em;

  text-align: right;
}

@media (max-width: 782px) {
  .tour-report-intro {
    margin-bottom: 30px;
    font-size: 15.5px;
    line-height: 2.15;
  }

  .tour-gallery.wp-block-gallery,
  .tour-gallery .wp-block-gallery {
    gap: 6px;
  }
}


/* ==========================================================================
 * 19. お客様の声
 *     フルワイド（背景 #faf8f4）の中に
 *     セクション見出し → カラム2 .tour-voice
 *     各カラムに引用ブロック .tour-voice-card を4枚ずつ縦積み
 * ========================================================================== */

.wp-block-columns.tour-voice {
  align-items: stretch;
  gap: 24px;

  max-width: 900px;
  margin: 0 auto;
}

/* 1カラムに複数枚を縦積みする */
.wp-block-columns.tour-voice > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 24px;

  min-width: 0;
}

/* カード本体
 * 引用ブロックの既定装飾（グレー背景・大きな引用符）を打ち消す */
.tour-voice-card,
.tour-voice-card.wp-block-quote {
  display: flex;
  flex-direction: column;

  width: 100%;

  margin: 0;
  padding: 30px 30px 26px;

  background: #ffffff;
  border: 1px solid var(--tour-line);
  border-left: 1px solid var(--tour-line);
  border-radius: 0;

  quotes: none;
}

.tour-voice-card.wp-block-quote::before,
.tour-voice-card.wp-block-quote::after {
  display: none;
}

.tour-voice-card p {
  margin: 0;
  color: var(--tour-ink);
  font-size: 15.5px;
  line-height: 2.1;
}

.tour-voice-card p + p {
  margin-top: 1em;
}

.tour-voice-card cite,
.tour-voice-name {
  display: block;
  margin: 14px 0 0;

  color: var(--tour-ink-soft);

  font-size: 13px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.7;

  text-align: right;
}

.tour-voice-note {
  margin: 28px 0 0;

  color: var(--tour-ink-soft);

  font-size: 13px;
  line-height: 2;

  text-align: center;
}

@media (max-width: 782px) {
  .wp-block-columns.tour-voice {
    display: block;
  }

  .wp-block-columns.tour-voice > .wp-block-column {
    display: block;
    margin-bottom: 16px;
  }

  .wp-block-columns.tour-voice > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .tour-voice-card,
  .tour-voice-card.wp-block-quote {
    margin-bottom: 16px;
    padding: 24px 22px 20px;
  }
}


/* ==========================================================================
 * 20. FAQ
 *     SWELLのFAQブロックへ .tour-faq を付与。
 *     内部構造は
 *       dl.swell-block-faq > div.swell-block-faq__item
 *         > dt.faq_q / dd.faq_a
 *     Q・A のアイコンは faq_q / faq_a の ::before。
 * ========================================================================== */

.tour-faq.swell-block-faq {
  margin: 0;
  padding: 0;
}

.tour-faq .swell-block-faq__item {
  border-bottom: 1px solid var(--tour-line);
}

/* 質問 */
.tour-faq .faq_q {
  margin: 0;
  padding: 22px 8px 22px 44px;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 2;
}

/* 回答 */
.tour-faq .faq_a {
  margin: 0;
  padding: 0 8px 26px 44px;

  color: var(--tour-ink-soft);

  font-size: 16px;
  line-height: 2.1;
}

.tour-faq .faq_a > * {
  margin: 0;
}

/* Q・A のアイコンを、枠なしの明朝文字にする */
.tour-faq .faq_q::before,
.tour-faq .faq_a::before {
  top: 20px;
  left: 6px;

  width: auto;
  height: auto;
  margin: 0;
  padding: 0;

  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  font-family: var(--tour-serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.5;
}

.tour-faq .faq_q::before {
  color: var(--tour-gold);
}

.tour-faq .faq_a::before {
  top: 0;
  color: var(--tour-green);
}


/* ==========================================================================
 * 21. お問合せ
 *     フルワイド（背景画像＋オーバーレイ #162e20 / 90%）の中のグループ
 *     Contact Form 7 を濃い背景に合わせる
 * ========================================================================== */

.tour-contact {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 24px;

  text-align: center;
}

.tour-contact h2,
.tour-contact h3 {
  margin: 0 0 24px;

  color: #ffffff;

  font-size: 24px;
  line-height: 2;
}

/* リード文
 * グループの内側にコンテナが1階層入る場合があるので両方を対象にする */
.tour-contact > p,
.tour-contact > .wp-block-group__inner-container > p,
.tour-contact .tour-contact-lead {
  max-width: 560px;
  margin: 0 auto;

  color: rgba(255, 255, 255, 0.88);

  font-size: 16px;
  line-height: 2.1;
}

/* --- フォーム -------------------------------------------------------------- */

.tour-contact div.wpcf7 {
  max-width: 560px;
  margin: 40px auto 0;
  text-align: left;
}

.tour-contact div.wpcf7 p {
  max-width: none;
  margin: 0 0 18px;

  color: rgba(255, 255, 255, 0.8);

  font-size: 13.5px;
  letter-spacing: 0.1em;
  line-height: 2;
}

.tour-contact div.wpcf7 .required {
  margin-left: 8px;

  color: #e8d9b8 !important;

  font-size: 11.5px;
}

.tour-contact div.wpcf7 input[type="text"],
.tour-contact div.wpcf7 input[type="email"],
.tour-contact div.wpcf7 input[type="url"],
.tour-contact div.wpcf7 input[type="tel"],
.tour-contact div.wpcf7 select,
.tour-contact div.wpcf7 textarea {
  width: 100%;
  padding: 12px 14px;

  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 2px;

  font-family: inherit;
  font-size: 16px;
}

.tour-contact div.wpcf7 textarea {
  height: 110px;
}

.tour-contact div.wpcf7 input::placeholder,
.tour-contact div.wpcf7 textarea::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.tour-contact div.wpcf7 input[type="submit"] {
  display: block;

  width: auto;
  margin: 28px auto 0;
  padding: 16px 52px;

  color: #ffffff;
  background: var(--tour-gold);
  border: 0;
  border-radius: 2px;

  font-size: 16px;
  letter-spacing: 0.12em;

  cursor: pointer;
  transition: opacity 0.2s ease;
}

.tour-contact div.wpcf7 input[type="submit"]:hover {
  opacity: 0.85;
}

@media (max-width: 782px) {
  .tour-contact {
    padding: 0 18px;
  }

  .tour-contact h2,
.tour-contact h3 {
    margin-bottom: 18px;
    font-size: 21px;
  }

  .tour-contact > p,
  .tour-contact > .wp-block-group__inner-container > p,
  .tour-contact .tour-contact-lead {
    font-size: 15.5px;
  }

  .tour-contact div.wpcf7 {
    margin-top: 30px;
  }

  .tour-contact div.wpcf7 input[type="submit"] {
    width: 100%;
    padding: 15px 20px;
  }
}


/* ==========================================================================
 * 22. 実務フッター
 *     グループへ付与（中はリンクを並べた段落）
 *     ※現状のマスターズページでは未使用
 * ========================================================================== */

.tour-utility {
  margin: 0;
  padding: 56px 24px 0;

  border-top: 1px solid var(--tour-line);

  text-align: center;
}

.tour-utility p {
  margin: 0;

  color: var(--tour-ink-soft);

  font-size: 13.5px;
  line-height: 2.4;
}

.tour-utility a {
  display: inline-block;
  padding: 0 16px;

  color: var(--tour-ink-soft);

  text-decoration: none;
}

.tour-utility a:hover {
  color: var(--tour-gold);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.tour-utility-legal {
  margin: 16px 0 0;

  color: var(--tour-ink-soft);

  font-size: 12px;
  line-height: 2;
}

@media (max-width: 782px) {
  .tour-utility {
    padding: 36px 16px 0;
  }

  .tour-utility p {
    font-size: 13px;
    line-height: 2.6;
  }

  .tour-utility a {
    padding: 0 10px;
  }
}


/* --- 見出しの2層構成（追従バー用ラベル＋編集見出し） ----------------------
 * 追従バーはH2の文言をそのまま項目にする。編集された長い見出しは
 * バーに収まらないため、見出しを2つに分けている。
 *
 *   p.tour-sec-en     英字ラベル        ADVANCE BOOKING
 *   h2.tour-sec-label 短いラベル（H2）  先行予約           ← バーに出る文言
 *   p.tour-sec-title  編集見出し（段落） 先行予約のご案内 ── 先着20名様
 *
 * バーに出さないセクションはH2ではなくH3にする。
 * 目次抽出対象が h2 なので、H3は目次に拾われない。
 * 見た目はH2と同じになるよう、上のセレクタで h3 も対象にしてある。
 * -------------------------------------------------------------------------- */

.tour-page h2.tour-sec-label,
.tour-page .tour-sec-label {
  display: block;
  margin: 0 0 16px;
  padding: 0;

  color: var(--tour-ink-soft);
  background: none;
  border: 0;

  font-family: var(--tour-serif);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  line-height: 1.6;
}

.tour-page .tour-sec-label::before,
.tour-page .tour-sec-label::after {
  display: none;
}

.tour-page .tour-sec-head.is-onDark .tour-sec-label {
  color: rgba(255, 255, 255, 0.72);
}

/* 英字ラベルの直後に置く場合は間隔を詰める */
.tour-page .tour-sec-en + .tour-sec-label {
  margin-top: -4px;
}

/* 編集見出し（段落だが、視覚的にはこれが主見出し） */
.tour-page .tour-sec-title {
  margin: 0;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
}

.tour-page .tour-sec-head.is-onDark .tour-sec-title {
  color: #ffffff;
}

/* カラム内の見出し（リード・コース紹介・歴史）は左寄せ・やや小さめ */
.tour-page .tour-lead .tour-sec-title,
.tour-page .tour-editorial .tour-sec-title,
.tour-page .tour-story .tour-sec-title {
  font-size: 23px;
  line-height: 1.8;
}

@media (max-width: 782px) {
  .tour-page .tour-sec-label {
    margin-bottom: 12px;
    font-size: 12px;
  }

  .tour-page .tour-sec-title {
    font-size: 22px;
  }

  .tour-page .tour-lead .tour-sec-title,
  .tour-page .tour-editorial .tour-sec-title,
  .tour-page .tour-story .tour-sec-title {
    font-size: 21px;
  }
}


/* ==========================================================================
 * 23. 投稿ごとの表示調整
 *     本番へ移すときは 2539 を本番の投稿IDに差し替える。
 *     複数ページに適用する場合はIDをカンマで並べる。
 * ========================================================================== */

/* 記事タイトル・日付・カテゴリー・アイキャッチを非表示にする */
.tour-page .p-articleHead,
.tour-page .p-articleMetas,
.tour-page .p-articleThumb {
  display: none;
}

/* 自動生成される目次を隠す（追従目次があるため） */
.tour-page .p-toc {
  display: none;
}

/* フルワイドブロックを画面幅いっぱいに広げる
 * 画面の中心を基準に配置するので、中身の中央寄せがずれない */
.tour-page .swell-block-fullWide {
  position: relative;
  left: 50%;

  width: 100vw;
  max-width: 100vw;

  margin-right: 0;
  margin-left: 0;

  transform: translateX(-50%);
}

/* ページ全体を白にする
 * サイト既定の背景（生成り寄り）と記事エリアの白との境目が出て、
 * 「箱に入っている」印象になるため、このページだけ白で統一する */
.tour-page #body_wrap,
.tour-page #content,
.tour-page #main_content,
.tour-page .l-mainContent__inner,
.tour-page .post_content {
  background: #ffffff;
}

/* 本文の横幅を1080pxに広げる（A案と同じ）
 * 追従目次の幅とも揃う */
.tour-page #content,
.tour-page #main_content,
.tour-page .l-mainContent__inner {
  max-width: none;
}

.tour-page .post_content {
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
}

/* フルワイドの内側を 1080px まで開放する。
 * SWELLは .l-article で「記事幅」に絞ってくるが、A案は
 * セクションごとに幅を変える設計なので、上限だけ広げて
 * あとは各セクションの max-width（680〜1080）に任せる。 */
.tour-page #main_content .swell-block-fullWide__inner.l-article {
  max-width: 1080px;
}

/* --- 英字ラベルと和文ラベルを1行に並べる ---------------------------------- */
/* tour-sec-label があるセクションだけに効かせる（無い所は今までどおり） */
.tour-page .tour-sec-head:has(.tour-sec-label) {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  column-gap: 18px;
}

.tour-page .tour-sec-head:has(.tour-sec-label) .tour-sec-en,
.tour-page .tour-sec-head:has(.tour-sec-label) .tour-sec-label {
  margin-bottom: 16px;
}

.tour-page .tour-sec-head:has(.tour-sec-label) .tour-sec-title {
  flex-basis: 100%;
}

/* --- 日本語見出しの改行位置を整える --------------------------------------
 * 日本語には単語の区切りがないため、放っておくと「観戦ゴル／フツアー」の
 * ように語の途中で折り返される。word-break: auto-phrase は文節で折り返す。
 * ただし Chrome 系のみ対応で、WebKit（iPhone）では無視される。
 * text-wrap: balance は行長を揃えようとして1行目を短くし、日本語では
 * かえって語の途中で切れるため使わない（試して悪化したので削除済み）。
 * -------------------------------------------------------------------------- */
.tour-page .tour-sec-title,
.tour-page .tour-sec-head h2,
.tour-page .tour-sec-head h3,
.tour-page .tour-hero h1,
.tour-page .tour-hero-lead,
.tour-page .tour-lead h2,
.tour-page .tour-lead h3,
.tour-page .tour-editorial h2,
.tour-page .tour-editorial h3,
.tour-page .tour-story h2,
.tour-page .tour-story h3,
.tour-page .tour-contact h2,
.tour-page .tour-contact h3 {
  word-break: auto-phrase;
  line-break: strict;
}

/* 見出しに手で入れた改行は、PCでは無効にする */
@media (min-width: 783px) {
  .tour-page .tour-sec-title br,
  .tour-page .tour-sec-head h2 br,
  .tour-page .tour-sec-head h3 br,
  .tour-page .tour-hero h1 br,
  .tour-page .tour-editorial h2 br,
  .tour-page .tour-editorial h3 br,
  .tour-page .tour-story h2 br,
  .tour-page .tour-story h3 br {
    display: none;
  }
}

/* --- 追従バーの項目を中央に寄せる ---------------------------------------- */
/* SPは横スクロールするため flex-start のまま。
 * 中央寄せ＋overflow だと、はみ出したとき左端に戻れなくなる。 */
@media (min-width: 783px) {
  .tour-page #main_content .post_content > .p-toc .p-toc__list {
    justify-content: center;
  }
}

/* --- スマホ：お問い合わせボタンを右端に固定する -------------------------- */
/* 他の項目は横スクロールし、金ボタンだけ常に見える状態にする。
 * 並び順は変えないので、読み終えた先にCTAがある設計は保たれる。 */
@media (max-width: 782px) {
  .tour-page #main_content .post_content > .p-toc .p-toc__list > li:last-child {
    position: sticky;
    right: 0;
    z-index: 2;

    padding-left: 6px;
    background: #ffffff;
  }
}

/* ==========================================================================
 * 25. レイアウト微調整（西村さん追記）
 *     SWELL 側の余白を打ち消して、ページ全体を上下左右に詰める。
 * ========================================================================== */

.tour-page .l-mainContent__inner>.post_content {
    margin: 0 auto;
}
.tour-page .-frame-on .l-mainContent {
    padding: 0;
}
.tour-page .l-content {
    padding-top: 0;
}

@media not all and (min-width: 960px) {
    .tour-page .sp-py-20 {
        padding-bottom: 1em !important;
        padding-top: 1em !important;
    }
}




/* ==========================================================================
 * 26. 資料型ページの部品（パターンA・B）
 *
 *     日程・料金・コースといった事実を主役にしたページ用。
 *     マスターズページ（読み物型）とは別系統だが、色・書体・幅・追従バー・
 *     CTA帯・お問い合わせ帯は共通のものを使う。
 *
 *     ■ この章だけで完結している
 *       1〜25章には一切手を入れていない。この章を丸ごと削れば、
 *       マスターズページは元のまま動く。
 *
 *     ■ プレフィックスを付けていない理由
 *       tour- で始まるクラスは、ツアーページの本文にしか存在しない。
 *       さらに本番では functions.php が tour-hero を見て
 *       このファイル自体を読み込むかどうかを決めているため、
 *       他ページには最初から届かない。
 *
 *     ■ 英字ラベルの書体について
 *       デモHTMLでは等幅フォントを使っているが、本番サイトは
 *       そのフォントを読み込んでいない。フォントを1つ増やすと
 *       全ページの表示が遅くなるため、A案と同じ「明朝＋広い字間」で表現する。
 *
 *     目次
 *       26-0  この章で使う見出しのリセット
 *       26-1  .tour-about       ツアー概要（1カラム）
 *       26-2  .tour-spec        スペック表
 *       26-3  .tour-sched       日程
 *       26-4  .tour-courses     コース名鑑
 *       26-5  .tour-hotels      ホテル
 *       26-6  .tour-steps       お申し込みの流れ
 *       26-7  .tour-say         文章だけの帯
 * ========================================================================== */


/* --------------------------------------------------------------------------
 * 26-0  この章で使う見出しのリセット
 *       SWELLがh3・h4に付ける装飾（縦バー・下線・背景）を外し、明朝に戻す。
 * -------------------------------------------------------------------------- */

.tour-about h3,
.tour-about h4,
.tour-sched-day h4,
.tour-course h4,
.tour-hotel h4,
.tour-step h4 {
  margin: 0;
  padding: 0;

  background: none;
  border: 0;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-weight: 500;
  letter-spacing: 0.05em;
}

.tour-about h3::before,
.tour-about h3::after,
.tour-about h4::before,
.tour-about h4::after,
.tour-sched-day h4::before,
.tour-sched-day h4::after,
.tour-course h4::before,
.tour-course h4::after,
.tour-hotel h4::before,
.tour-hotel h4::after,
.tour-step h4::before,
.tour-step h4::after {
  display: none;
}

/* この章のグループは、WordPressが内部コンテナを作る場合と作らない場合がある。
   どちらでも同じ結果になるよう、両方に同じ指定を当てる。 */
.tour-sched > .wp-block-group__inner-container,
.tour-courses > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;

  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}

.tour-sched:not(:has(> .wp-block-group__inner-container)),
.tour-courses:not(:has(> .wp-block-group__inner-container)) {
  display: flex;
  flex-direction: column;
}


/* --------------------------------------------------------------------------
 * 26-1  .tour-about       ツアー概要（1カラム）
 *       写真を横に置かない場合の概要。写真を置く場合は A案の .tour-lead を使う。
 *       ブロック構成： グループ（見出しH3 → 段落 → 段落）
 * -------------------------------------------------------------------------- */

.tour-about {
  max-width: 720px;
  margin: 0 auto;
}

.tour-about h3 {
  margin: 0 0 30px;
  font-size: 22px;
  line-height: 1.9;
}

.tour-about p {
  margin: 0 0 26px;

  color: var(--tour-ink);

  font-size: 17px;
  line-height: 2.35;
}

.tour-about p:last-child {
  margin-bottom: 0;
}


/* --------------------------------------------------------------------------
 * 26-2  .tour-spec        スペック表
 *       日程・料金・催行時期などを、左に項目名・右に値で並べる。
 *       ブロック構成： テーブルブロック（2列）へ .tour-spec を付与
 *
 *       右側の値の中で、数字を大きく見せたい部分は「太字」にする。
 *       補足の細かい文は、セル内で改行（Shift + Enter）してから
 *       「打ち消し線ではない」通常の文字のまま入れてよい。
 * -------------------------------------------------------------------------- */

.wp-block-table.tour-spec {
  max-width: 1080px;
  margin: 0 auto;

  overflow-x: auto;
}

.tour-spec table {
  width: 100%;
  min-width: 520px;
  margin: 0;

  border-collapse: collapse;
}

.tour-spec table td {
  padding: 18px 24px;

  color: var(--tour-ink);
  background: transparent;
  border: 1px solid var(--tour-line);

  font-size: 16px;
  line-height: 1.95;

  vertical-align: middle;

  font-variant-numeric: tabular-nums;
}

/* 左の列＝項目名 */
.tour-spec table td:first-child {
  width: 1%;

  color: var(--tour-ink-soft);
  background: var(--tour-ivory);

  font-family: var(--tour-serif);
  font-size: 13.5px;
  letter-spacing: 0.16em;

  white-space: nowrap;
}

/* 右の列で太字にした部分＝大きく見せたい数字 */
.tour-spec table td:last-child strong,
.tour-spec table td:last-child b {
  margin-right: 6px;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

@media (max-width: 782px) {
  .tour-spec table td {
    padding: 14px 16px;
    font-size: 15px;
  }

  .tour-spec table td:first-child {
    font-size: 12.5px;
    letter-spacing: 0.12em;
  }

  .tour-spec table td:last-child strong,
  .tour-spec table td:last-child b {
    font-size: 21px;
  }
}


/* --------------------------------------------------------------------------
 * 26-3  .tour-sched       日程
 *       左に日数、右に内容。日数が多いページでも読めるよう横罫で区切る。
 *
 *       ブロック構成
 *         グループ .tour-sched
 *           └ グループ .tour-sched-day       … 1日ぶん。日数だけ増やす
 *                ├ 見出し H4                  … 数字だけ（「1」「2」）
 *                ├ 段落                       … その日の見出し
 *                ├ 段落                       … 説明（無くてよい）
 *                └ リスト .tour-sched-meta    … 日付・GOLF・宿泊地など（無くてよい）
 *
 *       「DAY」の文字はCSSが付けるので、本文には書かない。
 * -------------------------------------------------------------------------- */

.tour-sched {
  max-width: 1080px;
  margin: 0 auto;

  border-top: 1px solid var(--tour-line);
}

.tour-sched-day {
  margin: 0;
  padding: 30px 0;

  border-bottom: 1px solid var(--tour-line);
}

.tour-sched-day > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  column-gap: 28px;
  align-items: start;

  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}

.tour-sched-day:not(:has(> .wp-block-group__inner-container)) {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  column-gap: 28px;
  align-items: start;
}

/* 日数（左） */
.tour-sched-day h4 {
  grid-column: 1;
  grid-row: 1 / 99;

  padding-top: 22px;

  color: var(--tour-ink);

  font-size: 38px;
  line-height: 1;

  font-variant-numeric: tabular-nums;
}

/* 「DAY」の文字 */
.tour-sched-day h4::before {
  display: block;
  margin-bottom: 6px;

  color: var(--tour-gold);

  font-family: var(--tour-serif);
  font-size: 11px;
  letter-spacing: 0.22em;
  line-height: 1;

  content: "DAY";
}

/* 右の列に入るもの */
.tour-sched-day > .wp-block-group__inner-container > :not(h4),
.tour-sched-day > :not(h4) {
  grid-column: 2;
}

/* その日の見出し（右の1つめの段落） */
.tour-sched-day p:first-of-type {
  margin: 0;

  color: var(--tour-ink);

  font-family: var(--tour-serif);
  font-size: 19px;
  letter-spacing: 0.03em;
  line-height: 1.75;
}

/* 説明（2つめ以降の段落） */
.tour-sched-day p:not(:first-of-type) {
  margin: 11px 0 0;

  color: var(--tour-ink-soft);

  font-size: 15px;
  line-height: 2.05;
}

/* 日付・GOLF・宿泊地などの小さなラベル */
.tour-sched-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;

  margin: 13px 0 0;
  padding: 0;

  list-style: none;
}

.tour-sched-meta li {
  margin: 0;
  padding: 3px 10px;

  color: var(--tour-ink-soft);

  border: 1px solid var(--tour-line);

  font-size: 12px;
  letter-spacing: 0.06em;
  line-height: 1.8;

  list-style: none;
  white-space: nowrap;
}

/* 太字にしたラベルだけ金で強調する（観戦日・特別イベントなど） */
.tour-sched-meta li strong,
.tour-sched-meta li b {
  font-weight: 400;
}

.tour-sched-meta li:has(strong),
.tour-sched-meta li:has(b) {
  color: var(--tour-gold);
  background: rgba(168, 137, 79, 0.07);
  border-color: var(--tour-gold);
}

@media (max-width: 782px) {
  .tour-sched-day {
    padding: 24px 0;
  }

  .tour-sched-day > .wp-block-group__inner-container,
  .tour-sched-day:not(:has(> .wp-block-group__inner-container)) {
    grid-template-columns: 58px minmax(0, 1fr);
    column-gap: 18px;
  }

  .tour-sched-day h4 {
    padding-top: 18px;
    font-size: 29px;
  }

  .tour-sched-day p:first-of-type {
    font-size: 17px;
  }
}


/* --------------------------------------------------------------------------
 * 26-4  .tour-courses     コース名鑑
 *       コース名・順位・紹介文を、罫線で区切って並べる。
 *
 *       ブロック構成
 *         グループ .tour-courses
 *           └ グループ .tour-course           … 1コースぶん
 *                ├ 段落 .tour-course-rank      … 「世界 28 位」など（無くてよい）
 *                ├ 見出し H4                   … コース名
 *                └ 段落                        … 紹介文（無くてよい）
 *
 *       順位は本文では見出しの前に置くが、画面上は見出しの右に並ぶ。
 *       順位が無いコースは、その段落ごと削除すればよい。
 * -------------------------------------------------------------------------- */

.tour-courses {
  max-width: 1080px;
  margin: 0 auto;

  border-top: 1px solid var(--tour-line);
}

.tour-course {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 14px;

  margin: 0;
  padding: 24px 0;

  border-bottom: 1px solid var(--tour-line);
}

.tour-course > .wp-block-group__inner-container {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 14px;

  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}

.tour-course h4 {
  order: 1;

  font-size: 19px;
  line-height: 1.6;
}

.tour-course-rank {
  order: 2;

  margin: 0;
  padding: 3px 10px;

  color: #ffffff;
  background: var(--tour-gold);

  font-family: var(--tour-serif);
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 1.6;

  white-space: nowrap;
}

.tour-course p:not(.tour-course-rank) {
  order: 3;
  flex-basis: 100%;

  margin: 9px 0 0;

  color: var(--tour-ink-soft);

  font-size: 15px;
  line-height: 2;
}

@media (max-width: 782px) {
  .tour-course h4 {
    font-size: 17.5px;
  }

  .tour-course p:not(.tour-course-rank) {
    font-size: 14.5px;
    line-height: 1.95;
  }
}


/* --------------------------------------------------------------------------
 * 26-5  .tour-hotels      ホテル
 *       ブロック構成
 *         カラム .tour-hotels（2列）
 *           └ 各カラム → グループ .tour-hotel
 *                ├ 画像                        … 無くてよい
 *                ├ 段落 .tour-hotel-nights     … 「PORTRUSH 4 NIGHTS」など
 *                ├ 見出し H4                   … ホテル名
 *                └ 段落                        … 紹介文（無くてよい）
 * -------------------------------------------------------------------------- */

.wp-block-columns.tour-hotels {
  max-width: 1080px;
  margin: 0 auto;
  gap: 28px;
}

.tour-hotel {
  height: 100%;
  padding: 28px 30px;

  background: #ffffff;
  border: 1px solid var(--tour-line);
}

.tour-hotel .wp-block-image,
.tour-hotel figure {
  margin: -28px -30px 20px;
}

.tour-hotel img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;

  object-fit: cover;
}

.tour-hotel-nights {
  margin: 0 0 10px;

  color: var(--tour-gold);

  font-family: var(--tour-serif);
  font-size: 11.5px;
  letter-spacing: 0.22em;
  line-height: 1.6;
}

.tour-hotel h4 {
  margin: 0 0 14px;
  padding-bottom: 14px;

  border-bottom: 1px solid var(--tour-line);

  font-size: 18px;
  line-height: 1.7;
}

.tour-hotel p:not(.tour-hotel-nights) {
  margin: 0;

  color: var(--tour-ink-soft);

  font-size: 14.5px;
  line-height: 1.95;
}

@media (max-width: 782px) {
  .wp-block-columns.tour-hotels {
    gap: 20px;
  }

  .wp-block-columns.tour-hotels > .wp-block-column {
    margin-bottom: 20px !important;
  }

  .wp-block-columns.tour-hotels > .wp-block-column:last-child {
    margin-bottom: 0 !important;
  }
}


/* --------------------------------------------------------------------------
 * 26-6  .tour-steps       お申し込みの流れ
 *       ブロック構成
 *         カラム .tour-steps（4列）
 *           └ 各カラム → グループ .tour-step
 *                ├ 段落 .tour-step-no          … 「STEP 1」
 *                ├ 見出し H4                   … 見出し
 *                └ 段落                        … 説明
 * -------------------------------------------------------------------------- */

.wp-block-columns.tour-steps {
  max-width: 1080px;
  margin: 0 auto;
  gap: 1px;

  background: var(--tour-line);
}

.tour-step {
  height: 100%;
  padding: 26px 24px;

  background: #ffffff;
}

.tour-step-no {
  margin: 0 0 11px;

  color: var(--tour-gold);

  font-family: var(--tour-serif);
  font-size: 11.5px;
  letter-spacing: 0.2em;
  line-height: 1.6;
}

.tour-step h4 {
  margin: 0 0 11px;

  font-size: 17px;
  line-height: 1.7;
}

.tour-step p:not(.tour-step-no) {
  margin: 0;

  color: var(--tour-ink-soft);

  font-size: 13.5px;
  line-height: 1.95;
}

@media (max-width: 782px) {
  .wp-block-columns.tour-steps {
    gap: 1px;
  }

  .wp-block-columns.tour-steps > .wp-block-column {
    margin-bottom: 0 !important;
  }
}


/* --------------------------------------------------------------------------
 * 26-7  .tour-say         文章だけの帯
 *       写真を敷かない緑の帯。写真が少ないページで、
 *       日程とコースの間に「読ませる場所」をひとつ作るために使う。
 *
 *       ブロック構成
 *         フルワイド（背景色 #1f3d2b）
 *           └ グループ .tour-say
 *                ├ 段落 .tour-sec-en           … 英字ラベル（無くてよい）
 *                └ 段落                        … 本文
 * -------------------------------------------------------------------------- */

.tour-say {
  max-width: 860px;
  margin: 0 auto;
}

.tour-say .tour-sec-en {
  margin: 0 0 26px;
  color: var(--tour-gold-light);
}

.tour-say p:not(.tour-sec-en) {
  margin: 0;

  color: #ffffff;

  font-family: var(--tour-serif);
  font-size: 22px;
  letter-spacing: 0.05em;
  line-height: 2.15;
}

@media (max-width: 782px) {
  .tour-say p:not(.tour-sec-en) {
    font-size: 18px;
    line-height: 2.05;
  }
}


/* ==========================================================================
 *  27. 追従バーの保険
 *      投稿ごとの設定に左右されず、バーを1段に保つための指定。
 *      第2章への追記のため、第2章より後に置く必要がある。
 * ========================================================================== */

/* 27-1  入れ子の項目（H3以下）はバーに出さない
 *
 * 投稿の「目次抽出対象」が h2 だけになっていない場合、
 * SWELLはH3以下を入れ子のリストとして親項目の中に出力する。
 * それが縦に積まれるため、バーが2段以上の高さになる。
 * バーに出すのはH2だけなので、入れ子は表示しない。 */
.tour-page #main_content .post_content > .p-toc .p-toc__list > li ul,
.tour-page #main_content .post_content > .p-toc .p-toc__list > li ol {
  display: none;
}

/* 27-2  1段を維持する
 *
 * 項目が多いとき、長いときは、折り返さずに横スクロールさせる。 */
.tour-page #main_content .post_content > .p-toc .p-toc__list {
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
}

/* 27-3  高さの上限を決めておく
 *
 * 入れ子を消しても、想定外の要素が入ったときに縦へ伸びないようにする。 */
.tour-page #main_content .post_content > .p-toc .p-toc__list > li,
.tour-page #main_content .post_content > .p-toc a.p-toc__link {
  max-height: 56px;
  overflow: hidden;
}

@media (max-width: 782px) {
  .tour-page #main_content .post_content > .p-toc .p-toc__list > li,
  .tour-page #main_content .post_content > .p-toc a.p-toc__link {
    max-height: 44px;
  }
}
