/* =====================================================================
   godo-jibunde 共通ページスタイル（トップ以外の全ページで読み込む）
   2026-09-20 トップページのデザインを他のページへ展開したもの
   ルール9：320 / 390 / 430px で横スクロールが発生しないこと
   ルール10：同じ形のブロックが並ぶ場所は1件ずつ見た目を変える
   ===================================================================== */

/* ============ 共通の小さな部品 ============ */
.godo-kicker, .gfp-kicker {
  font-size: 14px; font-weight: 700; letter-spacing: 0.08em; color: var(--godo-navy);
  display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
.godo-kicker::before, .gfp-kicker::before { content: ""; width: 26px; height: 2px; background: var(--godo-gold); display: inline-block; flex: none; }
.godo-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; letter-spacing: 0.06em; color: var(--godo-navy);
  background: var(--godo-link-bg); border-radius: 999px; padding: 5px 12px 5px 10px; font-weight: 700;
}
.godo-eyebrow .godo-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--godo-gold); flex: none; }
.godo-link-inline { font-size: 15.5px; font-weight: 700; color: var(--godo-navy); display: inline-flex; align-items: center; gap: 6px; }
.godo-link-inline:hover { text-decoration: none; color: var(--godo-link); }
.godo-note { font-size: 13.5px; color: var(--godo-sub); line-height: 1.75; }
.godo-src {
  margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--godo-line);
  font-size: 13.5px; color: var(--godo-sub); line-height: 1.8;
}
.godo-src a { color: var(--godo-link); font-weight: 700; }
.godo-pill {
  display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 700;
  border-radius: 999px; padding: 4px 11px; background: var(--godo-link-bg); color: var(--godo-navy);
}
.godo-pill--self { background: var(--godo-green-bg); color: var(--godo-green); }
.godo-pill--pro { background: var(--godo-red-bg); color: var(--godo-red); }
.godo-pill--warm { background: #f6ead2; color: var(--godo-gold-deep); }

/* セクション見出し（トップの gfp-section-head と同じ見え方） */
.godo-sect { padding: 44px 0; }
.godo-sect--alt { background: #f1ecdf; border-top: 1px solid var(--godo-line); border-bottom: 1px solid var(--godo-line); }
.godo-sect-head { max-width: 680px; margin-bottom: 26px; }
.godo-sect-head h2 { font-size: clamp(21px,4.4vw,27.5px); line-height: 1.6; margin: 0 0 12px; color: var(--godo-ink); font-weight: 700; }
.godo-sect-head p { color: var(--godo-sub); font-size: 16px; margin: 0; line-height: 1.85; }
.godo-sect-head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 26px; }
.godo-sect-head-row .godo-sect-head { margin-bottom: 0; }

/* ============ パンくず ============ */
.godo-breadcrumb { background: transparent; border-bottom: 1px solid var(--godo-line); }
.godo-breadcrumb ol {
  max-width: min(var(--godo-maxw), 100vw); margin: 0 auto; padding: 11px 20px; list-style: none;
  display: flex; flex-wrap: wrap; gap: 4px; font-size: 14px; color: var(--godo-sub);
}
.godo-breadcrumb li { display: flex; align-items: center; gap: 4px; }
.godo-breadcrumb li:not(:last-child)::after { content: "›"; margin-left: 4px; color: #b9ae94; }
.godo-breadcrumb a { color: var(--godo-sub); }
.godo-breadcrumb a:hover { color: var(--godo-navy); }

/* ============ ページ見出し帯（カテゴリー／タグ／検索／固定ページ共通） ============ */
.gph {
  position: relative; overflow: hidden;
  padding: 40px 0 34px;
  background-color: var(--godo-bg);
  background-image:
    linear-gradient(rgba(27, 51, 88, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27, 51, 88, 0.05) 1px, transparent 1px);
  background-size: 28px 28px;
  border-bottom: 1px solid var(--godo-line);
}
.gph::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(247, 244, 236, 0) 0%, var(--godo-bg) 94%);
}
.gph > .godo-container { position: relative; z-index: 1; }
.gph-grid { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 32px; align-items: start; }
.gph-main { min-width: 0; }
.gph-title-row { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.gph-icon {
  flex: none; width: 52px; height: 52px; border-radius: var(--godo-r-md);
  background: var(--godo-navy); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.gph-icon svg { width: 26px; height: 26px; }
.gph h1 { font-size: clamp(24.5px,5.5vw,36.5px); font-weight: 700; color: var(--godo-ink); margin: 0; line-height: 1.45; }
.gph h1 em { font-style: normal; color: var(--godo-gold-deep); }
.gph-desc { color: var(--godo-sub); font-size: 16.5px; margin: 0 0 18px; line-height: 1.9; max-width: 640px; }

/* 見出し帯のなかの数値 */
.gph-stats { display: flex; gap: 0; border-top: 1px solid var(--godo-line); margin-bottom: 18px; flex-wrap: wrap; }
.gph-stat { padding: 14px 20px 0; border-left: 1px solid var(--godo-line); min-width: 96px; }
.gph-stat:first-child { border-left: none; padding-left: 0; }
.gph-stat b { display: block; font-size: 28.5px; font-weight: 700; color: var(--godo-navy); line-height: 1.1; }
.gph-stat b sup { font-size: max(12px, 0.5em); margin-left: 2px; }
.gph-stat span { font-size: 13.5px; color: var(--godo-sub); display: block; margin-top: 6px; line-height: 1.6; }

/* 見出し帯の右カラム（カード） */
.gph-side { display: flex; flex-direction: column; gap: 14px; }
.gph-box {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  box-shadow: var(--godo-shadow); padding: 18px 18px 16px;
}
.gph-box h2 { font-size: 14px; color: var(--godo-sub); letter-spacing: 0.05em; margin: 0 0 12px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.gph-box h2::before { content: ""; width: 18px; height: 2px; background: var(--godo-gold); flex: none; }
.gph-box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.gph-box li { font-size: 14.5px; line-height: 1.6; }
.gph-box a { color: var(--godo-ink); }
.gph-box a:hover { color: var(--godo-link); }
.gph-box--cta { background: var(--godo-navy); border-color: var(--godo-navy); }
.gph-box--cta h2 { color: #c9d4e6; }
.gph-box--cta p { color: #dfe6f2; font-size: 14.5px; line-height: 1.8; margin: 0 0 14px; }
.gph-box--cta .godo-btn-primary { width: 100%; background: var(--godo-gold); color: #2b2110; box-shadow: none; }
.gph-box--cta .godo-btn-primary:hover { color: #2b2110; filter: brightness(1.06); }
.gph-box--cta .godo-note { color: #a9b6cd; margin-top: 10px; display: block; font-size: 12px; }

/* タグチップ（絞り込み導線） */
.gchips { display: flex; flex-wrap: wrap; gap: 7px; }
.gchips a {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: 999px;
  padding: 5px 13px; font-size: 14px; color: var(--godo-sub);
}
.gchips a:hover { background: var(--godo-link-bg); color: var(--godo-navy); text-decoration: none; }
.gchips a em { font-style: normal; font-size: 12px; opacity: 0.8; }
.gchips a.is-current { background: var(--godo-navy); border-color: var(--godo-navy); color: #fff; }
.gchips-label { font-size: 13.5px; color: var(--godo-sub); font-weight: 700; margin: 0 0 8px; }

/* SNSの検索リンク */
.godo-sns { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.godo-sns a {
  display: inline-flex; align-items: center; gap: 6px; font-size: 14px;
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: 999px;
  padding: 6px 13px; color: var(--godo-sub);
}
.godo-sns a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }

/* ============ 本文エリアの外枠 ============ */
.godo-main { padding: 36px 0 20px; }
.godo-main--narrow .godo-container { max-width: min(860px, 100vw); }

/* ============ 記事カード（ルール10：1件ずつ見た目を変える） ============ */
.gcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 18px; grid-auto-flow: dense; }
.gcard {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  box-shadow: var(--godo-shadow); overflow: hidden; display: flex; flex-direction: column; min-width: 0;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.gcard:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(27, 51, 88, 0.14); }
/* アイキャッチは 1200x630（40:21）で生成しているので、枠も同じ比率にして切り取りも余白も出さない */
.gcard-thumb { background: var(--godo-bg); border-bottom: 1px solid var(--godo-line); overflow: hidden; flex: none; aspect-ratio: 40 / 21; }
.gcard-thumb a { display: block; height: 100%; }
.gcard-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcard-body { padding: 18px 20px; display: flex; flex-direction: column; gap: 9px; flex: 1; min-width: 0; }
.gcard-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 13.5px; color: var(--godo-sub); }
.gcard-cat { background: var(--godo-link-bg); color: var(--godo-navy); border-radius: 999px; padding: 3px 11px; font-weight: 700; font-size: 13px; }
.gcard-title { font-size: 17.5px; font-weight: 700; line-height: 1.65; margin: 0; }
.gcard-title a { color: var(--godo-ink); }
.gcard-title a:hover { color: var(--godo-navy); text-decoration: none; }
.gcard-excerpt { font-size: 16px; color: var(--godo-sub); margin: 0; line-height: 1.85; }
.gcard-foot { margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--godo-line); display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; color: var(--godo-sub); }
.gcard-arrow { width: 24px; height: 24px; border-radius: 50%; background: var(--godo-link-bg); color: var(--godo-navy); display: flex; align-items: center; justify-content: center; flex: none; }

/* 変種1：先頭の大きいカード（広い画面では画像を左に大きく、狭い画面では画像を上に） */
.gcard--feature { grid-column: 1 / -1; }
.gcard--feature .gcard-body { padding: 24px 26px; }
.gcard--feature .gcard-title { font-size: clamp(19px,3.6vw,24.5px); }
.gcard--feature .gcard-excerpt { font-size: 16px; }
@media (min-width: 900px) {
  .gcard--feature { flex-direction: row; }
  .gcard--feature .gcard-thumb { width: 52%; border-bottom: none; border-right: 1px solid var(--godo-line); }
  .gcard--feature .gcard-body { padding: 28px 32px; justify-content: center; }
}

/* 変種2・3：画像左／画像右 */
.gcard--img-left, .gcard--img-right { grid-column: 1 / -1; }
@media (min-width: 760px) {
  .gcard--img-left { flex-direction: row; }
  .gcard--img-right { flex-direction: row-reverse; }
  .gcard--img-left .gcard-thumb, .gcard--img-right .gcard-thumb { width: 42%; flex: none; border-bottom: none; align-self: stretch; aspect-ratio: auto; min-height: 170px; }
  .gcard--img-left .gcard-thumb { border-right: 1px solid var(--godo-line); }
  .gcard--img-right .gcard-thumb { border-left: 1px solid var(--godo-line); }
  .gcard--img-left .gcard-body, .gcard--img-right .gcard-body { padding: 22px 26px; justify-content: center; }
}
@media (min-width: 1000px) {
  .gcard--img-left, .gcard--img-right { grid-column: span 2; }
}

/* 変種4：画像なし・濃色の帯 */
.gcard--band { background: var(--godo-navy); border-color: var(--godo-navy); }
.gcard--band .gcard-title a { color: #fff; }
.gcard--band .gcard-title a:hover { color: #fff; }
.gcard--band .gcard-excerpt { color: #dfe6f2; }
.gcard--band .gcard-meta, .gcard--band .gcard-foot { color: #c9d4e6; }
.gcard--band .gcard-cat { background: rgba(255, 255, 255, 0.16); color: #fff; }
.gcard--band .gcard-foot { border-top-color: rgba(255, 255, 255, 0.22); }
.gcard--band .gcard-arrow { background: rgba(255, 255, 255, 0.16); color: #fff; }

/* 変種5：画像なし・金の色帯 */
.gcard--plain { border-left: 4px solid var(--godo-gold); }
.gcard--plain .gcard-body { padding-left: 18px; }

/* 変種6：1行だけの行リスト */
.gcard--compact { grid-column: 1 / -1; flex-direction: row; align-items: center; box-shadow: none; }
.gcard--compact .gcard-body { flex-direction: row; align-items: center; gap: 14px; padding: 14px 20px; flex-wrap: wrap; }
.gcard--compact .gcard-title { flex: 1; font-size: 17px; min-width: 0; }
.gcard--compact .gcard-excerpt { display: none; }
.gcard--compact .gcard-foot { margin: 0; padding: 0; border: none; flex: none; }
.gcard--compact .gcard-date { flex: none; width: 84px; }

/* 一覧の空状態 */
.godo-empty {
  padding: 40px 24px; text-align: center; color: var(--godo-sub); background: var(--godo-card);
  border: 1px solid var(--godo-line); border-radius: var(--godo-r-md); box-shadow: var(--godo-shadow); line-height: 1.9;
}

/* ============ ページネーション ============ */
.godo-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin: 30px 0 0; justify-content: center; }
.godo-pagination a, .godo-pagination span {
  padding: 9px 15px; border: 1px solid var(--godo-line); border-radius: 999px; font-size: 14.5px;
  background: var(--godo-card); color: var(--godo-ink); font-weight: 700;
}
.godo-pagination a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }
.godo-pagination .current { background: var(--godo-navy); border-color: var(--godo-navy); color: #fff; }

/* ============ 検索フォーム ============ */
.godo-search-form { display: flex; gap: 8px; max-width: 460px; margin: 0; }
.godo-search-form input[type="search"] {
  flex: 1; min-width: 0; padding: 11px 16px; border: 1px solid var(--godo-line);
  border-radius: 999px; font-size: 15.5px; background: var(--godo-card); color: var(--godo-ink);
}
.godo-search-form input[type="search"]:focus { outline: 2px solid var(--godo-link); outline-offset: 1px; }
.godo-search-form button {
  background: var(--godo-navy); color: #fff; border: none; border-radius: 999px;
  padding: 11px 22px; font-size: 15px; font-weight: 700; cursor: pointer; flex: none;
}

/* ============ 記事詳細 ============ */
.gart-layout { display: grid; gap: 30px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .gart-layout { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; } }

.gart-head { margin-bottom: 22px; }
.gart-head .gcard-meta { margin-bottom: 12px; }
.gart-title { font-size: clamp(24.5px,5.5vw,36.5px); font-weight: 700; color: var(--godo-ink); margin: 0 0 14px; line-height: 1.5; }
.gart-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 14px; color: var(--godo-sub); border-top: 1px solid var(--godo-line); padding-top: 12px; }
.gart-meta span { display: inline-flex; align-items: center; gap: 5px; }
.gart-meta b { color: var(--godo-ink); font-weight: 700; }
.gart-thumb {
  margin: 20px 0 0; border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  overflow: hidden; background: var(--godo-bg); box-shadow: var(--godo-shadow);
}
.gart-thumb img { width: 100%; height: auto; display: block; aspect-ratio: 40 / 21; object-fit: cover; }

/* 目次 */
.godo-toc {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  box-shadow: var(--godo-shadow); padding: 18px 20px; margin: 0 0 22px; position: static;
}
@media (min-width: 1000px) { .gart-sidebar .godo-toc { position: sticky; top: 96px; } }
.godo-toc h2 { font-size: 14px; color: var(--godo-sub); letter-spacing: 0.05em; margin: 0 0 12px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.godo-toc h2::before { content: ""; width: 18px; height: 2px; background: var(--godo-gold); flex: none; }
.godo-toc ol { list-style: none; padding: 0; margin: 0; counter-reset: godo-toc; }
.godo-toc li { counter-increment: godo-toc; margin-bottom: 9px; font-size: 14px; line-height: 1.6; }
.godo-toc li a { display: flex; gap: 9px; color: var(--godo-ink); align-items: flex-start; }
.godo-toc li a:hover { color: var(--godo-link); text-decoration: none; }
.godo-toc li a::before {
  content: counter(godo-toc); flex: none; width: 19px; height: 19px; border-radius: 50%;
  background: var(--godo-link-bg); color: var(--godo-navy); font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; margin-top: 2px;
}
.godo-toc--mobile { display: block; }
.gart-sidebar .godo-toc { display: none; }
@media (min-width: 1000px) {
  .godo-toc--mobile { display: none; }
  .gart-sidebar .godo-toc { display: block; }
}

/* 「役に立った」 */
.godo-helpful {
  text-align: center; margin: 30px 0; padding: 24px 20px; background: var(--godo-card);
  border: 1px solid var(--godo-line); border-radius: var(--godo-r-md); box-shadow: var(--godo-shadow);
}
.godo-helpful p { margin: 0 0 14px; font-size: 15px; color: var(--godo-sub); }
.godo-helpful button {
  background: var(--godo-navy); color: #fff; border: none; border-radius: 999px;
  padding: 11px 26px; font-weight: 700; font-size: 15.5px; cursor: pointer; box-shadow: var(--godo-shadow);
}
.godo-helpful button:hover { filter: brightness(1.12); }
.godo-helpful button:disabled { opacity: 0.6; cursor: default; }
.godo-helpful__count { font-weight: 700; }

/* 著者ボックス */
.godo-author-box {
  display: flex; gap: 14px; align-items: flex-start; background: #f1ecdf;
  border: 1px solid var(--godo-line); border-radius: var(--godo-r-md); padding: 20px; margin: 26px 0;
}
.godo-author-box__icon {
  flex: none; width: 46px; height: 46px; border-radius: var(--godo-r-sm); background: var(--godo-navy);
  color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px;
}
.godo-author-box h2, .godo-author-box h3 { margin: 0 0 6px; font-size: 15.5px; color: var(--godo-ink); font-weight: 700; }
.godo-author-box p { margin: 0; font-size: 14px; color: var(--godo-sub); line-height: 1.85; }
.godo-author-box a { color: var(--godo-link); font-weight: 700; }

/* 記事末尾のタグ */
.godo-tag-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; }
.godo-tag-list a {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: 999px;
  padding: 6px 13px; font-size: 14px; color: var(--godo-sub);
}
.godo-tag-list a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }

/* サイドバーの関連記事 */
.godo-related {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  box-shadow: var(--godo-shadow); padding: 18px 20px; margin-bottom: 14px;
}
.godo-related h2 { font-size: 14px; color: var(--godo-sub); letter-spacing: 0.05em; margin: 0 0 12px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.godo-related h2::before { content: ""; width: 18px; height: 2px; background: var(--godo-gold); flex: none; }
.godo-related ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.godo-related li { border-bottom: 1px dashed var(--godo-line); }
.godo-related li:last-child { border-bottom: none; }
.godo-related a { font-size: 14px; color: var(--godo-ink); font-weight: 700; line-height: 1.65; display: block; padding: 10px 0; }
.godo-related a:hover { color: var(--godo-link); text-decoration: none; }

/* ============ おすすめサイト（ルール2）
   公開済み176記事の本文に .godo-site-list のマークアップが入っているため、
   クラス名は変えずに見た目だけ新しいデザインに合わせる ============ */
.godo-site-list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px;
  counter-reset: godo-site; list-style: none; margin: 0; padding: 0;
}
.godo-site-list__item {
  counter-increment: godo-site;
  position: relative;
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  padding: 14px 16px 14px 46px; min-width: 0;
}
.godo-site-list__item::before {
  content: counter(godo-site);
  position: absolute; left: 14px; top: 14px;
  width: 22px; height: 22px; border-radius: 6px;
  background: var(--godo-link-bg); color: var(--godo-navy);
  font-size: 12.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.godo-site-list__item a { font-weight: 700; font-size: 17px; word-break: break-word; color: var(--godo-ink); line-height: 1.65; }
.godo-site-list__item a:hover { color: var(--godo-link); }
.godo-site-list__item p { margin: 5px 0 0; font-size: 16px; color: var(--godo-sub); line-height: 1.8; }
.godo-site-list__note { font-size: 13.5px; color: var(--godo-sub); margin: 16px 0 0; line-height: 1.8; }

/* --- レイアウト6種（inc/site-list.php がページごとに割り当てる／ルール10） --- */

/* v1：番号つきの白いカード。4件ごとに地色と枠線を変える */
.godo-site-list--v1 .godo-site-list__item:nth-child(4n+2) { background: #f1ecdf; }
.godo-site-list--v1 .godo-site-list__item:nth-child(4n+3) { border-left: 3px solid var(--godo-gold); }
.godo-site-list--v1 .godo-site-list__item:nth-child(4n+4) { border-style: dashed; }

/* v2：枠線を使わない2カラムの罫線リスト */
.godo-site-list--v2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 32px; }
.godo-site-list--v2 .godo-site-list__item {
  background: transparent; border: none; border-bottom: 1px dashed var(--godo-line);
  border-radius: 0; padding: 14px 0 14px 40px;
}
.godo-site-list--v2 .godo-site-list__item::before {
  left: 0; top: 15px; width: 26px; height: 26px; border-radius: 50%;
  background: transparent; border: 1px solid var(--godo-line); color: var(--godo-sub);
}
.godo-site-list--v2 .godo-site-list__item:nth-child(3n+1)::before { background: var(--godo-link-bg); border-color: var(--godo-link-bg); color: var(--godo-navy); }

/* v3：金の左帯カード。番号は右上に大きく薄く */
.godo-site-list--v3 { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.godo-site-list--v3 .godo-site-list__item {
  padding: 16px 52px 16px 18px; border-left: 3px solid var(--godo-gold); box-shadow: var(--godo-shadow);
}
.godo-site-list--v3 .godo-site-list__item::before {
  left: auto; right: 12px; top: 10px; width: auto; height: auto; background: transparent;
  color: var(--godo-line); font-size: 28.5px; font-weight: 700;
}
.godo-site-list--v3 .godo-site-list__item:nth-child(5n+3) { border-left-color: var(--godo-navy); }

/* v4：1カラムの行リスト。白いパネルにまとめる */
.godo-site-list--v4 {
  grid-template-columns: 1fr; gap: 0;
  background: var(--godo-card); border: 1px solid var(--godo-line);
  border-radius: var(--godo-r-md); box-shadow: var(--godo-shadow); overflow: hidden;
}
.godo-site-list--v4 .godo-site-list__item {
  background: transparent; border: none; border-bottom: 1px solid var(--godo-line);
  border-radius: 0; padding: 14px 20px 14px 52px;
}
.godo-site-list--v4 .godo-site-list__item:last-child { border-bottom: none; }
.godo-site-list--v4 .godo-site-list__item:nth-child(even) { background: #fbf9f3; }
.godo-site-list--v4 .godo-site-list__item::before { left: 18px; top: 15px; border-radius: 5px; }

/* v5：ベージュのタイル。番号は濃紺の丸 */
.godo-site-list--v5 { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.godo-site-list--v5 .godo-site-list__item {
  background: #f1ecdf; border: none; box-shadow: var(--godo-shadow-sm); padding: 16px 16px 16px 16px;
}
.godo-site-list--v5 .godo-site-list__item::before {
  position: static; display: inline-flex; margin: 0 8px 8px 0; vertical-align: 1px;
  width: 24px; height: 24px; border-radius: 50%; background: var(--godo-navy); color: #fff;
}
.godo-site-list--v5 .godo-site-list__item:nth-child(3n+2)::before { background: var(--godo-gold); color: #2b2110; }

/* v6：上に金のラインが入ったカード。番号は小さく上に */
.godo-site-list--v6 { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.godo-site-list--v6 .godo-site-list__item {
  padding: 16px 18px; border-top: 3px solid var(--godo-gold); border-radius: 0 0 var(--godo-r-md) var(--godo-r-md);
}
.godo-site-list--v6 .godo-site-list__item::before {
  position: static; display: block; width: auto; height: auto; background: transparent;
  color: var(--godo-sub); font-size: 12.5px; letter-spacing: 0.08em; margin-bottom: 6px;
}
.godo-site-list--v6 .godo-site-list__item::before { content: "SITE " counter(godo-site); }
.godo-site-list--v6 .godo-site-list__item:nth-child(4n+1) { border-top-color: var(--godo-navy); }

/* ============ 一覧ページの下に置く横長のCTA帯（ルール8・ルール12） ============ */
.gcta {
  background: var(--godo-navy); border-radius: var(--godo-r-lg); padding: 28px 32px;
  position: relative; overflow: hidden; margin: 34px 0 0;
}
.gcta::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 16px 16px; opacity: 0.6;
}
.gcta-inner {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap;
}
.gcta-text { flex: 1 1 320px; min-width: 0; }
.gcta .godo-kicker { color: #dfe6f2; margin-bottom: 10px; }
.gcta h2 { font-size: clamp(20px,4vw,25.5px); color: #fff; font-weight: 700; margin: 0 0 10px; line-height: 1.6; }
.gcta p { color: #dfe6f2; font-size: 15px; margin: 0; line-height: 1.85; }
.gcta .gcta-fine { color: #a9b6cd; font-size: 12.5px; margin-top: 12px; }
.gcta-act { flex: none; }
.gcta-act .godo-btn-primary { background: var(--godo-gold); color: #2b2110; padding: 14px 28px; font-size: 16.5px; }
.gcta-act .godo-btn-primary:hover { color: #2b2110; filter: brightness(1.06); }
@media (max-width: 640px) {
  .gcta { padding: 22px 18px; border-radius: var(--godo-r-md); }
  .gcta-act, .gcta-act .godo-btn { width: 100%; }
}

/* ============ 固定ページの本文 ============ */
.gprose {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-lg);
  box-shadow: var(--godo-shadow); padding: 34px 36px;
}
@media (max-width: 640px) { .gprose { padding: 22px 18px; border-radius: var(--godo-r-md); } }

/* ============ キーワード一覧ページ ============ */
.godo-keyword-index__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 16px 0 30px; }
.godo-keyword-index__grid a {
  display: flex; justify-content: space-between; gap: 8px; background: var(--godo-card);
  border: 1px solid var(--godo-line); border-radius: var(--godo-r-sm); padding: 11px 14px;
  font-size: 14.5px; color: var(--godo-ink); line-height: 1.5;
}
.godo-keyword-index__grid a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }
.godo-keyword-index__grid a span { color: var(--godo-sub); font-size: 13px; white-space: nowrap; }
.godo-keyword-index__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.godo-keyword-index__tags a {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: 999px;
  padding: 6px 14px; font-size: 14px; color: var(--godo-sub);
}
.godo-keyword-index__tags a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }

/* ============ 404 ============ */
.g404 { text-align: center; max-width: 680px; margin: 0 auto; }
.g404 .godo-kicker, .g404 .godo-search-form { justify-content: center; }
.g404 .godo-search-form { margin: 22px auto 0; }
.g404-num { font-size: clamp(59.5px,14.5vw,99.5px); font-weight: 700; color: var(--godo-navy); line-height: 1; letter-spacing: -0.02em; margin: 18px 0 10px; }
.g404-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; text-align: left; margin-top: 8px; }
.g404-cats a {
  background: var(--godo-card); border: 1px solid var(--godo-line); border-radius: var(--godo-r-md);
  padding: 14px 16px; display: flex; align-items: center; gap: 11px; font-size: 14.5px; color: var(--godo-ink); line-height: 1.5;
}
.g404-cats a:hover { text-decoration: none; background: var(--godo-link-bg); color: var(--godo-navy); }
.g404-cats .g404-ico { flex: none; width: 32px; height: 32px; border-radius: 8px; background: var(--godo-link-bg); color: var(--godo-navy); display: flex; align-items: center; justify-content: center; }
.g404-cats .g404-ico svg { width: 17px; height: 17px; }

/* ============ レスポンシブ ============ */
@media (max-width: 1000px) {
  .gph-grid { grid-template-columns: 1fr; gap: 24px; }
  .gph-side { flex-direction: row; flex-wrap: wrap; }
  .gph-box { flex: 1 1 260px; min-width: 0; }
}
@media (max-width: 640px) {
  .gph { padding: 28px 0 24px; }
  .gph-title-row { gap: 11px; }
  .gph-icon { width: 42px; height: 42px; }
  .gph-icon svg { width: 21px; height: 21px; }
  .gph-desc { font-size: 15.5px; }
  /* 狭い画面では縦積みにして、値とラベルを横に並べる */
  .gph-stats { display: block; border-top: none; }
  .gph-stat { padding: 11px 0; min-width: 0; border-left: none; border-top: 1px solid var(--godo-line); display: flex; align-items: baseline; gap: 10px; }
  .gph-stat b { font-size: 22px; flex: none; }
  .gph-stat span { margin-top: 0; }
  .godo-main { padding: 26px 0 16px; }
  .godo-sect { padding: 34px 0; }
  .gcard--feature .gcard-body { padding: 18px 16px; }
  .gcard-body { padding: 16px; }
  .gcard--compact .gcard-body { padding: 14px 16px; gap: 8px 12px; }
  .gcard--compact .gcard-title { flex: 1 1 100%; order: 2; }
  .gcard--compact .gcard-date { order: 1; }
  .godo-search-form { flex-wrap: wrap; }
  .godo-search-form input[type="search"] { flex: 1 1 100%; }
  .godo-search-form button { width: 100%; }
  .godo-author-box { flex-direction: column; gap: 12px; padding: 18px 16px; }
  .godo-site-list, .godo-site-list--v2, .godo-site-list--v3, .godo-site-list--v5, .godo-site-list--v6 { grid-template-columns: 1fr; }
}
