/* ROCK えきログ（子テーマ）
 * 落ち着いたアーカイブ：生成りの紙（#f2efe9）・墨紺（#1b2530）・差し色は朱（#a8452e）だけ。
 * 見出しは明朝（ROCK の見出しフォント）、本文はゴシック。線は細く、余白は広く。
 */
:root {
  --ek-ink: #1b2530;
  --ek-text: #2b2b2b;
  --ek-sub: #6f685d;
  --ek-line: #d9d3c7;
  --ek-paper: #f2efe9;
  --ek-card: #ffffff;
  --ek-accent: #a8452e;
  --ek-serif: "游明朝", YuMincho, "Hiragino Mincho ProN", "Noto Serif JP", serif;
}

.ekilog-front .l-inner { max-width: 1180px; }
.ekilog-front__main { padding: 72px 0 80px; flex: 1 1 auto; min-width: 0; } /* 親が横並び（flex）なので、中身の幅に押されて画面からはみ出さないように */

/* 英字の小さな見出しラベル */
.ekilog-label {
  display: block; font-family: Arial, sans-serif; font-size: 11px; letter-spacing: 0.28em;
  color: var(--ek-accent); margin-bottom: 10px; text-transform: uppercase;
}

/* 導入 */
.ekilog-intro { text-align: center; margin: 0 auto 64px; max-width: 720px; }
.ekilog-intro__catch {
  font-family: var(--ek-serif); font-size: 34px; font-weight: 600; letter-spacing: 0.12em;
  color: var(--ek-ink); margin-bottom: 24px; line-height: 1.5;
}
.ekilog-intro__text { font-size: 14px; line-height: 2.1; color: var(--ek-sub); }
.ekilog-intro::after { content: ""; display: block; width: 1px; height: 48px; background: var(--ek-line); margin: 36px auto 0; }

/* 駅を探す */
.ekilog-search { background: var(--ek-card); border: 1px solid var(--ek-line); padding: 32px 36px 28px; margin-bottom: 80px; }
.ekilog-search__title { font-family: var(--ek-serif); font-weight: 600; font-size: 20px; letter-spacing: 0.1em; margin-bottom: 20px; color: var(--ek-ink); }
.ekilog-search__fields { display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 16px; }
.ekilog-search label span { display: block; font-size: 11px; letter-spacing: 0.1em; color: var(--ek-sub); margin-bottom: 6px; }
.ekilog-search select, .ekilog-search input[type="search"] {
  width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--ek-line); background: #fbfaf7;
  font-size: 14px; color: var(--ek-text); border-radius: 0; -webkit-appearance: none; appearance: none;
}
.ekilog-search select {
  background-image: linear-gradient(45deg, transparent 50%, var(--ek-sub) 50%), linear-gradient(135deg, var(--ek-sub) 50%, transparent 50%);
  background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px; background-size: 5px 5px; background-repeat: no-repeat;
}
.ekilog-search select:focus, .ekilog-search input:focus { outline: none; border-color: var(--ek-ink); }
.ekilog-search__btn {
  display: block; margin: 24px auto 0; width: 240px; height: 48px; border: 0; background: var(--ek-ink); color: #fff;
  font-size: 14px; letter-spacing: 0.3em; cursor: pointer; transition: background 0.3s;
}
.ekilog-search__btn:hover { background: var(--ek-accent); }

/* 区切り */
.ekilog-section { margin-bottom: 88px; }
.ekilog-section__head { position: relative; padding-bottom: 14px; margin-bottom: 28px; border-bottom: 1px solid var(--ek-line); }
.ekilog-section__head::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 48px; height: 1px; background: var(--ek-accent); }
.ekilog-section__title { font-family: var(--ek-serif); font-size: 26px; font-weight: 600; letter-spacing: 0.08em; color: var(--ek-ink); line-height: 1.4; }
.ekilog-section__lead { font-size: 13px; color: var(--ek-sub); margin-top: 6px; }
.ekilog-section__more { text-align: right; margin-top: 24px; }
.ekilog-section__more a {
  display: inline-block; font-size: 13px; letter-spacing: 0.08em; color: var(--ek-ink);
  border-bottom: 1px solid var(--ek-ink); padding-bottom: 3px; transition: color 0.3s, border-color 0.3s;
}
.ekilog-section__more a:hover { color: var(--ek-accent); border-color: var(--ek-accent); }
.ekilog-section__more a::after { content: "　→"; }

/* カード */
.ekilog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 28px; }
/* 記事へのリンク（写真〜副題）の下にバッジ（別のリンク）。バッジは横の列でそろうよう下に寄せる */
.ekilog-card { display: flex; flex-direction: column; }
.ekilog-card__link { display: block; color: inherit; flex: 1 0 auto; }
.ekilog-card__badges { padding: 0 2px; }
.ekilog-card__img { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: #e3ded4; }
.ekilog-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease, filter 0.6s ease; }
.ekilog-card__link:hover .ekilog-card__img img { transform: scale(1.05); filter: brightness(0.92); }
.ekilog-card__year {
  position: absolute; left: 0; top: 0; background: var(--ek-ink); color: #fff;
  font-family: Arial, sans-serif; font-size: 11px; letter-spacing: 0.12em; padding: 5px 10px;
}
.ekilog-card__body { padding: 16px 2px 0; }
.ekilog-card__cat { display: block; font-size: 11px; letter-spacing: 0.08em; margin-bottom: 6px; }
.ekilog-card__title {
  font-family: var(--ek-serif); font-size: 17px; font-weight: 600; line-height: 1.55; margin-bottom: 10px;
  color: var(--ek-ink); transition: color 0.3s;
}
.ekilog-card__link:hover .ekilog-card__title,
.ekilog-card__link:hover .ekilog-card__sub { color: var(--ek-accent); }
/* 題名は画面に出さない（駅名はサムネイルにある）。読み上げ用に残す */
.ekilog-card__title.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* 副題（タイトルの～以降）：題名の代わりに見出しとして読ませる。カードは幅が狭いので3行まで */
.ekilog-card__sub { font-family: var(--ek-serif); font-size: 15px; font-weight: 600; line-height: 1.7; color: var(--ek-ink); margin: 0 0 10px; transition: color 0.3s; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.ekilog-card .ekilog-badges { gap: 4px; }
.ekilog-card .ekilog-badge { font-size: 10px; }

/* 一覧ページ（ROCK のカード）に付けるバッジ */
.p-article01 .ekilog-badges { margin: 0 0 10px; }
.p-article01 .ekilog-badge { font-size: 10px; }

/* バナー */
.ekilog-banner { padding: 56px 40px; margin-bottom: 32px; text-align: center; }
.ekilog-banner--video { background: var(--ek-ink); color: #fff; }
.ekilog-banner--lending { background: var(--ek-card); border: 1px solid var(--ek-line); color: var(--ek-text); }
.ekilog-banner__title { font-family: var(--ek-serif); font-size: 24px; font-weight: 600; letter-spacing: 0.1em; margin-bottom: 16px; }
.ekilog-banner__text { font-size: 14px; line-height: 2; margin: 0 auto 28px; max-width: 600px; opacity: 0.85; }
.ekilog-banner__btn {
  display: inline-block; padding: 14px 44px; font-size: 13px; letter-spacing: 0.15em; transition: background 0.3s, color 0.3s;
}
.ekilog-banner--video .ekilog-banner__btn { border: 1px solid rgba(255, 255, 255, 0.7); color: #fff; }
.ekilog-banner--video .ekilog-banner__btn:hover { background: #fff; color: var(--ek-ink); }
.ekilog-banner--lending .ekilog-banner__btn { background: var(--ek-accent); color: #fff; }
.ekilog-banner--lending .ekilog-banner__btn:hover { background: var(--ek-ink); }


/* 駅を探す：テーマ（チェックボックス） */
.ekilog-search__themes { border: 0; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--ek-line); }
.ekilog-search__themes legend { font-size: 11px; letter-spacing: 0.1em; color: var(--ek-sub); padding: 0; margin-bottom: 10px; float: left; width: 100%; }
.ekilog-search__themes legend small { font-size: 11px; letter-spacing: 0; margin-left: 6px; }
/* 段（駅の特徴・駅のつくり・その後の変化）は見出しだけ見せ、押すと開く（縦に長くしない）。選んでいる段は開いて出す */
.ekilog-search__theme-group { clear: both; border-bottom: 1px solid var(--ek-line); }
.ekilog-search__theme-group:first-of-type { border-top: 1px solid var(--ek-line); }
.ekilog-search__theme-label {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
  padding: 12px 2px; font-size: 13px; color: var(--ek-ink); font-weight: 600;
}
.ekilog-search__theme-label::-webkit-details-marker { display: none; }
.ekilog-search__theme-label::after { content: "＋"; margin-left: auto; font-weight: 400; color: var(--ek-sub); }
.ekilog-search__theme-group[open] > .ekilog-search__theme-label::after { content: "−"; }
.ekilog-search__theme-label:hover { color: var(--ek-accent); }
.ekilog-search__theme-count {
  display: inline-block; min-width: 18px; padding: 0 5px; line-height: 18px; border-radius: 9px;
  background: var(--ek-accent); color: #fff; font-size: 11px; font-weight: 400; text-align: center;
}
.ekilog-search__theme-group > .ekilog-search__subs { padding: 2px 0 16px; }
.ekilog-search__checks { display: flex; flex-wrap: wrap; gap: 8px; }
/* 駅のつくり：まとまり（ホームの形・線路の位置…）の小さな見出しを行の頭に置き、まとまりどうしは横に続けて折り返す（縦に長くしない） */
.ekilog-search__subs { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ekilog-search__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ekilog-search__sub-label { font-size: 11px; letter-spacing: 0.08em; color: var(--ek-sub); margin: 0; white-space: nowrap; }
.ekilog-search__sub-label::after { content: "："; }
.ekilog-check { position: relative; cursor: pointer; }
.ekilog-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ekilog-check span {
  display: inline-block; padding: 7px 14px 7px 30px; border: 1px solid var(--ek-line); background: #fbfaf7;
  font-size: 13px; color: var(--ek-text); position: relative; transition: border-color 0.2s, background 0.2s;
}
.ekilog-check span::before {
  content: ""; position: absolute; left: 11px; top: 50%; width: 12px; height: 12px; margin-top: -6px;
  border: 1px solid var(--ek-sub); background: #fff;
}
.ekilog-check input:checked + span { border-color: var(--ek-ink); background: #fff; }
.ekilog-check input:checked + span::before { background: var(--ek-accent); border-color: var(--ek-accent); box-shadow: inset 0 0 0 2px #fff; }
.ekilog-check input:focus-visible + span { outline: 2px solid var(--ek-ink); outline-offset: 1px; }

/* タブ（ランキング・駅の特徴） */
.ekilog-tabs__list { display: flex; gap: 0; margin: -8px 0 28px; border-bottom: 1px solid var(--ek-line); overflow-x: auto; }
.ekilog-tabs__tab {
  appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
  padding: 10px 20px; font-size: 14px; letter-spacing: 0.08em; color: var(--ek-sub); cursor: pointer; white-space: nowrap;
}
.ekilog-tabs__tab[aria-selected="true"] { color: var(--ek-ink); border-bottom-color: var(--ek-accent); font-weight: 600; }
.ekilog-tabs__tab:hover { color: var(--ek-ink); }
.ekilog-section .ekilog-tabs .ekilog-section__head { display: none; }
.ekilog-ranking .ekilog-section__head { margin-bottom: 20px; }

/* ランキングの順位 */
.ekilog-card__rank {
  position: absolute; right: 0; bottom: 0; min-width: 44px; height: 44px; padding: 0 8px;
  display: flex; align-items: center; justify-content: center;
  background: var(--ek-ink); color: #fff; font-family: var(--ek-serif); font-size: 22px; font-weight: 600;
}
.ekilog-grid--rank .ekilog-card:nth-child(-n+3) .ekilog-card__rank { background: var(--ek-accent); }

/* 「あの頃から、変わったもの」の章の扉 */
.ekilog-chapter { text-align: center; margin: 8px 0 56px; padding: 48px 0 0; border-top: 1px solid var(--ek-line); }
.ekilog-chapter__title { font-family: var(--ek-serif); font-size: 30px; font-weight: 600; letter-spacing: 0.12em; color: var(--ek-ink); margin-bottom: 16px; }
.ekilog-chapter__text { font-size: 14px; line-height: 2; color: var(--ek-sub); }

@media (max-width: 991px) {
  .ekilog-search__fields { grid-template-columns: 1fr 1fr; }
  .ekilog-search__word { grid-column: 1 / -1; }
  .ekilog-grid { grid-template-columns: 1fr 1fr; gap: 32px 18px; }
}
@media (max-width: 767px) {
  .ekilog-front__main { padding: 44px 0 48px; }
  .ekilog-intro { margin-bottom: 44px; }
  .ekilog-intro__catch { font-size: 22px; letter-spacing: 0.08em; }
  .ekilog-intro__text { font-size: 13px; text-align: left; }
  .ekilog-intro::after { height: 32px; margin-top: 28px; }
  .ekilog-search { padding: 22px 18px; margin-bottom: 56px; }
  .ekilog-search__fields { grid-template-columns: 1fr; gap: 12px; }
  .ekilog-search__btn { width: 100%; }
  .ekilog-search__fields { grid-template-columns: 1fr 1fr; }
  .ekilog-check span { font-size: 12px; padding: 6px 10px 6px 26px; }
  .ekilog-check span::before { left: 9px; }
  .ekilog-tabs__tab { padding: 10px 14px; font-size: 13px; }
  .ekilog-tabs__list { flex-wrap: wrap; overflow: visible; } /* タブが画面の外に隠れないよう折り返す */
  .ekilog-card__rank { min-width: 34px; height: 34px; font-size: 17px; }
  .ekilog-chapter { padding-top: 36px; margin-bottom: 40px; }
  .ekilog-chapter__title { font-size: 22px; }
  .ekilog-chapter__text { font-size: 13px; text-align: left; }
  .ekilog-chapter__text br { display: none; }
  .ekilog-section { margin-bottom: 60px; }
  .ekilog-section__title { font-size: 20px; }
  .ekilog-grid { gap: 26px 12px; }
  .ekilog-card__body { padding-top: 10px; }
  .ekilog-card__title { font-size: 14px; }
  .ekilog-card__sub { font-size: 13px; line-height: 1.65; margin-top: 0; }
  .ekilog-card__cat { font-size: 10px; }
  .ekilog-banner { padding: 40px 20px; }
  .ekilog-banner__title { font-size: 19px; }
}
/* スマホは1列（カードの写真に描いた駅名・所在地・取材の印が小さくなりすぎないように。ROCK の一覧と同じ 600px で切り替え） */
@media (max-width: 600px) {
  .ekilog-grid { grid-template-columns: 1fr; gap: 36px; }
  .ekilog-card__title { font-size: 15px; }
  .ekilog-card__sub { font-size: 14px; }
}

/* スライダー：帯は事業者の色ではなく墨紺の半透明にそろえる */
.p-image-slider__item-content { background: rgba(27, 37, 48, 0.62) !important; }
.p-image-slider__item-title { font-family: var(--ek-serif); letter-spacing: 0.1em; }
.p-post-slider__item.is-active { border-top-color: var(--ek-accent); }
.ekilog-intro__catch span { display: inline-block; } /* 「2015年、」の後ろでだけ改行する */
.ekilog-intro__catch span { display: block; } /* キャッチはいつも2行（オーナーの改行どおり） */

/* サイドバーが空のときは1列にして本文を中央に（functions.php の ekilog-no-sidebar） */
.ekilog-no-sidebar .l-secondary { display: none; }
.ekilog-no-sidebar .l-contents__inner { justify-content: center; }

/* 本文の YouTube（幅560の固定で埋め込まれている）：画面の幅に合わせて縮め、16:9 を保つ */
.p-entry__body iframe[src*="youtube.com/embed"] { display: block; max-width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* 本文のサイト内リンクのカード（functions.php の ekilog_link_card） */
.p-entry__body .ekilog-linkcard {
  display: flex; align-items: stretch; gap: 16px;
  max-width: 640px; margin: 0 0 14px; padding: 10px;
  background: var(--ek-card); border: 1px solid var(--ek-line); border-left: 3px solid var(--ek-ink);
  color: var(--ek-text); text-decoration: none; transition: border-color .2s, background .2s;
}
.p-entry__body .ekilog-linkcard:hover { text-decoration: none; border-color: var(--ek-sub); border-left-color: var(--ek-accent); background: #fbfaf7; }
.p-entry__body .ekilog-linkcard + p:empty { display: none; }
/* 画像はカードの高さに引き伸ばさない（サムネイルの駅名・印が切れないよう、16:10 のまま全部見せる） */
.ekilog-linkcard__img { flex: 0 0 160px; align-self: center; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ek-paper); }
.p-entry__body .ekilog-linkcard__img img { display: block; width: 100%; height: 100%; object-fit: contain; margin: 0; }
.ekilog-linkcard__body { display: flex; flex-direction: column; justify-content: center; gap: 4px; min-width: 0; }
.ekilog-linkcard__name { font-family: var(--ek-serif); font-weight: 600; font-size: 16px; line-height: 1.5; color: var(--ek-ink); }
.ekilog-linkcard__sub {
  font-size: 13px; line-height: 1.6; color: var(--ek-sub);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ekilog-linkcard__meta { font-size: 11px; letter-spacing: 0.08em; color: var(--ek-accent); }
@media (max-width: 600px) {
  .p-entry__body .ekilog-linkcard { gap: 12px; padding: 8px; }
  .ekilog-linkcard__img { flex-basis: 112px; }
  .ekilog-linkcard__name { font-size: 15px; }
  .ekilog-linkcard__sub { font-size: 12px; -webkit-line-clamp: 1; }
}

/* ヘッダーのロゴ（文字で組む） */
.ekilog-logo { margin-bottom: 18px; }
.ekilog-logo a { display: inline-flex; flex-direction: column; align-items: center; color: #fff; overflow: visible; line-height: 1; }
.ekilog-logo__sub {
  font-family: "Cormorant Garamond", var(--ek-serif); font-weight: 500; font-size: 12px; letter-spacing: 0.42em;
  text-transform: uppercase; color: #c9bfae; margin: 0 0 10px 0.42em; font-variant-numeric: lining-nums;
}
.ekilog-logo__main { display: flex; align-items: baseline; gap: 0.5em; }
.ekilog-logo__ja { font-family: var(--ek-serif); font-weight: 600; font-size: 34px; letter-spacing: 0.16em; color: #fff; }
.ekilog-logo__en {
  font-family: "Cormorant Garamond", var(--ek-serif); font-weight: 600; font-size: 25px; letter-spacing: 0.3em; color: #fff;
  margin-right: -0.3em;
}
/* 路線図の駅の印：細い線のまん中に朱の丸 */
.ekilog-logo__line { position: relative; display: block; width: 100%; height: 9px; margin-top: 12px; }
.ekilog-logo__line::before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 1px; background: rgba(255, 255, 255, 0.45); }
.ekilog-logo__line::after {
  content: ""; position: absolute; left: 50%; top: 0; width: 9px; height: 9px; margin-left: -4.5px;
  border-radius: 50%; background: var(--ek-accent); box-shadow: 0 0 0 2px #1b2530;
}
.ekilog-logo a:hover .ekilog-logo__line::after { background: #fff; }
.ekilog-logo a:hover { opacity: 1; }
@media (max-width: 1199px) {
  /* スマホ・タブレット：左のメニューボタンに押されないよう、ヘッダーのまん中に置く */
  .l-header__lower { position: relative; }
  .ekilog-logo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); height: auto; margin-bottom: 0; z-index: 1; }
  .ekilog-logo a { line-height: 1; }
  .ekilog-logo__sub { font-size: 8px; letter-spacing: 0.3em; margin-bottom: 4px; }
  .ekilog-logo__ja { font-size: 19px; letter-spacing: 0.12em; }
  .ekilog-logo__en { font-size: 14px; letter-spacing: 0.24em; }
  .ekilog-logo__line { height: 7px; margin-top: 5px; }
  .ekilog-logo__line::before { top: 3px; }
  .ekilog-logo__line::after { width: 7px; height: 7px; margin-left: -3.5px; }
}

/* グローバルメニュー：ロゴ・見出しと同じ明朝 */
.p-global-nav { font-family: var(--ek-serif); font-weight: 600; letter-spacing: 0.1em; }
.p-global-nav .sub-menu { letter-spacing: 0.06em; }
/*
 * 「路線から探す」：見出し「鉄道」「バス」は押せない見出しとして、いつも開いておく（見た目は2階層）。
 * パソコン：鉄道の会社は2列、バスは1列。会社にマウスを乗せると、枠の右側の決まった位置に路線が出る。
 * 右へ動かす途中でほかの会社を一瞬通っても切り替わらないよう、出すのを少し待たせ、消すのを少し遅らせる。
 */
.p-global-nav .ekilog-menu-group > a { pointer-events: none; }
.p-global-nav .ekilog-menu-group > a > .p-global-nav__toggle { display: none; }
/* 駅のつくり：まとまり（ホームの形・線路の位置…）の小さな見出し。押せない */
.p-global-nav .ekilog-menu-subhead > a { pointer-events: none; font-size: 10px !important; letter-spacing: 0.2em; color: #8f9aa5 !important; background: none !important; }
.p-global-nav .ekilog-menu-subhead > a::before { content: "― "; }
@media (min-width: 1200px) {
  .p-global-nav .ekilog-menu-lines > .sub-menu,
  .p-global-nav .ekilog-menu-features > .sub-menu { display: flex; background: #2c3d4d; }
  /* 駅の特徴から探す：「駅の特徴」「駅のつくり」の2列（どちらも1列に並べる）。見出しの下はいつも開いておく */
  .p-global-nav .ekilog-menu-features .ekilog-menu-group > .sub-menu { position: static; opacity: 1; visibility: inherit; transform: none; transition: none; padding-bottom: 10px; }
  .p-global-nav .ekilog-menu-lines > .sub-menu > li { position: relative; } /* 路線の枠の位置の基準＝「鉄道」の列 */
  .p-global-nav .ekilog-menu-group > a { width: auto; padding: 16px 20px 8px; font-size: 11px; letter-spacing: 0.3em; color: #c9bfae !important; background: none !important; }
  /* ROCK はマウスを乗せると transform を付ける。付くと路線の枠の位置の基準が変わるので、ここは付けない */
  .p-global-nav .ekilog-menu-lines .ekilog-menu-group > .sub-menu { position: static; opacity: 1; visibility: inherit; transform: none; transition: none; padding-bottom: 10px; }
  .p-global-nav .ekilog-menu-lines .ekilog-menu-group:first-child > .sub-menu { display: grid; grid-template-columns: 1fr 1fr; }
  .p-global-nav .ekilog-menu-group:first-child { border-right: 1px solid rgba(255, 255, 255, 0.12); }
  .p-global-nav .ekilog-menu-group > .sub-menu > li { position: static; }
  .p-global-nav .ekilog-menu-group > .sub-menu > li > a { width: 180px; padding: 10px 20px; }
  .p-global-nav .ekilog-menu-group > .sub-menu > li.ekilog-menu-subhead > a { padding: 12px 20px 2px; }
  /* 路線（3段目）：「鉄道」の列のすぐ右に、上端から（「バス」の列に重ねて出す） */
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu { top: 0; left: 100%; min-height: 100%; box-shadow: 4px 4px 16px rgba(0, 0, 0, 0.25); background: #22313f; transition: opacity 0.15s, visibility 0s linear 0.25s; }
  .p-global-nav .ekilog-menu-group .sub-menu li:hover > .sub-menu { left: 100%; transition-delay: 0.12s; }
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu a { width: 300px; padding: 10px 22px; background: none; }
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu a:hover { background: #a8452e; }
  /* 鉄道の左の列（奇数番目）の会社は、すぐ右（右の列の上に重ねて）に出す。外側に出すと、途中で右の列の会社を通って切り替わってしまう */
  .p-global-nav .ekilog-menu-lines .ekilog-menu-group:first-child > .sub-menu > li:nth-child(odd) > .sub-menu,
  .p-global-nav .ekilog-menu-lines .ekilog-menu-group:first-child > .sub-menu > li:nth-child(odd):hover > .sub-menu { left: 50%; }
  /* 路線の多い会社（JR の19本）は2列にして、画面の下で切れないように */
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu:has(> li:nth-child(11)) { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(10, auto); grid-auto-flow: column; align-content: start; } /* 縦に読む順（20本まで） */
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu:has(> li:nth-child(11)) a { width: 270px; }
}
@media (max-width: 1199px) {
  .p-global-nav .ekilog-menu-group > a { height: 36px; line-height: 40px; font-size: 11px; letter-spacing: 0.3em; color: #c9bfae; }
  .p-global-nav .ekilog-menu-group > .sub-menu { display: block !important; }
  .p-global-nav .ekilog-menu-group .sub-menu .sub-menu a { padding-left: 40px; }
  .p-global-nav .ekilog-menu-subhead > a { height: 30px; line-height: 34px; }
}

/* ===== サイドバー（inc/widgets.php） ===== */
.l-secondary .p-widget { margin-bottom: 40px; }
.l-secondary .p-widget__title { font-family: var(--ek-serif); font-weight: 600; font-size: 17px; letter-spacing: 0.1em; color: var(--ek-ink); background: none; height: auto; line-height: 1.6; padding: 0 0 10px; margin-bottom: 16px; border-bottom: 1px solid var(--ek-ink); }
/* 駅を探す（小さい版）：1列に積む */
.ekilog-search--compact { padding: 22px 20px; margin-bottom: 0; }
.ekilog-search--compact .ekilog-search__title { font-size: 17px; margin-bottom: 14px; }
.ekilog-search--compact .ekilog-search__fields { grid-template-columns: 1fr; gap: 12px; }
.ekilog-search--compact .ekilog-search__btn { width: 100%; margin-top: 16px; }
/* よく読まれている駅 */
.ekilog-side-list { list-style: none; margin: 0; padding: 0; }
.ekilog-side-list li { border-bottom: 1px solid var(--ek-line); }
.ekilog-side-list a { display: flex; gap: 14px; align-items: center; padding: 12px 0; color: var(--ek-text); }
.ekilog-side-list a:hover .ekilog-side-list__title { color: var(--ek-accent); }
.ekilog-side-list__img { position: relative; flex: 0 0 76px; height: 76px; overflow: hidden; background: var(--ek-line); }
.ekilog-side-list__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ekilog-side-list__rank { position: absolute; left: 0; top: 0; min-width: 22px; padding: 2px 4px; background: var(--ek-ink); color: #fff; font-size: 11px; text-align: center; }
.ekilog-side-list__title { display: block; font-family: var(--ek-serif); font-size: 14px; line-height: 1.6; font-weight: 600; }
.ekilog-side-list__meta { display: block; font-size: 11px; color: var(--ek-sub); margin-top: 4px; }
/* この路線の前後の駅：路線名の下に「前の駅 ― この駅 ― 次の駅」を路線図の形で */
.ekilog-nb { list-style: none; margin: 0; padding: 0; }
.ekilog-nb__line { padding: 12px 0 14px; border-bottom: 1px solid var(--ek-line); }
.ekilog-nb__name { display: block; font-size: 12px; letter-spacing: 0.08em; color: var(--ek-sub); margin-bottom: 10px; }
.ekilog-nb__name:hover { color: var(--ek-accent); }
.ekilog-nb__row { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 4px; }
/* 線：前の駅のまん中から次の駅のまん中まで */
.ekilog-nb__row::before { content: ""; position: absolute; left: 16.6%; right: 16.6%; top: 5px; height: 1px; background: var(--ek-ink); }
.ekilog-nb__st, .ekilog-nb__here { position: relative; display: block; padding-top: 16px; text-align: center; font-family: var(--ek-serif); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.ekilog-nb__st { color: var(--ek-text); }
.ekilog-nb__st:hover { color: var(--ek-accent); }
.ekilog-nb__st::before, .ekilog-nb__here::before { content: ""; position: absolute; left: 50%; top: 0; width: 11px; height: 11px; margin-left: -5.5px; border-radius: 50%; background: var(--ek-paper, #f2efe9); border: 1px solid var(--ek-ink); box-sizing: border-box; }
.ekilog-nb__here { font-weight: 600; color: var(--ek-ink); }
.ekilog-nb__here::before { background: var(--ek-accent); border-color: var(--ek-accent); }
.ekilog-nb__st--prev::after { content: "←"; display: block; font-size: 10px; color: var(--ek-sub); }
.ekilog-nb__st--next::after { content: "→"; display: block; font-size: 10px; color: var(--ek-sub); }
/* 終点：印と線を出さない */
.ekilog-nb__st.is-end::before, .ekilog-nb__st.is-end::after { display: none; }
.ekilog-nb__row:has(.ekilog-nb__st--prev.is-end)::before { left: 50%; }
.ekilog-nb__row:has(.ekilog-nb__st--next.is-end)::before { right: 50%; }
/* その後の変化から探す */
.ekilog-side-lead { font-size: 12px; color: var(--ek-sub); line-height: 1.8; margin-bottom: 10px; }
.ekilog-side-links { list-style: none; margin: 0; padding: 0; }
.ekilog-side-links a { display: flex; justify-content: space-between; padding: 10px 2px; border-bottom: 1px solid var(--ek-line); font-size: 14px; color: var(--ek-text); }
.ekilog-side-links a:hover { color: var(--ek-accent); }
.ekilog-side-links a span { font-size: 12px; color: var(--ek-sub); }
/* バナー：サイドバーでは小さく */
.l-secondary .ekilog-banner { padding: 28px 22px; margin-bottom: 0; }
.l-secondary .ekilog-banner__title { font-size: 18px; margin-bottom: 10px; }
.l-secondary .ekilog-banner__text { font-size: 13px; line-height: 1.9; margin-bottom: 18px; }
/* 素材貸し出し（サイドバーのいちばん下）：PC ではスクロールしても右に残る。画面が低いときは今までどおり */
@media (min-width: 992px) and (min-height: 560px) {
  .l-secondary .p-widget.widget_ekilog_banner:last-child:has(.ekilog-banner--lending) { position: sticky; top: 30px; }
}

/* 路線の一覧（?line=）の見出し：路線名の下に小さく「駅は路線の順に並んでいます」 */
.p-headline:has(.ekilog-line-note) { height: auto; line-height: 1.6; padding-top: 12px; padding-bottom: 12px; }
.ekilog-line-note { display: block; font-size: 11px; letter-spacing: 0.15em; opacity: 0.75; font-weight: normal; }

/* ===== 索引ページ（路線別・ご当地別・ランキング。inc/index-pages.php） ===== */
.ekilog-index-lead { font-size: 14px; color: var(--ek-sub); line-height: 2; margin-bottom: 32px !important; }
/* タブが多い（路線別は17）ので折り返す */
.ekilog-tabs--index .ekilog-tabs__list { flex-wrap: wrap; overflow: visible; margin: 0 0 24px; }
.ekilog-tabs--index .ekilog-tabs__tab { padding: 10px 14px; }
/* 開閉する区切り（路線・市区町村） */
.p-entry__body .ekilog-fold { border-bottom: 1px solid var(--ek-line); margin: 0; }
.p-entry__body .ekilog-fold:first-child { border-top: 1px solid var(--ek-line); }
.ekilog-fold__head { display: flex; align-items: baseline; gap: 12px; padding: 16px 36px 16px 4px; cursor: pointer; list-style: none; position: relative; }
.ekilog-fold__head::-webkit-details-marker { display: none; }
.ekilog-fold__head::after { content: ""; position: absolute; right: 10px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 1px solid var(--ek-ink); border-bottom: 1px solid var(--ek-ink); transform: rotate(45deg); transition: transform 0.2s; }
.ekilog-fold[open] > .ekilog-fold__head::after { transform: rotate(-135deg); margin-top: -1px; }
.ekilog-fold__head:hover .ekilog-fold__title { color: var(--ek-accent); }
.ekilog-fold__title { font-family: var(--ek-serif); font-weight: 600; font-size: 17px; letter-spacing: 0.06em; color: var(--ek-ink); }
.ekilog-fold__count { font-size: 12px; color: var(--ek-sub); }
.p-entry__body .ekilog-fold__more { margin: 0 0 22px !important; text-align: right; font-size: 13px; }
/* 駅の1行 */
.p-entry__body ol.ekilog-st-list { list-style: none; margin: 0 0 18px; padding: 0; }
.p-entry__body .ekilog-st { margin: 0; padding: 0; list-style: none; }
.p-entry__body .ekilog-st::before { content: none; }
.p-entry__body .ekilog-st__link { display: flex; align-items: flex-start; gap: 16px; padding: 10px 4px; color: var(--ek-text); text-decoration: none; }
.p-entry__body .ekilog-st:hover { background: rgba(27, 37, 48, 0.04); }
.p-entry__body .ekilog-st:hover a.ekilog-st__title { color: var(--ek-accent); }
/* 駅名のリンクを行全体に広げる。バッジ（そのバッジの一覧へのリンク）はその上に重ねて押せるように */
.p-entry__body a.ekilog-st__title, .p-entry__body a.ekilog-st__title:hover { color: var(--ek-ink); text-decoration: none; }
.ekilog-st { position: relative; }
.ekilog-st__title::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ekilog-st .ekilog-badges { position: relative; z-index: 2; }
.ekilog-st__img { flex: 0 0 72px; height: 54px; overflow: hidden; background: var(--ek-line); }
.ekilog-st__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0 !important; }
.ekilog-st__body { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-width: 0; }
.ekilog-st__title { display: block; font-family: var(--ek-serif); font-weight: 600; font-size: 15px; line-height: 1.5; width: 100%; }
.ekilog-st__sub { width: 100%; font-size: 13px; line-height: 1.7; color: var(--ek-text); }
.ekilog-st__meta { font-size: 11px; color: var(--ek-sub); letter-spacing: 0.05em; }
.ekilog-st__body .ekilog-badge { font-size: 10px; }
/* 路線別：路線図のように縦の線と駅の印（ロゴの印と同じ朱の丸） */
.ekilog-st-list--route .ekilog-st { position: relative; padding-left: 28px; }
.ekilog-st-list--route .ekilog-st::after { content: ""; position: absolute; left: 9px; top: 0; bottom: 0; width: 2px; background: var(--ek-ink); }
/* 印は写真の縦のまん中（上の余白10px＋写真の高さの半分）。副題が長くて行が高くなっても写真にそろう */
.ekilog-st-list--route { --ek-dot: 37px; }
.ekilog-st-list--route .ekilog-st:first-child::after { top: var(--ek-dot); }
.ekilog-st-list--route .ekilog-st:last-child::after { bottom: auto; height: var(--ek-dot); }
.ekilog-st-list--route .ekilog-st:only-child::after { display: none; }
.ekilog-st-list--route .ekilog-st__link::before { content: ""; position: absolute; left: 4px; top: var(--ek-dot); width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--ek-card); border: 2px solid var(--ek-accent); box-sizing: border-box; z-index: 1; }
@media (max-width: 767px) {
  .ekilog-tabs--index .ekilog-tabs__tab { padding: 8px 10px; font-size: 13px; }
  .ekilog-st__img { flex-basis: 60px; height: 45px; }
  .ekilog-st-list--route { --ek-dot: 32px; }
  .ekilog-st__title { font-size: 14px; }
}
/* 路線の一覧の最後：路線別駅一覧へ */
.ekilog-line-back { text-align: center; padding: 8px 0 64px; background: var(--ek-paper); }
.ekilog-line-back a { display: inline-block; font-size: 14px; letter-spacing: 0.08em; color: var(--ek-ink); border-bottom: 1px solid var(--ek-ink); padding-bottom: 3px; }
.ekilog-line-back a:hover { color: var(--ek-accent); border-color: var(--ek-accent); }

/* 本文の中のカード（アクセスランキングのページ）：記事本文の文字の設定（段落の大きさ・行間・余白、見出しの大きさ、リンクの色・下線）を外して、トップページのカードと同じに */
.p-entry__body .ekilog-card__link, .p-entry__body .ekilog-card__link:hover { color: inherit; text-decoration: none; }
.p-entry__body .ekilog-card__title { font-size: 17px; line-height: 1.55; margin: 0 0 10px; padding: 0; border: 0; background: none; }
.p-entry__body .ekilog-card__sub { font-size: 15px; line-height: 1.7; margin: 0 0 10px; } /* トップのカードと同じ */
@media (max-width: 767px) {
  .p-entry__body .ekilog-card__title { font-size: 14px; }
  .p-entry__body .ekilog-card__sub { font-size: 13px; line-height: 1.65; margin-top: 0; }
}

/* ===== 写真の貸し出し（固定ページ lending。本文は wp/pages/lending.html） ===== */
.p-entry__body .ekilog-lending h2 { font-family: var(--ek-serif); font-weight: 600; letter-spacing: 0.08em; color: var(--ek-ink); }
.ekilog-lending__lead { font-family: var(--ek-serif); font-size: 17px; line-height: 2.1; color: var(--ek-ink); margin-bottom: 40px !important; }
.p-entry__body .ekilog-lending__facts { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 24px; padding: 0; }
.p-entry__body .ekilog-lending__facts li { margin: 0; padding: 20px 12px; background: var(--ek-card); border: 1px solid var(--ek-line); text-align: center; list-style: none; }
.ekilog-lending__facts strong { display: block; font-family: var(--ek-serif); font-size: 24px; color: var(--ek-accent); letter-spacing: 0.04em; line-height: 1.4; }
.ekilog-lending__facts span { display: block; font-size: 12px; color: var(--ek-sub); line-height: 1.7; margin-top: 6px; }
/* 今はもう撮れない光景：その後の変化の一覧へ（2列の札） */
.p-entry__body .ekilog-lending__samples { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 24px; padding: 0; }
.p-entry__body .ekilog-lending__samples li { margin: 0; list-style: none; }
.p-entry__body .ekilog-lending__samples a { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--ek-card); border: 1px solid var(--ek-line); color: var(--ek-text); text-decoration: none; font-size: 14px; }
.p-entry__body .ekilog-lending__samples a:hover { border-color: var(--ek-accent); color: var(--ek-accent); }
.ekilog-lending__samples a span { font-size: 12px; color: var(--ek-sub); }
/* ご利用の流れ：番号の丸と縦の線 */
.p-entry__body .ekilog-lending__steps { list-style: none; counter-reset: step; margin: 0 0 24px; padding: 0; }
.p-entry__body .ekilog-lending__steps li { position: relative; counter-increment: step; list-style: none; margin: 0; padding: 0 0 24px 52px; line-height: 1.9; }
.ekilog-lending__steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 34px; height: 34px; line-height: 34px; border-radius: 50%; background: var(--ek-ink); color: #fff; text-align: center; font-family: var(--ek-serif); font-size: 15px; }
.ekilog-lending__steps li:not(:last-child)::after { content: ""; position: absolute; left: 17px; top: 38px; bottom: 4px; width: 1px; background: var(--ek-line); }
.ekilog-lending__steps strong { display: block; font-family: var(--ek-serif); font-size: 16px; color: var(--ek-ink); }
/* 料金の目安：使い道と金額の表 */
.p-entry__body .ekilog-lending__price { width: 100%; border-collapse: collapse; margin: 0 0 20px; background: var(--ek-card); border: 1px solid var(--ek-line); }
.p-entry__body .ekilog-lending__price th, .p-entry__body .ekilog-lending__price td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--ek-line); background: none; font-size: 15px; line-height: 1.7; vertical-align: middle; }
.p-entry__body .ekilog-lending__price tr:last-child th, .p-entry__body .ekilog-lending__price tr:last-child td { border-bottom: 0; }
.p-entry__body .ekilog-lending__price { display: table; table-layout: auto; max-width: 100%; box-sizing: border-box; }
.p-entry__body .ekilog-lending__price th { width: auto; min-width: 0; white-space: normal; text-align: left; font-weight: normal; color: var(--ek-text); }
.p-entry__body .ekilog-lending__price td { text-align: right; white-space: nowrap; font-family: var(--ek-serif); font-size: 18px; color: var(--ek-accent); letter-spacing: 0.04em; }
/* お問い合わせフォーム（Contact Form 7） */
.ekilog-lending .wpcf7 { background: var(--ek-card); border: 1px solid var(--ek-line); padding: 28px 24px; margin-bottom: 32px; }
.ekilog-lending .wpcf7 label { display: block; font-size: 14px; font-weight: 600; color: var(--ek-ink); margin-bottom: 18px; }
.ekilog-lending .wpcf7 input[type="text"], .ekilog-lending .wpcf7 input[type="email"], .ekilog-lending .wpcf7 select, .ekilog-lending .wpcf7 textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--ek-line); background: #fff; font-size: 16px; font-weight: normal; color: var(--ek-text); border-radius: 0; }
.ekilog-lending .wpcf7 textarea { height: 7.5em; }
.ekilog-lending .wpcf7 input[type="submit"] { display: block; width: 100%; max-width: 320px; margin: 8px auto 0; padding: 14px; background: var(--ek-accent); color: #fff; border: 0; font-size: 15px; letter-spacing: 0.1em; cursor: pointer; }
.ekilog-lending .wpcf7 input[type="submit"]:hover { background: var(--ek-ink); }
.ekilog-lending__owner { font-size: 13px; color: var(--ek-sub); text-align: right; }
@media (max-width: 600px) {
  .p-entry__body .ekilog-lending__facts { grid-template-columns: 1fr; }
  .p-entry__body .ekilog-lending__samples { grid-template-columns: 1fr; }
  .p-entry__body .ekilog-lending__price th, .p-entry__body .ekilog-lending__price td { padding: 12px 10px; font-size: 14px; }
  .p-entry__body .ekilog-lending__price td { font-size: 16px; }
  .ekilog-lending__lead { font-size: 15px; }
}

/* フッター（template-parts/footer-links.php）：このサイトについて／所在地から探す／探す・見る */
.ekilog-footer { background: var(--ek-ink); color: rgba(255,255,255,0.78); padding: 56px 0 48px; }
.ekilog-footer__inner { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
.ekilog-footer a { color: #fff; text-decoration: none; }
.ekilog-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.ekilog-footer__logo { margin: 0 0 16px; font-family: var(--ek-serif); font-size: 22px; letter-spacing: 0.08em; color: #fff; line-height: 1.4; }
.ekilog-footer__logo span { display: block; font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin-bottom: 4px; }
.ekilog-footer__text { margin: 0 0 14px; font-size: 13px; line-height: 2; }
.ekilog-footer__more { margin: 0; font-size: 13px; }
.ekilog-footer__more a::after { content: " →"; color: var(--ek-accent); }
.ekilog-footer__title { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.18); font-family: var(--ek-serif); font-size: 15px; letter-spacing: 0.12em; color: #fff; }
.ekilog-footer__prefs { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; margin: 0 0 14px; padding: 0; font-size: 14px; }
.ekilog-footer__list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.ekilog-footer__list li { margin: 0 0 10px; }
.ekilog-footer__sub { margin: 0; font-size: 13px; }
.l-footer .p-copyright { background: #141b23; color: rgba(255,255,255,0.6); }
@media (max-width: 991px) {
  .ekilog-footer__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px 32px; }
  .ekilog-footer__about { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .ekilog-footer { padding: 40px 0 32px; }
  .ekilog-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ekilog-footer__list li { margin-bottom: 0; }
  .ekilog-footer__list a, .ekilog-footer__prefs a { display: block; padding: 9px 0; } /* 指で押しやすく */
  .ekilog-footer__prefs { gap: 0 12px; }
}

/* 記事ページの上の画像（functions.php で切らない 16:10 の版に）。題名は画像に重ねず下に出す（画像に描いた駅名・バッジ・印を隠さない）。
   左上の事業者の札もバッジに重なるので出さない（事業者は題名の下の行にある） */
.p-entry__img img { display: block; }
.p-entry__img::before { display: none; }
.p-entry__inner > .p-entry__cat { display: none; }
.p-entry__header-content { position: static; color: var(--ek-ink); padding: 30px 0 0; }
.p-entry__header-content .p-entry__title { color: var(--ek-ink); }
.p-entry__header-content .p-meta, .p-entry__header-content .p-meta a { color: var(--ek-sub); }
@media (max-width: 767px) {
  .p-entry__img { margin: 0; }
  .p-entry__header-content { padding: 18px 20px 0; }
}
