/* ==========================================================================
   main.css — GINGUN WordPressテーマ用 統合CSS（ページ別スコープ済み）
   --------------------------------------------------------------------------
   既存の site/assets/css/*.css を1ファイルに統合したもの。
   結合順: base → header-footer → top → services → about → works → partners → contact → privacy

   ◆ なぜスコープするか
     ページ別CSS（top/services/about/works/partners/contact/privacy）には、同名でも
     中身の異なるクラス（例: .flow, .work-card, .page-head__inner）が含まれる。
     元サイトは各ページが自分のCSSだけを読み込むため衝突しないが、1ファイルに統合して
     全ページで読み込むと衝突して見た目が変わる。これを防ぐため、ページ別CSSは
     <body> のクラス（home / page-{slug}）配下にスコープし、元のページごとの読み込みを再現する。
       - top.css       → .home 配下
       - services.css  → .page-services 配下
       - about.css     → .page-about 配下
       - works.css     → .page-works 配下
       - partners.css  → .page-partners 配下
       - contact.css   → .page-contact 配下
       - privacy.css   → .page-privacy 配下
     base.css / header-footer.css は全ページ共通のため、スコープせずグローバルのまま。

   ◆ その他
     ・@import（YakuHanJP・Noto Serif JP）はCSSの仕様上、必ず先頭に置く必要があるため最上部にまとめる。
     ・@keyframes / @font-face はグローバル定義のためスコープしない。
     ・url("../img/...") の相対参照は assets/css → assets/img の関係を保つため変更不要。
   ========================================================================== */

@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4/dist/css/yakuhanjp.min.css");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;600;700&display=swap");


/* ==========================================================================
   ▼ base.css  →  グローバル（スコープなし） */
/* ==========================================================================
   base.css — このサイトの土台スタイル（YakuHanJP・配色トークン・ボタン）
   --------------------------------------------------------------------------
   サイトのCSSは、いちばん最初にこの base.css を読み込んでください。
   （HTMLなら <head> で base.css を先に <link>、CSSを束ねるなら先頭で @import）
   ========================================================================== */

/* YakuHanJP 本体（約物を半角にするWebフォント）を読み込む。
   ※ @import はCSSの先頭（コメントの後）に置く必要があります。
   ※ @4 は 4系の最新に自動解決されます。最新版・パスは jsdelivr/npm（yakuhanjp）で確認可。
      別バージョンに固定したいときは下のURLの @4 を @4.1.0 等に変更。 */

/* 見出し用の明朝Webフォント（Noto Serif JP）。
   ヒーロー大見出しなど、品位を出したい箇所で使う。本文はゴシック（--font-jp）のまま。
   約物は YakuHanJP を先頭に置いて半角化を維持する（--font-jp-serif 参照）。 */

/* ========================================================================
   CSS カスタムプロパティ（トークン）
   ======================================================================== */
:root {
  /* --- フォント ------------------------------------------------------- */
  /* 先頭に "YakuHanJP" を置くと「約物だけ」がこのフォントになり、
     それ以外の文字は後ろの日本語フォントが使われます（約物だけ詰まる）。 */
  --font-jp: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans",
             "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
  /* 見出し用の明朝。約物用に "YakuHanJP" を先頭に残す（半角化を維持）。 */
  --font-jp-serif: "YakuHanJP", "Noto Serif JP", "Hiragino Mincho ProN",
             "Yu Mincho", serif;

  /* --- 配色トークン ---------------------------------------------------- */
  /*
   * 【配色ルール・厳守】
   * ・白ベース（--color-bg）が主役。
   * ・金（--color-accent）は「線・点・縁・強調数字」だけ。広い面に塗らない。
   * ・全面黒禁止。濃色（--color-ink）は CTA帯とフッターのみ（全体の2〜3割以内）。
   * ・金／黒は実ロゴ logo.svg と突合済み（金 #BF9B46 ／黒 #1A1A1A 系）。
   */

  /* 背景 */
  --color-bg:          #FFFFFF; /* 基本背景＝白 */
  --color-bg-subtle:   #F7F6F3; /* 薄地（プレースホルダ等） */
  --color-bg-tint:     #FBFAF8; /* ごく薄い地。モックの「できること」背景＝セクション区切り用（白との微差） */

  /* 文字 */
  --color-text:        #1A1A1A; /* 本文・見出し */

  /* 金アクセント（実ブランド金 #BF9B46 ／logo.svg の .cls-2 値で確定） */
  --color-accent:      #BF9B46; /* 金。線・点・縁・強調数字のみ。面塗り禁止 */
  --color-accent-weak: #DFCDA2; /* 淡金（BF9B46 を白50%混合）。帯・ホバー・背景差し色用 */

  /* 罫線・枠 */
  --color-line:        #E4E1D9; /* 薄いウォームグレー */

  /* 濃色（CTA帯・フッターのみ。#14140F ／logo.svg の .cls-1 #1A1A1A に対応） */
  --color-ink:         #14140F; /* チャコール黒。CTA帯・フッター以外では使わない */

  /* --- タイポグラフィ スケール（全体を一段大きめに調整） -------------- */
  --text-xs:   0.8125rem; /* 13px: 注釈・ラベル */
  --text-sm:   0.9375rem; /* 15px: 補足・小さめ本文 */
  --text-base: 1.0625rem; /* 17px: 本文 */
  --text-lg:   1.0625rem; /* 約18px（root17px換算）: リード・サブコピー。本文と同寸、色・行間で差をつける */
  --text-xl:   1.5rem;    /* 24px: h4 相当 */
  --text-2xl:  1.75rem;   /* 28px: h3 相当 */
  --text-3xl:  2.375rem;  /* 38px: h2 相当 */
  --text-4xl:  3.25rem;   /* 52px: h1 相当 */

  /* --- 余白基準（8px グリッド） --------------------------------------- */
  --space-1:   0.25rem;   /* 4px */
  --space-2:   0.5rem;    /* 8px */
  --space-3:   0.75rem;   /* 12px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-8:   2rem;      /* 32px */
  --space-10:  2.5rem;    /* 40px */
  --space-12:  3rem;      /* 48px */
  --space-16:  4rem;      /* 64px */

  /* --- ボタン共通 ----------------------------------------------------- */
  --btn-radius: 5px;       /* 角丸 4〜6px の中間値 */
  --btn-px:     2rem;      /* 横パディング（余白を広めに） */
  --btn-py:     0.9375rem; /* 縦パディング（15px・ゆとり） */
}

/* ========================================================================
   既定のベーススタイル
   ======================================================================== */
html,
body {
  margin: 0; /* ブラウザ既定の8px余白を消す（全面写真・帯を画面端まで届かせる） */
  padding: 0;
  font-family: var(--font-jp);
  background-color: var(--color-bg);
  color: var(--color-text);
  font-size: var(--text-base);
  line-height: 1.8;
}

/* ========================================================================
   見出しのサイズ階層
   ======================================================================== */
h1 { font-size: var(--text-4xl); font-weight: 700; line-height: 1.2;  }
h2 { font-size: var(--text-3xl); font-weight: 700; line-height: 1.3;  }
h3 { font-size: var(--text-2xl); font-weight: 700; line-height: 1.35; }
h4 { font-size: var(--text-xl);  font-weight: 600; line-height: 1.4;  }

/* ==========================================================================
   ② Cocoon耐性ベース（標準・先頭に集約）／WP（Cocoon子テーマ）干渉の根本防止
   --------------------------------------------------------------------------
   目的：Cocoon親テーマの既定値（箱モデル・フォント・字間・rem基準・本文幅・
         リンク色 等）が当サイトに漏れて、ローカルと表示が変わるのを防ぐ。
   設計（重要）：本節の各行は「ローカルでの既定値・現状値の“再宣言”」に徹する。
         → ローカル（Cocoonなし）では同じ値の再宣言なので見た目は一切変わらない＝デグレ不可能。
         → ステージング（Cocoonあり）では当サイト基準がCocoonの既定に勝ち、ローカルと同じ表示になる。
   スコープ：当サイトのルート（.site-header / #main-content・main / .site-footer ＋
         自前ブロック .cta）に限定。privacy本文のリスト・見出しやCF7フォームを壊さないため、
         ul/ol の一括除去や padding/border 等の過度なリセットはしない（箱モデル・継承の正規化のみ）。
   二層構成：本節（先頭）は“他に上書きされてはいけない正規化”。
         ホバー色の打ち消し（B）と本文幅の打ち消し（C）は、ソース順でも確実に後勝ちさせる
         必要があるため、ファイル末尾「親テーマ（Cocoon）対策」節にまとめてある（必ず勝たせる打ち消し）。
   ========================================================================== */

/* rem の基準を環境非依存に固定する。
   当サイトは root（html）の font-size を --text-base に設定済み（上の html,body 参照）。
   Cocoon が html の font-size を変えても rem 実寸がずれないよう、:root（詳細度0,1,0）で
   同じ値を再宣言して必ず勝たせる。
   ※ "font-size:100%"（=16px）にすると現状（--text-base≒17px相当）より縮んでデグレするため使わない。 */
:root {
  font-size: var(--text-base);
}

/* 箱モデルの正規化。
   Cocoon は全体に *{box-sizing:border-box} を当てるため、当サイトのローカル既定
   （content-box）と食い違い、幅・余白がずれる。当サイト範囲を content-box（＝ローカル既定）に揃える。
   ※ box-sizing を明示している各コンポーネント（.page-contact .form-input 等＝詳細度0,2,0）は
     後勝ちで維持される。子孫セレクタは element 詳細度（header/main/footer *＝0,0,x）で
     Cocoon の *（0,0,0）には勝ち、コンポーネント（0,1,0〜0,2,0）には負ける設計。
     ローカルでは（明示指定のない要素は）content-box のため見た目は変わらない。 */
.site-header,
.site-footer,
.cta,
main#main-content {
  box-sizing: content-box;
}
header *, header *::before, header *::after,
main *,   main *::before,   main *::after,
footer *, footer *::before, footer *::after,
.cta *,   .cta *::before,   .cta *::after {
  box-sizing: content-box;
}
/* フォーム部品はブラウザ既定（UA）が border-box。上の content-box リセットで
   これを content-box に倒すとローカルの見た目が変わる（入力欄の実幅が変わる）ため、
   フォーム部品だけ border-box に戻す＝ローカルのUA既定と同値。Cocoon環境でも border-box で一致。
   ※ CF7 等フォームの過度なリセットはしない（box-sizing のみ・ローカル同値に揃えるだけ）。 */
header input, header textarea, header select, header button,
main input,   main textarea,   main select,   main button,
footer input, footer textarea, footer select, footer button,
.cta input,   .cta textarea,   .cta select,   .cta button {
  box-sizing: border-box;
}

/* フォント／字間を当サイト基準で明示する（サイト全体で一様に正しい値の再宣言）。
   Cocoon の body 既定フォント・字間の継承を断つ。ローカルでは同値のため無変化。 */
.site-header,
#main-content,
.site-footer,
.cta {
  font-family: var(--font-jp);
  letter-spacing: normal;
}
/* 文字サイズ・行間・色は body 既定（明るい地に濃い文字）と同じルートだけに限定して明示する。
   .site-footer / .cta は暗い帯＝独自の文字色（白）・文字サイズを持つため、ここに含めると
   それらの当サイト独自指定を上書きしてしまう（フッター文字が黒くなり潰れる）。
   フッター/CTA の色・サイズは各コンポーネント側（詳細度0,1,0）が Cocoon の body既定（0,0,1）に
   既に勝っているので、ここで触る必要はない。 */
.site-header,
#main-content {
  font-size: var(--text-base);
  line-height: 1.8;
  color: var(--color-text);
}

/* ========================================================================
   ボタン 3系統
   --------------------------------------------------------------------------
   .btn-primary   : 黒地・白文字（メインCTA）
   .btn-secondary : 白地・黒枠（サブCTA）
   .btn-text      : 白地・金枠ボタン（旧：金の下線テキストリンク。全ページで統一）
   --------------------------------------------------------------------------
   ※ 金（--color-accent）は枠・縁・矢印のみに使う。背景面には塗らない。
   ※ 矢印は HTML 側の <span class="btn-arrow">›</span> で付ける。
   ======================================================================== */

/* primary / secondary 共通リセット */
.btn-primary,
.btn-secondary {
  display: inline-flex;
  align-items: center;
  padding: var(--btn-py) var(--btn-px);
  border-radius: var(--btn-radius);
  border: 2px solid transparent;
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}

/* 黒地・白文字（メインCTA） */
.btn-primary {
  background-color: var(--color-ink);
  color: #FFFFFF;
  border-color: var(--color-ink);
}
.btn-primary:hover {
  opacity: 0.82;
}

/* 白地・黒枠（サブCTA） */
.btn-secondary {
  background-color: var(--color-bg);
  color: var(--color-ink);
  border-color: var(--color-ink);
}
.btn-secondary:hover {
  background-color: var(--color-bg-subtle);
}

/* 白地・金枠ボタン（旧：金の下線テキストリンク）。
   全ページ共通で同じ白枠ボタンに統一する（GINGUNについて／お知らせ一覧へ／
   TARSKホールディングスを見る／公式サイト 等）。金は「枠線」だけに使う（面塗りしない）。 */
.btn-text {
  display: inline-flex;
  align-items: center;
  background-color: var(--color-bg);
  border: 1px solid var(--color-accent); /* 金の枠線（旧・下線の金を枠に） */
  border-radius: var(--btn-radius);      /* 隣の btn-primary と同じ角丸 */
  padding: var(--btn-py) var(--btn-px);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.btn-text .btn-label {
  text-decoration: none; /* ボタン化に伴い下線は廃止 */
}
.btn-text:hover {
  background-color: var(--color-bg-subtle);
  color: var(--color-accent);
}

/* ボタン末尾のシェブロン（›）。モックは「→」ではなく細い山形。
   テキストとの間隔を広めに確保する。 */
.btn-arrow {
  margin-left: 1.1em;
  font-size: 1.15em;
  font-weight: 400;
  line-height: 1;
}
/* primary（黒地）：シェブロンは控えめな白 */
.btn-primary .btn-arrow {
  color: rgba(255, 255, 255, 0.72);
}
/* テキストリンク：シェブロンは本文色（金にしない。金は下線だけ） */
.btn-text .btn-arrow {
  color: var(--color-text);
}
/* ホバー時はラベルとシェブロンをまとめて金に */
.btn-text:hover .btn-arrow {
  color: var(--color-accent);
}

/* ==========================================================================
   ▼ header-footer.css  →  グローバル（スコープなし） */
/* ==========================================================================
   header-footer.css — 共通ヘッダー・フッター
   （base.css より後に読み込む）
   ========================================================================== */

/* ========================================================================
   ヘッダー
   ======================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-line);
  height: 88px;
}

.site-header__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}

/* ロゴ */
.site-header__logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

.site-header__logo img {
  height: 44px;
  width: auto;
  display: block;
}

/* ナビ */
.site-nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-8); /* 項目間にゆとりを持たせる（旧 space-6＝24px → space-8＝32px） */
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav__list a {
  text-decoration: none;
  color: var(--color-text);
  font-size: var(--text-base);
  font-weight: 500;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.site-nav__list a:not(.btn-primary):not(.site-nav__cta):hover {
  color: var(--color-accent);
}

/* ヘッダーnav内「お問い合わせ」を CTA（.btn-cta）と同じ金枠ボタンにする。
   .btn-cta は濃色帯の上の白文字だが、ヘッダーは白背景なので文字色は本文色（--color-text）にする。
   ボタン化は href ではなく専用クラス .site-nav__cta で判定する（WP化で href が
   /contact/ のスラッグURLになっても確実に当たるように）。header.php の該当リンクに付与。
   セレクタは .site-nav__list 配下に限定するため、フッターnav（.site-footer__nav）には及ばない
   ＝フッターの「お問い合わせ」は従来のテキストリンクのまま。 */
.site-nav__list a.site-nav__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.7em 1.8em;
  border: 1px solid var(--color-accent); /* 金の枠線（面塗りしない） */
  border-radius: 4px;
  color: var(--color-text);
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.site-nav__list a.site-nav__cta:hover {
  background-color: rgba(191, 155, 70, 0.12); /* 金のごく薄い面（.btn-cta と同系のホバー） */
  color: var(--color-text); /* 親テーマ（Cocoon）のオレンジ系ホバーが文字に漏れないよう本文色を明示 */
}

/* ハンバーガーボタン（スマホのみ表示） */
.site-nav__toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 22px;
  height: 16px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  flex-shrink: 0;
}

.site-nav__toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-text);
  border-radius: 1px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* ハンバーガー → × 変形 */
.site-nav__toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.site-nav__toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.site-nav__toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ========================================================================
   ヘッダー：タブレット幅以下（960px 以下）
   5項目の横並びナビはタブレット幅で収まりきらず横スクロールを起こすため、
   960px 以下ではハンバーガー化する（768px ではなく 960px が基準）。
   ======================================================================== */
@media (max-width: 960px) {
  .site-header {
    height: 64px;
  }

  .site-header__inner {
    padding: 0 var(--space-6);
  }

  .site-header__logo img {
    height: 28px;
  }

  .site-nav__toggle {
    display: flex;
  }

  /* ナビを初期非表示にしてドロップダウンとして出す */
  .site-nav {
    display: none;
    position: absolute;
    top: 64px; /* ヘッダー高さに合わせる */
    left: 0;
    right: 0;
    z-index: 99;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-line);
    padding: var(--space-6);
  }

  .site-nav.is-open {
    display: block;
  }

  .site-nav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
  }
}


/* ========================================================================
   フッター
   ======================================================================== */
.site-footer {
  background: var(--color-ink);
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--text-sm);
}

/* TARSK GROUP帯（上部・モノクロ・控えめ） */
.site-footer__tarsk {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: var(--space-3) var(--space-8);
  text-align: center;
}

.site-footer__tarsk-label {
  font-size: var(--text-xs);
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.3);
  margin: 0;
}

/* フッター本体 */
.site-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-8) var(--space-8);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-12);
}

/* 左カラム：ロゴ・タグライン・会社情報 */
.site-footer__primary {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.site-footer__logo {
  display: inline-flex;
  text-decoration: none;
  margin-bottom: var(--space-1);
}

.site-footer__logo img {
  height: 44px; /* ヘッダーロゴ（.site-header__logo img）と同じ表示サイズに揃える */
  width: auto;
  display: block;
  /* 実ファイルが白文字＋金アクセントのロゴ（logo-white.svg）なので filter 不要 */
}

.site-footer__tagline {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.45);
  margin: 0;
}

.site-footer__address {
  font-style: normal;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.5);
  margin-top: var(--space-2);
}

.site-footer__address p {
  margin: 0;
}

.site-footer__address a {
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: color 0.2s ease;
}

.site-footer__address a:hover {
  color: rgba(255, 255, 255, 0.85);
}

/* 右カラム：ナビゲーション再掲 */
.site-footer__nav {
  flex-shrink: 0;
}

.site-footer__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.site-footer__nav a {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color 0.2s ease;
}

.site-footer__nav a:hover {
  color: rgba(255, 255, 255, 0.9);
}

/* 最下部：左にプライバシーポリシー／右にコピーライト */
.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__bottom-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-4) var(--space-8);
  display: flex;
  align-items: center;
  justify-content: space-between; /* 左：プライバシー／右：コピーライト */
  gap: var(--space-4);
}

/* プライバシーポリシー（左・コピーライトと同じフォントサイズ） */
.site-footer__privacy {
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  transition: color 0.2s ease;
}

.site-footer__privacy:hover {
  color: rgba(255, 255, 255, 0.85);
}

.site-footer__copy {
  margin: 0;
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.28);
}

/* ========================================================================
   フッター：スマホ幅（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {
  .site-footer__tarsk {
    padding: var(--space-3) var(--space-6);
  }

  .site-footer__inner {
    flex-direction: column;
    padding: var(--space-8) var(--space-6);
    gap: var(--space-8);
  }

  /* スマホ幅でもヘッダーロゴ（28px）と同じ表示サイズに揃える */
  .site-footer__logo img {
    height: 28px;
  }

  /* 最下部はスマホでは縦積み（左揃え）にフォールバック */
  .site-footer__bottom-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-6);
  }
}

/* ========================================================================
   CTA（問いかけ型・チャコール濃色帯）— 全ページ共通コンポーネント
   トップで設計したCTAを全ページ（contact除く）で同一表示するため、
   top.css から header-footer.css へ移設。WPでは footer.php に含める前提。
   ======================================================================== */
.cta {
  background-color: var(--color-ink); /* 濃色はこの帯とフッターのみ */
  padding: var(--space-16) 0;
}

/* 2カラム：左＝問い（見出し・リード・補足・ボタン）／右＝心当たりカード。
   視線が 左（問い）→右（状況）→ボタン へ流れる構成。 */
.cta__inner {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 1fr 1.08fr; /* 右カードに少し幅を持たせ、項目の不自然な折り返しを防ぐ */
  gap: var(--space-12);
  align-items: center;
}

/* 左カラム：左寄せで問い→誘導の流れ */
.cta__left {
  text-align: left;
}

.cta__heading {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 700;
  line-height: 1.4;
  color: #FFFFFF;
  margin: 0 0 var(--space-5);
}

/* 右カード先頭の問い（3チェックの真上）。「問い→該当チェック」を1枚で完結 */
.cta__lead {
  font-size: var(--text-lg);
  color: #FFFFFF;
  opacity: 0.9;
  margin: 0 0 var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid rgba(191, 155, 70, 0.3); /* 金の細線で問いと項目を仕切る */
}

.cta__note {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: #FFFFFF;
  opacity: 0.72;
  margin: 0;
}

/* ボタンは2カラム全体を占め、左右カラムの下で水平中央に置く */
.cta__actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  margin-top: var(--space-4);
}

/* 右カラム：心当たり3項目をまとめる囲みカード（やや明るい濃色面＋金の細枠） */
.cta__right {
  background-color: rgba(255, 255, 255, 0.04); /* 全面黒の中の濃淡で階層を作る */
  border: 1px solid rgba(191, 155, 70, 0.45);  /* 金の細枠（線のみ） */
  border-radius: 8px;
  padding: var(--space-8);
}

/* 自己照合の3状況（金のチェック付き） */
.cta__situations {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cta__situations li {
  position: relative;
  padding-left: var(--space-6);
  font-size: var(--text-base);
  color: #FFFFFF;
  opacity: 0.92;
  line-height: 1.9;
  /* 日本語を文節単位で折り返し、語の途中や1〜2文字だけの行送りを避ける */
  word-break: auto-phrase;
  line-break: strict;
  text-wrap: pretty;
}

.cta__situations li + li {
  margin-top: var(--space-5);
}

.cta__situations li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-accent); /* 金のチェック（強調のみ） */
  font-weight: 700;
  line-height: 1.7;
}

/* 金枠ボタン（濃色帯の上・白文字＋金枠） */
.btn-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.9em 2.2em;
  border: 1px solid var(--color-accent);
  border-radius: 4px;
  color: #FFFFFF;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.btn-cta:hover {
  background-color: rgba(191, 155, 70, 0.15);
}

.btn-cta .btn-arrow {
  color: var(--color-accent);
}

/* CTA：スマホ幅（768px 以下）。狭幅は1カラムに縦積み */
@media (max-width: 768px) {
  .cta {
    padding: var(--space-12) 0;
  }

  .cta__inner {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    padding: 0 var(--space-6);
  }
}

/* ==========================================================================
   ▼ top.css  →  .home 配下にスコープ */
/* ==========================================================================
   top.css — トップページ専用スタイル
   （base.css・header-footer.css の後に読み込む）
   ========================================================================== */

/* ========================================================================
   共通：セクション見出しブロック
   ======================================================================== */
.home .section-header {
  text-align: center;
  margin-bottom: var(--space-12);
}

.home .section-header__title {
  display: inline-block;
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.home .section-header__title::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: var(--color-accent);
  margin: var(--space-3) auto 0;
}

.home .section-header__lead {
  font-size: var(--text-lg);
  color: var(--color-text);
  opacity: 0.72;
  line-height: 1.9;
  width: fit-content; /* テキストは左寄せ・ブロックごと中央に */
  max-width: 680px;
  margin: 0 auto;
  text-align: left;
}

/* ========================================================================
   ② ヒーロー
   ======================================================================== */
.home .hero {
  position: relative; /* 右側の全面写真・左グラデの配置基準 */
  min-height: 680px;
  display: flex;
  align-items: center; /* テキストブロックを縦中央に */
  background-color: var(--color-bg);
  overflow: hidden; /* 右の全面写真がはみ出ても安全に切り取る */
}

/* 社長案：横幅が広いときに左の白余白が間延びするのを防ぐ、
   左→右で薄くなる背景グラデーション。
   ・背景レイヤー（z-index:0）。テキスト（body=z-index:1）・写真より後ろに敷く。
   ・高さはPC時のヒーロー（約680px）に合わせ、top基準で上付き。
   ・色は黒×金に合うごく淡い金。可読性を損なわないよう右で透明にフェード。 */
.home .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 680px;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    to right,
    rgba(191, 155, 70, 0.20) 0%,
    rgba(191, 155, 70, 0.10) 28%,
    rgba(191, 155, 70, 0) 56%
  );
}

.home .hero__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-8);
  width: 100%;
}

/* テキストは左半分に収める（モック：右側はビューポート右端までの全面写真） */
.home .hero__body {
  position: relative;
  z-index: 1; /* 写真より前面に置く */
  max-width: 540px;
}

.home .hero__heading {
  font-family: var(--font-jp-serif); /* 見出しは明朝（約物は YakuHanJP で半角維持） */
  font-size: clamp(2.25rem, 3.8vw, 3rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--color-text);
  /* 見出し↔金ライン と 金ライン↔サブ の間隔を同じ（space-10）にそろえる */
  margin: 0 0 var(--space-10);
}

/* 見出し下：金の横ライン＋右端に丸ドット（A案厳密一致） */
.home .hero__heading::after {
  content: "";
  display: block;
  width: 180px;
  height: 10px; /* 丸ドット（直径8px）が収まる高さ */
  margin-top: var(--space-10); /* 見出し↔ライン。下のサブとの間隔（margin-bottom）と同値 */
  background:
    radial-gradient(circle at calc(100% - 4px) 50%, var(--color-accent) 4px, transparent 4px),
    linear-gradient(var(--color-accent), var(--color-accent)) 0 50% / calc(100% - 8px) 2px no-repeat;
}

.home .hero__sub {
  font-size: var(--text-lg);
  color: var(--color-text);
  opacity: 0.72;
  line-height: 1.85;
  margin: 0 0 var(--space-10); /* サブ→CTAの間隔を広げてゆとりを持たせる */
}

.home .hero__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-12); /* モック準拠：黒ボタンとテキストリンクの間隔を広く取る */
}

/* モック準拠：右側の写真を画面中央〜ビューポート右端まで全面に配置 */
.home .hero__media {
  position: absolute;
  top: 0;    /* ヘッダー直下まで上いっぱい（画像の上の白い隙間をなくす） */
  bottom: 0; /* 下端まで。テキスト側は hero__inner の padding でバランスを保つ */
  left: 50%; /* 画面中央から */
  right: 0;  /* ビューポート右端まで（フチなし全面） */
  z-index: 0;
  /* モック準拠：写真の左端を白背景へシームレスに溶け込ませる（左→右へフェード）。
     左端を透明にし、28%付近で不透明になるグラデーションでハードエッジを消す。 */
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 28%);
          mask-image: linear-gradient(to right, transparent 0, #000 28%);
}

.home .hero__photo-wrap {
  width: 100%;
  height: 100%;
  background-color: var(--color-bg-subtle);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  /* モック：フチ・角丸なしの全面写真 */
}

.home .hero__photo-label {
  font-size: var(--text-sm);
  color: var(--color-line);
  letter-spacing: 0.08em;
}

/* ヒーロー右の全面写真（枠いっぱいに敷く） */
.home .hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ========================================================================
   ③ ブランドステートメント
   ======================================================================== */
.home .brand-stmt {
  background-color: var(--color-bg); /* モック：白背景（バンドではない） */
  padding: var(--space-16) 0;
}

.home .brand-stmt__inner {
  max-width: 860px; /* 見出しを1行に収める幅（モック：1行） */
  margin: 0 auto;
  padding: 0 var(--space-8);
  text-align: center; /* モック：中央寄せ */
}

/* 金の飾り罫（細線＋中央ドット）。モック：ステートメントを上下で挟む（ヒーロー見出し下と同じ金モチーフ） */
.home .brand-stmt__divider {
  display: block;
  width: 340px;
  max-width: 52%;
  height: 9px;
  margin: 0 auto;
  background:
    radial-gradient(circle at 50% 50%, var(--color-accent) 4px, transparent 4.5px),
    linear-gradient(var(--color-accent), var(--color-accent)) center / 100% 1.5px no-repeat;
}

.home .brand-stmt__divider:first-child {
  margin-bottom: var(--space-12);
}

.home .brand-stmt__divider:last-child {
  margin-top: var(--space-12);
}

.home .brand-stmt__heading {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
  margin: 0 0 var(--space-12); /* 余白を多めに（見出し↓本文） */
  /* モック：金の左バーなし・中央寄せ */
}

.home .brand-stmt__lead {
  font-size: var(--text-lg);
  line-height: 2.15; /* 余白を多めに（密度調整） */
  color: var(--color-text);
  width: fit-content; /* テキストは左寄せ・ブロックごと中央に（中央寄せの折り返し崩れを防ぐ） */
  max-width: 680px;
  margin: 0 auto var(--space-8);
  text-align: left;
}

.home .brand-stmt__note {
  font-size: var(--text-sm);
  line-height: 2.05;
  color: var(--color-text);
  opacity: 0.62;
  width: fit-content;
  max-width: 680px;
  margin: 0 auto;
  text-align: left;
}

/* ========================================================================
   ④ できること（3本柱）
   ======================================================================== */
.home .services {
  padding: var(--space-16) 0;
  background-color: var(--color-bg-tint); /* モック：ごく薄い地でセクションの区切りを出す */
}

.home .services__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.home .services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

.home .service-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: 12px; /* モック：やや大きめの角丸 */
  background: var(--color-bg);
  transition: box-shadow 0.2s ease;
}

.home .service-card:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

/* 上段：アイコン（左）＋ タイトル・説明（右） */
.home .service-card__head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.home .service-card__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
}

.home .service-card__icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain; /* 透過アイコン（金・PNG）。比率を保って枠内に収める */
}

.home .service-card__titles {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.home .service-card__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.3;
  margin: 0;
}

.home .service-card__desc {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.7;
  line-height: 1.7;
  margin: 0;
}

/* タグチップ */
.home .service-card__tags {
  list-style: none;
  margin: 0 0 var(--space-5);
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.home .service-card__tags li {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.85;
  border: 1px solid var(--color-line);
  border-radius: 999px; /* ピル型 */
  padding: 0.32em 0.9em;
  line-height: 1.5;
}

/* カード下部の写真（現在はプレースホルダ。後でimage2で生成して差し込む） */
.home .service-card__photo {
  margin-top: auto; /* カード下端に揃える */
  aspect-ratio: 16 / 10;
  background: var(--color-bg-subtle);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.home .service-card__photo-label {
  font-size: var(--text-xs);
  color: var(--color-line);
  letter-spacing: 0.08em;
}

/* カード下部の写真（16:10 の枠いっぱいに敷く） */
.home .service-card__photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 3カード下：サービス一覧へのボタン（中央寄せ） */
.home .services__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--space-12);
}

/* ========================================================================
   ⑤ 自社プロダクト（SignDS／SignHR）
   ======================================================================== */
.home .products {
  background-color: var(--color-bg); /* モック：白背景 */
  padding: var(--space-16) 0;
}

.home .products__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.home .products__grid {
  display: grid; /* 1製品1行で縦に積む（grid化して2カードの高さを揃える） */
  grid-auto-rows: 1fr; /* 全カードを最も高いカードの高さに揃える（SignHRにKPIが無くても同高） */
  gap: var(--space-8);
  margin-top: var(--space-4);
}

.home .product-card {
  display: grid;
  grid-template-columns: 5fr 7fr; /* 左：テキスト＋効果数値／右：大きなスクショ（モック準拠） */
  height: 100%; /* 行（1fr）いっぱいに広がり、2カードを同高にする */
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  overflow: hidden;
}

/* 右：管理画面スクショを載せる淡色パネル。
   左本文（効果数値の有無）でカード高さが変わっても、スクショは枠付きで中央に置き、
   2製品で見せ方を完全に統一する（SignDS／SignHRで余白の出方だけが変わる）。 */
.home .product-card__screen {
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
}

.home .product-card__screen-label {
  font-size: var(--text-xs);
  color: var(--color-line);
  letter-spacing: 0.08em;
}

/* 管理画面スクショ（全体表示＝見切れなし）。
   contain で画像全体を必ず表示し、要部（表・カレンダー）が読める状態にする。
   囲み枠・ベタ背景・影は使わず、スクショがそのまま置かれた見た目にする。 */
.home .product-card__screen-img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* 全体表示＝見切れなし */
  object-position: center;
  display: block;
  border-radius: 8px;
}

.home .product-card__body {
  padding: var(--space-8);
  display: flex;
  flex-direction: column;
  /* 本文は上から積み、「詳しく見る」ボタン（.product-card__actions の margin-top:auto）で
     カード下端へ寄せる。2カードでボタン位置をそろえるため justify-content は使わない。 */
}

.home .product-card__name {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 0.05em;
  margin: 0 0 var(--space-1);
}

.home .product-card__subtitle {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.55;
  font-weight: 500;
  margin: 0 0 var(--space-4);
}

.home .product-card__lead {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.65;
  margin: 0 0 var(--space-4);
  border-left: 3px solid var(--color-accent);
  padding-left: var(--space-4);
}

.home .product-card__text {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

/* SignDS 効果数値（3横並び） */
.home .product-effects {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin: var(--space-6) 0 var(--space-3);
  padding: var(--space-4) 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.home .product-effect {
  text-align: center;
}

.home .product-effect__label {
  display: block;
  font-size: 0.6875rem;
  color: var(--color-text);
  opacity: 0.6;
  line-height: 1.5;
  margin-bottom: var(--space-2);
}

.home .product-effect__value {
  margin: 0;
}

.home .product-effect__before {
  color: var(--color-text);
  opacity: 0.5;
  font-size: var(--text-xs);
}

.home .product-effect__arrow {
  color: var(--color-accent);
  font-size: var(--text-sm);
  margin: 0 0.2em;
}

.home .product-effect__after {
  color: var(--color-accent);
  font-size: var(--text-base);
  font-weight: 700;
}

.home .product-effect__sub {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.55;
  margin-top: 2px;
  line-height: 1.4;
}

.home .product-note {
  font-size: var(--text-xs);
  color: var(--color-accent);
  margin: 0 0 var(--space-6);
  line-height: 1.7;
  font-weight: 700;
}

/* 各カード下部・中央に「詳しく見る」ボタンを置く（カードと離れて見えるUXを解消）。
   margin-top:auto で本文の下端（カード下部）へ寄せ、2カードでボタン位置をそろえる。 */
.home .product-card__actions {
  margin-top: auto;
  padding-top: var(--space-6);
  display: flex;
  justify-content: center;
}

/* ========================================================================
   ⑥ 強み（圧倒的なスピード × 技術力）
   ======================================================================== */
.home .strengths {
  background-color: var(--color-bg-tint); /* 薄い地でプロダクト(白)と区切る */
  padding: var(--space-16) 0;
}

.home .strengths__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 2本柱（速い／技術力） */
.home .strengths__pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  margin-bottom: var(--space-12);
}

.home .strength-card {
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  padding: var(--space-8);
}

/* 金の短い線（A案の金モチーフ） */
.home .strength-card__accent {
  display: block;
  width: 40px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.home .strength-card__title {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.home .strength-card__body {
  font-size: var(--text-base);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.8;
  margin: 0;
}

/* なぜ速く・高品質なのか（3点） */
.home .strengths__reasons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
  margin-bottom: var(--space-12);
}

.home .reason-item__num {
  display: block;
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
  margin-bottom: var(--space-3);
}

.home .reason-item__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}

.home .reason-item__body {
  font-size: var(--text-sm);
  line-height: 1.85;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

.home .strengths__cta {
  display: flex;
  justify-content: center;
}

/* ========================================================================
   ⑦ 実績（works）
   ======================================================================== */
.home .works {
  background-color: var(--color-bg); /* 強み(薄い地)の次なので白に戻して区切る */
  padding: var(--space-16) 0;
}

.home .works__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 3枚のダイジェスト。横3列で並べる（狭い画面では下のメディアクエリで1列に） */
.home .works__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-4);
}

.home .work-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-bg);
  transition: box-shadow 0.2s ease;
}

.home .work-card:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

/* 上部の写真（SignDS/SignHRの製品ビジュアル・大型システムのイメージ） */
.home .work-card__photo {
  aspect-ratio: 16 / 10;
  background: var(--color-bg-subtle);
  overflow: hidden;
}

/* 画像は枠いっぱいに。元画像が約16:10なので中央basisでほぼ全体が見える */
.home .work-card__photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home .work-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-6);
}

/* 業種ラベル（金の小さな見出し＝A案の金モチーフ。面塗りはしない） */
.home .work-card__label-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.home .work-card__label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-accent);
  letter-spacing: 0.04em;
  margin: 0;
}

/* 「開発中」ステータスバッジ（できることカードと同じ作法） */
.home .work-card__badge {
  font-size: var(--text-xs);
  color: var(--color-accent);
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  padding: 0.15em 0.7em;
  line-height: 1.5;
  white-space: nowrap;
}

.home .work-card__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.4;
  margin: 0;
}

.home .work-card__text {
  font-size: var(--text-sm);
  line-height: 1.8;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

.home .works__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--space-8);
}

/* ========================================================================
   ⑧ 選ばれる理由
   ======================================================================== */
.home .reasons {
  background-color: var(--color-bg-tint); /* ⑦実績(白)の次なので薄い地で区切る */
  padding: var(--space-16) 0;
}

.home .reasons__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 4項目を2×2で（本文が長いので横4列より読みやすい） */
.home .reasons__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-12) var(--space-8);
  margin-top: var(--space-4);
}

/* ========================================================================
   ⑨ TARSKホールディングスグループ（巨大グループに見せる）
   ======================================================================== */
.home .tarsk {
  /* TARSKサイトのメインビジュアルを背景に。白オーバーレイで薄く敷き、
     上のリード・KPI・ロゴ・見出しが読めるコントラストを確保する（全面黒NG・黒×金トーン維持）。 */
  background-color: var(--color-bg-subtle); /* 画像読込前のフォールバック */
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)),
    url("../img/tarsk-mv.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: var(--space-16) 0;
}

.home .tarsk__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 主要数値ストリップ（白パネルに特大数字。数字は墨・単位/矢印を金） */
.home .tarsk-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); /* 長い数値で列が広がらないよう0まで縮小可に */
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  padding: var(--space-8) var(--space-4);
  margin-top: var(--space-4);
}

.home .tarsk-stat {
  text-align: center;
  padding: 0 var(--space-3);
}

.home .tarsk-stat + .tarsk-stat {
  border-left: 1px solid var(--color-line);
}

.home .tarsk-stat__value {
  /* px 基準の clamp（rem 非依存）。Cocoon 親テーマの html/body ベースフォントに
     左右されず一定幅で収まり、最長値「8,000→35,000名」も各列・各幅で1行に収まる。 */
  font-size: clamp(20px, 2.2vw, 30px);
  letter-spacing: normal; /* 親テーマの字間継承を打ち消し、値の幅が膨らむのを防ぐ */
  font-weight: 700;
  line-height: 1.15;
  color: var(--color-accent); /* 主要数字（27/100/15/35,000）を金で強調 */
  white-space: nowrap;
  margin: 0 0 var(--space-2);
}

/* 変化前の数字（5→15 の5、8,000→35,000 の8,000）は淡金で控えめに */
.home .tarsk-stat__from {
  color: var(--color-accent-weak);
}

.home .tarsk-stat__unit {
  font-size: 0.5em;
  margin-left: 0.12em;
  color: var(--color-text); /* 単位（億円・校・名）は数字と分けて従来の文字色に保つ */
}

.home .tarsk-stat__arrow {
  color: var(--color-text); /* 矢印は中間トーン。数字を金にしたので金にしすぎない */
  opacity: 0.4;
  font-size: 0.7em;
  margin: 0 0.1em;
}

.home .tarsk-stat__label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 var(--space-1);
}

.home .tarsk-stat__note {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.55;
  line-height: 1.5;
  margin: 0;
}

.home .tarsk-source {
  text-align: center;
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.55;
  line-height: 1.7;
  margin: var(--space-4) 0 0;
}

/* グループ会社ロゴ群の見出し（金の短い罫つき。section-header の体裁に揃える） */
.home .group-heading {
  display: block;
  text-align: center;
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  margin: var(--space-12) 0 0;
}

.home .group-heading::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: var(--color-accent);
  margin: var(--space-3) auto 0;
}

/* グループ会社カード（GINGUNだけ金枠で主役） */
.home .group-grid {
  display: grid;
  /* 列数を明示（6列固定）。auto-fit は幅依存で列数が変わり、Cocoon の幅・
     フォント差でローカルの6列が5列に崩れたため、環境非依存の明示6列にする。
     minmax(0, 1fr) でカードはみ出しを防ぎつつ均等6分割する。#136 */
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-8);
}

.home .group-card {
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 10px;
  padding: var(--space-5) var(--space-4);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* 各社ロゴ。高さを揃え、縦横比は object-fit:contain で崩さない */
.home .group-card__logo {
  display: block;
  width: 100%;
  height: 44px;
  object-fit: contain;
  margin: 0 0 var(--space-3);
}

.home .group-card__cat {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.6;
  line-height: 1.5;
  margin: 0;
}

/* GINGUNカードだけ金枠で主役化 */
.home .group-card--gingun {
  border: 2px solid var(--color-accent);
}

/* 事業領域の横帯（淡金の縁のチップ） */
.home .group-domains {
  list-style: none;
  margin: var(--space-12) 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
}

/* 金メダル風：濃金の縁＋淡金の面で、透過背景より視認性と上品さを上げる */
.home .group-domains li {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
  background-color: var(--color-bg-tint); /* ごく薄い地 */
  border: 3px solid var(--color-accent-weak);      /* 淡金の差し色 */
  border-radius: 999px;
  padding: 0.4em 1.2em;
  line-height: 1.5;
}

.home .tarsk-closing {
  text-align: center;
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: 1.85;
  color: var(--color-text);
  max-width: 720px;
  margin: var(--space-12) auto 0;
}

.home .tarsk-link {
  display: flex;
  justify-content: center;
  margin-top: var(--space-6);
}

/* ========================================================================
   ⑩ お知らせ（会社情報は about ページへ移行）
   ======================================================================== */
.home .info {
  background-color: var(--color-bg); /* ⑨(薄地)の次なので白に戻す */
  padding: var(--space-16) 0;
}

.home .info__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 会社情報は about へ移行し、お知らせのみの1カラム構成。
   内側 max-width を他セクション（1200px）より控えめにして中央寄せし、間延びを防ぐ。 */
.home .info__grid {
  max-width: 780px;
  margin: 0 auto;
}

/* 左寄せの小見出し（金の短い下線） */
.home .info-col__title {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-6);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-line);
  position: relative;
}

.home .info-col__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 48px;
  height: 3px;
  background: var(--color-accent);
}

/* お知らせリスト */
.home .news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.home .news-item {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-line);
}

.home .news-item__date {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.55;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.home .news-item__cat {
  font-size: var(--text-xs);
  color: var(--color-accent);
  border: 1px solid var(--color-accent-weak);
  border-radius: 999px;
  padding: 0.1em 0.7em;
  line-height: 1.6;
  white-space: nowrap;
}

.home .news-item__title {
  font-size: var(--text-sm);
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
}

.home .info-col__actions {
  margin-top: var(--space-6);
  display: flex;
  justify-content: flex-end; /* ⑩お知らせ：一覧へのリンクをセクション右下へ寄せ視線誘導 */
}

/* ⑪ CTA（問いかけ型・チャコール濃色帯）の CSS は全ページ共通コンポーネント化に伴い
   header-footer.css へ移設した（WPの footer.php に含める前提・全ページで同一表示）。 */

/* ========================================================================
   レスポンシブ（中間幅：タブレット）
   グループ会社カードは明示6列のため、狭い幅で詰まりすぎないよう段階的に列を減らす。#136
   ======================================================================== */
@media (max-width: 1000px) {
  .home .group-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {

  /* ヒーロー */
  .home .hero {
    min-height: auto;
    display: block; /* デスクトップの中央寄せ flex をリセット */
    overflow: visible;
  }

  /* 狭幅では縦積みになり左グラデが不自然になるため無効化する */
  .home .hero::before {
    display: none;
  }

  .home .hero__inner {
    display: flex;
    flex-direction: column; /* 縦並び */
    padding: 0;
  }

  /* デスクトップの絶対配置をリセットし、写真を上に積む */
  .home .hero__media {
    position: static;
    order: -1;
    width: 100%;
    /* モバイルは縦積みのため左フェードは不自然。マスクを無効化する。 */
    -webkit-mask-image: none;
            mask-image: none;
  }

  .home .hero__photo-wrap {
    width: 100%;
    aspect-ratio: 4 / 3; /* モバイルでは縦横比を復元 */
  }

  .home .hero__body {
    max-width: 100%;
    padding: var(--space-12) var(--space-6);
  }

  .home .hero__heading {
    font-size: var(--text-3xl);
  }

  /* ブランドステートメント */
  .home .brand-stmt {
    padding: var(--space-12) 0;
  }

  .home .brand-stmt__inner {
    padding: 0 var(--space-6);
  }

  /* できること */
  .home .services {
    padding: var(--space-12) 0;
  }

  .home .services__inner {
    padding: 0 var(--space-6);
  }

  .home .services__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  /* 自社プロダクト */
  .home .products {
    padding: var(--space-12) 0;
  }

  .home .products__inner {
    padding: 0 var(--space-6);
  }

  .home .products__grid {
    gap: var(--space-6);
  }

  /* スマホは縦積み（スクショを上に戻す） */
  .home .product-card {
    grid-template-columns: 1fr;
  }

  .home .product-card__screen {
    order: -1;
    min-height: 0;
    aspect-ratio: 16 / 10; /* works画像（約16:10）の実比に合わせ、余白（レターボックス）を最小化 */
  }

  .home .product-card__body {
    padding: var(--space-6);
  }

  .home .product-effects {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .home .product-effect {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: var(--space-3);
    text-align: left;
  }

  .home .product-effect__label {
    margin-bottom: 0;
  }

  /* 各カードの「詳しく見る」ボタン（縦積み時は本文の直下に置く） */
  .home .product-card__actions {
    margin-top: var(--space-6);
    padding-top: 0;
  }

  /* 強み */
  .home .strengths {
    padding: var(--space-12) 0;
  }

  .home .strengths__inner {
    padding: 0 var(--space-6);
  }

  .home .strengths__pillars {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .home .strengths__reasons {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  /* 実績 */
  .home .works {
    padding: var(--space-12) 0;
  }

  .home .works__inner {
    padding: 0 var(--space-6);
  }

  .home .works__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  /* 選ばれる理由 */
  .home .reasons {
    padding: var(--space-12) 0;
  }

  .home .reasons__inner {
    padding: 0 var(--space-6);
  }

  .home .reasons__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  /* TARSKグループ */
  .home .tarsk {
    padding: var(--space-12) 0;
  }

  .home .tarsk__inner {
    padding: 0 var(--space-6);
  }

  /* 数値ストリップはモバイルでは縦1列（長い数値を確実に1行で収める） */
  .home .tarsk-stats {
    grid-template-columns: 1fr;
    padding: var(--space-2) var(--space-4);
  }

  .home .tarsk-stat {
    padding: var(--space-5) var(--space-2);
  }

  /* 横罫を縦の区切り罫に置き換え */
  .home .tarsk-stat + .tarsk-stat {
    border-left: none;
    border-top: 1px solid var(--color-line);
  }

  .home .group-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* お知らせ */
  .home .info {
    padding: var(--space-12) 0;
  }

  .home .info__inner {
    padding: 0 var(--space-6);
  }

  /* お知らせ項目：日付・カテゴリを上段、見出しを下段に */
  .home .news-item {
    grid-template-columns: auto auto;
    row-gap: var(--space-2);
  }

  .home .news-item__title {
    grid-column: 1 / -1;
  }

  /* CTA のレスポンシブも header-footer.css へ移設済み */
}

/* ==========================================================================
   ▼ services.css  →  .page-services 配下にスコープ */
/* ==========================================================================
   services.css — サービスページ（/services）専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   採用モック mockup/下層ページ/services.png を正本に実装。
   配色・余白は base.css のトークンに従う（金は線・点・縁・強調のみ）。
   ========================================================================== */

/* ========================================================================
   共通：プレースホルダ（画像は後続Issueで image2 生成して差し替え）
   ======================================================================== */
.page-services .placeholder-label {
  font-size: var(--text-xs);
  color: var(--color-line);
  letter-spacing: 0.08em;
  text-align: center;
  padding: var(--space-4);
}

/* ========================================================================
   画像の差し込み（Issue #49：プレースホルダ→実画像）
   写真は cover で枠いっぱい。管理画面スクショは contain で全体表示（見切れ防止）。
   ======================================================================== */

/* 写真（イントロ・AI活用バナー）：枠いっぱいに敷く */
.page-services .svc-intro__media-img,
.page-services .ai-photo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* AI活用の横長バナーは上寄りの人物が切れないよう少し上を見せる */
.page-services .ai-photo__img {
  object-position: center 35%;
}

/* 管理画面スクショ（SignDS／SignHR）：囲み枠なしで、画面そのものをそのまま置く。
   全体表示＝見切れなし（contain）。薄グレー箱の背景・border・内パディングは付けない。 */
.page-services .product-detail__screen-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

/* ========================================================================
   ページヘッダー（パンくず＋タイトル＋透かし）
   ======================================================================== */
.page-services .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（モック：イントロ上部の帯） */
  border-bottom: 1px solid var(--color-line);
}

.page-services .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず */
.page-services .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-services .breadcrumb li {
  opacity: 0.6;
}

.page-services .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-services .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-services .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-services .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-services .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}

/* 右下の大きな金の透かし「SERVICES」 */
.page-services .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   イントロ（リード＋本文＋写真）
   ======================================================================== */
.page-services .svc-intro {
  background-color: var(--color-bg);
  padding: var(--space-16) 0;
}

.page-services .svc-intro__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: var(--space-12);
}

.page-services .svc-intro__lead {
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 var(--space-10);
}

/* リード下：金の横ライン＋右端の丸ドット（トップのヒーロー見出しと同モチーフ） */
.page-services .svc-intro__lead::after {
  content: "";
  display: block;
  width: 160px;
  height: 10px;
  margin-top: var(--space-10); /* 見出し↔金線の間隔をトップ（hero）と統一して広げる */
  background:
    radial-gradient(circle at calc(100% - 4px) 50%, var(--color-accent) 4px, transparent 4px),
    linear-gradient(var(--color-accent), var(--color-accent)) 0 50% / calc(100% - 8px) 2px no-repeat;
}

.page-services .svc-intro__text {
  font-size: var(--text-lg);
  line-height: 1.95;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

.page-services .svc-intro__media {
  aspect-ratio: 16 / 10; /* モック：右に横長の風景写真 */
  background-color: var(--color-bg-subtle);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ========================================================================
   3本柱の概要行（01／02／03）
   ======================================================================== */
.page-services .svc-pillars {
  background-color: var(--color-bg);
  padding: 0 0 var(--space-16);
}

.page-services .svc-pillars__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.page-services .pillar {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-2) var(--space-6);
  text-decoration: none;
  color: var(--color-text);
  transition: opacity 0.2s ease;
}

/* 柱の間に細い区切り線（モック：縦の薄い罫） */
.page-services .pillar + .pillar {
  border-left: 1px solid var(--color-line);
}

.page-services .pillar:hover {
  opacity: 0.7;
}

.page-services .pillar__num {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
  flex-shrink: 0;
}

.page-services .pillar__title {
  font-size: var(--text-lg);
  font-weight: 700;
  margin: 0 0 var(--space-1);
}

.page-services .pillar__desc {
  font-size: var(--text-xs);
  line-height: 1.6;
  color: var(--color-text);
  opacity: 0.65;
  margin: 0;
}

/* ========================================================================
   詳細ブロック（01／02／03 共通）
   ======================================================================== */
.page-services .svc-block {
  padding: var(--space-16) 0;
  background-color: var(--color-bg);
}

.page-services .svc-block--tint {
  background-color: var(--color-bg-tint); /* セクション区切り（白との微差） */
}

.page-services .svc-block__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* ブロック見出し（大きな金の番号＋タイトル） */
.page-services .svc-block__head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-6);
  margin-bottom: var(--space-12);
}

.page-services .svc-block__num {
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  font-weight: 700;
  color: var(--color-accent);
  line-height: 0.9;
  flex-shrink: 0;
}

.page-services .svc-block__title {
  font-size: var(--text-3xl);
  font-weight: 700;
  margin: 0 0 var(--space-3);
  line-height: 1.2;
}

.page-services .svc-block__sub {
  font-size: var(--text-lg);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.74;
  margin: 0;
}

/* フロー図の下の補足（SignDS連携を“おすすめの強化策”として控えめに添える） */
.page-services .svc-block__note {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.66;
  max-width: 720px;
  margin: 0 auto var(--space-16);
}

/* フロー直後に補足が続くときは、フロー下の余白を詰めて補足を近づける */
.page-services .flow:has(+ .svc-block__note) {
  margin-bottom: var(--space-6);
}

/* ========================================================================
   01 システム開発：プロダクト詳細（SignDS／SignHR）
   ======================================================================== */
/* 2カードを縦に並べつつ「同じ高さ」に揃える（grid-auto-rows: 1fr）。
   テキスト量の差（SignHR はチェックリスト分だけ多い）に関わらず、両カードの高さを統一する。 */
.page-services .product-detail-group {
  display: grid;
  grid-auto-rows: 1fr;
  gap: var(--space-8);
}

.page-services .product-detail {
  display: grid;
  grid-template-columns: 5fr 7fr; /* 左：テキスト／右：スクショ */
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  overflow: hidden;
}

/* SignHR：左右反転（メディアを左に）。SignDS と同じ「現場写真＋管理画面」の2点構成で
   メディア量・カード寸法を揃える（issue #60：2カードを同じ大きさ・バランスに統一）。 */
.page-services .product-detail--reverse {
  grid-template-columns: 7fr 5fr;
}

.page-services .product-detail--reverse .product-detail__body {
  order: 2;
}

.page-services .product-detail--reverse .product-detail__media {
  order: 1;
  border-left: none;
  border-right: 1px solid var(--color-line);
}

.page-services .product-detail__body {
  padding: var(--space-8);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 管理画面スクショのみの1点構成（SignDS／SignHR 共通）。
   受付写真を廃し、メディア領域を共通サイズにして2カードの大きさ・バランスを揃える。 */
.page-services .product-detail__media {
  min-height: 320px;
  border-left: 1px solid var(--color-line);
  background-color: var(--color-bg-subtle);
  display: grid;
  grid-template-columns: 1fr;
}

.page-services .product-detail__shot {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 管理画面は囲み枠なし。淡色の地にスクショをそのまま置く（影・枠なし） */
.page-services .product-detail__shot--screen {
  background-color: var(--color-bg-subtle);
  padding: var(--space-6);
}

/* 公式サイトリンク（btn-text）：本文／チェックリストの下に少し間隔をあけて置く */
.page-services .product-detail__link {
  margin: var(--space-2) 0 0;
}

.page-services .product-detail__name {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 0.05em;
  margin: 0 0 var(--space-1);
}

.page-services .product-detail__subtitle {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.55;
  font-weight: 500;
  margin: 0 0 var(--space-4);
}

.page-services .product-detail__lead {
  font-size: var(--text-base);
  font-weight: 600;
  line-height: 1.65;
  margin: 0 0 var(--space-4);
  border-left: 3px solid var(--color-accent);
  padding-left: var(--space-4);
}

.page-services .product-detail__text {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0 0 var(--space-6);
}

/* チェックリスト（金のチェック） */
.page-services .checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}

.page-services .checklist li {
  position: relative;
  padding-left: 1.8em;
  font-size: var(--text-sm);
  line-height: 1.6;
  color: var(--color-text);
}

.page-services .checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-accent);
  font-weight: 700;
}

/* 受託開発・カスタム対応（アイコン付き機能帯。モック準拠） */
.page-services .feature-band {
  margin-top: var(--space-8);
  padding: var(--space-8);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  background: var(--color-bg);
}

.page-services .feature-band__title {
  font-size: var(--text-xl);
  font-weight: 700;
  margin: 0 0 var(--space-2);
  padding-left: var(--space-3);
  border-left: 3px solid var(--color-accent);
}

.page-services .feature-band__lead {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.72;
  line-height: 1.8;
  margin: 0 0 var(--space-6);
}

.page-services .feature-band__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-4);
}

.page-services .feature-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
}

/* アイコン（image2生成の金・透過PNG。モック準拠で枠なし＝アイコン単体で見せる） */
.page-services .feature-item__icon {
  width: 48px;
  height: 48px;
}

.page-services .feature-item__icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.page-services .feature-item__label {
  font-size: var(--text-xs);
  line-height: 1.5;
  color: var(--color-text);
}

/* ========================================================================
   02 Web制作：申込導線フロー
   ======================================================================== */
.page-services .flow {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: var(--space-4);
  flex-wrap: wrap;
  margin-bottom: var(--space-16);
}

.page-services .flow__step {
  flex: 1 1 0;
  min-width: 180px;
  max-width: 280px;
  text-align: center;
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: 10px;
  background: var(--color-bg);
}

/* 最終ステップ（SignDS連携）は金枠で強調 */
.page-services .flow__step--accent {
  border-color: var(--color-accent);
}

/* アイコン（image2生成の金・透過PNG。モック準拠で枠なし＝アイコン単体で見せる） */
.page-services .flow__icon {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto var(--space-3);
}

.page-services .flow__icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.page-services .flow__label {
  font-size: var(--text-base);
  font-weight: 700;
  margin: 0 0 var(--space-1);
}

.page-services .flow__note {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.6;
  margin: 0;
}

.page-services .flow__arrow {
  align-self: center;
  font-size: 1.5rem;
  color: var(--color-accent);
  flex-shrink: 0;
}

/* Before / After 比較 */
.page-services .compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  gap: var(--space-6);
}

.page-services .compare__col {
  min-width: 0;
}

.page-services .compare__tag {
  display: inline-block;
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0 var(--space-3);
}

.page-services .compare__tag--before {
  color: var(--color-text);
  opacity: 0.5;
}

.page-services .compare__tag--after {
  color: var(--color-accent);
}

.page-services .compare__screen {
  aspect-ratio: 16 / 10;
  background-color: #EEECE8;
  border: 1px solid var(--color-line);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-4);
}

/* Before／After のサイト風スクショ：枠いっぱいに敷き、上端（ヘッダー・ヒーロー）から見せる。
   Before/After で同じ縦横比・同じ見え方にそろえる。 */
.page-services .compare__screen-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.page-services .compare__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.page-services .compare__list li {
  position: relative;
  padding-left: 1.4em;
  font-size: var(--text-sm);
  line-height: 1.6;
}

.page-services .compare__list--before li::before {
  content: "−";
  position: absolute;
  left: 0;
  color: var(--color-text);
  opacity: 0.4;
  font-weight: 700;
}

.page-services .compare__list--after li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--color-accent);
  font-weight: 700;
}

.page-services .compare__arrow {
  align-self: center;
  font-size: 2rem;
  color: var(--color-accent);
  padding-top: var(--space-12);
}

/* ========================================================================
   03 AI活用：3カード＋写真
   ======================================================================== */
.page-services .ai-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  margin-bottom: var(--space-8);
}

.page-services .ai-card {
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  background: var(--color-bg);
}

/* アイコン（image2生成の金・透過PNG。モック準拠で枠なし＝アイコン単体で見せる） */
.page-services .ai-card__icon {
  display: block;
  width: 48px;
  height: 48px;
  margin-bottom: var(--space-4);
}

.page-services .ai-card__icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.page-services .ai-card__title {
  font-size: var(--text-xl);
  font-weight: 700;
  margin: 0 0 var(--space-3);
}

.page-services .ai-card__text {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

.page-services .ai-photo {
  aspect-ratio: 24 / 7;
  background-color: var(--color-bg-subtle);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* CTA は全ページ共通コンポーネント化に伴い header-footer.css へ移設（旧 .cta-band は廃止） */

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {

  .page-services .page-head__inner {
    padding: var(--space-6) var(--space-6) var(--space-8);
  }

  .page-services .breadcrumb ol {
    margin-bottom: var(--space-6);
  }

  .page-services .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  /* イントロ：縦積み（写真を上に） */
  .page-services .svc-intro {
    padding: var(--space-12) 0;
  }

  .page-services .svc-intro__inner {
    grid-template-columns: 1fr;
    padding: 0 var(--space-6);
    gap: var(--space-8);
  }

  .page-services .svc-intro__media {
    order: -1;
  }

  /* 3本柱：縦積み */
  .page-services .svc-pillars {
    padding-bottom: var(--space-12);
  }

  .page-services .svc-pillars__inner {
    grid-template-columns: 1fr;
    padding: var(--space-4) var(--space-6);
  }

  .page-services .pillar {
    padding: var(--space-4) 0;
  }

  .page-services .pillar + .pillar {
    border-left: none;
    border-top: 1px solid var(--color-line);
  }

  /* 詳細ブロック */
  .page-services .svc-block {
    padding: var(--space-12) 0;
  }

  .page-services .svc-block__inner {
    padding: 0 var(--space-6);
  }

  .page-services .svc-block__head {
    gap: var(--space-4);
    margin-bottom: var(--space-8);
  }

  /* スマホでは縦積みのため高さ統一は不要（余白が空くのを防ぐ） */
  .page-services .product-detail-group {
    grid-auto-rows: auto;
  }

  /* プロダクト詳細：縦積み（スクショを上に） */
  .page-services .product-detail,
.page-services .product-detail--reverse {
    grid-template-columns: 1fr;
  }

  .page-services .product-detail--reverse .product-detail__body {
    order: 0;
  }

  .page-services .product-detail__body {
    padding: var(--space-6);
  }

  /* 写真＋管理画面の2点構成：縦積みでメディアを上に・横並びは維持（SignDS／SignHR 共通） */
  .page-services .product-detail__media,
.page-services .product-detail--reverse .product-detail__media {
    order: -1;
    min-height: 0;
    aspect-ratio: 16 / 9;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid var(--color-line);
  }

  /* 受託開発・カスタム対応：6→3列 */
  .page-services .feature-band__list {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
  }

  /* フロー：縦積み（矢印を下向きに） */
  .page-services .flow {
    flex-direction: column;
    align-items: stretch;
    margin-bottom: var(--space-12);
  }

  .page-services .flow__step {
    max-width: none;
  }

  .page-services .flow__arrow {
    transform: rotate(90deg);
  }

  /* Before/After：縦積み */
  .page-services .compare {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .page-services .compare__arrow {
    transform: rotate(90deg);
    padding-top: 0;
    justify-self: center;
  }

  /* AIカード：縦積み */
  .page-services .ai-grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .page-services .ai-photo {
    aspect-ratio: 16 / 9;
  }
}

/* ==========================================================================
   ▼ about.css  →  .page-about 配下にスコープ */
/* ==========================================================================
   about.css — GINGUNについて（/about）専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   配色は base.css のトークンを使用。白基調＋金は線・縁・強調のみ。
   ========================================================================== */

/* 共通：セクション内側コンテナ幅 */
.page-about .page-head__inner,
.page-about .about-lead__inner,
.page-about .flow__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* ========================================================================
   ページヘッダー帯（partners/works と統一：薄い地＋金の短い罫＋右下の金透かし）
   ======================================================================== */
.page-about .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}
/* 透かしの配置基準。上下パディングは下層共通（partners/works）に合わせる */
.page-about .page-head__inner {
  position: relative;
  overflow: hidden;
  padding: var(--space-8) var(--space-8) var(--space-12);
}

/* パンくず */
.page-about .breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.6;
}
.page-about .breadcrumb__list li {
  display: flex;
  align-items: center;
}
/* 区切りの「›」を項目の前に付ける（先頭以外）。色はモック準拠で本文グレー（金にしない） */
.page-about .breadcrumb__list li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: currentColor;
}
.page-about .breadcrumb__list a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.page-about .breadcrumb__list a:hover {
  color: var(--color-accent);
}
.page-about .breadcrumb__list li[aria-current="page"] {
  font-weight: 600;
  opacity: 1;
}

/* タイトル上の金の短い罫（partners/works と同一：44px×3px） */
.page-about .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}
.page-about .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}
/* 右下の大きな金の透かし「ABOUT」（partners/works と同一） */
.page-about .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   信念メッセージ（page-head 直下／思い・信念のリード）
   中央配置だが本文は左揃え（width:fit-content; margin:auto; text-align:left）
   ======================================================================== */
.page-about .creed {
  padding: var(--space-16) 0 var(--space-12);
  text-align: center;
}
.page-about .creed__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}
.page-about .creed__title {
  font-size: var(--text-3xl);
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-text);
  margin: 0 0 var(--space-8);
}
.page-about .creed__title::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin: var(--space-5) auto 0;
}
.page-about .creed__text {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  text-align: left;
  font-size: var(--text-lg);
  line-height: 2.1;
  color: var(--color-text);
  opacity: 0.82;
}

/* ========================================================================
   リード（写真＋立ち位置コピー）
   ======================================================================== */
/* 背景写真をセクション全面に敷き、その上に見出し＋本文をオーバーレイする */
.page-about .about-lead {
  position: relative;
  /* 立ち位置セクションは上下に余白を広く取り、背景写真と文字のバランスを保つ */
  padding-top: 120px;
  padding-bottom: 120px;
  overflow: hidden;
}
/* 背景写真レイヤー（セクション全面にcoverで敷く） */
.page-about .about-lead__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.page-about .about-lead__bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 白の薄いフィルター。濃色の文字でも読めるよう背景を明るく落ち着かせる */
.page-about .about-lead__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.72);
}
.page-about .about-lead__inner {
  position: relative;
  z-index: 1;
}
.page-about .about-lead__body {
  max-width: 760px;
}

.page-about .about-lead__heading {
  font-size: var(--text-3xl);
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 var(--space-6);
}
.page-about .about-lead__text {
  font-size: var(--text-lg);
  line-height: 1.95;
  color: var(--color-text);
  /* 背景写真に重なっても読めるよう太字化（見出し700より一段細い600）＋わずかな白縁取り */
  font-weight: 600;
  opacity: 0.92;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.6);
  margin: 0;
}

/* ========================================================================
   一気通貫の3ステップ
   ======================================================================== */
.page-about .flow {
  padding: var(--space-16) 0;
  background: var(--color-bg-tint);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.page-about .flow__head {
  text-align: center;
  margin-bottom: var(--space-12);
}
.page-about .flow__title {
  font-size: var(--text-2xl);
  font-weight: 700;
  margin: 0;
}
.page-about .flow__title::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: var(--color-accent);
  margin: var(--space-4) auto 0;
}

.page-about .flow__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}

/* ステップ間の「›」矢印（PCのみ・列の間に表示） */
.page-about .flow-step {
  position: relative;
}
.page-about .flow-step + .flow-step::before {
  content: "›";
  position: absolute;
  top: 24%;
  left: calc(var(--space-8) / -2);
  transform: translate(-50%, -50%);
  font-size: 4rem;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
}

/* 写真は矢印を大きくした分、少し小さめ（横長）に。暗いので白で明るく見せる */
.page-about .flow-step__photo {
  aspect-ratio: 16 / 9;
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-line);
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: var(--space-6);
}
.page-about .flow-step__photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* 暗い写真を白いフィルターで明るめに（白飛びしない範囲） */
  filter: brightness(1.12) contrast(0.96);
}

/* 番号と見出しを横並び（モック：「01 企画・設計」） */
.page-about .flow-step__head {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.page-about .flow-step__num {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.page-about .flow-step__title {
  font-size: var(--text-xl);
  font-weight: 700;
  margin: 0;
}
.page-about .flow-step__text {
  font-size: var(--text-sm);
  line-height: 1.85;
  color: var(--color-text);
  opacity: 0.75;
  margin: 0;
}

/* ========================================================================
   TARSKグループ内の位置づけ＋会社情報（1セクションに統合）
   背景に company-office.webp を敷き、白オーバーレイで明るくする。
   縦積み：①位置づけ ②グループネットワーク ③会社情報
   ======================================================================== */
.page-about .about-group {
  position: relative;
  padding: var(--space-16) 0;
  overflow: hidden;
}
/* 背景写真＋白オーバーレイ（上の文字が読めるよう白を強めに重ねる） */
.page-about .about-group__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.86)),
    url("../img/company-office.webp");
  background-size: cover;
  background-position: center;
}
.page-about .about-group__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* ① 位置づけ（見出し＋リード／中央寄せ・本文は左揃え） */
.page-about .about-group__intro {
  text-align: center;
  margin-bottom: var(--space-12);
}
.page-about .about-group__title {
  font-size: var(--text-2xl);
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 var(--space-5);
}
.page-about .about-group__title::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: var(--color-accent);
  margin: var(--space-4) auto 0;
}
.page-about .about-group__lead {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  text-align: left;
  font-size: var(--text-base);
  line-height: 1.95;
  color: var(--color-text);
  opacity: 0.8;
}

/* ② グループ組織図（親＝TARSKホールディングス → 接続線 → 傘下会社を囲む枠） */
.page-about .about-org {
  margin-top: var(--space-12);
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* 親ノード（リンク）。白地に金縁の枠付きボックス。中身はTARSKロゴ */
.page-about .about-org__parent {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background: var(--color-bg);
  border: 2px solid var(--color-accent);
  border-radius: 10px;
  padding: var(--space-4) var(--space-8);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
/* TARSKロゴ（高さ基準で揃える。横長なのでwidthはauto） */
.page-about .about-org__parent-logo {
  display: block;
  width: auto;
  height: 28px;
}
/* 親（統括）であることが伝わるラベル。傘下キャプション(.about-group-card__cat)
   とは明確に差別化（太め・やや大きめ・濃色・字間広め） */
.page-about .about-org__parent-label {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.08em;
  line-height: 1.4;
}
.page-about .about-org__parent:hover,
.page-about .about-org__parent:focus-visible {
  background: var(--color-accent-weak);
}
/* 親 → 子をつなぐ縦の接続線（金の細線） */
.page-about .about-org__line {
  display: block;
  width: 2px;
  height: var(--space-8);
  background: var(--color-accent);
}
/* 傘下会社を囲む枠。上辺中央で接続線を受ける */
.page-about .about-org__children {
  width: 100%;
  border: 2px solid var(--color-accent);
  border-radius: 12px;
  padding: var(--space-6);
  background: rgba(255, 255, 255, 0.55);
}
.page-about .about-group-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-4);
}
.page-about .about-group-card {
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 10px;
  padding: var(--space-5) var(--space-4);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.page-about .about-group-card__logo {
  display: block;
  width: 100%;
  height: 44px;
  object-fit: contain;
  margin: 0 0 var(--space-3);
}
.page-about .about-group-card__cat {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.6;
  line-height: 1.5;
  margin: 0;
}
/* GINGUNカードだけ金枠で主役化。さらにゆっくり明滅する金のグローで視線を集める */
.page-about .about-group-card--gingun {
  border: 2px solid var(--color-accent);
  animation: gingun-glow 3s ease-in-out infinite alternate;
}
/* box-shadow を金（#BF9B46 系）で 0↔強 へ。ふわっと光る→収まるを繰り返す（上品に） */
@keyframes gingun-glow {
  from {
    box-shadow: 0 0 0 0 rgba(191, 155, 70, 0);
  }
  to {
    box-shadow: 0 0 16px 3px rgba(191, 155, 70, 0.55);
  }
}
/* 視差・動きを抑える設定では明滅を止め、金枠のみの静止表示にする */
@media (prefers-reduced-motion: reduce) {
  .page-about .about-group-card--gingun {
    animation: none;
  }
}

/* ③ 会社情報（白カードで背景写真の上でも読めるように／画像なし） */
.page-about .about-company {
  max-width: 920px;
  margin: var(--space-16) auto 0;
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 10px;
  padding: var(--space-10) var(--space-10) var(--space-12);
}
.page-about .about-company__title {
  font-size: var(--text-2xl);
  font-weight: 700;
  margin: 0 0 var(--space-8);
  padding-bottom: var(--space-4);
  border-bottom: 2px solid var(--color-ink);
}
.page-about .about-company-table {
  margin: 0;
}
.page-about .about-company-table__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  border-bottom: 1px solid var(--color-line);
}
.page-about .about-company-table__row:first-child {
  border-top: 1px solid var(--color-line);
}
.page-about .about-company-table__label {
  padding: var(--space-4) var(--space-6);
  font-weight: 600;
  font-size: var(--text-sm);
  background: var(--color-bg-subtle);
  margin: 0;
}
.page-about .about-company-table__value {
  padding: var(--space-4) var(--space-6);
  font-size: var(--text-sm);
  line-height: 1.85;
  margin: 0;
}

/* CTA は全ページ共通コンポーネント化に伴い header-footer.css へ移設（旧 .cta-band は廃止） */

/* ========================================================================
   レスポンシブ（中間幅・980px 以下）
   ======================================================================== */
@media (max-width: 980px) {
  .page-about .about-group-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {
  .page-about .page-head__inner {
    padding: var(--space-8) var(--space-6);
  }
  .page-about .page-head__title {
    font-size: var(--text-3xl);
  }
  /* 透かしはタイトル背面でごく薄く（partners/works と同じ扱い） */
  .page-about .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  .page-about .about-lead {
    /* スマホでは上下余白を抑える（広すぎる空白を避ける） */
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .page-about .flow {
    padding: var(--space-12) 0;
  }
  .page-about .flow__list {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  /* スマホでは列間の矢印を消す */
  .page-about .flow-step + .flow-step::before {
    content: none;
  }

  .page-about .creed {
    padding: var(--space-12) 0;
  }
  .page-about .creed__text {
    font-size: var(--text-base);
  }

  .page-about .about-group {
    padding: var(--space-12) 0;
  }
  .page-about .about-group-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-about .about-company {
    padding: var(--space-8) var(--space-6) var(--space-10);
  }
  .page-about .about-company-table__row {
    grid-template-columns: 1fr;
  }
  .page-about .about-company-table__label {
    border-bottom: 1px solid var(--color-line);
  }
}

/* ==========================================================================
   ▼ works.css  →  .page-works 配下にスコープ */
/* ==========================================================================
   works.css — 実績（/works）ページ専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   ※ .page-head は他の下層ページでも使う共通チャンク（partners と同一体裁）。
      CTA は header-footer.css に共通化（全ページ同一表示）。
     ページが増えたら共通CSS（page.css 等）へ切り出してよい。
   ========================================================================== */

/* ========================================================================
   ページヘッダー帯（partners と統一：左＝見出し「実績」／右＝透かし「WORKS」）
   --------------------------------------------------------------------------
   ※ partners.css の .page-head と同一の体裁に揃えている（下層ページ共通）。
     リード/注記は works 固有（タイトル直下に左寄せで残す。文言は不変）。
     ページが増えたら .page-head を共通CSS（page.css 等）へ切り出し可。
   ======================================================================== */
.page-works .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}

.page-works .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず（partners と同一） */
.page-works .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-works .breadcrumb li {
  opacity: 0.6;
}

.page-works .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-works .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-works .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-works .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-works .page-head__title {
  position: relative;
  z-index: 1; /* 透かしより前面 */
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}

/* 右下の大きな金の透かし「WORKS」（partners と同一の体裁） */
.page-works .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   リード（帯の下：社名非掲載の方針。partners/about と同じ「帯の外」配置）
   ※ 文言は従来どおり。左寄せ。
   ======================================================================== */
.page-works .works-intro {
  background: var(--color-bg);
}

.page-works .works-intro__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-8) 0;
}

.page-works .works-intro__lead {
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.8;
  margin: 0 0 var(--space-4);
}

.page-works .works-intro__note {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.62;
  line-height: 1.95;
  max-width: 640px;
  margin: 0;
}

/* ========================================================================
   共通：セクション枠と左寄せの金罫見出し
   ======================================================================== */
.page-works .works-section {
  padding: var(--space-16) 0;
  background-color: var(--color-bg);
}

.page-works .works-section--tint {
  background-color: var(--color-bg-tint); /* セクション区切り（白との微差） */
}

.page-works .works-section__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 左の金の短罫＋見出しテキスト（モック：全セクション共通の見出し体裁） */
.page-works .works-head {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-10);
}

.page-works .works-head::before {
  content: "";
  flex-shrink: 0;
  width: 36px;
  height: 2px;
  background: var(--color-accent);
}

.page-works .works-head__title {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  line-height: 1.3;
}

/* ========================================================================
   制作実績（カード：実績画像＋名称＋種別タグ）
   --------------------------------------------------------------------------
   ※ モックは横長カード4枚だが、実データは点数が多いため画像を上に積む
     縦型カードの3カラムグリッドに最適化（点数に応じたモック準拠の調整）。
   ※ システム制作実績／サイト制作実績で共通のカード体裁。各カードは公開先への
     リンク（<a>）。サイト制作実績はカテゴリ小見出し（.work-cat）でグループ化。
   ======================================================================== */

/* カテゴリ小見出し（サイト制作実績：コーポレートサイト／LP 等のグループ見出し） */
.page-works .work-cat {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.4;
  margin: 0 0 var(--space-5);
}

/* 見出し前の金の短い罫（works-head より小ぶり：階層を一段下げる） */
.page-works .work-cat::before {
  content: "";
  flex-shrink: 0;
  width: 20px;
  height: 2px;
  background: var(--color-accent);
}

/* グループ間の余白（2つ目以降の小見出しは上に間隔を空ける） */
.page-works .work-grid + .work-cat {
  margin-top: var(--space-12);
}

.page-works .work-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

.page-works .work-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-bg);
  color: inherit; /* リンク化しても本文色を継承 */
  text-decoration: none;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.page-works .work-card:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
  border-color: var(--color-accent-weak); /* ホバーで淡金の縁を添える（クリック可能の合図） */
}

/* キーボード操作時のフォーカス可視化（リンクカードのため） */
.page-works .work-card:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* 上：実績画像（アスタの制作実績スクリーンショット） */
.page-works .work-card__photo {
  aspect-ratio: 16 / 10;
  background: var(--color-bg-subtle);
  border-bottom: 1px solid var(--color-line);
  overflow: hidden;
}

.page-works .work-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center; /* サイト上部（ヘッダー／ファースト）が見えるように */
  display: block;
}

.page-works .work-card__body {
  padding: var(--space-5) var(--space-6) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* 種別タグ（金の角枠） */
.page-works .work-card__tag {
  align-self: flex-start;
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-accent);
  border: 1px solid var(--color-accent);
  border-radius: 5px;
  padding: 0.22em 0.8em;
  line-height: 1.5;
}

/* 名称と外部リンク指標を横並びにする行 */
.page-works .work-card__titlerow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

/* 外部リンクアイコン（細線の金。別タブで公開先へ飛ぶことを示すUI記号）。
   常時表示はせず、ホバー時にだけ控えめに浮かび上がらせる。
   非ホバー時も領域は確保し、ホバーでレイアウトがずれないようにする。 */
.page-works .work-card__titlerow::after {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background-color: var(--color-accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
  opacity: 0;
  transform: translate(-2px, 2px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

/* ホバー（とキーボードフォーカス）でアイコンを控えめに表示 */
.page-works .work-card:hover .work-card__titlerow::after,
.page-works .work-card:focus-visible .work-card__titlerow::after {
  opacity: 1;
  transform: translate(0, 0);
}

/* 実績名称（社名・案件名・プロダクト名） */
.page-works .work-card__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  line-height: 1.45;
}

/* ========================================================================
   自社プロダクト導入の効果（3指標）
   ======================================================================== */
/* 効果の前置き文（句点で改行・本文トーン）。見出し直下に置く */
.page-works .effect-intro {
  font-size: var(--text-base);
  color: var(--color-text);
  opacity: 0.82;
  line-height: 1.95;
  margin: 0 0 var(--space-10);
}
.page-works .effect-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

.page-works .effect-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  border: 1px solid var(--color-line);
  border-radius: 12px;
  padding: var(--space-6);
  background: var(--color-bg);
}

.page-works .effect-card__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  color: var(--color-accent); /* 金の線アイコン */
}

.page-works .effect-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.page-works .effect-card__body {
  min-width: 0;
}

.page-works .effect-card__label {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.6;
  margin: 0 0 var(--space-2);
  line-height: 1.5;
}

.page-works .effect-card__value {
  margin: 0 0 var(--space-2);
  line-height: 1.2;
}

.page-works .effect-value__before {
  color: var(--color-text);
  opacity: 0.5;
  font-size: var(--text-base);
}

.page-works .effect-value__arrow {
  color: var(--color-accent);
  font-size: var(--text-lg);
  margin: 0 0.25em;
}

.page-works .effect-value__after {
  color: var(--color-accent);
  font-size: var(--text-2xl);
  font-weight: 700;
}

/* 「約」「%」など強調数字に添える小さめの金テキスト（モック：数字が主役・前後は小さく） */
.page-works .effect-value__unit {
  color: var(--color-accent);
  font-size: var(--text-base);
  font-weight: 600;
}

/* 「向上」＝強調数字のあとに続く金の中サイズ語（モック準拠） */
.page-works .effect-value__suffix {
  color: var(--color-accent);
  font-size: var(--text-lg);
  font-weight: 600;
  margin-left: 0.4em;
}

.page-works .effect-card__desc {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.62;
  line-height: 1.7;
  margin: 0;
}

.page-works .effect-note {
  text-align: center;
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.55;
  line-height: 1.9;
  margin: var(--space-10) 0 0;
}

/* CTA は全ページ共通コンポーネント化に伴い header-footer.css へ移設（旧 works 専用 .cta は廃止） */

/* ========================================================================
   レスポンシブ（タブレット：3カラム→2カラム）
   ======================================================================== */
@media (max-width: 1000px) {
  .page-works .work-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {

  /* ページヘッダー帯（partners と同一の扱い） */
  .page-works .page-head__inner {
    padding: var(--space-8) var(--space-6);
  }

  /* 透かしはタイトル背面でごく薄く（partners と同じ扱い） */
  .page-works .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  /* 帯下のリード */
  .page-works .works-intro__inner {
    padding: var(--space-10) var(--space-6) 0;
  }

  .page-works .works-section {
    padding: var(--space-12) 0;
  }

  .page-works .works-section__inner {
    padding: 0 var(--space-6);
  }

  .page-works .works-head__title {
    font-size: var(--text-2xl);
  }

  /* 業界制作実績：1カラムに */
  .page-works .work-grid {
    grid-template-columns: 1fr;
  }

  /* 効果：縦積み */
  .page-works .effect-grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
}

/* ==========================================================================
   ▼ partners.css  →  .page-partners 配下にスコープ */
/* ==========================================================================
   partners.css — パートナー募集ページ（/partners）専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   採用モック mockup/下層ページ/partners.png を正本に実装。
   トップA案と同じデザイン言語（白基調＋真鍮ゴールド #BF9B46 の細線／
   濃色はCTA帯・フッターのみ）。
   ========================================================================== */

/* ========================================================================
   ページヘッダー（パンくず＋タイトル＋透かし）
   ------------------------------------------------------------------------
   下層ページ共通パターン（services.css と同一）に合わせる。
   ======================================================================== */
.page-partners .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}

.page-partners .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず */
.page-partners .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-partners .breadcrumb li {
  opacity: 0.6;
}

.page-partners .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-partners .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-partners .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-partners .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-partners .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}

/* 右下の大きな金の透かし「PARTNERS」 */
.page-partners .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   セクション共通：左寄せ見出し（金の短いバー付き）
   ======================================================================== */
.page-partners .ptn-heading {
  margin-bottom: var(--space-8);
}

.page-partners .ptn-heading__title {
  position: relative;
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  padding-left: var(--space-4);
  line-height: 1.4;
}

/* 見出し左の金の縦バー */
.page-partners .ptn-heading__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 4px;
  background: var(--color-accent);
  border-radius: 2px;
}

/* ========================================================================
   ② イントロ（左テキスト＋右写真）
   ======================================================================== */
.page-partners .ptn-intro {
  background: var(--color-bg);
}

.page-partners .ptn-intro__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-16) var(--space-8);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: var(--space-12);
}

.page-partners .ptn-intro__lead {
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 700;
  line-height: 1.55;
  color: var(--color-text);
  margin: 0 0 var(--space-10);
}

/* リード下の金の飾り罫（線＋右端ドット。ヒーロー見出し下と同じモチーフ） */
.page-partners .ptn-intro__lead::after {
  content: "";
  display: block;
  width: 160px;
  height: 10px;
  margin-top: var(--space-10); /* 見出し↔金線の間隔をトップ（hero）と統一して広げる */
  background:
    radial-gradient(circle at calc(100% - 4px) 50%, var(--color-accent) 4px, transparent 4px),
    linear-gradient(var(--color-accent), var(--color-accent)) 0 50% / calc(100% - 8px) 2px no-repeat;
}

.page-partners .ptn-intro__text {
  font-size: var(--text-base);
  line-height: 1.95;
  color: var(--color-text);
  opacity: 0.78;
  margin: 0;
}

/* 右：協業の握手シーン写真（image2生成・黒×金トーン） */
.page-partners .ptn-intro__photo-wrap {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--color-bg-subtle);
  border-radius: 10px; /* 下層共通（svc-intro と同じ） */
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* はめ込んだ写真は枠いっぱいに表示し、見切れはトリミングで調整 */
.page-partners .ptn-intro__photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ========================================================================
   ③ 競合しない理由（3カード）
   ======================================================================== */
.page-partners .ptn-reasons {
  background: var(--color-bg-tint); /* ごく薄い地でセクション区切り */
  padding: var(--space-16) 0;
}

.page-partners .ptn-reasons__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  /* モック：見出しを左カラム、3カードを右に並べる */
  display: grid;
  grid-template-columns: minmax(180px, 220px) 1fr;
  gap: var(--space-12);
  align-items: start;
}

/* このセクションでは見出し下マージンを詰める（横並びのため） */
.page-partners .ptn-reasons .ptn-heading {
  margin-bottom: 0;
}

.page-partners .ptn-reasons__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}

.page-partners .reason-card {
  padding: var(--space-6) var(--space-6) var(--space-6) 0;
  border-top: 2px solid var(--color-line);
}

.page-partners .reason-card__num {
  display: block;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: var(--space-4);
}

.page-partners .reason-card__title {
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1.45;
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.page-partners .reason-card__text {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.72;
  margin: 0;
}

/* ========================================================================
   ④ 協業の形（ベン図：GINGUN × Win-Win × パートナー）
   ======================================================================== */
.page-partners .ptn-shape {
  background: var(--color-bg);
  padding: var(--space-16) 0;
}

.page-partners .ptn-shape__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 2円を重ねて本物のベン図に。重なり（レンズ部）の中央に Win-Win を前面で重ねる。
   円は絶対配置で左右対称に重ね、Win-Win はコンテナ中央＝レンズ中央に置く。
   左右の強みリストはそれぞれ外側の三日月部に収め、中央の Win-Win と干渉させない。
   box-sizing を border-box に固定し、border・padding で円の外寸がずれないようにする
   （これを怠ると左右非対称になり Win-Win が中央からずれる）。 */
.page-partners .ptn-venn {
  position: relative;
  width: min(720px, 100%);
  height: 380px;
  margin: var(--space-10) auto 0;
}

/* 左右の円（やや横長の楕円。金の細線＋ごく淡い金の塗り。
   重なり部は塗りが2枚重なって自然に少し濃く見える）。
   コンテナ幅720・円幅440なので、左右の円の中心間距離は280、
   重なり（レンズ）はコンテナ中央に幅160で生まれる。 */
.page-partners .ptn-venn__circle {
  position: absolute;
  box-sizing: border-box; /* border・padding を外寸440px内に含め左右対称を担保 */
  top: 50%;
  transform: translateY(-50%); /* 縦中央 */
  width: 440px;
  height: 360px;
  border-radius: 50%;
  border: 1.5px solid var(--color-accent);
  background: rgba(191, 155, 70, 0.06);
  display: flex;
  align-items: center;
}

/* 左の円：コンテナ左端に密着。リストは左の三日月（外側）へ寄せる */
.page-partners .ptn-venn__circle--gingun {
  left: 0;
  justify-content: flex-start;
  padding-left: 30px;
}

/* 右の円：コンテナ右端に密着。リストは右の三日月（外側）へ寄せる */
.page-partners .ptn-venn__circle--partner {
  right: 0;
  justify-content: flex-end;
  padding-right: 30px;
}

.page-partners .ptn-venn__body {
  width: 210px;
  text-align: center;
}

.page-partners .ptn-venn__label {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-accent); /* モック：円ラベルは金 */
  margin: 0 0 var(--space-3);
}

.page-partners .ptn-venn__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-partners .ptn-venn__list li {
  font-size: var(--text-sm);
  line-height: 1.95;
  color: var(--color-text);
  opacity: 0.82;
}

/* 中央：Win-Win（重なり部＝レンズの水平・垂直センターに前面で重ねる）。
   白い背景箱・角丸・影は使わない（背景透過）。可読性は淡い白の発光で補い、
   レンズ部の塗りが自然に明るい範囲に文字を収める。 */
.page-partners .ptn-venn__center {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 150px;
  text-align: center;
  background: transparent;
}

.page-partners .ptn-venn__center-label {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 0.02em;
  margin: 0 0 var(--space-2);
  /* 白箱の代わりに淡い白の発光で文字の輪郭を出す（箱は使わない） */
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.9), 0 0 12px rgba(255, 255, 255, 0.7);
}

.page-partners .ptn-venn__center-text {
  font-size: var(--text-xs);
  line-height: 1.7;
  color: var(--color-text);
  opacity: 0.8;
  margin: 0;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.9), 0 0 10px rgba(255, 255, 255, 0.7);
}

/* ========================================================================
   ⑤ こんな会社と協業したい（タイトル＋チェックリスト＋写真）
   ======================================================================== */
.page-partners .ptn-wanted {
  background: var(--color-bg-tint);
  padding: var(--space-16) 0;
}

.page-partners .ptn-wanted__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  /* 見出しは2行に収まる幅・リストを広めにして余計な改行をなくす */
  grid-template-columns: minmax(190px, 220px) 1.8fr 1fr;
  align-items: center;
  gap: var(--space-8);
}

.page-partners .ptn-wanted__heading {
  margin-bottom: 0;
}

/* リストは区切り線付きで上質に。各項目は金の丸バッジ＋チェック */
.page-partners .ptn-wanted__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-partners .ptn-wanted__list li {
  position: relative;
  padding: var(--space-4) 0 var(--space-4) var(--space-10);
  font-size: var(--text-base);
  line-height: 1.7;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-line);
}

.page-partners .ptn-wanted__list li:last-child {
  border-bottom: none;
}

/* 金の丸バッジ */
.page-partners .ptn-wanted__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(var(--space-4) + 1px);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1.5px solid var(--color-accent);
  background: rgba(191, 155, 70, 0.08);
}

/* バッジ内の金チェック */
.page-partners .ptn-wanted__list li::after {
  content: "";
  position: absolute;
  left: 7px;
  top: calc(var(--space-4) + 8px);
  width: 10px;
  height: 5px;
  border-left: 2px solid var(--color-accent);
  border-bottom: 2px solid var(--color-accent);
  transform: rotate(-45deg);
}

.page-partners .ptn-wanted__photo-wrap {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--color-bg-subtle);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* はめ込んだ写真は枠いっぱいに表示し、見切れはトリミングで調整 */
.page-partners .ptn-wanted__photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* CTA は全ページ共通コンポーネント化に伴い header-footer.css へ移設（旧 .ptn-cta は廃止） */

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {

  /* ページヘッダー帯 */
  .page-partners .page-head__inner {
    padding: var(--space-8) var(--space-6);
  }

  /* 透かしはタイトル背面でごく薄く（services と同じ扱い） */
  .page-partners .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  /* イントロ：縦積み（写真を上に） */
  .page-partners .ptn-intro__inner {
    grid-template-columns: 1fr;
    padding: var(--space-12) var(--space-6);
    gap: var(--space-8);
  }

  .page-partners .ptn-intro__media {
    order: -1;
  }

  /* 狭幅では強制改行を解除し、自然な折り返しに任せる（孤立文字を防ぐ） */
  .page-partners .ptn-intro__lead br {
    display: none;
  }

  /* 競合しない理由：1列 */
  .page-partners .ptn-reasons {
    padding: var(--space-12) 0;
  }

  .page-partners .ptn-reasons__inner {
    padding: 0 var(--space-6);
    grid-template-columns: 1fr; /* モバイルは見出しを上に積む */
    gap: var(--space-8);
  }

  .page-partners .ptn-reasons .ptn-heading {
    margin-bottom: 0;
  }

  /* 1列幅では見出しの強制改行を解除し、自然な1行に任せる */
  .page-partners .ptn-reasons .ptn-heading__title br {
    display: none;
  }

  .page-partners .ptn-reasons__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .page-partners .reason-card {
    padding: var(--space-5) 0;
  }

  .page-partners .reason-card__title br {
    display: none; /* 1列幅では自然折り返しに任せる */
  }

  /* 協業の形：円を縦積み（重なりを解除して読みやすく） */
  .page-partners .ptn-shape {
    padding: var(--space-12) 0;
  }

  .page-partners .ptn-shape__inner {
    padding: 0 var(--space-6);
  }

  /* 狭幅では重なりを解除し、円→Win-Win→円の縦積みにフォールバック */
  .page-partners .ptn-venn {
    position: static;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-5);
    margin-top: var(--space-6);
  }

  /* 円を画面幅いっぱい近くまで広げ、文字を一段小さくして円内に収める */
  .page-partners .ptn-venn__circle {
    position: static;
    transform: none; /* 縦積み時は縦中央化の transform を解除 */
    margin: 0;
    padding: 0;
    width: min(300px, 84vw);
    height: min(300px, 84vw);
    justify-content: center;
  }

  .page-partners .ptn-venn__body {
    width: 80%;
  }

  .page-partners .ptn-venn__list li {
    font-size: var(--text-xs);
    line-height: 1.8;
  }

  /* Win-Win は2円の間に通常配置（下地・シャドウは外す） */
  .page-partners .ptn-venn__center {
    position: static;
    transform: none;
    width: auto;
    max-width: 320px;
    background: transparent;
    box-shadow: none;
    padding: var(--space-2) 0;
  }

  /* こんな会社：縦積み */
  .page-partners .ptn-wanted {
    padding: var(--space-12) 0;
  }

  .page-partners .ptn-wanted__inner {
    grid-template-columns: 1fr;
    padding: 0 var(--space-6);
    gap: var(--space-8);
  }

  .page-partners .ptn-wanted__heading .ptn-heading__title br {
    display: none;
  }
}

/* ==========================================================================
   ▼ contact.css  →  .page-contact 配下にスコープ */
/* ==========================================================================
   contact.css — お問い合わせページ専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   正本モック: mockup/下層ページ/contact.png（A案準拠）
   ========================================================================== */

/* ========================================================================
   ① ページヘッダー帯（下層ページ共通の見出し帯）
   ------------------------------------------------------------------------
   partners/works/about と同一パターン。薄い地＋下罫、金の短い罫、
   右下の大きな金透かし「CONTACT」。写真は②カード節の背景へ移設した。
   ======================================================================== */
.page-contact .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}

.page-contact .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず（他下層と統一：金の「›」区切り・ホバー金） */
.page-contact .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-contact .breadcrumb li {
  opacity: 0.6;
}

.page-contact .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-contact .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-contact .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-contact .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-contact .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}

/* 右下の大きな金の透かし「CONTACT」 */
.page-contact .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   ② 目的別2カード分岐
   ======================================================================== */
.page-contact .contact-routes {
  position: relative; /* 背景写真（::before）の配置基準 */
  background-color: var(--color-bg-tint); /* ごく薄い地でセクションを区切る */
  padding: var(--space-16) 0 var(--space-12);
  overflow: hidden;
}

/* 背景写真（自動車学校の校舎・コース。①ヒーローから移設）。
   右側に表示し、左へ向かって薄くなるグラデ（左フェード）を維持。
   画像全体をさらに薄くして、白いカードの可読性を確保する。 */
.page-contact .contact-routes::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url(../img/contact-hero.webp);
  background-size: cover;
  background-position: center 58%;
  opacity: 0.14; /* 画像全体をさらに薄く */
  /* 左に向かって薄くなる（右が濃く・左は消える） */
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    transparent 36%,
    rgba(0, 0, 0, 0.55) 62%,
    #000 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    transparent 36%,
    rgba(0, 0, 0, 0.55) 62%,
    #000 100%
  );
  pointer-events: none;
}

.page-contact .contact-routes__inner {
  position: relative;
  z-index: 1; /* 背景写真より前面 */
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.page-contact .contact-routes__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-8);
}

/* 分岐カード */
.page-contact .route-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%; /* グリッド内で2枚の高さを揃える */
  box-sizing: border-box;
  padding: var(--space-8) var(--space-6); /* 下パディングでボタンを内側に収める */
  border: 1px solid var(--color-line);
  border-radius: 12px;
  background: var(--color-bg);
  transition: box-shadow 0.2s ease;
}

.page-contact .route-card:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.page-contact .route-card__icon {
  width: 76px;
  height: 76px;
  margin-bottom: var(--space-4); /* アイコンは image2 生成PNG（背景透過）を配置 */
}

.page-contact .route-card__icon img {
  width: 100%;
  height: 100%;
  display: block;
}

.page-contact .route-card__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.4;
  margin: 0 0 var(--space-2);
}

.page-contact .route-card__subtitle {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-accent);
  margin: 0 0 var(--space-4);
}

.page-contact .route-card__text {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.75;
  /* 左寄せのテキストをブロックごと中央配置（改行の不揃いを解消） */
  width: fit-content;
  max-width: 100%;
  margin: 0 auto var(--space-6);
  text-align: left;
}

/* カード下のボタン（白地・金枠。モック準拠） */
.page-contact .route-card__btn {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box; /* パディング込みでカード幅に収める（はみ出し防止） */
  padding: var(--btn-py) var(--btn-px);
  border: 1px solid var(--color-accent);
  border-radius: var(--btn-radius);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-jp);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  cursor: pointer; /* button要素のためポインタを明示 */
  transition: background-color 0.2s ease, color 0.2s ease;
}

.page-contact .route-card__btn:hover {
  background-color: var(--color-accent-weak);
}

/* ========================================================================
   ③ 問い合わせフォーム
   ======================================================================== */
.page-contact .contact-form-section {
  background-color: var(--color-bg);
  padding: 0 0 var(--space-16);
  scroll-margin-top: var(--space-8); /* スムーズスクロール時の上余白 */
}

/* 自動車学校向け／ベンダー向けの切替パネル */
.page-contact .contact-panel[hidden] {
  display: none; /* 非表示パネル（hidden属性のフォールバック） */
}

.page-contact .contact-form {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* 1行＝ラベル（左固定幅）＋入力欄（右） */
.page-contact .form-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  align-items: start;
  gap: var(--space-6);
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--color-line);
}

.page-contact .form-row:first-child {
  border-top: 1px solid var(--color-line);
}

/* ラベル（左）：ラベル文字＋必須バッジ */
.page-contact .form-row__label {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-top: var(--space-3); /* 入力欄の高さと視覚的に揃える */
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.5;
}

/* 必須バッジ（金枠・薄地） */
.page-contact .form-badge {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-accent);
  background: rgba(191, 155, 70, 0.1);
  border: 1px solid var(--color-accent);
  border-radius: 3px;
  padding: 0.1em 0.5em;
  line-height: 1.5;
  white-space: nowrap;
}

/* 入力欄（右） */
.page-contact .form-row__field {
  min-width: 0;
}

.page-contact .form-input,
.page-contact .form-select,
.page-contact .form-textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-jp);
  font-size: var(--text-base);
  color: var(--color-text);
  line-height: 1.6;
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: var(--btn-radius);
  padding: var(--space-3) var(--space-4);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.page-contact .form-input::placeholder,
.page-contact .form-textarea::placeholder {
  color: var(--color-text);
  opacity: 0.38;
}

.page-contact .form-input:focus,
.page-contact .form-select:focus,
.page-contact .form-textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(191, 155, 70, 0.15);
}

/* セレクト（右端に金の山形を自前で描く） */
.page-contact .form-select {
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--color-accent) 50%),
    linear-gradient(135deg, var(--color-accent) 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 2px),
    calc(100% - 14px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: var(--space-12);
  color: var(--color-text);
}

/* 未選択（プレースホルダ表示）のときは薄く（入力欄プレースホルダと同じ濃度） */
.page-contact .form-select:invalid {
  color: var(--color-text);
  opacity: 0.38;
}

.page-contact .form-textarea {
  min-height: 160px;
  resize: vertical;
}

/* 入力欄下の補足 */
.page-contact .form-note {
  font-size: var(--text-xs);
  color: var(--color-text);
  opacity: 0.55;
  line-height: 1.7;
  margin: var(--space-2) 0 0;
}

/* 送信ボタン（白地・金枠。モック準拠。中央寄せ） */
.page-contact .contact-form__actions {
  text-align: center;
  margin-top: var(--space-12);
}

.page-contact .btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  padding: var(--btn-py) var(--btn-px);
  border: 1px solid var(--color-accent);
  border-radius: var(--btn-radius);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.page-contact .btn-submit:hover {
  background-color: var(--color-accent-weak);
}

/* ------------------------------------------------------------------------
   ③-2 Contact Form 7（CF7）出力のスタイル
   WP化時、各パネルに do_shortcode() で差し込む CF7 フォームコード（管理画面）は、
   元の静的フォームと同じ .form-row / .form-row__label / .form-row__field /
   .contact-form__actions 構造（2カラム：ラベル左・入力右）で記述する。
   そのため上の「2カラムCSS（.page-contact .form-row 系）」がそのまま効く。
   auto-p は functions.php で無効化済み（wpcf7_autop_or_not＝false）のため、
   CF7 は <p>/<br> を勝手に挿入せず、書いた div 構造のまま出力される。

   ここでは CF7 固有の差分だけを補う：
    - CF7 のフォーム外枠（.wpcf7）の幅・余白を .contact-form と揃える。
    - CF7 の入力欄（フォームコードに class:form-input 等を付けなくても効くよう、
      .form-row__field 内の入力要素を要素セレクタで拾う）を .form-input 相当に。
    - CF7 の送信ボタン（.wpcf7-submit）を .btn-submit 相当に。
    - CF7 のスピナー・バリデーション・応答メッセージ。
   ※ローカルにCF7が無く実描画確認ができないため防御的に指定。最終確認は
   　ステージング/本番（Cocoon＋CF7環境）で行う。
   ------------------------------------------------------------------------ */

/* フォーム全体の枠（既存 .contact-form と同じ幅・余白） */
.page-contact .wpcf7 {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* CF7 はフォームコントロールを <span class="wpcf7-form-control-wrap"> で包む。
   2カラムの右側（.form-row__field）でこの span を block にして、内側の
   input/textarea/select が幅100%で列いっぱいに広がるようにする。 */
.page-contact .form-row__field .wpcf7-form-control-wrap {
  display: block;
}

/* 入力欄（既存 .form-input/.form-select/.form-textarea と同じ見た目）。
   2カラムなので margin-top は付けない（ラベルは別列。上端はラベル側の
   padding-top で揃える）。 */
.page-contact .form-row__field input[type="text"],
.page-contact .form-row__field input[type="email"],
.page-contact .form-row__field input[type="tel"],
.page-contact .form-row__field input[type="url"],
.page-contact .form-row__field input[type="number"],
.page-contact .form-row__field input[type="date"],
.page-contact .form-row__field textarea,
.page-contact .form-row__field select {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-jp);
  font-size: var(--text-base);
  color: var(--color-text);
  line-height: 1.6;
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: var(--btn-radius);
  padding: var(--space-3) var(--space-4);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.page-contact .form-row__field input::placeholder,
.page-contact .form-row__field textarea::placeholder {
  color: var(--color-text);
  opacity: 0.38;
}

.page-contact .form-row__field input[type="text"]:focus,
.page-contact .form-row__field input[type="email"]:focus,
.page-contact .form-row__field input[type="tel"]:focus,
.page-contact .form-row__field input[type="url"]:focus,
.page-contact .form-row__field input[type="number"]:focus,
.page-contact .form-row__field input[type="date"]:focus,
.page-contact .form-row__field textarea:focus,
.page-contact .form-row__field select:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(191, 155, 70, 0.15);
}

/* セレクト：右端に金の山形を自前で描く（既存 .form-select と同じ） */
.page-contact .form-row__field select {
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--color-accent) 50%),
    linear-gradient(135deg, var(--color-accent) 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 2px),
    calc(100% - 14px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: var(--space-12);
}

.page-contact .form-row__field textarea {
  min-height: 160px;
  resize: vertical;
}

/* 送信ボタン（既存 .btn-submit と同じ見た目）。
   フォームコードでは .contact-form__actions（中央寄せ・上余白を持つ）で包む。
   ボタン自体は display:block＋margin:0 auto で中央寄せのみ担い、上余白は親に
   任せる（.contact-form__actions の margin-top と二重に効かせない）。 */
.page-contact .wpcf7-submit {
  display: block;
  margin: 0 auto;
  min-width: 280px;
  padding: var(--btn-py) var(--btn-px);
  border: 1px solid var(--color-accent);
  border-radius: var(--btn-radius);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-jp);
  font-size: var(--text-base);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.page-contact .wpcf7-submit:hover {
  background-color: var(--color-accent-weak);
}

/* 送信処理中スピナー */
.page-contact .wpcf7-spinner {
  margin: var(--space-3) auto 0;
}

/* 各項目のバリデーションエラー（小さく・エラー色） */
.page-contact .wpcf7-not-valid-tip {
  display: block;
  margin-top: var(--space-2);
  color: #c0392b; /* エラー表示用の赤（ブランド配色外の機能色） */
  font-size: var(--text-xs);
  line-height: 1.6;
}

/* エラーの入力欄は枠を赤に */
.page-contact .wpcf7-form input.wpcf7-not-valid,
.page-contact .wpcf7-form textarea.wpcf7-not-valid,
.page-contact .wpcf7-form select.wpcf7-not-valid {
  border-color: #c0392b;
}

/* フォーム下部の応答メッセージ（送信完了／エラー／確認） */
.page-contact .wpcf7-form .wpcf7-response-output {
  margin: var(--space-6) 0 0;
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-line);
  border-radius: var(--btn-radius);
  font-size: var(--text-sm);
  line-height: 1.7;
}

/* 送信成功（淡金で控えめに強調） */
.page-contact .wpcf7-form.sent .wpcf7-response-output {
  border-color: var(--color-accent);
  background: var(--color-accent-weak);
  color: var(--color-text);
}

/* 入力エラー・送信失敗 */
.page-contact .wpcf7-form.invalid .wpcf7-response-output,
.page-contact .wpcf7-form.unaccepted .wpcf7-response-output,
.page-contact .wpcf7-form.failed .wpcf7-response-output,
.page-contact .wpcf7-form.aborted .wpcf7-response-output {
  border-color: #c0392b;
  color: #c0392b;
}

/* ========================================================================
   ④ 問い合わせ先情報帯（会社情報＋受付シーン写真）
   ======================================================================== */
.page-contact .contact-info {
  background-color: var(--color-bg);
  border-top: 1px solid var(--color-line);
  padding: var(--space-12) 0;
}

.page-contact .contact-info__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 1fr 360px; /* 左：会社情報／右：受付シーン写真 */
  gap: var(--space-12);
  align-items: center;
}

.page-contact .contact-info__company {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}

.page-contact .contact-info__address {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.78;
  line-height: 1.8;
  margin: 0 0 var(--space-4);
}

/* TEL・Email（ラベル＋値の行） */
.page-contact .contact-info__contacts {
  margin: 0 0 var(--space-4);
}

.page-contact .contact-info__row {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  padding: var(--space-1) 0;
}

.page-contact .contact-info__row dt {
  flex-shrink: 0;
  width: 52px;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-accent); /* ラベルだけ金 */
}

.page-contact .contact-info__row dd {
  margin: 0;
  font-size: var(--text-base);
  color: var(--color-text);
}

.page-contact .contact-info__row dd a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-contact .contact-info__row dd a:hover {
  color: var(--color-accent);
}

.page-contact .contact-info__note {
  font-size: var(--text-sm);
  line-height: 1.9;
  color: var(--color-text);
  opacity: 0.7;
  margin: 0;
}

/* 右：受付シーン写真（受付スタッフの対応シーン。image2生成） */
.page-contact .contact-info__media {
  aspect-ratio: 4 / 3;
  background-color: var(--color-bg-subtle);
  border-radius: 8px;
  overflow: hidden;
}

.page-contact .contact-info__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {

  /* ページヘッダー帯：狭幅では左右パディングを詰める（下層共通） */
  .page-contact .page-head__inner {
    padding: var(--space-6) var(--space-6) var(--space-10);
  }

  .page-contact .breadcrumb ol {
    margin-bottom: var(--space-6);
  }

  /* 狭幅では透かしを薄く（partners と同様に主張を抑える） */
  .page-contact .page-head__watermark {
    opacity: 0.22;
  }

  /* 分岐カード：1列 */
  .page-contact .contact-routes {
    padding: var(--space-12) 0 var(--space-8);
  }

  .page-contact .contact-routes__inner {
    padding: 0 var(--space-6);
  }

  .page-contact .contact-routes__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  /* フォーム：ラベルを上、入力欄を下に積む */
  .page-contact .contact-form {
    padding: 0 var(--space-6);
  }

  .page-contact .form-row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding: var(--space-5) 0;
  }

  .page-contact .form-row__label {
    padding-top: 0;
  }

  .page-contact .contact-form__actions {
    margin-top: var(--space-8);
  }

  .page-contact .btn-submit {
    width: 100%;
    min-width: 0;
  }

  /* CF7も静的フォームと同じ：左右余白を詰め、送信ボタンをスマホ幅に合わせる。
     上余白は .contact-form__actions（上の指定で space-8）が持つので重ねない。 */
  .page-contact .wpcf7 {
    padding: 0 var(--space-6);
  }

  .page-contact .wpcf7-submit {
    width: 100%;
    min-width: 0;
  }

  /* 問い合わせ先情報帯：縦積み（写真を下に） */
  .page-contact .contact-info {
    padding: var(--space-8) 0;
  }

  .page-contact .contact-info__inner {
    grid-template-columns: 1fr;
    padding: 0 var(--space-6);
    gap: var(--space-6);
  }
}

/* ==========================================================================
   ▼ privacy.css  →  .page-privacy 配下にスコープ */
/* ==========================================================================
   privacy.css — プライバシーポリシーページ（/privacy）専用スタイル
   （base.css・header-footer.css の後に読み込む）
   --------------------------------------------------------------------------
   下層ページ共通の見出し帯（.page-head）＋読みやすい本文レイアウト。
   トップA案と同じデザイン言語（白基調＋真鍮ゴールド #BF9B46 の細線）。
   ========================================================================== */

/* ========================================================================
   ページヘッダー（パンくず＋タイトル＋透かし）
   ------------------------------------------------------------------------
   下層ページ共通パターン（partners.css・services.css と同一）に合わせる。
   ======================================================================== */
.page-privacy .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}

.page-privacy .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず */
.page-privacy .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-privacy .breadcrumb li {
  opacity: 0.6;
}

.page-privacy .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-privacy .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-privacy .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-privacy .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-privacy .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}

/* 右下の大きな金の透かし「PRIVACY」 */
.page-privacy .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ========================================================================
   本文（プライバシーポリシー）
   ======================================================================== */
.page-privacy .privacy {
  background-color: var(--color-bg);
}

.page-privacy .privacy__inner {
  max-width: 820px; /* 法務文書は1行が長すぎないよう本文幅を絞る */
  margin: 0 auto;
  padding: var(--space-16) var(--space-8);
}

.page-privacy .privacy__lead {
  font-size: var(--text-lg);
  line-height: 1.9;
  color: var(--color-text);
  margin: 0 0 var(--space-12);
}

/* 大見出し（個人情報保護方針） */
.page-privacy .privacy__heading {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-6);
  padding-bottom: var(--space-3);
  border-bottom: 2px solid var(--color-accent); /* 金の細線 */
}

/* 条項見出し（金の縦バー付き） */
.page-privacy .privacy__subheading {
  position: relative;
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  margin: var(--space-12) 0 var(--space-4);
  padding-left: var(--space-4);
}

.page-privacy .privacy__subheading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  bottom: 0.2em;
  width: 3px;
  background: var(--color-accent);
}

.page-privacy .privacy__text {
  font-size: var(--text-base);
  line-height: 1.95;
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.page-privacy .privacy__list {
  margin: 0 0 var(--space-4);
  padding-left: var(--space-6);
  font-size: var(--text-base);
  line-height: 1.95;
  color: var(--color-text);
}

.page-privacy .privacy__list li {
  margin-bottom: var(--space-2);
}

/* お問い合わせ先（金の縁取りボックス） */
.page-privacy .privacy__contact {
  margin: var(--space-4) 0 0;
  padding: var(--space-6) var(--space-8);
  background-color: var(--color-bg-tint);
  border: 1px solid var(--color-line);
  border-left: 3px solid var(--color-accent);
  line-height: 1.9;
  color: var(--color-text);
}

.page-privacy .privacy__contact p {
  margin: 0;
}

.page-privacy .privacy__contact a {
  color: var(--color-accent);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-privacy .privacy__contact a:hover {
  text-decoration: underline;
}

.page-privacy .privacy__date {
  margin: var(--space-12) 0 0;
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.6;
  text-align: right;
}

/* ========================================================================
   レスポンシブ（768px 以下）
   ======================================================================== */
@media (max-width: 768px) {
  .page-privacy .page-head__inner {
    padding: var(--space-8) var(--space-6);
  }

  .page-privacy .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  .page-privacy .privacy__inner {
    padding: var(--space-12) var(--space-6);
  }

  .page-privacy .privacy__contact {
    padding: var(--space-5) var(--space-6);
  }
}

/* ==========================================================================
   ▼ news.css  →  お知らせ（投稿）一覧 home.php／記事詳細 single.php
   --------------------------------------------------------------------------
   body に付与する .page-news 配下にスコープ（functions.php の gingun_body_class）。
   見出し帯（.page-head）は partners/privacy と同一体裁（下層ページ共通）。
   トップA案と同じデザイン言語（白基調＋真鍮ゴールド #BF9B46 の細線）。
   ========================================================================== */

/* お知らせ見出し内のリンク（トップ⑩・一覧 共通）。
   Cocoon親テーマの a:hover オレンジ漏れを避けるため色を明示する（詳細度 0,2,1 で勝つ）。 */
.news-item__title a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}
.news-item__title a:hover {
  color: var(--color-accent);
}

/* ------------------------------------------------------------------------
   見出し帯（パンくず＋タイトル＋透かし）：partners/privacy と同一体裁
   ------------------------------------------------------------------------ */
.page-news .page-head {
  background-color: var(--color-bg-tint); /* ごく薄い地（下層共通） */
  border-bottom: 1px solid var(--color-line);
}

.page-news .page-head__inner {
  position: relative; /* 透かしテキストの配置基準 */
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-8) var(--space-12);
  overflow: hidden;
}

/* パンくず */
.page-news .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0 0 var(--space-8);
  padding: 0;
  font-size: var(--text-xs);
  color: var(--color-text);
}

.page-news .breadcrumb li {
  opacity: 0.6;
}

.page-news .breadcrumb li + li::before {
  content: "›";
  margin-right: var(--space-2);
  color: var(--color-accent);
}

.page-news .breadcrumb a {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.page-news .breadcrumb a:hover {
  color: var(--color-accent);
}

/* タイトル上の金の短い罫 */
.page-news .page-head__tick {
  display: block;
  width: 44px;
  height: 3px;
  background: var(--color-accent);
  margin-bottom: var(--space-4);
}

.page-news .page-head__title {
  position: relative;
  z-index: 1;
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
  margin: 0;
}

/* 右下の大きな金の透かし「NEWS」 */
.page-news .page-head__watermark {
  position: absolute;
  right: var(--space-8);
  bottom: var(--space-4);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-accent);
  opacity: 0.28;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ------------------------------------------------------------------------
   一覧（home.php）：お知らせ一覧＋ページネーション
   ------------------------------------------------------------------------ */
.page-news .news-archive {
  background-color: var(--color-bg);
}

.page-news .news-archive__inner {
  max-width: 820px; /* 一覧は1行が長すぎないよう本文幅を絞る（privacy と同方針） */
  margin: 0 auto;
  padding: var(--space-16) var(--space-8);
}

.page-news .news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-news .news-item {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-line);
}

.page-news .news-item__date {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.55;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.page-news .news-item__cat {
  font-size: var(--text-xs);
  color: var(--color-accent);
  border: 1px solid var(--color-accent-weak);
  border-radius: 999px;
  padding: 0.1em 0.7em;
  line-height: 1.6;
  white-space: nowrap;
}

.page-news .news-item__title {
  font-size: var(--text-sm);
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
}

/* 投稿が無いときの案内（一覧・トップ⑩共通の見た目） */
.page-news .news-empty,
.home .news-empty {
  font-size: var(--text-base);
  color: var(--color-text);
  opacity: 0.7;
  margin: 0;
  padding: var(--space-4) 0;
}

/* ページネーション（the_posts_pagination が出力する .pagination / .page-numbers） */
.page-news .pagination {
  margin-top: var(--space-10);
}

.page-news .pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
}

.page-news .pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5em;
  padding: 0.5em 0.75em;
  border: 1px solid var(--color-line);
  border-radius: var(--btn-radius);
  font-size: var(--text-sm);
  line-height: 1;
  color: var(--color-text);
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.page-news .pagination a.page-numbers:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.page-news .pagination .page-numbers.current {
  border-color: var(--color-accent);
  background-color: var(--color-bg-subtle);
  color: var(--color-accent);
  font-weight: 700;
}

.page-news .pagination .page-numbers.dots {
  border-color: transparent;
}

/* ------------------------------------------------------------------------
   記事詳細（single.php）：本文を読みやすいタイポ・配色で整える
   ------------------------------------------------------------------------ */
.page-news .post {
  background-color: var(--color-bg);
}

.page-news .post__inner {
  max-width: 820px; /* 本文の1行を読みやすい幅に絞る */
  margin: 0 auto;
  padding: var(--space-16) var(--space-8);
}

/* 日付＋カテゴリ */
.page-news .post__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin: 0 0 var(--space-6);
}

.page-news .post__date {
  font-size: var(--text-sm);
  color: var(--color-text);
  opacity: 0.55;
  font-variant-numeric: tabular-nums;
}

.page-news .post__cat {
  font-size: var(--text-xs);
  color: var(--color-accent);
  border: 1px solid var(--color-accent-weak);
  border-radius: 999px;
  padding: 0.1em 0.7em;
  line-height: 1.6;
}

/* 本文（the_content）の各要素 */
.page-news .post-content {
  font-size: var(--text-base);
  line-height: 1.95;
  color: var(--color-text);
}

.page-news .post-content > *:first-child {
  margin-top: 0;
}

.page-news .post-content p {
  margin: 0 0 var(--space-5);
}

.page-news .post-content h2 {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--color-text);
  margin: var(--space-12) 0 var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 2px solid var(--color-accent); /* 金の細線 */
}

.page-news .post-content h3 {
  position: relative;
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  margin: var(--space-10) 0 var(--space-4);
  padding-left: var(--space-4);
}

.page-news .post-content h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  bottom: 0.2em;
  width: 3px;
  background: var(--color-accent);
}

.page-news .post-content h4 {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  margin: var(--space-8) 0 var(--space-3);
}

.page-news .post-content ul,
.page-news .post-content ol {
  margin: 0 0 var(--space-5);
  padding-left: var(--space-6);
}

.page-news .post-content li {
  margin-bottom: var(--space-2);
}

.page-news .post-content a {
  color: var(--color-accent);
  text-decoration: underline;
  transition: color 0.2s ease;
}

.page-news .post-content a:hover {
  color: var(--color-accent);
  text-decoration: none;
}

.page-news .post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

.page-news .post-content blockquote {
  margin: 0 0 var(--space-5);
  padding: var(--space-4) var(--space-6);
  background-color: var(--color-bg-tint);
  border-left: 3px solid var(--color-accent);
  color: var(--color-text);
}

.page-news .post-content blockquote p:last-child {
  margin-bottom: 0;
}

/* 一覧へ戻る導線 */
.page-news .post__back {
  margin-top: var(--space-12);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-line);
}

/* ------------------------------------------------------------------------
   レスポンシブ（768px 以下）
   ------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .page-news .page-head__inner {
    padding: var(--space-8) var(--space-6);
  }

  .page-news .page-head__watermark {
    right: var(--space-6);
    opacity: 0.2;
  }

  .page-news .news-archive__inner,
  .page-news .post__inner {
    padding: var(--space-12) var(--space-6);
  }

  /* 一覧項目：日付・カテゴリを上段、見出しを下段に（トップ⑩と同じ畳み方） */
  .page-news .news-item {
    grid-template-columns: auto auto;
    row-gap: var(--space-2);
  }

  .page-news .news-item__title {
    grid-column: 1 / -1;
  }
}

/* ==========================================================================
   親テーマ（Cocoon）対策 ／ WP（Cocoon子テーマ）でのみ効く防御的な上書き
   --------------------------------------------------------------------------
   ローカル（静的サイト）には Cocoon が無いため見た目は変わらない。
   ステージング（WP＝Cocoon子テーマ）でのみ、親テーマの既定スタイルが
   当サイトに漏れるのを打ち消すための定義。ファイル末尾に置き、ソース順でも
   確実に後勝ちさせる。!important は最小限にとどめる。
   ※ これは「②Cocoon耐性ベース」の二層構成のうち“必ず勝たせる打ち消し”側。
     箱モデル・フォント・rem基準などの“正規化”はファイル先頭の②本節を参照。
   ========================================================================== */

/* --------------------------------------------------------------------------
   B. ホバー色漏れ対策
   Cocoon 親テーマは a:hover 等にオレンジ系の色を当てるため、明示ホバー色を
   持たない当サイトのボタン/リンクで文字がオレンジになることがある。
   対象要素のホバー時の文字色を「黒×金」の意図した色で明示し直す。
   いずれも <a> 要素なので a.クラス まで詳細度を上げ（0,2,x）、親テーマの
   a:hover（0,1,1）／body a:hover（0,1,2）に確実に勝たせる（!important 不要）。
   -------------------------------------------------------------------------- */

/* 黒地・白文字（メインCTA）：ホバーは opacity のみ＝文字色は白のまま保つ */
a.btn-primary:hover {
  color: #FFFFFF;
}

/* 白地・黒枠（サブCTA）：ホバーで地が薄くなる＝文字は本文の黒（ink）のまま */
a.btn-secondary:hover {
  color: var(--color-ink);
}

/* 白地・金枠ボタン：ホバーは意図どおり金文字（既存挙動の再宣言で固定） */
a.btn-text:hover {
  color: var(--color-accent);
}
a.btn-text:hover .btn-arrow {
  color: var(--color-accent);
}

/* 濃色帯の上の金枠ボタン（CTA帯）：ホバーで地に淡金＝文字は白のまま保つ */
a.btn-cta:hover {
  color: #FFFFFF;
}

/* サービスページの3本柱（リンクカード）：ホバーは opacity のみ。
   .pillar__title は色指定が無く .pillar（=a）の色を継承するため、
   ホバー時の親テーマ色がタイトルに漏れないよう本文色を明示する。 */
.page-services a.pillar:hover {
  color: var(--color-text);
}

/* 実績カード（works）：リンク化済み。子要素は明示色だが、念のため
   カード自身のホバー文字色も継承（黒×金）に固定しておく。 */
a.work-card:hover {
  color: inherit;
}

/* 以下は <button> 要素のため親テーマの a:hover は本来当たらないが、
   防御的にホバー時の文字色を据え置く。 */
.page-contact .route-card__btn:hover {
  color: var(--color-text);
}
.page-contact .btn-submit:hover {
  color: var(--color-text);
}

/* --------------------------------------------------------------------------
   C. 本文幅の制約打ち消し
   Cocoon 親テーマが本文エリア（main 要素）に max-width / padding を与えると、
   当サイトの全幅セクション（.hero / .brand-stmt / .cta 等の帯）が狭まり、
   各 __inner（例：.cta__inner = 1040px）がローカルと同じ最大幅まで広がらない
   （CTA右カードのリストが早く折り返す等）。
   コンテンツルート <main id="main-content"> と main 要素の制約を打ち消す。
   ※ 各 __inner の max-width 値自体はローカル基準のまま変更しない。
   -------------------------------------------------------------------------- */
#main-content,
main#main-content,
main {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}
