/* ==========================================================
   共通設定
========================================================== */

/* 本文：読みやすさ重視 */
body {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.85;
  font-weight: 400;
  color: #222;
  background: #faf7f0;
}



/* ロゴ */
.site-logo a {
  font-size: 24px;
  font-weight: bold;
  color: #333;
  text-decoration: none;
}

/* ==========================================================
   HEADER
========================================================== */

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 30px;
  background: #faf7f0;
}

/* ナビ + SNS 全体ラッパー */
.header-nav {
  display: flex;
  align-items: center;
  gap: 30px;
}

/* メニュー */
.header-menu {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header-menu li a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
  transition: 0.2s;
}

.header-menu li a:hover {
  opacity: 0.7;
}

/* SNS */
.header-sns {
  display: flex;
  gap: 12px;
  margin-left: 25px;
}

.header-sns a {
  font-size: 20px;
  color: #673ab7;
  text-decoration: none;
}
.header-sns a:hover {
  opacity: 0.7;
}

/* ==========================================================
   FRONT PAGE（トップ）
========================================================== */

.front-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

.simple-slider {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 12px;
  margin-bottom: 30px;
}

.simple-slider img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;  /* 画像全体を表示、縦横比維持 */
  object-position: center;
  opacity: 0;
  transition: opacity 1s ease;
}

.simple-slider img.active {
  opacity: 1;
}

/* ==========================================================
   カード一覧（共通）
========================================================== */

.card-list {
  display: flex;
  flex-wrap: wrap;
  gap: 25px;
}

.card {
  width: calc(33.333% - 17px);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #eee;
  box-shadow: 0 3px 12px rgba(0,0,0,0.08);
  transition: .3s;
}
.card:hover {
  transform: translateY(-6px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}

.card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}


.card-title {
  padding: 12px 15px 5px;
  font-size: 18px;
  font-weight: bold;
}
.card-date {
  padding: 0 15px 12px;
  font-size: 14px;
  color: #666;
}

/* ▼ NEWS（紙グレー） */
.news-section h2 {
  border-left: 6px solid #b8b2a7;
  padding-left: 10px;
  color: #3a3a3a;
}

.news-section .card {
  background: #f5f5f5;        /* 薄いグレー */
  border-color: #e0e0e0;
}

/* 最新ニュース：完全グレー統一 */
.news-card {
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
}

.news-card .card-title {
  color: #333;
}

.news-card .card-date {
  color: #777;
}

/* ==========================================
   ニュース一覧（archive-news）色なし・文字だけ
========================================== */

/* カードっぽさを完全に消す */
.post-type-archive-news .card,
.post-type-archive-news .news-card,
.post-type-archive-news article {
  background: transparent;
  border: none;
  box-shadow: none;
}

/* 1件ずつの区切りだけ残す */
.post-type-archive-news .card,
.post-type-archive-news article {
  padding: 14px 0;
  border-bottom: 1px solid #ddd;
}

/* タイトル */
.post-type-archive-news .card-title,
.post-type-archive-news h2,
.post-type-archive-news a {
  color: #333;
  font-weight: 600;
  text-decoration: none;
}

/* 日付 */
.post-type-archive-news .card-date,
.post-type-archive-news .news-date {
  color: #777;
  font-size: 14px;
}

/* hoverは下線だけ */
.post-type-archive-news a:hover {
  text-decoration: underline;
}

/* ==========================================
   フロントページ：最新ニュースをグレーに
========================================== */

/* 見出し（左の線＋文字） */
.home .news-section h2 {
  border-left: 6px solid #9e9e9e; /* グレーの線 */
  color: #333;                   /* 文字もグレー */
  padding-left: 10px;
}


/* ▼ 駅（青） */
.station-section h2 { border-left: 6px solid #2c6ad3; padding-left: 10px; }
.station-section .card { background: #e3f2fd; border-color: #bbd1ff; }

/* ▼ バス（緑） */
.bus-section h2 { border-left: 6px solid #2c9c4b; padding-left: 10px; }
.bus-section .card { background: #f1f8e9; border-color: #b5e3c4; }

/* ==========================================================
   中央寄せメインレイアウト
========================================================== */

.page-main,
.station-single,
.busstop-single {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
}


.page-main h1 {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 30px;
}

/* ==========================================================
   Single News（赤）
========================================================== */

.single-news h1.news-title {
  font-size: 32px;
  margin-bottom: 10px;
}

.single-news .news-date {
  color: #777;
  margin-bottom: 25px;
}

.single-news .news-content {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 30px;
}

/* 戻るボタン（NEWS・グレー） */
.back-link a {
  display: inline-block;
  padding: 10px 16px;
  background: #f3f3f3;     /* 明るいグレー */
  color: #333;             /* 文字は濃グレー */
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  border: 1px solid #ddd;  /* 枠線でボタン感 */
  transition: 0.2s;
}

.back-link a:hover {
  background: #e6e6e6;
}


/* ==========================================================
   Single Station（青）
========================================================== */

/* ============================================
   駅個別ページ（single-station）最適化
============================================ */
.station-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* タイトル */
.station-single .station-title {
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 25px;
  color: #222;
  line-height: 1.4;
}

/* 写真 */
.station-single .station-photo {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 25px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.back-link-station a {
  display: inline-block;
  padding: 10px 20px;
  background: #e7f0ff;         /* 薄い青 */
  color: #0d47a1;              /* 濃い青 */
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  border: 1px solid #9bbcf7;
  transition: 0.2s;
}

.back-link-station a:hover {
  background: #0d47a1;
  color: #fff;
}

/* 訪問地＆訪問日 */
.station-single .station-info {
  font-size: 16px;
  margin-bottom: 10px;
  color: #333;
}

/* メモ */
.station-single .memo-head {
  font-size: 18px;
  margin-top: 30px;
  margin-bottom: 10px;
}

.station-single .memo-text {
  line-height: 1.8;
  margin-bottom: 30px;
  font-size: 15px;
}

/* 地図 */
.station-single .map {
  margin: 30px 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.station-single iframe {
  width: 100%;
  border: none;
}

/* 戻る（青） */
.back-link-station a {
  display: inline-block;
  padding: 10px 16px;
  background: #e7f0ff;
  color: #0d47a1;
  border-radius: 6px;
  text-decoration: none;
}
.back-link-station a:hover { opacity: .8; }

/* ==========================================================
   Single Busstop（緑）
========================================================== */

/* ============================
   バス停シングルページ
   ============================ */
/* ============================
   バス停シングルページ（stationと同じ）
   ============================ */
.bus-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* タイトル */
.bus-single .bus-title {
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 25px;
  color: #222;
  line-height: 1.4;
}

/* 写真（複数あっても同じデザイン） */
.bus-single .bus-photo {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 25px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

/* 住所 / 路線 / 訪問日など */
.bus-single .bus-info {
  font-size: 16px;
  margin-bottom: 10px;
  color: #333;
}

/* メモ（説明） */
.bus-single .memo-head {
  font-size: 18px;
  margin-top: 30px;
  margin-bottom: 10px;
}
.bus-single .memo-text {
  line-height: 1.8;
  margin-bottom: 30px;
  font-size: 15px;
}

/* 地図（写真と同じ幅） */
.bus-single .map {
  margin: 30px 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.bus-single iframe {
  width: 100%;
  border: none;
}

/* 戻る（緑） */
.back-link-bus a {
  display: inline-block;
  padding: 10px 20px;
  background: #e7f7e7;        /* 薄いグリーン */
  color: #1b5e20;             /* 濃いグリーン */
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  border: 1px solid #9dd8a0;
  transition: 0.2s;
}
.back-link-bus a:hover {
  background: #1b5e20;
  color: #fff;
}

/* ヘッダーも body と同じ色に統一 */
.site-header {
  background: #faf7f0 ;
  border-bottom: 1px solid #e0dccc; /* 柔らかい線で旅っぽく */
}

/* footer */
.site-footer {
  max-width: 900px;
  margin: 40px auto 0;
  padding: 20px 0;
  text-align: center;
  color: #666;
  font-size: 14px;
}


/* ==========================================================
   パンくずリスト（色なし・シンプル）
========================================================== */

.breadcrumb {
  max-width: 900px;
  margin: 20px auto 30px;
  padding: 0;
  background: none;
  border-radius: 0;
  font-size: 14px;
  color: #666;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.breadcrumb a {
  text-decoration: none;
  color: #666;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

.breadcrumb span {
  color: #333;
}

.breadcrumb .divider {
  color: #999;
}

.breadcrumb,
.breadcrumb a,
.breadcrumb span {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}


/* ==========================================================
   アーカイブ（一覧ページ）中央寄せレイアウト
========================================================== */

/* 駅とバス一覧の .section を中央寄せに統一 */
.post-type-archive-station .section,
.post-type-archive-busstop .section {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
}


.post-type-archive-station h1,
.post-type-archive-busstop h1 {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 30px;
}

/* ============================================
   見出し（h1〜h6・カードタイトル・セクションタイトル）
   → 旅雑誌のように少し上品にする
============================================ */
h1, h2, h3, h4, h5, h6,
.card-title,
.news-section h2,
.station-section h2,
.bus-section h2 {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* トップページのリードタイトル（キャッチコピー） */
.front-lead-title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 1.9rem;
  text-align: center;
  margin-bottom: 8px;
}

/* サブ説明文（「日常で見つけた…」の部分） */
.front-lead-sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.95rem;
  color: #666;
  text-align: center;
  margin-bottom: 35px;
}

/* セクション全体の余白を拡大 */
.section {
  margin-top: 70px;
  margin-bottom: 40px;
}

/* 連続するセクションの間にゆとりを演出 */
.section + .section {
  margin-top: 90px;
}

.section-desc {
  font-size: 0.95rem;
  color: #666;
  margin-top: -5px;
  margin-bottom: 20px;
}

.more-link {
  display: block;
  margin-top: 20px;   /* ← ここの数値を調整 */
  margin-bottom: 10px;
  font-weight: bold;
}

/* きっぷ共通 */
.ticket-price {
  color: #e600b0;
  font-weight: bold;
}

.ticket-price.big {
  font-size: 2rem;
}

.ticket-meta {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
}

.ticket-meta li {
  font-size: 0.9rem;
  color: #555;
}

/* 詳細 */
.ticket-detail {
  max-width: 900px;
  margin: 0 auto;
}

.ticket-info .ticket-price {
  font-size: 1.1rem;
  font-weight: bold;
  margin-bottom: 10px;
  background: #fff3e0;
  padding: 8px 12px;
  border-radius: 6px;
}

/* ===== Ticket タイトル背景を統一 ===== */
.archive-ticket .archive-header,
.single-ticket .ticket-header {
  background: #faf7f0;
  padding: 30px 20px;
  margin-bottom: 20px;
}

.archive-ticket .archive-header h1,
.single-ticket .ticket-header h1 {
  max-width: 1000px;
  margin: 0 auto;
  color: #222;
}

/* 共通エントリー */
.entry-header {
  margin-bottom: 20px;
}

.entry-title {
  font-size: 1.8rem;
}

.entry-image img {
  width: 100%;
  border-radius: 10px;
}

.entry-meta ul {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}

.entry-meta li {
  margin-bottom: 8px;
}

.entry-content {
  line-height: 1.8;
}

/* きっぷ詳細：金額を本文と同じ見た目にする */
.ticket-price,
.price,
.price-amount {
  color: #333;          /* 本文と同じ */
  font-size: 16px;      /* 日付・説明と同じ */
  font-weight: 400;     /* 通常ウェイト */
  background: none;     /* 背景を消す */
  padding: 0;           /* 余白を消す */
  border-radius: 0;     /* 角丸を消す */
  display: inline;      /* ブロック感を消す */
}

/* きっぷ詳細のメタ情報 */
.single-meta {
  margin: 20px 0;
  font-size: 15px;
  color: #333;
}

.single-meta .meta-item {
  display: block;      /* ← これが超重要 */
  margin-bottom: 8px;
  line-height: 1.6;
}

/* きっぷ一覧のカードは駅一覧と同じ白にする */
.ticket-archive .card,
.ticket-section .card,
.ticket-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  box-shadow: 0 2px 8px var(--card-shadow);
}

.archive-inner {
  max-width: 1100px;   /* 駅一覧と同じ */
  margin: 0 auto;
  padding: 0 20px;
}

.archive-header {
  margin-bottom: 30px;
}

.archive-title {
  font-size: 28px;
  font-weight: bold;
  margin: 0;
}



/* きっぷカード全体 */
.ticket-card .card-title {
  color: #3f2f25;  /* 少し赤みのある濃茶 */
}

.section.ticket-section h2 {
  color: #6b4f3f;
  border-left: 6px solid #6b4f3f;
  padding-left: 10px;
}

/* ==============================
   ルート（旅ルート専用）
============================== */

/* 立ち寄り駅（旅ルート） */
.route-single .route-line {
  list-style: none;
  padding-left: 20px;
  border-left: none;
  margin: 20px 0 30px;
}

.route-single .route-line li {
  position: relative;
  margin: 24px 0;
}

.route-single .route-line .dot {
  position: absolute;
  left: -11px;
  top: 0.5em;
  width: 10px;
  height: 10px;
  background: #5f7d8c;
  border-radius: 50%;
}

.route-single .route-text a {
  text-decoration: none;
  font-weight: 600;
  color: #333;
}


/* 見出し・本文（stationと共通思想） */
.route-single .memo-head {
  font-size: 18px;
  margin-top: 30px;
  margin-bottom: 10px;
}

.route-single .memo-text {
  line-height: 1.8;
  margin-bottom: 30px;
  font-size: 15px;
}

/* ルートの流れ（改行保持） */
.route-single .route-flow {
  white-space: pre-line;
}

/* ページ全体 */
.route-single {
  max-width: 720px;
  margin: 0 auto;
  padding: 20px;
}

/* ==============================
   立ち寄り駅：マーカー（・）を確実に消す
============================== */
.route-single ul.route-line {
  list-style: none;
  margin: 20px 0 30px;
  padding-left: 28px;         /* ← 縦線＋余白 */
  border-left: none;
}

.route-single ul.route-line > li {
  list-style: none;           /* li側も念押し */
  position: relative;
  margin: 26px 0;
}

/* 新しめブラウザ対策：markerそのものを消す */
.route-single ul.route-line > li::marker {
  content: "";
}

.route-single .memo-text {
  margin-bottom: 50px;
}

/* ルート一覧全体 */
.route-list-items {
  list-style: none;
  padding: 0;
  margin: 0;
}

.route-item a:hover {
  background: #f2f6f8;
  transform: translateY(-2px);
}

/* ==============================
   旅ルート一覧（archive-route.php）だけ超シンプルに
============================== */
.route-list-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

.route-list-items .route-item {
  margin: 10px 0;
  list-style: none;
}

/* 点（・）を確実に消す */
.route-list-items .route-item::marker {
  content: "";
}

/* 白い箱（カード）を全部無効化 */
.route-list-items .route-item a,
.route-list-items .route-item .route-link {
  display: inline;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  font-weight: 600;
  color: #333;
  text-decoration: none;
  transform: none;
  transition: none;
}

/* hoverだけ軽く */
.route-list-items .route-item a:hover,
.route-list-items .route-item .route-link:hover {
  text-decoration: underline;
  background: transparent;
  transform: none;
}

.ref-route{
  border-left: 4px solid #c8a97e; /* 旅ルートだけ少し目印 */
}

/* ==========================================================
   きっぷ一覧へ戻るボタン（茶系・確定版）
========================================================== */

.back-link-ticket a {
  display: inline-block;
  padding: 10px 20px;
  background: #efe6dc;        /* やさしい茶 */
  color: #6b4f3f;             /* 濃い茶 */
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  border: 1px solid #e0d2c3;
  transition: 0.2s;
}

.back-link-ticket a:hover {
  background: #6b4f3f;
  color: #fff;
}

.back-link-ticket {
  margin-top: 40px;      /* 上に余白 */
  margin-bottom: 20px;   /* 下にも少し */
}

/* フロントのきっぷカード */
.home .ticket-section .card,
.home .ticket-card {
  background: var(--ticket-brown-soft);
  border: 1px solid var(--ticket-brown-border);
  box-shadow: 0 3px 12px rgba(0,0,0,0.06);
}

/* アーカイブのカードも同じ生成りに */
.post-type-archive-station .card,
.post-type-archive-busstop .card,
.post-type-archive-ticket .card {
  background: var(--card-bg);
}

/* ニュースだけ少し軽くする */
.news-section h2,
.single-news h1.news-title,
.post-type-archive-news h1,
.post-type-archive-news a {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;          /* ← 600 → 500 */
  letter-spacing: 0.01em;    /* 少し詰める */
}

/* =========================
   ヘッダーはゴシック固定
========================= */
/* =========================
   ヘッダー文字だけゴシック
========================= */
.site-header,
.site-header a,
.site-header .site-logo,
.site-header .header-menu a {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}

/* breadcrumb のリンクは常にゴシック */
nav.breadcrumb a {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

/* ==========================================================
   旅ルート：最終コンパクト定義（ここだけ触る）
========================================================== */

/* 旅ルート用カラーパレット */
:root {
  --route-accent: #8fa3ad;   /* ブルーグレー（線） */
  --route-text:   black;   /* 黒（文字） */
}

/* ======================
   見出し（共通）
====================== */

/* フロント */
.home .route-section h2,
/* アーカイブ */
.post-type-archive-route h1,
/* シングル */
.single-route h1 {
  padding-left: 10px;
  color: var(--route-text);
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
}

/* ======================
   フロント（文字だけ）
====================== */
.home .route-list,
.home .route-line {
  border-left: none;
  padding-left: 0;
}

.home .route-item::before,
.home .route-line .dot {
  display: none;
}

.home .route-item a {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  font-weight: 600;
  color: var(--route-text);
}

/* hover 無効 */
.home .route-item a:hover {
  text-decoration: underline;
  background: none;
  transform: none;
}

/* ======================
   シングル（カード感なし）
====================== */
.single-route .ref-card,
.single-route .route-item,
.single-route .route-item a {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
}

/* ======================
   パンくず（全ルート共通）
====================== */
.post-type-archive-route .breadcrumb,
.post-type-archive-route .breadcrumb a,
.post-type-archive-route .breadcrumb span,
.single-route .breadcrumb,
.single-route .breadcrumb a,
.single-route .breadcrumb span {
  color: black;
  font-family: "Noto Sans JP", sans-serif;
}

.post-type-archive-route .breadcrumb span:last-child,
.single-route .breadcrumb span:last-child {
  color: #333;
  font-weight: 400;
}

/* ==========================================================
   single-route パンくず 最終確定（青を完全に殺す）
========================================================== */

body.single-route nav.breadcrumb a,
body.single-route nav.breadcrumb span {
  color: #666;
}

body.single-route nav.breadcrumb span:last-child {
  color: #333;
  font-weight: 500;
}

body.single-route nav.breadcrumb a:hover {
  color: #666;
  text-decoration: underline;
}

/* =========================
   ヘッダー全体
========================= */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 16px;   /* ← 高さを詰める */
}


/* ロゴ全体（PCはアイコン＋文字） */
.site-logo a {
  display: flex;
  align-items: center;
}

.logo-icon {
  width: 28px;      /* PC用サイズ */
  height: auto;
}

.logo-text {
  display: inline;  /* PCでは表示 */
  font-size: 22px;
  margin-left: 8px;
}

/* 旅ルートの縦線を完全に無効化（擬似要素含む） */
.route-line,
.route-item,
.route-list,
.route-list-items {
  border-left: none;
}

.route-line::before,
.route-line::after,
.route-item::before,
.route-item::after,
.route-list::before,
.route-list::after {
  content: none;
  display: none;
}

.route-vertical-line {
  display: none;
}

/* フロントページ：旅ルート見出しを完全グレー固定 */
.home .route-section h2 {
  color: #555;
  border-left: 6px solid #8fa3ad;
}

/* 旅ルート：駅・バスと同じレイアウト基準 */
.post-type-archive-route .page-main,
.single-route {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* 旅ルート一覧：フォントの太さをきっぷ一覧基準に */
.post-type-archive-route .route-line a,
.single-route .route-title,
.single-route .route-line a {
  font-weight: 600;
}

/* 旅ルート一覧：文字位置をきっぷ一覧と統一 */
.post-type-archive-route .route-line,
.single-route .route-line {
  padding-left: 0;
  margin-left: 0;
}

/* 旅ルート：ページタイトルをきっぷ一覧寄せ */
.post-type-archive-route h1,
.single-route h1 {
  font-weight: 700;
  margin-left: 0;
}

/* 旅ルート：一覧リンクの太さ統一（フロント・アーカイブ） */
.home .route-item a,
.post-type-archive-route .route-item a,
.single-route .route-line a {
  font-weight: 600;
}

/* 旅ルート：アーカイブ・シングル共通 左揃え */
.post-type-archive-route .route-list,
.single-route .route-line {
  padding-left: 0;
  margin-left: 0;
  border-left: none;
}

/* ページタイトル統一 */
.post-type-archive-route h1,
.single-route h1 {
  font-weight: 700;
  margin-left: 0;
}

/* パンくず：全ページ共通で軽く */
body .breadcrumb,
body .breadcrumb a,
body .breadcrumb span {
  font-weight: 400;
}

body .breadcrumb span:last-child {
  font-weight: 500;
}

/* フロント見出し共通 */
body.home .section h2 {
  font-weight: 600;
  padding-left: 10px;
}

/* 最新ニュース */
body.home .news-section h2 {
  color: #c62828;
  border-left: 6px solid #ef5350;
}

/* 駅 */
body.home .station-section h2 {
  color: #0d47a1;
  border-left: 6px solid #1976d2;
}

/* バス */
body.home .bus-section h2 {
  color: #1b5e20;
  border-left: 6px solid #4caf50;
}

/* 旅ルート */
body.home .route-section h2 {
  color: #555;
  border-left: 6px solid #cfd8dc;
}

/* リンク見た目（きっぷ一覧基準） */
body.home .route-item a,
body.post-type-archive-route .route-item a,
body.single-route .route-line a {
  font-weight: 600;
  padding: 0;
  background: none;
  box-shadow: none;
  border: none;
  color: #333;
}

body.home .news-section h2 {
  color: #555;
  border-left: 6px solid #b8b2a7;
}

/* 一覧・シングル共通の器 */
.page-main,
.post-type-archive-route .page-main,
.single-route,
.station-single,
.bus-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* パンくずは完全にゴシック・細字 */
.breadcrumb,
.breadcrumb a,
.breadcrumb span {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: #777;
}

.breadcrumb span:last-child {
  font-weight: 400; /* ← ここが重要 */
  color: #555;
}

/* ===============================
   旅ルート：駅・バスと完全統一
=============================== */

/* アーカイブ（旅ルート一覧） */
body.post-type-archive-route main {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* シングル（旅ルート詳細） */
body.single-route main,
body.single-route .route-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* ===============================
   旅ルート：アーカイブを駅・バス基準に統一
=============================== */
body.post-type-archive-route main {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* 見出し位置も統一 */
body.post-type-archive-route h1 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 30px;
}

/* 旅ルート：パンくずを本文と同じ左位置に揃える */
.post-type-archive-route .breadcrumb,
.single-route .breadcrumb {
  margin-left: 0;
  padding-left: 0;
}

/* ==========================
   パンくず色の統一
========================== */

.breadcrumb,
.breadcrumb a {
  color: #333;
}

.breadcrumb .current {
  font-weight: 600;
  color: #222;
}

.breadcrumb .sep {
  color: #aaa;
}

/* ==========================
   旅ルート：本文＆パンくずの位置統一
========================== */

/* アーカイブ・シングル共通 */
.post-type-archive-route .route-archive,
.single-route .route-single {
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px;
}

/* パンくずも本文と同じ位置に */
.post-type-archive-route .breadcrumb,
.single-route .breadcrumb {
  margin-left: 0;
  padding-left: 0;
}

/* ==========================
   パンくず：HOMEも含めて完全同色
========================== */

.breadcrumb,
.breadcrumb a,
.breadcrumb span {
  color: #333;
}

/* ==========================
   パンくずと本文を完全統一
========================== */

/* breadcrumb は width を持たせない */
.breadcrumb {
  max-width: none;
  margin: 0 0 12px;
  padding: 0;
}

/* アーカイブ共通の基準箱 */
.page-main {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* 旅ルートも例外にしない */
.post-type-archive-route .page-main,
.single-route .page-main {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* タイトル余白を他アーカイブと統一 */
.post-type-archive-route .page-title {
  margin: 0 0 30px;
}

/* シングルもアーカイブと同じ基準に寄せる */
.single-route .route-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* フロントページ：旅ルート文字色を統一 */
body.home .route-section h2,
body.home .route-item a {
  color: #555;  /* フロントで統一したい文字色 */
}

/* ==========================
   シングル旅ルート：タイトルとパンくず左揃え
========================== */
body.single-route main,
body.single-route .route-single {
  display: block;      /* flexを解除 */
  text-align: left;    /* 親も左揃え */
}

body.single-route .breadcrumb {
  display: block;      /* 横並びにせず、左揃え */
  margin: 0 0 12px 0;
  padding: 0;
}

body.single-route .route-title {
  display: block;
  width: 100%;
  text-align: left;
  margin: 0 0 20px 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: #222;
}

/* ==========================
   ルート（single‑route）のパンくずとタイトルを ticket と同じ位置に統一
========================== */

/* コンテナ全体を左揃えに */
body.single-route .page-main,
body.single-route .route-single {
  text-align: left;     /* 左揃え */
  display: block;       /* 親 Flex を解除 */
}

/* パンくず */
body.single-route .breadcrumb {
  display: block;        /* ブロック表示で左揃え */
  margin: 0 0 8px 0;
  padding: 0;
  font-size: 14px;
}

/* タイトル（h1） */
body.single-route h1 {
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 25px 0;    /* ticket ページと同じ余白 */
  text-align: left;      /* 左揃え */
  width: 100%;
}

/* single-route の「旅ルート一覧へ戻る」を左線付きテキストに */
.single-route .back-link a {
  display: inline-block;
  padding-left: 10px;                /* 線と文字の間隔 */
  border-left: 6px solid #cfd8dc;    /* フロント旅ルート見出しと同じ線 */
  color: #555;                        /* フロント見出し文字色に合わせる */
  font-weight: 600;
  text-decoration: none;
  transition: 0.2s;
}

.single-route .back-link a:hover {
  color: #333;                        /* hover で文字少し濃く */
  text-decoration: underline;         /* hover で下線 */
  border-left-color: #b0b0b0;         /* optional：線を少し濃くしてもOK */
}

/* single-route の「旅ルート一覧へ戻る」をフロント旅ルート見出し風に */
.single-route .back-link a {
  display: inline-block;           /* ブロック感を残す */
  padding-left: 10px;              /* 左線と文字の間隔 */
  border-left: 6px solid #cfd8dc; /* 左線 */
  background: none;                /* 背景色を消す */
  color: #555;                     /* 文字色 */
  font-weight: 600;
  border-radius: 0;                /* 角丸消す */
  text-decoration: none;
}

/* hover時 */
.single-route .back-link a:hover {
  color: #333;
  text-decoration: underline;
  border-left-color: #cfd8dc;      /* hoverでも線は同じ */
}

/* single-route も含め全シングル共通 */
body.single-route .site-header {
  background: #faf7f0;           /* 他シングルと同じ */
  border-bottom: 1px solid #e0dccc;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 16px;
}

/* single-route の戻るリンク */
body.single-route .back-link a {
  display: inline-block;
  padding-left: 10px;           /* 左線と文字の間隔 */
  border-left: 6px solid #cfd8dc; /* 左線 */
  background: none;              /* 背景なし */
  color: #555;                   /* 文字色 */
  font-weight: 600;
  border-radius: 0;
  text-decoration: none;
  transition: 0.2s;
}

body.single-route .back-link a:hover {
  color: #333;
  text-decoration: underline;
  border-left-color: #cfd8dc;
}

/* single-route：パンくずとタイトルをHOMEと揃える */
body.single-route .route-single,
body.single-route .page-main {
  padding-left: 0;       /* 左余白を完全リセット */
  margin-left: 0;        /* 左マージンもリセット */
}

body.single-route .breadcrumb {
  display: flex;         /* 横並びに統一 */
  flex-wrap: wrap;       /* 長くても折り返し */
  gap: 4px;              /* アイテム間のスペース */
  margin: 0 0 12px 0;    /* 上下余白のみ */
  padding: 0;            /* 内側余白リセット */
}

body.single-route .breadcrumb a,
body.single-route .breadcrumb span {
  margin: 0;             /* 余白リセット */
  padding: 0;            /* 余白リセット */
}

body.single-route .breadcrumb .sep {
  margin: 0 4px;         /* 区切りだけ少しスペース */
}

body.single-route .route-title {
  margin: 0 0 20px 0;    /* タイトル下だけ余白 */
  text-align: left;      /* 左揃え */
}

/* single-route.php 用 */
.route-single {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
  text-align: left; /* 左揃え */
}

/* パンくず */
.route-single .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 15px;
}

/* パンくずリンク */
.route-single .breadcrumb a {
  color: #555;
  text-decoration: none;
}

.route-single .breadcrumb span.separator {
  margin: 0 4px;
  color: #999;
}

/* タイトル */
.route-single .route-title {
  font-size: 28px;
  font-weight: bold;
  margin: 0 0 20px 0;
}

.back-link-route a {
  display: inline-block;
  padding: 10px 16px;
  background: #cfd8dc;       /* 左ボーダーと同じ色に統一 */
  color: #222;               /* 文字色はフロントの本文と同じく濃い色 */
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  border: none;              /* フロントボタンは枠線なし */
  transition: 0.2s;
}

.back-link-route a:hover {
  background: #b0bec5;       /* hover時に少し濃くなる */
}

/* カードグリッドを左揃え */
.ref-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: flex-start;
}

/* カード内の文字を左揃え */
.ref-card .ref-body {
  text-align: left;
}

/* タイトル文字も左揃え */
.route-title {
  text-align: left;
  margin-left: 0;
}

/* 共通ヘッダー */
header.site-header {
  padding-top: 30px;
  padding-bottom: 30px;
  background: #faf7f0;
}

/* route と ticket の main で余白差をなくす */
.route-single,
.page-main {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 20px;
}

.menu-sns {
  display: flex;
  gap: 10px; /* アイコン間のスペース */
}

.menu-sns-item a {
  color: #333; /* アイコン色 */
  font-size: 20px;
  transition: color 0.3s;
}

.menu-sns-item a:hover {
  color: #1877f2; /* Facebookブルー or Instagram用に変更も可 */
}

/* まずデフォルトはPC表示（メニュー横並び） */
.header-menu {
  display: flex;          /* 横並び */
  gap: 30px;
}

.header-toggle {           /* ハンバーガーボタンは非表示 */
  display: none;
}

/* モバイル（幅768px以下）の場合 */
@media screen and (max-width: 768px) {
  .header-menu {
    display: none;         /* デフォルト非表示 */
    flex-direction: column; /* 縦並びにしておく */
    position: absolute;
    top: 60px;            /* ヘッダー下に表示 */
    right: 16px;
    background: #faf7f0;
    padding: 10px 20px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 999;
  }

  .header-toggle {
    display: block;        /* ハンバーガーボタンを表示 */
    cursor: pointer;
    font-size: 24px;
  }

  .header-menu.show {      /* JSで toggle したときに表示 */
    display: flex;
  }
}
img {
  border-radius: 12px; /* 丸さはお好みで調整 */
}

/* 全シングルページ・ticket も route も対象 */
body.single-ticket header.site-header,
body.single-route header.site-header {
  position: relative;
  left: 0;
  width: 100%;
  max-width: none;
}


/* ────────────────
   シングルページ：ヘッダーロゴ左寄せ
──────────────── */
@media (min-width: 1025px) {

  /* ヘッダー内の左スペース調整 */
  body.single-ticket header.site-header .site-logo {
    margin-right: 20px; /* タイトルとの余白 */
    order: -1;          /* 左側に寄せる */
  }

  /* タイトル周りの配置 */
  body.single-ticket .page-main h1,
  body.single-ticket .ticket-header h1 {
    margin-left: 0;    /* 余白リセット */
    padding-left: 0;
  }

  /* パンくずとタイトルの整列 */
  body.single-ticket .breadcrumb {
    margin-left: 0;
    padding-left: 0;
  }

  /* タイトルの左寄せスタイル */
  body.single-ticket header.site-header,
  body.single-ticket .ticket-header {
    display: flex;
    align-items: center;
    gap: 20px;         /* ロゴと文字の間隔 */
  }
}
